前言
介绍如何开发CANN AICPU自定义算子,以一个AICPU算子为示例进行讲解,分析+实现+测试验证一个端到端的完整开发流程。
概述
AI CPU算子,是运行在昇腾AI处理器中AI CPU计算单元上的表达一个完整计算逻辑的运算,如下情况下,开发者需要自定义AI CPU算子。
在NN模型训练或者推理过程中,将第三方开源框架转化为适配昇腾AI处理器的模型时遇到了昇腾AI处理器不支持的算子。此时,为了快速打通模型执行流程,用户可以通过自定义AI CPU算子进行功能调测,提升调测效率。功能调通之后,后续性能调测过程中再将AI CPU自定义算子转换成TBE算子实现。
某些场景下,无法实现在AI Core上运行的自定义算子(比如部分算子需要Complex32、Complex64类型,但AI Core指令不支持;再比如包含了大量标量计算的算子,而AI Core不擅长对标量进行处理),此时可以通过开发AI CPU自定义算子实现昇腾AI处理器对此算子的支持。
目标
能够基于AI CPU进行简单的算子开发的人员,可以达成:
-
学习AI CPU算子基本实现原理和实现方法。
-
能够基于课程中的样例,扩展进行其他自定义AI CPU算子的开发。
如果您具有如下技能,可以更好地完成学习:
-
具备C++程序开发能力
-
理解数学表达式
-
对机器学习、深度学习有一定的了解
-
了解Ascend平台运行流程和原理
-
了解Ascend平台的TBE自定义算子开发流程
算子的基本概念
Ascend 310处理器架构逻辑