本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修改编译任务 Co-authored-by: chenyajie<chenyajie6@huawei.com> # message auto-generated for no-merge-commit merge: !7462 merge master into master 修改编译任务 Created-by: yajie_caroline Commit-by: chenyajie Merged-by: cann-robot Description: ## 描述 修改代码话编译任务始终跳过不跑的bug ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4069 ## 测试 在测试环境中验证修改过后可以正常识别条件跑编译 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7462 | 6 天前 | |
test(assets): 补充foreach/scatter类等算子的golden标杆 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !7659 merge feat-ttk-golden-assets into master test(assets): 补充foreach/scatter类等算子的golden标杆 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 test(assets): 补充foreach/scatter类等算子的golden标杆 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7659 | 1 天前 | |
QBMM MIX模板代码规范整改 Co-authored-by: ZhangWei1176<zhangwei1176@huawei.com> # message auto-generated for no-merge-commit merge: !7303 merge tensor-mix into master QBMM MIX模板代码规范整改 Created-by: ZhangWei1176 Commit-by: ZhangWei1176 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 此 PR 主要对 qbmm_mix_without_batch_tensor_api_blaze.h 中的模板参数和模板类名进行了整改:将kernel层的模板名从 QbmmMixWithoutBatch 替换改为 GemmUniversal,并相应调整了 MatmulWithScaleMix 的模板参数以及初始化参数结构。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue #3993 https://gitcode.com/cann/ops-nn/issues/3993 上游依赖ops-tensor仓:https://gitcode.com/cann/ops-tensor/pull/132 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟pass 泛化用例pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7303 | 2 天前 | |
Support shift_value Co-authored-by: ykxxlzhong<luzhihong3@hisilicon.com> # message auto-generated for no-merge-commit merge: !7439 merge shift into master Support shift_value Created-by: ykxxlzhong Commit-by: ykxxlzhong Merged-by: cann-robot Description: ## 描述 NPU_ARCH 5102 新增Matmul/Conv算子支持onnx图自定义MMAD定点化计算时使用的fixedShiftValue值。 onnv_plugin里支持对onnx图上fixedShiftValue值的读取和设置; 融合pass阶段将fixedShiftValue值记录到算子的Attr上; tiling阶段将fixedShiftValue记录到tilingData中,由kernel侧进行读取。 非量化matmul tilingData的fixedShiftValue参数复用isHf32,并改名为mmadParam。当5102架构时传入fixedShiftValue,其余架构哦传入isHf32。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4151](https://gitcode.com/cann/ops-nn/issues/4151) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 构造matmul单算子图自验证 线上冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7439 | 1 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 13 天前 | |
Support shift_value Co-authored-by: ykxxlzhong<luzhihong3@hisilicon.com> # message auto-generated for no-merge-commit merge: !7439 merge shift into master Support shift_value Created-by: ykxxlzhong Commit-by: ykxxlzhong Merged-by: cann-robot Description: ## 描述 NPU_ARCH 5102 新增Matmul/Conv算子支持onnx图自定义MMAD定点化计算时使用的fixedShiftValue值。 onnv_plugin里支持对onnx图上fixedShiftValue值的读取和设置; 融合pass阶段将fixedShiftValue值记录到算子的Attr上; tiling阶段将fixedShiftValue记录到tilingData中,由kernel侧进行读取。 非量化matmul tilingData的fixedShiftValue参数复用isHf32,并改名为mmadParam。当5102架构时传入fixedShiftValue,其余架构哦传入isHf32。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4151](https://gitcode.com/cann/ops-nn/issues/4151) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 构造matmul单算子图自验证 线上冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7439 | 1 天前 | |
[CANNBot]新增 SmoothL1LossGrad 算子 Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !7609 merge cherry-pick-mr-7549-1784254711505-auto into master [CANNBot]新增 SmoothL1LossGrad 算子 Created-by: zhaozhongyao Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 SmoothL1LossGrad 算子 ### SmoothL1LossGrad SmoothL1Loss 的反向梯度算子,计算公式 gradient = clamp((predict - label) / sigma, -1, 1) * dout。对差值先钳位到 [-sigma, sigma] 再归一化到 [-1, 1],最后乘以上游梯度 dout。sigma 等价 PyTorch smooth_l1_loss 的 beta 参数,控制 L1 与 L2 之间的平滑过渡阈值。reduction='none'(逐元素,无归约),mean/sum 归约由前向 SmoothL1Loss 承担。 - 输入:predict、label、dout(3 输入,同 shape/dtype) - 输出:gradient(shape/dtype 与 predict 一致,无广播) - 属性:sigma(Float,默认 1.0,取值需大于 0,等价 PyTorch beta) - 数据类型:FLOAT16、FLOAT、BFLOAT16 计算公式: $$ gradient = clamp\left(\frac{predict - label}{sigma},\ -1,\ 1\right) \times dout $$ 5 步指令链实现(先钳位后归一化,规避除零): $$ \begin{aligned} diff &= predict - label \\ c &= clamp(diff,\ -sigma,\ sigma) \\ gradient &= c \times \frac{1}{sigma} \times dout \end{aligned} $$ 原型对齐 CANNDEV SmoothL1LossGrad(nn_norm_ops.h:328-334):输入输出结构、sigma 属性、dtype 矩阵、reduction='none' 语义完全一致。 ### 关键设计 - **RegBase VF 5 步链**:Sub → Mins(σ) → Maxs(-σ) → Muls(1/σ) → Mul(dout),fp16/fp32 原 dtype 直算(precision_reduce=false,对齐 CANNDEV ini),无升精度 - **BF16 cast-compute**:DAV_3510 bisheng backend 不支持 bf16 标量 vmins/vmaxs/vmuls,升 fp32 直算(Cast bf16→fp32 → 5 步链 float 标量 → Cast fp32→bf16 CAST_RINT),fp32 中间量驻寄存器不落 UB - **3 TilingKey dtype 分发**:单一 dtype 维度,ASCENDC_TPL_ARGS_DECL 模板编程,3 键与 dtype 一一对应 - **workspace=0**:纯逐元素运算,无中间 Buffer - **空 Tensor 守卫**:blockNum=0 时 kernel 入口 return,不发起 GM 读写 - **核守卫**:GetBlockIdx >= blockNum 时直接 return,冗余核不进入 Init/Process ACLNNTYPE=aclnn_exclude,不上库 aclnn 接口,仅交付 GE IR 图模式通路(对齐 loss 仓 mse_loss_grad 等无 aclnn 先例)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4114 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> <!--描述进行了哪些测试来验证你的改动。--> NPU 上板测试(Ascend950DT_9582 / arch35 / CANN 9.0.0) | 测试项 | 结果 | 详情 | |--------|------|------| | Kernel Binary | 3 个 .o ✅ | fp16/bf16/fp32 各一 | | TTK kernel(白盒) | 900/900 PASS (100%) ✅ | 3 TilingKey 全覆盖,3 dtype × 多 shape × 多 boundary | | GEIR graph | 7/7 PASS ✅ | err=0 | | E2E Torch 通路 | 3/3 PASS ✅ | fp32×2 + fp16×1(经 torch_npu F.smooth_l1_loss autograd,走 CANNDEV V2 aclnnSmoothL1LossBackward) | | 精度标准 | 双千双万 ✅ | fp16/bf16=1e-3、fp32=1e-4 | | 三方精度(双标杆 Ratio L1) | 900/900 PASS ✅ | NPU vs GPU(A100),MARE≤5.0/MERE≤1.5/RMSE≤1.5 全达标 | | 三方性能(NPU vs GPU) | 800/800 NPU 更快 ✅ | 几何平均加速比 0.213(NPU 平均 1.96us vs GPU 10.22us),100 个空 tensor 用例 GPU 无数据 | | 性能(msprof) | MTE2 主导 ✅ | 带宽 2.7-3.8 TB/s(57-80%),icache <2.7%,64 核全并行 | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 新增 loss/smooth_l1_loss_grad/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7609 | 1 天前 | |
fix TorchNPU Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !7243 merge master into master fix TorchNPU Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 ① torch_npu名称合一TorchNPU ②《acl API》手册更名修改 ③ link修改commerical为community ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3951 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7243 | 6 天前 | |
feat: 实现 MseLoss 算子 Co-authored-by: ji096929<2455742327@qq.com> # message auto-generated for no-merge-commit merge: !7383 merge MseLoss into master 【社区任务】实现 MseLoss 算子 Created-by: ji096929 Commit-by: ji096929 Merged-by: cann-robot Description: # MseLoss ## 产品支持情况 | 产品 | 是否支持 | | ---- | :----: | | <term>Atlas A3 训练系列产品/Atlas A3 推理系列产品</term> | √ | | <term>Atlas A2 训练系列产品/Atlas A2 推理系列产品</term> | √ | ## 功能说明 - 算子功能:计算输入 predict 和目标 label 逐元素平方误差,并根据 reduction 输出不缩减、求和或求均值结果。 - 计算公式: $$ loss_i = (predict_i - label_i)^2 $$ $$ y = \begin{cases} loss_i, & reduction = none \\ \sum_{i=0}^{N-1} loss_i, & reduction = sum \\ \frac{1}{N}\sum_{i=0}^{N-1} loss_i, & reduction = mean \end{cases} $$ ## 参数说明 <table style="undefined;table-layout: fixed; width: 980px"><colgroup> <col style="width: 100px"> <col style="width: 150px"> <col style="width: 280px"> <col style="width: 330px"> <col style="width: 120px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>predict</td> <td>输入</td> <td>预测值张量,公式中的 predict。</td> <td>FLOAT16、FLOAT、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>label</td> <td>输入</td> <td>目标值张量,公式中的 label。</td> <td>FLOAT16、FLOAT、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>reduction</td> <td>属性</td> <td>损失缩减方式,可选值为 none、sum、mean,默认值为 mean。</td> <td>String</td> <td>-</td> </tr> <tr> <td>y</td> <td>输出</td> <td>输出 loss。reduction 为 none 时 shape 与输入一致;sum 或 mean 时为单元素输出。</td> <td>FLOAT16、FLOAT、BFLOAT16</td> <td>ND</td> </tr> </tbody></table> ## 约束说明 - predict、label、y 的数据类型必须一致。 - predict 与 label 的 shape 必须一致。 - reduction 仅支持 none、sum、mean。 - 当前实现不支持输入广播。 - 当前实现仅支持 ND 数据格式。 ## 调用说明 | 调用方式 | 调用样例 | 说明 | | ---- | ---- | ---- | | aclnn调用 | [test_aclnn_mse_loss.cpp](./examples/test_aclnn_mse_loss.cpp) | 通过 aclnnMseLossGetWorkspaceSize 和 aclnnMseLoss 两段式接口调用 MseLoss 算子。 | ## 参考资源 - [MseLoss 算子设计文档](./docs/mse_loss_design.md) ## 贡献说明 | 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 | | ---- | ---- | ---- | ---- | ---- | | ji096929 | 个人开发者 | MseLoss | 2026/07/09 | MseLoss算子适配开源仓 | See merge request: cann/ops-nn!7383 | 3 天前 | |
test(assets): 补充foreach/scatter类等算子的golden标杆 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !7659 merge feat-ttk-golden-assets into master test(assets): 补充foreach/scatter类等算子的golden标杆 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 test(assets): 补充foreach/scatter类等算子的golden标杆 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7659 | 1 天前 | |
fix schedule mode & embeddingHash Doc & groupNormSilu codecheck Co-authored-by: xieshengwei1024<xieshengwei3@huawei.com> # message auto-generated for no-merge-commit merge: !7076 merge master into master fix schedule mode & embeddingHash Doc & groupNormSilu codecheck Created-by: xieshengwei1024 Commit-by: xieshengwei1024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.系列SyncAll算子添加scheduleMode 2.embeddingHash算子文档错误修改 3.groupNormSilu修改超大圈复杂度问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联issue3858 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已进行本地编译测试、ut测试及上板aclnn测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了embeddingHash系列算子的readme文档 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7076 | 12 天前 | |
test(assets): 补充foreach/scatter类等算子的golden标杆 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !7659 merge feat-ttk-golden-assets into master test(assets): 补充foreach/scatter类等算子的golden标杆 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 test(assets): 补充foreach/scatter类等算子的golden标杆 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7659 | 1 天前 | |
[CANNBot]新增 SmoothL1LossGrad 算子 Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !7609 merge cherry-pick-mr-7549-1784254711505-auto into master [CANNBot]新增 SmoothL1LossGrad 算子 Created-by: zhaozhongyao Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 SmoothL1LossGrad 算子 ### SmoothL1LossGrad SmoothL1Loss 的反向梯度算子,计算公式 gradient = clamp((predict - label) / sigma, -1, 1) * dout。对差值先钳位到 [-sigma, sigma] 再归一化到 [-1, 1],最后乘以上游梯度 dout。sigma 等价 PyTorch smooth_l1_loss 的 beta 参数,控制 L1 与 L2 之间的平滑过渡阈值。reduction='none'(逐元素,无归约),mean/sum 归约由前向 SmoothL1Loss 承担。 - 输入:predict、label、dout(3 输入,同 shape/dtype) - 输出:gradient(shape/dtype 与 predict 一致,无广播) - 属性:sigma(Float,默认 1.0,取值需大于 0,等价 PyTorch beta) - 数据类型:FLOAT16、FLOAT、BFLOAT16 计算公式: $$ gradient = clamp\left(\frac{predict - label}{sigma},\ -1,\ 1\right) \times dout $$ 5 步指令链实现(先钳位后归一化,规避除零): $$ \begin{aligned} diff &= predict - label \\ c &= clamp(diff,\ -sigma,\ sigma) \\ gradient &= c \times \frac{1}{sigma} \times dout \end{aligned} $$ 原型对齐 CANNDEV SmoothL1LossGrad(nn_norm_ops.h:328-334):输入输出结构、sigma 属性、dtype 矩阵、reduction='none' 语义完全一致。 ### 关键设计 - **RegBase VF 5 步链**:Sub → Mins(σ) → Maxs(-σ) → Muls(1/σ) → Mul(dout),fp16/fp32 原 dtype 直算(precision_reduce=false,对齐 CANNDEV ini),无升精度 - **BF16 cast-compute**:DAV_3510 bisheng backend 不支持 bf16 标量 vmins/vmaxs/vmuls,升 fp32 直算(Cast bf16→fp32 → 5 步链 float 标量 → Cast fp32→bf16 CAST_RINT),fp32 中间量驻寄存器不落 UB - **3 TilingKey dtype 分发**:单一 dtype 维度,ASCENDC_TPL_ARGS_DECL 模板编程,3 键与 dtype 一一对应 - **workspace=0**:纯逐元素运算,无中间 Buffer - **空 Tensor 守卫**:blockNum=0 时 kernel 入口 return,不发起 GM 读写 - **核守卫**:GetBlockIdx >= blockNum 时直接 return,冗余核不进入 Init/Process ACLNNTYPE=aclnn_exclude,不上库 aclnn 接口,仅交付 GE IR 图模式通路(对齐 loss 仓 mse_loss_grad 等无 aclnn 先例)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4114 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> <!--描述进行了哪些测试来验证你的改动。--> NPU 上板测试(Ascend950DT_9582 / arch35 / CANN 9.0.0) | 测试项 | 结果 | 详情 | |--------|------|------| | Kernel Binary | 3 个 .o ✅ | fp16/bf16/fp32 各一 | | TTK kernel(白盒) | 900/900 PASS (100%) ✅ | 3 TilingKey 全覆盖,3 dtype × 多 shape × 多 boundary | | GEIR graph | 7/7 PASS ✅ | err=0 | | E2E Torch 通路 | 3/3 PASS ✅ | fp32×2 + fp16×1(经 torch_npu F.smooth_l1_loss autograd,走 CANNDEV V2 aclnnSmoothL1LossBackward) | | 精度标准 | 双千双万 ✅ | fp16/bf16=1e-3、fp32=1e-4 | | 三方精度(双标杆 Ratio L1) | 900/900 PASS ✅ | NPU vs GPU(A100),MARE≤5.0/MERE≤1.5/RMSE≤1.5 全达标 | | 三方性能(NPU vs GPU) | 800/800 NPU 更快 ✅ | 几何平均加速比 0.213(NPU 平均 1.96us vs GPU 10.22us),100 个空 tensor 用例 GPU 无数据 | | 性能(msprof) | MTE2 主导 ✅ | 带宽 2.7-3.8 TB/s(57-80%),icache <2.7%,64 核全并行 | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 新增 loss/smooth_l1_loss_grad/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7609 | 1 天前 | |
Support shift_value Co-authored-by: ykxxlzhong<luzhihong3@hisilicon.com> # message auto-generated for no-merge-commit merge: !7439 merge shift into master Support shift_value Created-by: ykxxlzhong Commit-by: ykxxlzhong Merged-by: cann-robot Description: ## 描述 NPU_ARCH 5102 新增Matmul/Conv算子支持onnx图自定义MMAD定点化计算时使用的fixedShiftValue值。 onnv_plugin里支持对onnx图上fixedShiftValue值的读取和设置; 融合pass阶段将fixedShiftValue值记录到算子的Attr上; tiling阶段将fixedShiftValue记录到tilingData中,由kernel侧进行读取。 非量化matmul tilingData的fixedShiftValue参数复用isHf32,并改名为mmadParam。当5102架构时传入fixedShiftValue,其余架构哦传入isHf32。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4151](https://gitcode.com/cann/ops-nn/issues/4151) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 构造matmul单算子图自验证 线上冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7439 | 1 天前 | |
test(assets): 补充foreach/scatter类等算子的golden标杆 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !7659 merge feat-ttk-golden-assets into master test(assets): 补充foreach/scatter类等算子的golden标杆 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 test(assets): 补充foreach/scatter类等算子的golden标杆 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7659 | 1 天前 | |
sparse_apply_adagrad_v2 change to multi core Co-authored-by: rsj007<renshuojian@huawei.com> # message auto-generated for no-merge-commit merge: !7546 merge master into master sparse_apply_adagrad_v2 change to multi core Created-by: rsj007 Commit-by: rsj007 Merged-by: cann-robot Description: ## 描述 sparse_apply_adagrad_v2需要将分核改为多核策略 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4156 ## 测试 人工验证、冒烟 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7546 | 1 天前 | |
fix: MaxPool系列融合pass增加kCompatibleInherited版本兼容(D1) Co-authored-by: Apricityh<wangxu359@huawei.com> # message auto-generated for no-merge-commit merge: !6096 merge fix/fusion-pass-d1-compat into master fix: MaxPool系列融合pass增加kCompatibleInherited版本兼容(D1) Created-by: Apricityh Commit-by: Apricityh Merged-by: cann-robot Description: ## 描述 融合Pass,因兼容性问题,导致在8.5.2的低版本编译过不了,且9.1.0等高版本编译出来的,在低版本tookit包运行,也会出现兼容性问题.修复maxpool系列融合规则兼容性问题。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4052 ## 测试 本地测试图正常,精度正常,冒烟已过。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6096 | 5 天前 | |
dynamix_mx_quant fix bug Co-authored-by: ji-jun1<jijun1@huawei.com> # message auto-generated for no-merge-commit merge: !7657 merge master into master dynamix_mx_quant fix bug Created-by: ji-jun1 Commit-by: ji-jun1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue [#4155](https://gitcode.com/cann/ops-nn/issues/4155) ## 测试 已通过ST,网络测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7657 | 2 天前 | |
feat: 新增DeformableConv2d/LSTM/LSTMCell三个ONNX算子插件 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !7581 merge master into master feat: 新增DeformableConv2d/LSTM/LSTMCell三个ONNX算子插件 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 新增 DeformableConv2d、LSTM、LSTMCell 三个 ONNX 算子的框架插件,用于支持 ONNX 模型到 Ascend GE IR 的算子映射。 ### 新增文件 | 文件 | 说明 | |------|------| | conv/deformable_conv2d/framework/CMakeLists.txt | 可变形卷积2d ONNX 插件构建配置 | | conv/deformable_conv2d/framework/npu_deformable_conv2d_onnx_plugin.cpp | ONNX DeformableConv2d 算子解析与注册 | | rnn/dynamic_rnn/framework/CMakeLists.txt | 动态 RNN ONNX 插件构建配置 | | rnn/dynamic_rnn/framework/npu_lstm_onnx_plugin.cpp | ONNX LSTM 算子解析与注册 | | rnn/dynamic_rnnv2/framework/CMakeLists.txt | 动态 RNNv2 ONNX 插件构建配置 | | rnn/dynamic_rnnv2/framework/npu_lstm_cell_onnx_plugin.cpp | ONNX LSTMCell 算子解析与注册 | ### 实现方式 每个插件通过 REGISTER_CUSTOM_OP 宏注册为 FrameworkType(ONNX) + ImplyType(TVM) 的定制算子,将 ONNX NodeProto 属性解析后映射到 Ascend GE 算子。 ## 测试 - ONNX 模型 DeformableConv2d / LSTM / LSTMCell 算子兼容性验证 ## 类型标签 - [x] 新特性 See merge request: cann/ops-nn!7581 | 2 天前 | |
merge_proto适配待宏定义保护的算子原型定义 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !7512 merge pr_6933 into master merge_proto适配待宏定义保护的算子原型定义 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 merge_proto适配带#ifndef/#define/#endif保护的算子原型定义 ## 关联的Issue [#4113](https://gitcode.com/cann/ops-nn/issues/4113) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7512 | 2 天前 | |
UniqueConsecutive算子修改ut包含头文件错误路径 Co-authored-by: wkx12138<weikaixuan@h-partners.com> # message auto-generated for no-merge-commit merge: !7118 merge ucut into master UniqueConsecutive算子修改ut包含头文件错误路径 Created-by: wkx12138 Commit-by: wkx12138 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改原因:UniqueConsecutive算子UT头文件路径错误导致报错 修改方法:使用正确的路径 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3899 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地编译执行ut成功 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7118 | 12 天前 | |
support single op torch dir Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !7315 merge torch into master support single op torch dir Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 将单算子实现迁移至算子目录/torch_ext中 ## 关联的Issue [#4115](https://gitcode.com/cann/ops-nn/issues/4115) ## 测试 本地执行安装,并执行单算子与图模式的通路 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7315 | 2 天前 | |
MSDAGrad支持950 Co-authored-by: wanshilin<wanshilin@h-partners.com> # message auto-generated for no-merge-commit merge: !7286 merge MSDAGrad into master MSDAGrad支持950 Created-by: wanshilin Commit-by: wanshilin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> multi_scale_deformable_attention_grad支持950芯片 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4127 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 自测试2100条,通过2100条。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7286 | 2 天前 | |
修改matmul 算子atoll 异常反馈判断 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !7083 merge master into master 修改matmul 算子atoll 异常反馈判断 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改matmul 算子atoll 异常反馈判断,异常时返回默认值 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3882 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7083 | 11 天前 | |
index kernel ut Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !5501 merge master into master index kernel ut Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Kernel UT 中存在大量分散的测试数据准备代码,使用 system() 调用执行 shell 命令: 重复样板代码多:至少 131 个文件包含 system() 调用 依赖 GNU/Linux 工具:cp、chmod、rm、get_current_dir_name(非跨平台) 错误定位困难:system() 返回码粗糙,无法区分路径错误、权限问题、Python缺失等 维护成本高:同一套逻辑散落在大量算子测试中 修改方案 统一测试数据生命周期管理:拷贝、清理、生成、比对 改善报错体验:使用项目标准日志宏 OP_LOGI/OP_LOGE,区分路径错误、脚本执行失败等 降低贡献门槛:开发者只需声明数据目录和参数 本次修改对index 目录下的部分算子 迁移过程中 代码格式做整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2337 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5501 | 1 个月前 | |
add knowledge to optimize conv perf. Co-authored-by: ray-shaw<shaorui4@huawei.com> # message auto-generated for no-merge-commit merge: !7305 merge master_610 into master add knowledge to optimize conv perf. Created-by: ray-shaw Commit-by: ray-shaw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 通过知识库让n方向不全载L0的用例走入小kernel,优化性能,实测性能从9.5us优化到6us。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#4017](https://gitcode.com/cann/ops-nn/issues/4017) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> RDV pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7305 | 9 天前 | |
fix doc tools Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !7147 merge master into master fix doc tools Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 修改master分支里面doctool扫描的问题 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3911 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [.] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7147 | 12 天前 | |
include tensor_api from cann Co-authored-by: liuyufan0725<liuyufan9@huawei.com> # message auto-generated for no-merge-commit merge: !7061 merge include_asc into master include tensor_api from cann Created-by: liuyufan0725 Commit-by: liuyufan0725 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 在使用最新的CANN包时,从环境中获取tensor_api源码进行编译 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#3880](https://gitcode.com/cann/ops-nn/issues/3880) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> nn包编包成功,算子功能pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7061 | 11 天前 | |
社区贡献 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !6366 merge master into master 社区贡献 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 更新完善社区贡献的流程,增加新增需求到sig例会评审的过程。 补充各类场景的贡献说明。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 更新完善社区贡献的流程,增加新增需求到sig例会评审的过程。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6366 | 26 天前 | |
init | 9 个月前 | |
index kernel ut Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !5501 merge master into master index kernel ut Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Kernel UT 中存在大量分散的测试数据准备代码,使用 system() 调用执行 shell 命令: 重复样板代码多:至少 131 个文件包含 system() 调用 依赖 GNU/Linux 工具:cp、chmod、rm、get_current_dir_name(非跨平台) 错误定位困难:system() 返回码粗糙,无法区分路径错误、权限问题、Python缺失等 维护成本高:同一套逻辑散落在大量算子测试中 修改方案 统一测试数据生命周期管理:拷贝、清理、生成、比对 改善报错体验:使用项目标准日志宏 OP_LOGI/OP_LOGE,区分路径错误、脚本执行失败等 降低贡献门槛:开发者只需声明数据目录和参数 本次修改对index 目录下的部分算子 迁移过程中 代码格式做整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2337 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5501 | 1 个月前 | |
fix TorchNPU Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !7243 merge master into master fix TorchNPU Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 ① torch_npu名称合一TorchNPU ②《acl API》手册更名修改 ③ link修改commerical为community ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3951 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7243 | 6 天前 | |
nn仓doc tools扫描内容修改 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !3414 merge master into master nn仓doc tools扫描内容修改 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改markdown语法和链接,1000个左右。 ## 关联的Issue 关联Issue [#1783](https://gitcode.com/cann/ops-nn/issues/1783) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新了README.md、gitcode、cmake、common、control、conv、docs、examples、experimental、hash、index、loss、matmul、optim、pooling等文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3414 | 3 个月前 | |
fix Third_Party_Open_Source_Software_List.yaml Co-authored-by: liuyufan0725<liuyufan9@huawei.com> # message auto-generated for no-merge-commit merge: !1879 merge fix_yaml into master fix Third_Party_Open_Source_Software_List.yaml Created-by: liuyufan0725 Commit-by: liuyufan0725 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新三方依赖清单Third_Party_Open_Source_Software_List.yaml 1、增加protobuf 2、将nlohmann/json修改为json ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#1042](https://gitcode.com/cann/ops-nn/issues/1042) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了Third_Party_Open_Source_Software_List.yaml ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1879 | 5 个月前 | |
【描 述】 eigen update to 5.0.0 Co-authored-by: j00427146<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !1152 merge master into master 【描 述】 eigen update to 5.0.0 Created-by: jialimin1 Commit-by: j00427146 Merged-by: cann-robot Description: ## 描述 现开源软件eigen 3.4.0 EOM,Eigen 从3.4.0版本升级到5.0.0,解决生命周期问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/975 https://gitcode.com/cann/ops-nn/issues/389 ## 测试   ## 文档更新 SECURITY.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Update Eigen to 5.0.0 See merge request: cann/ops-nn!1152 | 5 个月前 | |
fix ops-nn build for examples Co-authored-by: magicjason0007<wangdongxu20@huawei.com> # message auto-generated for no-merge-commit merge: !7402 merge master into master fix ops-nn build for examples Created-by: magicjason0007 Commit-by: magicjason0007 Merged-by: cann-robot Description: ## 描述 先查 arch35,为空则回退到 examples/ <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4035 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7402 | 3 天前 | |
add ExtendConvTranspoes classify rule Co-authored-by: YuanTianyi<yuantianyi1@huawei.com> # message auto-generated for no-merge-commit merge: !7624 merge add_clss into master add ExtendConvTranspoes classify rule Created-by: YuanTianyi Commit-by: YuanTianyi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> add ExtendConvTranspoes classify rule ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4144 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 自验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7624 | 2 天前 | |
批量修改md中冗余空格 Co-authored-by: wuyao51511<wuyao61@h-partners.com> # message auto-generated for no-merge-commit merge: !6027 merge master into master 批量修改md中冗余空格 Created-by: wuyao51511 Commit-by: wuyao51511 Merged-by: cann-robot Description: ## 描述 文档空格问题清理 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6027 | 1 个月前 | |
fix(docs,deps,ut): 完善全量编译说明、Debian GCC 安装与 UT 状态码兼容 Co-authored-by: root<yangyang306@hisilicon.com> # message auto-generated for no-merge-commit merge: !5110 merge master into master fix(docs,deps,ut): 完善全量编译说明、Debian GCC 安装与 UT 状态码兼容 Created-by: yangyang016 Commit-by: root Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 修复社区体验测试中反馈的三类问题:文档缺少全量编译指引、Debian 系发行版依赖安装失败、以及 UT 公共头文件中 ACLNN_SUCCESS 未定义导致 nn_op_host_ut 编译失败。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> - Fixes #2790 — 文档缺少全量编译指导与耗时说明 - Fixes #2793 — install_deps.sh 在 Debian 13 等系统硬编码 gcc-9 导致安装失败 - Fixes #2794 — ut_string_utils.h 使用未定义的 ACLNN_SUCCESS 导致 UT 编译失败 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - [x] bash -n install_deps.sh 语法检查通过 - [x] 在无 ACLNN_SUCCESS 宏的 mock 头文件下对 ut_string_utils.h 做语法检查通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - **docs/QUICKSTART.md**:明确快速入门默认采用**单算子编译**(--ops),并引导需要整库构建时查阅 docs/zh/install/compile.md。 - **docs/zh/install/compile.md**:在「ops-nn包」章节增加全量编译说明:耗时与机器配置、-j 并行度及联网依赖相关;建议日常开发优先单算子编译。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5110 | 1 个月前 | |
[Docs] modify profile of quick_install Co-authored-by: wangzitao_leo<wangzitao4@huawei.com> # message auto-generated for no-merge-commit merge: !4156 merge profile_0423 into master [Docs] modify profile of quick_install Created-by: wangzitao_leo Commit-by: wangzitao_leo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新资料中: 1. --help时新增打印--soc支持的硬件平台; 2. quick_install指导资料中对于第三方依赖的安装资料调整,使得条理更加清晰,资料更为易用。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue [#2274](https://gitcode.com/cann/ops-nn/issues/2274) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1. 根据资料安装第三方依赖 2. bash build.sh --help时打印--soc支持硬件平台列表 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 1. README.md 2. docs/zh/install/compile.md 3. docs/zh/install/quick_install.md 4. requirements.txt ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4156 | 2 个月前 | |
Remove the dependency asc-tool Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !5220 merge eng into master Remove the dependency asc-tool Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 Remove the dependency asc-tool ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 工程编译验证 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5220 | 1 个月前 |
ops-nn
🔥Latest News
- [2026/05] 优化kernel编译配置项,减少simplified_key和ascendc_config配置文件(!3330)。
- [2026/05] 引入ops-tensor,基于分层结构优化Cube类算子,减少偏移量计算和简化指令参数(!5036)。
- [2026/05] 发布生态算子的精度验收标准(!4572)。
- [2026/03] 开源算子支持下一代芯片:Ascend950PR(!450)。
- [2026/03] 新增<<<>>>的算子开发样例(!620)。
- [2026/03] 低bit类算子和融合算子支持更多数据类型:fp8/mxfp8/hifp8/mxfp4等,并支持pertensor/perchannel/pertoken/pergroup/perblock等不同量化和组合方式:全量化融合算子:quant_batch_matmul_v4,伪量化融合算子:weight_quant_batch_matmul_v2。
- [2026/03] 支持SIMD/SIMT新同构编程算子实现:[MapIndex](#660),[ScatterSub](#710)。
- [2026/01] 新增QuickStart,指导新手零基础入门算子项目部署(支持Docker环境)、算子开发和贡献流程。
- [2025/12] 开源算子支持Ascend 950PR/Ascend 950DT/KirinX90,可以通过CANN Simulator仿真工具开发调试;优化指南类文档,聚焦算子开发指南,明确最小交付件和关键示例代码,针对Ascend/samples仓算子提供迁移本项目的指导;新支持稀疏4:2量化matmul算子,针对稀疏矩阵开启硬件加速能力。
- [2025/11] 新支持算子index_fill、masked_scatter、scatter、tf_scatter_add、fused_cross_entropy_loss_with_max_sum。
- [2025/10] 新增experimental目录,完善贡献指南,支持开发者调试并贡献自定义算子。
- [2025/09] ops-nn项目首次上线,开源算子支持Atlas A2/A3系列产品。
🚀概述
ops-nn是CANN(Compute Architecture for Neural Networks)算子库中提供神经网络计算能力的高阶算子库,包括matmul类、activation类等算子,算子库架构图如下:

📌版本配套
本项目源码会跟随CANN软件版本发布,关于CANN软件版本与本项目标签的对应关系请参阅release仓库中的相应版本说明。 请注意,为确保您的源码定制开发顺利进行,请选择配套的CANN版本与Gitcode标签源码,使用master分支可能存在版本不匹配的风险。
🛠️环境准备
环境部署是体验本项目能力的前提,请先完成NPU驱动、CANN包安装等,确保环境正常。
⬇️源码下载
环境准备好后,下载与CANN版本配套的分支源码,通用命令如下,${tag_version}替换为分支标签名。以9.0.0分支源码下载为例:
# 通用命令:git clone -b ${tag_version} https://gitcode.com/cann/ops-nn.git
git clone -b 9.0.0 https://gitcode.com/cann/ops-nn.git
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新版本CANN对应的源码。
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。