单算子调用概述
完成自定义算子的开发部署后,可以通过单算子调用的方式来验证单算子的功能。单算子调用有API执行和模型执行两种方式:
- 单算子API执行:基于C语言的API执行算子,无需提供单算子描述文件进行离线模型的转换,直接调用单算子API接口。
- 单算子模型执行:基于图IR执行算子,先编译算子(例如,使用ATC工具将Ascend IR定义的单算子描述文件编译成算子om模型文件),再调用AscendCL接口加载算子模型,最后调用AscendCL接口执行算子。
两种方式对于自定义算子的开发部署有不同的约束要求,如表1所示。单算子调用前,需要根据表中的约束要求完成前期准备:参考kernel侧算子实现完成kernel侧实现的相关准备,参考host侧算子实现完成host侧实现相关准备,参考算子编译部署完成算子的编译部署。
单算子调用方式 |
kernel侧算子实现 |
host侧算子实现 |
算子编译部署 |
|||
原型注册 |
Shape推导 |
Tiling实现 |
算子源码编译 |
算子二进制编译 |
||
单算子API执行 |
必选 |
必选 |
- |
必选 |
- |
开启 |
单算子模型执行 |
必选 |
必选 |
必选 |
必选 |
开启 |
- |
本章内容仅提供通过两种方式调用自定义算子的样例和基础内容讲解,单算子调用应用开发的详细内容请参考《AscendCL应用开发指南(C&C++)》单算子调用章节。
父主题: AscendCL单算子调用