本项目是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 | 3 个月前 | |
【SoftmaxV2&LogSoftmaxV2&LpNormV2】支持batch一致性 Co-authored-by: zhang-song-rui<zhangsongrui@h-partners.com> # message auto-generated for no-merge-commit merge: !7879 merge feat/batch-invariant-softmax-lpnorm into master 【SoftmaxV2&LogSoftmaxV2&LpNormV2】支持batch一致性 Created-by: zhang-song-rui Commit-by: zhang-song-rui Merged-by: cann-robot Description: ## 描述 本PR为SoftmaxV2、LogSoftmaxV2和LpNormV2新增batch一致性支持。当确定性级别为3时开启batch一致性。 ### SoftmaxV2 / LogSoftmaxV2 - 在基类中读取确定性级别并设置 enableBatchInvariant_,同时在DEBUG日志中打印该值。 - batch一致性场景跳过AR小尾轴转置模板,避免转置后归约方式变化导致累加顺序不一致。 - 对合轴后A0 == 1的场景,结合reduce轴位置区分“原生AR”和“ARA退化为AR”: - 原生AR仍可选择AR全载或AR重计算模板; - ARA退化场景在batch一致性开启时由AR模板拒绝,继续进入ARA模板,避免切换为AR模板。 - ARA全载和ARA重计算作为低优先级兜底模板,无需额外限制A0 == 1;模板选择由优先级更高的AR模板完成区分。 ### LpNormV2 - 根据确定性级别设置Reduce tiling参数batchInvariant。 - batch一致性计算由Reduce模板负责,算子kernel计算逻辑无需修改。 - tiling日志打印batchInvariant和实际tiling key,便于端到端验证模板选择。 ### opbase依赖 本修改依赖opbase的batch一致性Reduce模板能力,cmake/third_party/opbase.cmake中的OPBASE_TAG_ID已更新为: text bd20a12ebbd210daccd9f936a9ff4fdd62fa9462 对应opbase提交:reduce模版针对batch一致性新增GetInputParam接口。 ## 关联的Issue 无。 ## 测试 ### SoftmaxV2 Ascend 950 Torch NPU端到端验证 所有已执行用例均通过CPU精度检查;完整batch、逐条拆分以及[3, 5]非均匀拆分的输出原始字节完全一致。 | 场景 | level 0 | level 3 | 验证结论 | | --- | --- | --- | --- | | AR小尾轴,shape=[8, 8],axis=1 | batch=0,priority=50,key=500 | batch=1,跳过小尾轴模板,priority=100,key=1000 | batch一致性开启后跳过AR小尾轴,转入AR全载 | | 原生AR全载,shape=[8, 1024],axis=1 | priority=100,key=1000 | priority=100,key=1000 | 原生AR在开关前后保持AR全载 | | 原生AR重计算,shape=[8, 20000],axis=1 | priority=200,key=2000 | priority=200,key=2000 | 原生AR在开关前后保持AR重计算 | | ARA退化为AR,shape=[8, 1024, 1],axis=1 | priority=100,key=1000 | priority=400,key=20000 | level 0退化为AR;level 3保持ARA,并因R方向容量进入ARA重计算 | | ARA全载,shape=[8, 4, 2170],axis=1 | batch=0,priority=300,key=10000 | batch=1,priority=300,key=10000 | ARA全载模板在开关前后保持不变 | | 异dtype且尾轴为1,shape=[8, 1024, 1],FP16输入/FP32输出 | priority=100,key=1000 | priority=400,key=20000 | 异dtype场景下level 3保持ARA通路 | 日志已确认level 0打印enableBatchInvariant is: 0,level 3打印enableBatchInvariant is: 1;level 3的小尾轴场景均打印AR small-R disabled日志。 ### LogSoftmaxV2 Ascend 950 Torch NPU端到端验证 所有已执行用例均通过CPU精度检查;完整batch、逐条拆分以及[3, 5]非均匀拆分的输出原始字节完全一致。 | 场景 | level 0 | level 3 | 验证结论 | | --- | --- | --- | --- | | AR小尾轴,shape=[8, 8],axis=1 | batch=0,priority=50,key=500 | batch=1,跳过小尾轴模板,priority=100,key=1000 | batch一致性开启后跳过AR小尾轴,转入AR全载 | | ARA退化为AR,shape=[8, 1024, 1],axis=1 | priority=100,key=1000 | priority=400,key=20000 | level 0退化为AR;level 3保持ARA,并进入ARA重计算 | | 原生AR重计算,shape=[8, 20000],axis=1 | SoftmaxV2同模板对照已验证 | priority=200,key=2000 | level 3下原生AR仍保持AR重计算 | | ARA全载,shape=[8, 4, 2170],axis=1 | batch=0,priority=300,key=10000 | batch=1,priority=300,key=10000 | ARA全载模板在开关前后保持不变 | | 异dtype且尾轴为1,shape=[8, 1024, 1],FP16输入/FP32输出 | priority=100,key=1000 | priority=400,key=20000 | 异dtype场景下level 3保持ARA通路 | 日志已确认level 0打印enableBatchInvariant is: 0,level 3打印enableBatchInvariant is: 1;level 3的小尾轴场景打印AR small-R disabled日志。 ### LpNormV2 Ascend 950 Torch NPU端到端验证 最终矩阵18个用例全部通过,templateNum 0~6均完成level 0/3配对验证。所有level 0日志均显示batchInvariant: 0,所有level 3日志均显示batchInvariant: 1;同一场景的level 0/3 tiling key均不同。 | P与模板 | level 0 key | level 3 key | | --- | ---: | ---: | | P=0,templateNum=0 | 10285 | 12371 | | P=1,templateNum=1 | 67119149 | 67121235 | | P=2,templateNum=2 | 134228013 | 134230099 | | P=3,templateNum=3 | 201338961 | 201338963 | | P=-inf,templateNum=4 | 268445741 | 268447827 | | P=inf,templateNum=5 | 335554605 | 335556691 | | P=3.5,templateNum=6 | 402663469 | 402665555 | 同时覆盖并通过: - 尾轴为1; - FP16输入、FP32输出; - 非连续输入; - 完整batch、逐条拆分以及[3, 5]非均匀拆分的输出原始字节一致; - CPU精度检查; - Reduce pattern与batch bit共同参与tiling key生成。 P=1为1024个绝对值累加,按1e-3绝对误差阈值验收,实测最大绝对误差为0.000396728515625;其完整batch与两种拆分的输出原始字节完全一致。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!7879 | 3 个月前 | |
【SoftmaxV2&LogSoftmaxV2&LpNormV2】支持batch一致性 Co-authored-by: zhang-song-rui<zhangsongrui@h-partners.com> # message auto-generated for no-merge-commit merge: !7879 merge feat/batch-invariant-softmax-lpnorm into master 【SoftmaxV2&LogSoftmaxV2&LpNormV2】支持batch一致性 Created-by: zhang-song-rui Commit-by: zhang-song-rui Merged-by: cann-robot Description: ## 描述 本PR为SoftmaxV2、LogSoftmaxV2和LpNormV2新增batch一致性支持。当确定性级别为3时开启batch一致性。 ### SoftmaxV2 / LogSoftmaxV2 - 在基类中读取确定性级别并设置 enableBatchInvariant_,同时在DEBUG日志中打印该值。 - batch一致性场景跳过AR小尾轴转置模板,避免转置后归约方式变化导致累加顺序不一致。 - 对合轴后A0 == 1的场景,结合reduce轴位置区分“原生AR”和“ARA退化为AR”: - 原生AR仍可选择AR全载或AR重计算模板; - ARA退化场景在batch一致性开启时由AR模板拒绝,继续进入ARA模板,避免切换为AR模板。 - ARA全载和ARA重计算作为低优先级兜底模板,无需额外限制A0 == 1;模板选择由优先级更高的AR模板完成区分。 ### LpNormV2 - 根据确定性级别设置Reduce tiling参数batchInvariant。 - batch一致性计算由Reduce模板负责,算子kernel计算逻辑无需修改。 - tiling日志打印batchInvariant和实际tiling key,便于端到端验证模板选择。 ### opbase依赖 本修改依赖opbase的batch一致性Reduce模板能力,cmake/third_party/opbase.cmake中的OPBASE_TAG_ID已更新为: text bd20a12ebbd210daccd9f936a9ff4fdd62fa9462 对应opbase提交:reduce模版针对batch一致性新增GetInputParam接口。 ## 关联的Issue 无。 ## 测试 ### SoftmaxV2 Ascend 950 Torch NPU端到端验证 所有已执行用例均通过CPU精度检查;完整batch、逐条拆分以及[3, 5]非均匀拆分的输出原始字节完全一致。 | 场景 | level 0 | level 3 | 验证结论 | | --- | --- | --- | --- | | AR小尾轴,shape=[8, 8],axis=1 | batch=0,priority=50,key=500 | batch=1,跳过小尾轴模板,priority=100,key=1000 | batch一致性开启后跳过AR小尾轴,转入AR全载 | | 原生AR全载,shape=[8, 1024],axis=1 | priority=100,key=1000 | priority=100,key=1000 | 原生AR在开关前后保持AR全载 | | 原生AR重计算,shape=[8, 20000],axis=1 | priority=200,key=2000 | priority=200,key=2000 | 原生AR在开关前后保持AR重计算 | | ARA退化为AR,shape=[8, 1024, 1],axis=1 | priority=100,key=1000 | priority=400,key=20000 | level 0退化为AR;level 3保持ARA,并因R方向容量进入ARA重计算 | | ARA全载,shape=[8, 4, 2170],axis=1 | batch=0,priority=300,key=10000 | batch=1,priority=300,key=10000 | ARA全载模板在开关前后保持不变 | | 异dtype且尾轴为1,shape=[8, 1024, 1],FP16输入/FP32输出 | priority=100,key=1000 | priority=400,key=20000 | 异dtype场景下level 3保持ARA通路 | 日志已确认level 0打印enableBatchInvariant is: 0,level 3打印enableBatchInvariant is: 1;level 3的小尾轴场景均打印AR small-R disabled日志。 ### LogSoftmaxV2 Ascend 950 Torch NPU端到端验证 所有已执行用例均通过CPU精度检查;完整batch、逐条拆分以及[3, 5]非均匀拆分的输出原始字节完全一致。 | 场景 | level 0 | level 3 | 验证结论 | | --- | --- | --- | --- | | AR小尾轴,shape=[8, 8],axis=1 | batch=0,priority=50,key=500 | batch=1,跳过小尾轴模板,priority=100,key=1000 | batch一致性开启后跳过AR小尾轴,转入AR全载 | | ARA退化为AR,shape=[8, 1024, 1],axis=1 | priority=100,key=1000 | priority=400,key=20000 | level 0退化为AR;level 3保持ARA,并进入ARA重计算 | | 原生AR重计算,shape=[8, 20000],axis=1 | SoftmaxV2同模板对照已验证 | priority=200,key=2000 | level 3下原生AR仍保持AR重计算 | | ARA全载,shape=[8, 4, 2170],axis=1 | batch=0,priority=300,key=10000 | batch=1,priority=300,key=10000 | ARA全载模板在开关前后保持不变 | | 异dtype且尾轴为1,shape=[8, 1024, 1],FP16输入/FP32输出 | priority=100,key=1000 | priority=400,key=20000 | 异dtype场景下level 3保持ARA通路 | 日志已确认level 0打印enableBatchInvariant is: 0,level 3打印enableBatchInvariant is: 1;level 3的小尾轴场景打印AR small-R disabled日志。 ### LpNormV2 Ascend 950 Torch NPU端到端验证 最终矩阵18个用例全部通过,templateNum 0~6均完成level 0/3配对验证。所有level 0日志均显示batchInvariant: 0,所有level 3日志均显示batchInvariant: 1;同一场景的level 0/3 tiling key均不同。 | P与模板 | level 0 key | level 3 key | | --- | ---: | ---: | | P=0,templateNum=0 | 10285 | 12371 | | P=1,templateNum=1 | 67119149 | 67121235 | | P=2,templateNum=2 | 134228013 | 134230099 | | P=3,templateNum=3 | 201338961 | 201338963 | | P=-inf,templateNum=4 | 268445741 | 268447827 | | P=inf,templateNum=5 | 335554605 | 335556691 | | P=3.5,templateNum=6 | 402663469 | 402665555 | 同时覆盖并通过: - 尾轴为1; - FP16输入、FP32输出; - 非连续输入; - 完整batch、逐条拆分以及[3, 5]非均匀拆分的输出原始字节一致; - CPU精度检查; - Reduce pattern与batch bit共同参与tiling key生成。 P=1为1024个绝对值累加,按1e-3绝对误差阈值验收,实测最大绝对误差为0.000396728515625;其完整batch与两种拆分的输出原始字节完全一致。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!7879 | 3 个月前 | |
删除SoftShrinkGrad重复的原型定义 Co-authored-by: Dyrong<dengyirong@huawei.com> # message auto-generated for no-merge-commit merge: !7895 merge master into master 删除SoftShrinkGrad重复的原型定义 Created-by: Dyrong Commit-by: Dyrong Merged-by: cann-robot Description: ## 描述 删除SoftShrinkGrad重复的原型定义 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4301 ## 测试 ## 文档更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!7895 | 3 个月前 | |
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 | 3 个月前 | |
卷积反向dw实现winograd算法 Co-authored-by: w00464553<wangshenhao1@huawei.com> # message auto-generated for no-merge-commit merge: !6119 merge winograd into master 卷积反向dw实现winograd算法 Created-by: royccc Commit-by: w00464553 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 卷积反向dw新增winograd实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4200 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 构造对应卷积用例测试结果精度正确 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6119 | 3 个月前 | |
add hard_sigmoid for ascend950 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !7874 merge master into master add hard_sigmoid for ascend950 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> add hard_sigmoid for ascend950 hard_sigmoid适配950 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST pass ; ops-test-kit 测试900+ 用例pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> activation/hard_sigmoid/README.md activation/hard_sigmoid/docs/aclnnHardsigmoid&aclnnInplaceHardsigmoid.md docs/zh/op_api_list.md docs/zh/op_api_list.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7874 | 3 个月前 | |
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 | 3 个月前 | |
新增 NllLoss 算子实现 Co-authored-by: weixin_45448057<yth_yth@126.com> # message auto-generated for no-merge-commit merge: !7625 merge master into master 新增 NllLoss 算子实现 Created-by: weixin_45448057 Commit-by: weixin_45448057 Merged-by: cann-robot Description: # NllLoss ## 产品支持情况 |产品 | 是否支持 | |:-------------------------|:----------:| | <term>Atlas A3 训练系列 / Atlas A3 推理系列</term> | √ | | <term>Atlas A2 训练系列 / Atlas A2 推理系列</term> | √ | ## 功能说明 - 算子功能:计算负对数似然损失(Negative Log Likelihood Loss),常用于配合 LogSoftmax 完成多分类训练。 - 计算公式: 对每个样本 i,设其目标类别为 target_i。当 target_i 等于 ignore_index 时该样本不参与计算,否则: $$ loss_i = -weight[target_i] * x[i, target_i] $$ 当 reduction 为 none 时,逐样本输出: $$ y_i = loss_i $$ 当 reduction 为 sum 时: $$ y = \sum_i loss_i $$ 当 reduction 为 mean 时: $$ y = \frac{\sum_i loss_i}{\sum_i weight[target_i]} $$ 同时输出参与计算样本的权重之和: $$ total\_weight = \sum_i weight[target_i] $$ 其中当未提供 weight 时,各类别权重按 1 处理。 ## 参数说明 <table style="undefined;table-layout: fixed; width: 1576px"><colgroup> <col style="width: 170px"> <col style="width: 170px"> <col style="width: 310px"> <col style="width: 212px"> <col style="width: 100px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>x</td> <td>输入</td> <td>公式中的输入x,最后一维为类别数C,其余维度展平为样本数N。</td> <td>BFLOAT16、FLOAT16、FLOAT</td> <td>ND</td> </tr> <tr> <td>target</td> <td>输入</td> <td>公式中的输入target,每个样本的目标类别索引,元素个数为样本数N。</td> <td>INT32、INT64</td> <td>ND</td> </tr> <tr> <td>weight</td> <td>可选输入</td> <td>公式中的输入weight,各类别的权重,长度为C;未传入时权重按1处理。</td> <td>BFLOAT16、FLOAT16、FLOAT</td> <td>ND</td> </tr> <tr> <td>reduction</td> <td>可选属性</td> <td>公式中的输入reduction,指定损失函数的计算方式,支持 'none' | 'mean' | 'sum'。'none' 表示不应用归约,'mean' 表示损失的加权平均,'sum' 表示损失求和。默认为 'mean'。</td> <td>STRING</td> <td>-</td> </tr> <tr> <td>ignore_index</td> <td>可选属性</td> <td>公式中的输入ignore_index,指定被忽略且不参与损失计算的目标类别值。默认为 -100。</td> <td>INT64</td> <td>-</td> </tr> <tr> <td>y</td> <td>输出</td> <td>公式中的输出y。reduction 为 'none' 时形状与 target 一致,否则为标量。</td> <td>BFLOAT16、FLOAT16、FLOAT</td> <td>ND</td> </tr> <tr> <td>total_weight</td> <td>输出</td> <td>公式中的输出total_weight,参与计算样本的权重之和。</td> <td>BFLOAT16、FLOAT16、FLOAT</td> <td>ND</td> </tr> </tbody></table> ## 约束说明 - target 的取值需落在 [0, C) 区间内,或等于 ignore_index。 - x 的最后一维为类别数 C,target 的元素个数为样本数 N。 - 若传入 weight,其长度需与类别数 C 保持一致。 ## 调用说明 | 调用方式 | 调用样例 | 说明 | |---------|---------|------| | aclnn调用 | [test_aclnn_nll_loss](./examples/test_aclnn_nll_loss.cpp) | 通过[aclnnNLLLoss](./docs/aclnnNLLLoss.md)接口方式调用NllLoss算子。 | | aclnn调用 | - | 通过[aclnnNLLLoss2d](./docs/aclnnNLLLoss2d.md)接口方式调用NllLoss算子。 | ## 贡献说明 | 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 | | ---- | ---- | ---- | ---- | ---- | | weixin_45448057 | 个人开发者 | NllLoss | 2026/07/14 | NllLoss算子适配开源仓 | See merge request: cann/ops-nn!7625 | 3 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 3 个月前 | |
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 | 3 个月前 | |
NonZeroWithValue下一代芯片x/value 扩展支持全 12 种 dtype Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !7932 merge feat/non_zero_with_value-dtype-arch35 into master NonZeroWithValue下一代芯片x/value 扩展支持全 12 种 dtype Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 NonZeroWithValue 算子proto原型和实际实现之间支持dtype范围存在差异,下一代芯片扩展支持全 12 种 dtype,保持原型对齐 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4320 ## 测试 ut/st ## 文档更新 README ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7932 | 3 个月前 | |
资料修改 Co-authored-by: jisongyuan@h-partners.com<jisongyuan@h-partners.com> # message auto-generated for no-merge-commit merge: !7905 merge master into master 资料修改 Created-by: ji-songyuan Commit-by: jisongyuan@h-partners.com Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子aclnnctcloss现在走入算子ctclossv3分支,不涉及确定性 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4096](https://gitcode.com/cann/ops-nn/issues/4096) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 不涉及代码修改 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/op_api_list.md loss/ctc_loss_v2/docs/aclnnCtcLoss.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7905 | 3 个月前 | |
add_ut_lines Co-authored-by: huangkejie1647<huangkejie3@huawei.com> # message auto-generated for no-merge-commit merge: !7850 merge add_ut_line into master add_ut_lines Created-by: huangkejie1647 Commit-by: huangkejie1647 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 此 PR 主要在两个文件中添加了若干函数调用语句,将调用结果赋值给以 _tmp 后缀命名的局部变量,这些变量后续未被使用。从 PR 标题 add_ut_lines 来看,这些新增代码行的目的是为了提升单元测试的代码覆盖率(如触发特定代码路径或验证函数可被正常调用)。此外,修复了 cube_util.cpp 文件末尾缺少换行符的格式问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4266](https://gitcode.com/cann/ops-nn/issues/4266) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7850 | 3 个月前 | |
【SoftmaxV2&LogSoftmaxV2&LpNormV2】支持batch一致性 Co-authored-by: zhang-song-rui<zhangsongrui@h-partners.com> # message auto-generated for no-merge-commit merge: !7879 merge feat/batch-invariant-softmax-lpnorm into master 【SoftmaxV2&LogSoftmaxV2&LpNormV2】支持batch一致性 Created-by: zhang-song-rui Commit-by: zhang-song-rui Merged-by: cann-robot Description: ## 描述 本PR为SoftmaxV2、LogSoftmaxV2和LpNormV2新增batch一致性支持。当确定性级别为3时开启batch一致性。 ### SoftmaxV2 / LogSoftmaxV2 - 在基类中读取确定性级别并设置 enableBatchInvariant_,同时在DEBUG日志中打印该值。 - batch一致性场景跳过AR小尾轴转置模板,避免转置后归约方式变化导致累加顺序不一致。 - 对合轴后A0 == 1的场景,结合reduce轴位置区分“原生AR”和“ARA退化为AR”: - 原生AR仍可选择AR全载或AR重计算模板; - ARA退化场景在batch一致性开启时由AR模板拒绝,继续进入ARA模板,避免切换为AR模板。 - ARA全载和ARA重计算作为低优先级兜底模板,无需额外限制A0 == 1;模板选择由优先级更高的AR模板完成区分。 ### LpNormV2 - 根据确定性级别设置Reduce tiling参数batchInvariant。 - batch一致性计算由Reduce模板负责,算子kernel计算逻辑无需修改。 - tiling日志打印batchInvariant和实际tiling key,便于端到端验证模板选择。 ### opbase依赖 本修改依赖opbase的batch一致性Reduce模板能力,cmake/third_party/opbase.cmake中的OPBASE_TAG_ID已更新为: text bd20a12ebbd210daccd9f936a9ff4fdd62fa9462 对应opbase提交:reduce模版针对batch一致性新增GetInputParam接口。 ## 关联的Issue 无。 ## 测试 ### SoftmaxV2 Ascend 950 Torch NPU端到端验证 所有已执行用例均通过CPU精度检查;完整batch、逐条拆分以及[3, 5]非均匀拆分的输出原始字节完全一致。 | 场景 | level 0 | level 3 | 验证结论 | | --- | --- | --- | --- | | AR小尾轴,shape=[8, 8],axis=1 | batch=0,priority=50,key=500 | batch=1,跳过小尾轴模板,priority=100,key=1000 | batch一致性开启后跳过AR小尾轴,转入AR全载 | | 原生AR全载,shape=[8, 1024],axis=1 | priority=100,key=1000 | priority=100,key=1000 | 原生AR在开关前后保持AR全载 | | 原生AR重计算,shape=[8, 20000],axis=1 | priority=200,key=2000 | priority=200,key=2000 | 原生AR在开关前后保持AR重计算 | | ARA退化为AR,shape=[8, 1024, 1],axis=1 | priority=100,key=1000 | priority=400,key=20000 | level 0退化为AR;level 3保持ARA,并因R方向容量进入ARA重计算 | | ARA全载,shape=[8, 4, 2170],axis=1 | batch=0,priority=300,key=10000 | batch=1,priority=300,key=10000 | ARA全载模板在开关前后保持不变 | | 异dtype且尾轴为1,shape=[8, 1024, 1],FP16输入/FP32输出 | priority=100,key=1000 | priority=400,key=20000 | 异dtype场景下level 3保持ARA通路 | 日志已确认level 0打印enableBatchInvariant is: 0,level 3打印enableBatchInvariant is: 1;level 3的小尾轴场景均打印AR small-R disabled日志。 ### LogSoftmaxV2 Ascend 950 Torch NPU端到端验证 所有已执行用例均通过CPU精度检查;完整batch、逐条拆分以及[3, 5]非均匀拆分的输出原始字节完全一致。 | 场景 | level 0 | level 3 | 验证结论 | | --- | --- | --- | --- | | AR小尾轴,shape=[8, 8],axis=1 | batch=0,priority=50,key=500 | batch=1,跳过小尾轴模板,priority=100,key=1000 | batch一致性开启后跳过AR小尾轴,转入AR全载 | | ARA退化为AR,shape=[8, 1024, 1],axis=1 | priority=100,key=1000 | priority=400,key=20000 | level 0退化为AR;level 3保持ARA,并进入ARA重计算 | | 原生AR重计算,shape=[8, 20000],axis=1 | SoftmaxV2同模板对照已验证 | priority=200,key=2000 | level 3下原生AR仍保持AR重计算 | | ARA全载,shape=[8, 4, 2170],axis=1 | batch=0,priority=300,key=10000 | batch=1,priority=300,key=10000 | ARA全载模板在开关前后保持不变 | | 异dtype且尾轴为1,shape=[8, 1024, 1],FP16输入/FP32输出 | priority=100,key=1000 | priority=400,key=20000 | 异dtype场景下level 3保持ARA通路 | 日志已确认level 0打印enableBatchInvariant is: 0,level 3打印enableBatchInvariant is: 1;level 3的小尾轴场景打印AR small-R disabled日志。 ### LpNormV2 Ascend 950 Torch NPU端到端验证 最终矩阵18个用例全部通过,templateNum 0~6均完成level 0/3配对验证。所有level 0日志均显示batchInvariant: 0,所有level 3日志均显示batchInvariant: 1;同一场景的level 0/3 tiling key均不同。 | P与模板 | level 0 key | level 3 key | | --- | ---: | ---: | | P=0,templateNum=0 | 10285 | 12371 | | P=1,templateNum=1 | 67119149 | 67121235 | | P=2,templateNum=2 | 134228013 | 134230099 | | P=3,templateNum=3 | 201338961 | 201338963 | | P=-inf,templateNum=4 | 268445741 | 268447827 | | P=inf,templateNum=5 | 335554605 | 335556691 | | P=3.5,templateNum=6 | 402663469 | 402665555 | 同时覆盖并通过: - 尾轴为1; - FP16输入、FP32输出; - 非连续输入; - 完整batch、逐条拆分以及[3, 5]非均匀拆分的输出原始字节一致; - CPU精度检查; - Reduce pattern与batch bit共同参与tiling key生成。 P=1为1024个绝对值累加,按1e-3绝对误差阈值验收,实测最大绝对误差为0.000396728515625;其完整batch与两种拆分的输出原始字节完全一致。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!7879 | 3 个月前 | |
add_check_for_fused_sgd Co-authored-by: jisongyuan@h-partners.com<jisongyuan@h-partners.com> # message auto-generated for no-merge-commit merge: !7946 merge master into master add_check_for_fused_sgd Created-by: ji-songyuan Commit-by: jisongyuan@h-partners.com Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增加fused_sgd输入tensorlist中,tensor维度超过8维的拦截 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4328](https://gitcode.com/cann/ops-nn/issues/4328) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 增加拦截,不涉及代码逻辑,已经验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> optim/fused_sgd/docs/aclnnFusedSgd.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7946 | 3 个月前 | |
change MaxPoolGradWithArgmaxV3 simt priority. Co-authored-by: liuchuangdev<liuchuang51@huawei.com> # message auto-generated for no-merge-commit merge: !7913 merge simt_priority into master change MaxPoolGradWithArgmaxV3 simt priority. Created-by: liuchuangdev Commit-by: liuchuangdev Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 调整maxpoolgradwithargmaxv3 simt模板准入条件 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4316](https://gitcode.com/cann/ops-nn/issues/4316) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 基本用例回归 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [.] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7913 | 3 个月前 | |
new_dequantize | 3 个月前 | |
TFplugin 组件迁移部分算子存在依赖回退 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !7893 merge back into master TFplugin 组件迁移部分算子存在依赖回退 Created-by: sunchun Commit-by: sunchun Merged-by: cann-robot Description: ## 描述 TFplugin 组件迁移部分算子存在依赖回退 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4305 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7893 | 3 个月前 | |
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 | 3 个月前 | |
[fix] QBMMV3 batch consistency handling Co-authored-by: guiruoyu<guiruoyu@h-partners.com> # message auto-generated for no-merge-commit merge: !7705 merge fix/qbmmv3-batch-consistency into master [fix] QBMMV3 batch consistency handling Created-by: guiruoyu Commit-by: guiruoyu Merged-by: cann-robot Description: ## 描述 - QBMMV3 StreamK 场景的 batch 一致性校验由 GetDeterministic() == 1 调整为 GetDeterministicLevel() > 1,仅在 batch 一致性等级下过滤 StreamK,保留普通确定性等级的行为。 - QBMMV3 per-block 场景选中对应 tiling 模板且 GetDeterministicLevel() > 1 时输出 warning,提示该量化模式天然不支持 batch 一致性。 ## 关联的Issue 无。 ## 测试 - git diff --check HEAD^ HEAD 通过。 - 推送 GitCode 时仓库 pre-push hook 检查通过。 - 当前本地 Windows 环境不具备 CANN/Linux 编译运行环境,编译与 UT 由 CI 验证。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7705 | 3 个月前 | |
Update swiglu_group and swiglu_group_quant infershape Co-authored-by: taochangmin<taochangmin@huawei.com> # message auto-generated for no-merge-commit merge: !7898 merge swiglu_group into master Update swiglu_group and swiglu_group_quant infershape Created-by: taochangmin Commit-by: taochangmin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 优化swiglu_group文档表述、新增test_geir测试文件、修复group_index tiling逻辑; 2. 修复swiglu_group_quant mxfp4图模式问题、修复group_index tiling逻辑; ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4323 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ut、st、图模式调用 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了activation/swiglu_group/README.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7898 | 3 个月前 | |
MSDA算子950输入inf场景精度失败问题修复 Co-authored-by: qy3311888<qiuyi11@h-partners.com> # message auto-generated for no-merge-commit merge: !7934 merge master into master MSDA算子950输入inf场景精度失败问题修复 Created-by: qy3311888 Commit-by: qy3311888 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> MSDA算子950输入inf场景精度失败问题修复 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4318 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 修复后精度已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7934 | 3 个月前 | |
修改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 | 3 个月前 | |
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 | 4 个月前 | |
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 3 个月前 | |
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 | 3 个月前 | |
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 | 3 个月前 | |
社区贡献 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 | 4 个月前 | |
init | 1 年前 | |
add hard_sigmoid for ascend950 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !7874 merge master into master add hard_sigmoid for ascend950 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> add hard_sigmoid for ascend950 hard_sigmoid适配950 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST pass ; ops-test-kit 测试900+ 用例pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> activation/hard_sigmoid/README.md activation/hard_sigmoid/docs/aclnnHardsigmoid&aclnnInplaceHardsigmoid.md docs/zh/op_api_list.md docs/zh/op_api_list.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7874 | 3 个月前 | |
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 | 3 个月前 | |
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 | 6 个月前 | |
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 | 8 个月前 | |
【描 述】 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 | 8 个月前 | |
torch extension support pkg with single op Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !7686 merge torch into master torch extension support pkg with single op Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 torch extension支持单算子打包 ## 关联的Issue [#4238](https://gitcode.com/cann/ops-nn/issues/4238) ## 测试 本地构建,指定单算子编译 import cann_ops_nn dir(cann_ops_nn)带上单算子 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7686 | 3 个月前 | |
fix mx_to_block_mx_quant Co-authored-by: pyq17870581669<pengyongqiang5@huawei.com> # message auto-generated for no-merge-commit merge: !7854 merge MxToBlockMxQuantFix into master fix mx_to_block_mx_quant Created-by: pyq17870581669 Commit-by: pyq17870581669 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改魔鬼数字,修改主线告警,修改tilingData数据传递方式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4257 https://gitcode.com/cann/ops-nn/issues/4148 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地精度测试,通路测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7854 | 3 个月前 | |
批量修改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 | 4 个月前 | |
调整nn仓第三方依赖 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !7845 merge pr_6933 into master 调整nn仓第三方依赖 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 1. 文档声称 install_deps.sh 可一键安装所有列出的基础依赖("上述依赖可通过项目脚本一键安装"),但实际脚本仅安装了 GCC、CMake、pigz、dos2unix、patch,未安装 googletest(文档明确列为基础依赖项之一),开发者需手动下载源码、编译并安装 googletest,与文档"一键安装"的描述不符 2. python requirements多两个不需要的依赖 ### 主要修改 为install_deps.sh 增加了安装gtest的功能 删除requirements中多余的两个依赖 ## 关联的Issue [#4256](https://gitcode.com/cann/ops-nn/issues/4256) [#4154](https://gitcode.com/cann/ops-nn/issues/4154) ## 测试  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7845 | 3 个月前 | |
调整nn仓第三方依赖 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !7845 merge pr_6933 into master 调整nn仓第三方依赖 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 1. 文档声称 install_deps.sh 可一键安装所有列出的基础依赖("上述依赖可通过项目脚本一键安装"),但实际脚本仅安装了 GCC、CMake、pigz、dos2unix、patch,未安装 googletest(文档明确列为基础依赖项之一),开发者需手动下载源码、编译并安装 googletest,与文档"一键安装"的描述不符 2. python requirements多两个不需要的依赖 ### 主要修改 为install_deps.sh 增加了安装gtest的功能 删除requirements中多余的两个依赖 ## 关联的Issue [#4256](https://gitcode.com/cann/ops-nn/issues/4256) [#4154](https://gitcode.com/cann/ops-nn/issues/4154) ## 测试  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7845 | 3 个月前 | |
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 | 5 个月前 |
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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。