---
title: 硬件变更后适配
description: "仅TBE自定义算子存在硬件变更后需要适配的场景，AI CPU自定义算子不涉及，即AI CPU算子与AI处理器的型号无关。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/others/tbeaicpudevg/atlasopdev_10_0017.html
sourcePath: /source/zh/canncommercial/900/others/tbeaicpudevg/atlasopdev_10_0017.html
indexId: f82c7c83bc7f7b96302a18a2396da1513d197a70ed9cf8811abf1f46cc703bca73
---
# 硬件变更后适配

#### 场景描述

仅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测试 | 算子ST测试 | 系统测试（System Test），在真实的硬件环境中，验证算子的正确性。 | 算子ST测试 |
| 算子网络测试 | 算子网络测试 | 将自定义算子加载到网络模型中进行运行验证。 | 算子网络测试 |
