---
title: 兼容性指南
description: "兼容性是确保开发者能够高效迁移算子的关键。为了保证在不同AI处理器之间迁移时，Ascend C算子的语义和功能保持一致，开发者需要根据目标平台的架构进行代码适配和优化。如果开发者希望在新平台上运行其他平台开发的Ascend C算子程序，需要在新平台上重新编译并运行。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/Ascendcopdevg/atlas_ascendc_10_10058.html
sourcePath: /source/zh/canncommercial/900/programug/Ascendcopdevg/atlas_ascendc_10_10058.html
indexId: 9a7071b0cbd1c33c79ef236c23ec9e52d77eb3821190a48d69da920a2f7144af81
---
# 兼容性指南

兼容性是确保开发者能够高效迁移算子的关键。为了保证在不同AI处理器之间迁移时，Ascend C算子的语义和功能保持一致，开发者需要根据目标平台的架构进行代码适配和优化。如果开发者希望在新平台上运行其他平台开发的Ascend C算子程序，需要在新平台上重新编译并运行。

请参考兼容性迁移指南，掌握在351x架构下运行原本在220x架构上开发的Ascend C程序的方法。

请参考迁移指南(https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/cannkit-ascend-kirin-compatibility)，了解如何将昇腾平台上开发的算子迁移到麒麟平台。

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

- 非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；例如：
  1 copy_gm_to_ubuf(input_1_local_UB, input_1, 0, 1, 8, 0, 0);

- TilingKey编程。

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

- 兼容的API；
- 若涉及特定领域扩展特性，在Device侧  NPU_ARCH编译宏
进行隔离，在Host侧用  SocVersion(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendcopapi/atlasascendc_api_07_1029.html)
进行隔离；
- 使用<<<>>>直调或  Tiling模板编程
。
