news 2026/5/9 14:39:34

CANN/asc-tools msopgen算子模板样例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/asc-tools msopgen算子模板样例

【免费下载链接】asc-toolsAscend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。项目地址: https://gitcode.com/cann/asc-tools

msopgen使用新自定义算子工程模板样例

概述

本样例介绍msopgen工具按照新算子工程模板生成新自定义算子工程。以AddCustom算子为例,演示如何使用msopgen工具生成算子工程模板、构建算子包、安装算子以及验证算子精度。

msopgen工具简介

msopgen是昇腾AI自定义算子开发工具,用于生成自定义算子工程模板,帮助开发者快速搭建算子开发环境。通过提供算子原型定义文件,msopgen可以自动生成完整的算子工程框架,包括CMake构建系统、框架适配层等。

支持的产品

  • Ascend 950PR/Ascend 950DT
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品

算子介绍

AddCustom算子实现两个张量的逐元素相加操作:z = x + y

  • 输入:x(fp16)、y(fp16)
  • 输出:z(fp16)
  • 数据格式:ND(N-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.txt

aclnn_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

编译执行步骤

在本样例根目录下执行如下步骤,运行该样例。

  1. 生成自定义算子工程

    msopgen gen -i ./op_dev/add_custom.json -f <framework> -c ai_core-<soc_version> -lan cpp -out ./custom_op
    • soc_version:昇腾AI处理器型号,如果无法确定具体的soc_version,则在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询,在查询到的"Name"前增加Ascend信息,例如"Name"对应取值为xxxyy,实际配置的soc_version值为Ascendxxxyy。
    • framework: 框架类型。默认为TensorFlow框架,默认值:tf或tensorflow。 其他可选值可参考msopgen工具用户指南
    • 若用户多次运行msopgen命令生成算子工程,请先删除已生成的custom_op目录。
  2. 复制源码到生成目录

    cp -rf ./op_dev/op_kernel custom_op cp -rf ./op_dev/op_host custom_op
  3. 构建自定义算子包

    cd custom_op bash build.sh
  4. 安装自定义算子包

    cd build_out ./custom_opp_<target_os>_<target_architecture>.run
  5. 编译并运行验证程序

    cd ../../aclnn_invocation mkdir -p build cd build cmake .. && make -j ./execute_add_op
  6. 执行结果如下,说明执行成功

    test pass

【免费下载链接】asc-toolsAscend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。项目地址: https://gitcode.com/cann/asc-tools

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 14:37:45

工程教育AI能力框架:角色化教学破解AI融合难题

1. 项目概述&#xff1a;为什么工程教育需要一套“角色化”的AI能力框架&#xff1f;如果你是一位机械、电气或土木工程专业的教授&#xff0c;面对“在你的专业课里融入人工智能内容”这个要求&#xff0c;第一反应是什么&#xff1f;是觉得自己的AI知识储备不够&#xff0c;无…

作者头像 李华
网站建设 2026/5/9 14:36:37

CANN/pyasc稀疏矩阵乘加API

asc.language.basic.mmad_with_sparse 【免费下载链接】pyasc 本项目为Python用户提供算子编程接口&#xff0c;支持在昇腾AI处理器上加速计算&#xff0c;接口与Ascend C一一对应并遵守Python原生语法。 项目地址: https://gitcode.com/cann/pyasc asc.language.basic.…

作者头像 李华
网站建设 2026/5/9 14:34:44

DoWhy因果推断库实战:从理论到业务评估的完整指南

1. 项目概述&#xff1a;为什么我们需要一个专门的因果推断库&#xff1f;在数据科学和机器学习领域&#xff0c;预测模型已经相当成熟了。我们能用XGBoost精准预测用户流失&#xff0c;用神经网络识别图像&#xff0c;但当我们被问到“如果我们把产品价格降低10%&#xff0c;销…

作者头像 李华
网站建设 2026/5/9 14:33:42

PyTorch、TensorFlow与Keras工程选型实操指南

1. 这不是“选哪个更好”的站队指南&#xff0c;而是三年踩坑后我画的三张实操地图你点开这个标题&#xff0c;大概率正站在一个真实而具体的十字路口&#xff1a;手头有个图像分类项目要启动&#xff0c;老板说“尽快出效果”&#xff0c;数据集刚清洗完还带着热气&#xff0c…

作者头像 李华
网站建设 2026/5/9 14:29:30

谷歌智能眼镜2026年将问世,Gemini驱动,多品牌合作亮点多!

谷歌智能眼镜即将登场去年12月&#xff0c;有人试用了尚在开发阶段的多款Google Glasses。很快&#xff0c;最终版本就能买到。具体推出时间和售价&#xff0c;再过几天或许会有更多消息。尽管Meta是致力于以眼镜形式抢占人们面部设备市场的最大科技公司&#xff0c;但并非唯一…

作者头像 李华
网站建设 2026/5/9 14:28:36

CANN/pyasc取小数计算函数

asc.language.adv.frac 【免费下载链接】pyasc 本项目为Python用户提供算子编程接口&#xff0c;支持在昇腾AI处理器上加速计算&#xff0c;接口与Ascend C一一对应并遵守Python原生语法。 项目地址: https://gitcode.com/cann/pyasc asc.language.adv.frac(dst: LocalT…

作者头像 李华