news 2026/8/31 10:01:36

CANN ops-math算子库360+算子完全目录:conversion、math、random三大类算子怎么选?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN ops-math算子库360+算子完全目录:conversion、math、random三大类算子怎么选?

CANN ops-math算子库360+算子完全目录:conversion、math、random三大类算子怎么选?

【免费下载链接】ops-math本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-math

ops-math是 CANN(Compute Architecture for Neural Networks)提供的数学类基础计算算子库,实现了360+ 个算子,覆盖 conversion(张量形态变换)、math(数学运算)、random(随机数生成)三大类场景,帮助模型在 NPU 上完成加速计算。本文带你快速摸清这个算子库的"家底",并给出实用的选型指南。

📦 项目全景:一个目录就是一个算子

ops-math 的目录组织非常直白:每一级目录对应一类算子,每一个子目录对应一个具体算子。三大主目录如下:

算子大类目录算子目录数解决的问题
张量形态变换conversion/98改变张量的"形状和布局",不改变数值本身
数学运算math/237对张量做逐元素或归约类的数学计算
随机数生成random/28生成各类分布的随机数、实现 Dropout 等

另外还有一个 experimental/ 目录,用于存放用户自定义/实验性算子,想贡献自定义算子的开发者可以关注 CONTRIBUTING.md。

每个算子目录内部结构统一(如 conversion/reshape/、math/add/),都包含 README 功能说明、examples/调用示例、op_host/Host 侧实现、op_kernel/Device 侧 Kernel 实现和tests/测试用例。完整的目录层级说明见 docs/zh/install/dir_structure.md。

🔀 conversion 类:只做"变形",不动数值

conversion 类算子负责张量的形状、顺序、布局变换,是网络数据流转的基础。典型的有:

  • 形状类:reshape、squeezev2、unsqueezev3、flatten
  • 拼接切分类:concat、split、slice、strided_slice
  • 填充补边类:pad_v3(支持 REFLECT、SYMMETRIC 等多种填充模式)、circular_pad、mirror_pad
  • 转置类:transpose、transpose_v2
  • 填充常量类:zeros_like、fill、mem_set

💡选型信号:当你的需求是"改形状、拼起来、切开、补边、转置",去 conversion 找。

➕ math 类:算子库的绝对主力(237 个目录)

math 类是数量最大的分类,覆盖神经网络中最常用的数学计算,可以进一步细分为几个子族:

  • 逐元素运算:abs、add、mul、div、exp、log、pow、tanh
  • 比较与布尔:greater、equal、is_nan、sign
  • 归约类:reduce_sum、reduce_max、reduce_mean、cumsum
  • 排序与统计:sort、top_k_v2、arg_max_v2、bincount
  • 位运算:bitwise_and、left_shift
  • 数值检查:is_finite、is_inf、non_finite_check
  • 梯度配套:sqrt_grad、rsqrt_grad、tanh_grad 等反向算子

💡选型信号:凡是"对每个元素算个函数""按维度求和/求最大""排序取 TopK",都是 math 的领地。

🎲 random 类:训练必备的随机数引擎

random 类虽然只有 28 个目录,却直接关系模型训练的复现性:

  • Dropout 家族:drop_out_v3、drop_out_v3_grad、drop_out_do_mask_v3
  • 无状态随机数(相同 seed+offset 生成相同序列,便于复现):stateless_normal、stateless_uniform、stateless_randperm
  • 基础分布:random_standard_normal_v2、truncated_normal_v2、sim_thread_exponential

💡选型信号:需要"可复现的随机数"时,优先选stateless_前缀的算子;做训练则关注 Dropout 家族。

🧭 三步找到你要的算子

第 1 步:看全量清单。项目提供了带硬件执行单元、aclnn/图模式调用支持情况的完整算子表格 docs/zh/op_list.md,这是最权威的"算子目录索引"。

第 2 步:查 aclnn 接口。如果要用 C API 调用算子,接口统一以aclnn为前缀,全量接口列表见 docs/zh/op_api_list.md。

