本文介绍: 完成自定义算子的开发部署后,可以通过单算子调用的方式来验证单算子的功能。单算子API执行:基于C语言的API执行算子,无需提供单算子描述文件进行离线模型的转换,直接调用单算子API接口。单算子模型执行:基于图IR执行算子,先编译算子(例如,使用ATC工具将Ascend IR定义的单算子描述文件编译成算子om模型文件),再调用AscendCL接口加载算子模型,最后调用AscendCL接口执行算子。两种方式对于自定义算子开发部署的不同约束要求如下:下面分别梳理单算子调用的方式。
自定义算子调用方式
完成自定义算子的开发部署后,可以通过单算子调用的方式来验证单算子的功能。单算子调用有API执行和模型执行两种方式:
下面分别梳理单算子调用的方式
单算子API执行,Aclnn调用方式
要进行单算子API执行,首先需要做一些前置工作:
参考基于msopgen工具创建算子工程完成算子工程的创建,参考kernel侧算子实现完成kernel侧实现的相关准备,参考host侧算子实现完成host侧实现相关准备。参考算子编译部署完成算子的编译部署。
然后检查API执行需要的头文件和库文件是否自动生成,算子工程build_out/auto_gen目录下会自动生成以下文件
├── aclnn_Xxx.cpp // 自动生成的单算子API执行接口实现文件
├── aclnn_Xxx.h // 自动生成的单算子API执行接口头文件
├── …
单算子模型调用方式
调用方式样例演示
编译并运行在线编译的单算子API样例
编译并运行离线编译的单算子模型样例
编译并运行在线编译的单算子模型样例
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。