兼容性指南
兼容性是确保开发者能够高效迁移算子的关键。为了保证在不同AI处理器之间迁移时,Ascend C算子的语义和功能保持一致,开发者需要根据目标平台的架构进行代码适配和优化。如果开发者希望在新平台上运行其他平台开发的Ascend C算子程序,需要在新平台上重新编译并运行。请参考迁移指南,了解如何将昇腾平台上开发的算子迁移到麒麟平台。
为了保证兼容性,建议开发者在开发过程中尽量避免使用如下接口或编程方式,否则开发者需自行保证兼容性。
- 非Ascend C公开接口、结构体,例如impl目录下的接口、结构体等;
- 对芯片规格进行硬编码;例如:
1 2 3
constexpr uint32_t MAX_UB_SIZE = 256 * 1024; // 建议获取方式:ascendcPlatform.GetCoreMemSize(platform_ascendc::CoreMemType::UB, MAX_UB_SIZE); ...
- 编译器BuiltIn API;例如:
1copy_gm_to_ubuf(input_1_local_UB, input_1, 0, 1, 8, 0, 0);
- TilingKey编程。
建议开发者使用如下接口或编程方式。
- 兼容的API;
- 若涉及特定领域扩展特性,在Device侧NPU_ARCH编译宏进行隔离,在Host侧用SocVersion进行隔离;
- 使用<<<>>>直调或Tiling模板编程。
父主题: 编程指南