下载
中文
注册

支持度分析

分析方法

模型是否可以迁移成功主要取决于模型算子是否支持昇腾AI处理器。支持度分析主要包括以下工作:

  1. 借助迁移分析工具识别当前昇腾平台对待迁移模型算子、API的支持情况;如果模型原始代码中调用了模型套件或第三方库,需要关注昇腾NPU对其的支持情况:
    • 如果该三方库原生支持NPU,用户需要关注NPU目前对库中特性的支持情况;
    • 如果是昇腾适配的第三方库,用户需要额外安装该库的昇腾适配版本,并关注其适配情况。详细昇腾第三方库支持情况请参考套件与三方库支持清单。如果用户希望以上第三方库和模型套件在适配昇腾设备后能达到更高的性能,可以自行调优。
  2. 关注模型是否满足模型选取与约束说明(必读)

迁移分析工具

在执行迁移操作前,需借助msFmkTransplt工具,分析基于其他平台(如GPU)的PyTorch训练脚本中算子、三方库套件、亲和API分析以及动态shape在昇腾AI处理器上的支持情况,工具使用详细指导可参见CANN 分析迁移工具指南

分析内容主要包括:

  • 算子支持情况分析:用户提供待分析的PyTorch训练脚本,可快速获得该训练脚本中不支持的torch API和cuda API信息,并输出训练脚本中API精度和性能调优的专家建议。
  • 三方库套件分析:用户提供待分析的三方库套件源码,可快速获得源码中不支持的三方库API和cuda信息。

    三方库API是指在三方库代码中的函数,如果某函数的函数体内使用了不支持的torch算子或者cuda自定义算子,则此函数就是三方库不支持的API。如果第三方库中其他函数调用了这些不支持的API,则这些调用函数也为不支持的API。

  • 动态shape分析:用户提供待分析的PyTorch训练脚本,可快速获得该训练脚本中包含的动态shape信息。
  • 亲和API分析:用户提供待分析的PyTorch训练脚本,可快速获得该训练脚本中可替换的亲和API信息。

在迁移可行性分析中如果存在平台未支持的算子,可通过修改模型脚本,使用等价支持的算子替换的方式解决,或者参考《套件与三方库支持清单》中的“单算子适配OpPlugin插件开发”章节进行算子适配,也可联系华为工程师提出开发适配诉求。