下载
EN
注册

硬件变更后适配

场景描述

仅TBE自定义算子存在硬件变更后需要适配的场景,AI CPU自定义算子不涉及,即AI CPU算子与昇腾AI处理器的型号无关。

硬件变更后适配,指开发者已实现了某种型号昇腾AI处理器的TBE自定义算子,当硬件变更后,需要重新针对新的昇腾AI处理器进行TBE自定义算子的适配。

例如,原来硬件的昇腾AI处理器型号为A,更换成的新硬件的昇腾AI处理器型号为B。

开发流程

硬件变更后适配场景下,开发者需要基于原有算子工程进行算子交付件的修改,假设CANN软件环境以及原有算子工程都已准备完毕,详细的适配流程如下所示:

图1 算子硬件适配开发流程

算子适配插件为将第三方框架算子映射为适配昇腾AI处理器的算子,与昇腾AI处理器型号无关,一般无需修改。

表1 算子开发步骤详解

步骤

描述

参考

算子开发准备

算子分析

不同昇腾AI处理器之间的主要差异为计算接口在昇腾AI处理器上支持的程度不同。包含:

  • 计算接口在不同的昇腾AI处理器上是否支持。
  • 若支持的话,支持的数据类型是否有差异,每个参数的含义是否有差异等。

具体需要根据算子实现中使用的每个计算接口进行详细的分析。

请查看每个接口的API参考

算子交付件适配开发

算子原型定义修改

根据算子分析出来的不同计算接口之间的差异,修改“算子原型定义”、若计算接口在不同的昇腾AI处理器间无差异,则此操作跳过。

算子原型定义

算子代码实现修改

根据算子分析出来的不同计算接口之间的差异,修改“算子代码实现”文件,若计算接口在不同的昇腾AI处理器间无差异,则此操作跳过。

算子代码实现(TBE DSL)

算子代码实现(TBE TIK)

新增算子信息库

新增对应昇腾AI处理器的算子信息库。

算子信息库文件用于将算子的相关信息注册到算子信息库中,包括算子的输入输出dtype、format以及输入shape信息。

TBE算子信息库

算子编译部署

编译自定义算子工程,生成自定义算子安装包并进行自定义算子包的安装,将自定义算子部署到算子库。

算子编译部署

算子ST测试

系统测试(System Test),在真实的硬件环境中,验证算子的正确性。

算子ST测试

算子网络测试

将自定义算子加载到网络模型中进行运行验证。

算子网络测试