本样例基于AddCustom算子工程,介绍了msOpGen工具生成简易自定义算子工程和单算子调用。
├── 2_add_frameworklaunchlite // 使用框架调用的方式调用Add算子
│ ├── AclNNInvocationNaive // 通过aclnn调用的方式调用AddCustom算子, 简化了编译脚本
│ ├── AddCustom // AddCustom算子工程
│ ├── AddCustom.json // AddCustom算子的原型定义json文件
│ └── install.sh // 脚本,调用msOpGen生成简易自定义算子工程,并编译
Add算子实现了两个数据相加,返回相加结果的功能。对应的数学表达式为:
z = x + y
算子类型(OpType) | Add | |||
算子输入 | name | shape | data type | format |
x | 8 * 2048 | float | ND | |
y | 8 * 2048 | float | ND | |
算子输出 | z | 8 * 2048 | float | ND |
核函数名 | add_custom |
本样例支持如下产品型号:
其中,算子工程目录AddCustom包含算子的实现文件,如下所示:
├── AddCustom // Add自定义算子工程
│ ├── op_host // host侧实现文件
│ └── op_kernel // kernel侧实现文件
CANN软件包中提供了工程创建工具msopgen,AddCustom算子工程可通过AddCustom.json自动创建,简易自定义算子工程具体请参考Ascend C算子开发>附录>简易自定义算子工程 章节。
创建完简易自定义算子工程后,开发者重点需要完成算子工程目录CustomOp下host和kernel的功能开发。为简化样例运行流程,本样例已在AddCustom目录准备好了必要的算子实现,install.sh脚本会自动将实现复制到CustomOp对应目录下,再编译算子。
针对简易自定义算子工程,编译运行包含如下步骤:
详细操作如下所示。
编译运行此样例前,请参考准备:获取样例代码完成源码包获取。
切换到msOpGen脚本install.sh所在目录
# 若开发者以git命令行方式clone了master分支代码,并切换目录
cd ${git_clone_path}/samples/operator/ascendc/0_introduction/2_add_frameworklaunchlite
调用脚本,生成简易自定义算子工程,复制host和kernel实现并编译算子
export ASCEND_INSTALL_PATH=/usr/local/Ascend/ascend-toolkit/latest
export ASCEND_INSTALL_PATH=$HOME/Ascend/ascend-toolkit/latest
export ASCEND_INSTALL_PATH=${install_path}/ascend-toolkit/latest
bash install.sh -v [SOC_VERSION]
bash install.sh -v [SOC_VERSION] -i [ASCEND_INSTALL_PATH]
参数说明:
脚本运行成功后,会在当前目录下创建CustomOp目录,编译完成后,会在CustomOp/build_out中,生成自定义算子安装包custom_opp_<target os>_<target architecture>.run,例如“custom_opp_ubuntu_x86_64.run”。
备注:如果要使用dump调试功能,需要移除op_host内的Atlas 训练系列产品、Atlas 200/500 A2 推理产品的配置项。
时间 | 更新事项 |
---|---|
2024/10/21 | 初始版本 |
2024/11/11 | 样例目录调整 |
2024/11/18 | README.md更新 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。