第 3 步:打开算子 README。每个算子目录下的README.md(如 math/add/README.md)都包含产品支持情况、功能说明、计算公式、参数表,选型前先看这张表即可确认硬件兼容性。

⚙️ 选型避坑:3 条实用经验

1️⃣ V 版本演进,认准最高版本。同一功能可能存在pad/pad_v2/pad_v3squeeze/squeezev2/squeezev3等多个版本。按 docs/zh/op_list.md 的说明:高版本算子已兼容低版本的全部能力,直接选最高版本即可

2️⃣ 关注执行硬件单元。大部分算子运行在 AI Core,少部分(如 identity、invert_permutation)运行在 AI CPU。Atlas A2 等 NPU 的硬件架构可参考下图理解 AI Core 与 AI CPU 的分工:

3️⃣ 无硬件也能仿真调试。Ascend 950PR/950DT 算子可通过 CANN Simulator 仿真工具开发调试,仿真流水线如下图所示,没有对应硬件也能先把算子跑通:

🚀 新手快速上手路径

  1. 环境部署:先完成 NPU 驱动与 CANN 包安装,步骤见 docs/zh/install/quick_install.md(支持 Docker 环境)

  2. 源码获取:源码与 CANN 版本配套发布,按配套标签拉取即可:

    git clone -b 9.0.0 https://gitcode.com/cann/ops-math.git
  3. 跑通示例:examples/ 下提供端到端算子开发/调用示例,如 examples/add_example/(AI Core)、examples/add_example_aicpu/(AI CPU)

  4. 学习教程:从零开始请读 docs/QUICKSTART.md,进阶的编译、调用、开发、调优内容在 docs/README.md

✅ 总结

  • conversion(98):张量变形工具箱 —— 改形状、拼接、切分、填充
  • math(237):数学计算主力军 —— 逐元素、归约、排序、比较
  • random(28):训练随机引擎 —— Dropout 与可复现随机数

选型口诀:变形找 conversion,算数找 math,随机找 random;多版本选最高,兼容性看 README,全量清单查 op_list.md。配合本文的目录导航,相信你可以在这 360+ 个算子中快速定位到需要的那一个。🎯

【免费下载链接】ops-math本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-math

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

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

三极管放大原理与偏置供电:工作点设置与共射电路分析

你是不是也想过这个问题:三极管明明叫“放大”管,可一个小信号进去,出来的信号为什么能变大?能量是从哪儿来的?为什么不能只把麦克风或信号源直接接到三极管上,还要专门再接一个直流电源?还有&a…

作者头像 李华
网站建设 2026/8/31 9:50:19

思科软件类B卷笔试全解析:考点、答题策略与避坑指南

思科发笔试邀请的时候,我第一反应是“终于等到你”,第二反应是“B卷到底是什么神仙难度”。等到真上了考场才发现,思科软件类的笔试题,和互联网大厂那一套完全是两种路数。它不跟你扯花里胡哨的前端框架,也不考你“如何…

作者头像 李华
网站建设 2026/8/31 9:48:05

HyperMesh到Abaqus完整工作流:网格质量、单位制与高频错误排查

很多人在学习有限元分析时,都会经历这样一个“卡脖子”的阶段:软件装好了,教程也看了一大半,可真到自己动手建模时,第一步就出问题。要么是 HyperMesh 里画完的 3D 网格,在质量检查面板里一片飘红&#xff…

作者头像 李华
网站建设 2026/8/31 9:46:20

实验室预约管理小程序前后端实战:Spring Boot+Vue3+uni-app完整开发

简介:这是一套面向高校实验室管理人员与信息化建设者的微信小程序完整解决方案,聚焦解决传统实验室设备预约混乱、微信群登记低效、审批流程不透明等管理痛点。资源基于微信云开发实现,涵盖实验室动态发布、规章制度展示、基础/专业实验室分级…

作者头像 李华