概述
图模式是神经网络模型的一种运行模式,在图模式下用户首先将模型的计算过程构造成一张图,然后通过GE将图下发到昇腾硬件执行。相对于单个算子依次下发的方式,图模式下,GE可以通过计算图优化、多流并行、内存复用、模型下沉等技术手段,加速模型执行效率,减少模型内存占用。
算子入图的开发流程如下图所示:算子工程创建完成后,基于工程代码框架完成算子原型定义、kernel侧算子实现、host侧tiling实现并完成算子入图开发,通过工程编译脚本完成算子的编译部署,之后即可基于图IR执行算子,比如单算子模型执行或者IR构图IR构图的方式调用自定义算子。该开发流程以工程化算子开发为基础,除了需要提供工程化算子开发中的算子实现文件外,还需要额外交付算子入图的代码文件。
- 环境准备。
- 算子实现。
- 算子原型定义。通过原型定义来描述算子输入输出、属性等信息以及算子在AI处理器上相关实现信息,并关联tiling实现等函数。
- Kernel侧算子实现和host侧tiling实现请参考算子实现;工程化算子开发,支持开发者调用Tiling API基于CANN提供的编程框架进行tiling开发,kernel侧也提供对应的接口方便开发者获取tiling参数,具体内容请参考Kernel侧算子实现和Host侧tiling实现,由此而带来的额外约束也在上述章节说明。
- 算子入图(GE图)开发。算子入图场景下,需要提供shape推导等算子入图适配函数的实现。
- 编译部署。通过工程编译脚本完成算子的编译部署。
- 图编译和图执行:基于图IR执行算子,比如单算子模型执行或者IR构图IR构图的方式调用自定义算子。
父主题: 算子入图(GE图)开发