跳到主要内容

兼容性说明

总体兼容性策略见表1 Ascend C API兼容策略,兼容性范围不包含编译器BuiltIn API、Ascend C内部实现接口等。若开发者希望在新平台运行其它平台开发的Ascend C程序,需要在新平台重新编译并运行,并可能需要根据迁移指导进行代码调整。

图1 Ascend C API层次结构

表1 Ascend C API兼容策略

API层级兼容策略
高阶API高阶API在所有架构上均具备兼容性,但在涉及领域特性的部分存在不兼容情况。
基础API基础API分为可兼容的基础API和ISASI基础API;兼容的API在所有架构上均能兼容;ISASI API为体系架构相关的API,不保证跨架构版本的兼容性,例如CUBE侧的计算接口LoadData、Mmad等。
框架API框架API为软件实现API,跨架构版本兼容。
语言扩展C API不保证兼容。
编译器BuiltIn API不保证兼容。

简要说明

  1. 为了保证兼容性,建议开发者在开发过程中尽量避免使用如下接口或编程方式,否则开发者需自行保证兼容性。

    • 非Ascend C公开接口、结构体,例如impl目录下的接口、结构体等;

    • 对芯片规格进行硬编码。例如:

      uint32_t MAX_UB_SIZE = 256 * 1024;
      // 建议获取方式:ascendcPlatform.GetCoreMemSize(platform_ascendc::CoreMemType::UB, MAX_UB_SIZE);
      // ...
    • 编译器BuiltIn API。例如:

      copy_gm_to_ubuf(input_1_local_ub, input_1, 0, 1, 8, 0, 0);
    • TilingKey编程。

  2. 建议开发者使用如下接口或编程方式。