【免费下载链接】asc-toolsAscend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。项目地址: https://gitcode.com/cann/asc-toolsmsopgen使用新自定义算子工程模板样例概述本样例介绍msopgen工具按照新算子工程模板生成新自定义算子工程。以AddCustom算子为例演示如何使用msopgen工具生成算子工程模板、构建算子包、安装算子以及验证算子精度。msopgen工具简介msopgen是昇腾AI自定义算子开发工具用于生成自定义算子工程模板帮助开发者快速搭建算子开发环境。通过提供算子原型定义文件msopgen可以自动生成完整的算子工程框架包括CMake构建系统、框架适配层等。支持的产品Ascend 950PR/Ascend 950DTAtlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品算子介绍AddCustom算子实现两个张量的逐元素相加操作z x y输入xfp16、yfp16输出zfp16数据格式NDN-dimensional支持的数据类型float16目录结构介绍msopgen工具生成前目录结构├── aclnn_invocation // ACL NN API调用示例用于验证自定义算子 └── op_dev // 算子开发目录存放算子源码 ├── add_custom.json // 算子原型定义文件输入输出描述 ├── op_host // Host端代码目录 │ └── add_custom.cpp // Tiling实现和算子定义注册 └── op_kernel // Kernel端代码目录 ├── add_custom.cpp // 核函数实现 └── add_custom_tiling.h // Tiling数据结构定义msopgen工具生成后目录结构├── aclnn_invocation // ACL NN API调用示例保持不变 ├── op_dev // 算子开发目录存放算子源码 └── custom_op // msopgen生成的自定义算子工程目录 ├── build.sh // 构建脚本 ├── CMakeLists.txt // CMake配置 ├── CMakePresets.json // CMake预设配置 ├── framework // 框架适配层 │ ├── CMakeLists.txt │ └── tf_plugin // TensorFlow插件 │ ├── CMakeLists.txt │ └── tensorflow_add_custom_plugin.cc ├── op_host // Host端代码 │ ├── add_custom.cpp // 拷贝host侧算子实现文件用户可自行修改替换 │ └── CMakeLists.txt └── op_kernel // Kernel端代码 ├── add_custom.cpp // 拷贝kernel侧算子实现文件用户可自行修改替换 ├── add_custom_tiling.h // 拷贝Tiling数据结构定义用户可自行修改替换 └── CMakeLists.txtaclnn_invocation说明本样例中的aclnn_invocation目录提供了使用ACLNN API调用自定义算子的完整示例。该示例与 asc-devkit仓库 中的示例完全一致用于演示如何通过ACLNN API加载和执行自定义算子。更多ACLNN API调用示例和详细说明请参考ACLNN API调用示例编译运行环境准备在本样例根目录下执行如下步骤编译并执行样例。配置环境变量请根据当前环境上CANN开发套件包的安装方式选择对应配置环境变量的命令。默认路径root用户安装CANN软件包source /usr/local/Ascend/cann/set_env.sh默认路径非root用户安装CANN软件包source $HOME/Ascend/cann/set_env.sh指定路径install_path安装CANN软件包source ${install_path}/cann/set_env.sh编译执行步骤在本样例根目录下执行如下步骤运行该样例。生成自定义算子工程msopgen gen -i ./op_dev/add_custom.json -f framework -c ai_core-soc_version -lan cpp -out ./custom_opsoc_version昇腾AI处理器型号如果无法确定具体的soc_version则在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询在查询到的Name前增加Ascend信息例如Name对应取值为xxxyy实际配置的soc_version值为Ascendxxxyy。framework 框架类型。默认为TensorFlow框架默认值tf或tensorflow。 其他可选值可参考msopgen工具用户指南若用户多次运行msopgen命令生成算子工程请先删除已生成的custom_op目录。复制源码到生成目录cp -rf ./op_dev/op_kernel custom_op cp -rf ./op_dev/op_host custom_op构建自定义算子包cd custom_op bash build.sh安装自定义算子包cd build_out ./custom_opp_target_os_target_architecture.run编译并运行验证程序cd ../../aclnn_invocation mkdir -p build cd build cmake .. make -j ./execute_add_op执行结果如下说明执行成功test pass【免费下载链接】asc-toolsAscend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。项目地址: https://gitcode.com/cann/asc-tools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考