CANN ops-math算子库360+算子完全目录:conversion、math、random三大类算子怎么选?
CANN ops-math算子库360算子完全目录conversion、math、random三大类算子怎么选【免费下载链接】ops-math本项目是CANN提供的数学类基础计算算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-mathops-math是 CANNCompute 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无状态随机数相同 seedoffset 生成相同序列便于复现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_v3、squeeze/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 仿真工具开发调试仿真流水线如下图所示没有对应硬件也能先把算子跑通 新手快速上手路径环境部署先完成 NPU 驱动与 CANN 包安装步骤见 docs/zh/install/quick_install.md支持 Docker 环境源码获取源码与 CANN 版本配套发布按配套标签拉取即可git clone -b 9.0.0 https://gitcode.com/cann/ops-math.git跑通示例examples/ 下提供端到端算子开发/调用示例如 examples/add_example/AI Core、examples/add_example_aicpu/AI CPU学习教程从零开始请读 docs/QUICKSTART.md进阶的编译、调用、开发、调优内容在 docs/README.md✅ 总结conversion98张量变形工具箱 —— 改形状、拼接、切分、填充math237数学计算主力军 —— 逐元素、归约、排序、比较random28训练随机引擎 —— Dropout 与可复现随机数选型口诀变形找 conversion算数找 math随机找 random多版本选最高兼容性看 README全量清单查 op_list.md。配合本文的目录导航相信你可以在这 360 个算子中快速定位到需要的那一个。【免费下载链接】ops-math本项目是CANN提供的数学类基础计算算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-math创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