本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix st_950 action Co-authored-by: he_kan<hekan4@huawei.com> # message auto-generated for no-merge-commit merge: !8795 merge ci into master fix st_950 action Created-by: he_kan Commit-by: he_kan Merged-by: cann-robot Description: ## 描述 修复st_950的action中的引号问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8795 | 1 个月前 | |
feat(hard_shrink): def 驱动 dtype + abs/le 公式对齐竞品 Co-authored-by: leaving__<B24040621@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !8756 merge feat/hard_shrink-def-driven-dtype-abs-le into master feat(hard_shrink): def 驱动 dtype + abs/le 公式对齐竞品 Created-by: leaving__ Commit-by: leaving__ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4871 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8756 | 1 个月前 | |
update: dlog头文件查找路径变更,更新文件 Finddlog.cmake Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !8791 merge ops-nn-patch-1 into master update: dlog头文件查找路径变更,更新文件 Finddlog.cmake Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次变更适配 dlog 头文件目录调整,更新 cmake/modules/Finddlog.cmake 中 DLOG_HEAD_SEARCH_PATHS 的 CI 编译搜索路径: - 将 ${TOP_DIR}/abl/slog/inc/toolchain 替换为 ${TOP_DIR}/runtime/pkg_inc/base。 - 保留现有 Ascend 安装目录下的 toolchain/pkg_inc/base 查找路径,确保 dlog 头文件可从新的 runtime 包结构中定位。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 无 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已验证构建出包正常,确认更新后的 dlog 头文件搜索路径可满足编译查找。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无需文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:构建配置适配 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8791 | 1 个月前 | |
BatchNormReduce算子在ascend 950 NPU上支持ascendc实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !8543 merge bn_training_reduce into master BatchNormReduce算子在ascend 950 NPU上支持ascendc实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 本 PR 为 BNTrainingReduce 算子在 Ascend 950PR/Ascend 950DT(arch35)新增 AscendC 实现。算子对四维 NCHW 输入沿 N、H、W 轴归约,按通道输出元素和 sum 与平方和 square_sum。 主要改动: - 新增 BNTrainingReduce 算子原型、OpDef 注册及图级 InferShape/InferDataType;输入支持 FLOAT16、BFLOAT16、FLOAT + NCHW,两个输出固定为 FLOAT + ND,Shape 为 [C]。 - 新增 arch35 Host Tiling,实现基于 Shape、DType、UB 容量和核数的多核切分,覆盖 normal、group、tail 和 empty 等执行分支。 - 新增 AscendC Kernel,实现 sum_c = Σ(n,h,w) x[n,c,h,w] 与 square_sum_c = Σ(n,h,w) x[n,c,h,w]^2;FLOAT16/BFLOAT16 输入按 FLOAT 精度执行平方与累加,并处理空 Tensor。 - 调整 ACLNN 文件目录与构建配置,新增 Ascend 950 ACLNN 两段式调用示例。 - 新增 GEIR 静态/动态 Shape、未知 Rank、数据类型/格式/非法输入及特殊值场景的验证代码。 - 更新算子 README、aclnnBatchNormReduce 产品支持说明和中英文算子清单。 本次变更共涉及 27 个文件,新增 6373 行、删除 33 行。 ## 关联的Issue 关联 Issue #4715:https://gitcode.com/cann/ops-nn/issues/4715 ## 测试 已补充以下验证资产: - ACLNN:新增 aclnnBatchNormReduceGetWorkspaceSize + aclnnBatchNormReduce 两段式调用示例。 - GEIR:新增静态/动态 Shape 与未知 Rank 执行框架,覆盖 FLOAT16、BFLOAT16、FLOAT、NCHW 输入、FLOAT/ND 输出、空 Tensor、NaN/Inf 及非法 Rank/Format/DType 等场景。 - Host/API UT:同步修正 ACLNN UT 的 include 路径以适配目录调整。 当前 PR 描述未附可独立核对的全量执行报告;最终结果以仓库 CI、复测记录及未解决检视意见闭环为准。 ## 文档更新 - 更新 norm/bn_training_reduce/README.md,补充功能、公式、参数、约束和调用说明。 - 更新 norm/bn_training_reduce/docs/aclnnBatchNormReduce.md,声明 Ascend 950PR/Ascend 950DT 支持。 - 更新 docs/zh/op_api_list.md、docs/zh/op_list.md 及对应英文算子清单。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8543 | 1 个月前 | |
nn仓rnn 、vfusion、control文件夹打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8342 merge master into master nn仓rnn 、vfusion、control文件夹打标签 Created-by: yanglu-1 Commit-by: yanglu-1;y60124828 Merged-by: cann-robot Description: ## 描述 nn仓rnn 、vfusion、control文件夹打标签 ## 关联的Issue 例如:关联Issue [#4600](https://gitcode.com/cann/ops-nn/issues/4600) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8342 | 1 个月前 | |
修复convTranspose 获取 FixedShiftVal 错误问题 Co-authored-by: YuanTianyi<yuantianyi1@huawei.com> # message auto-generated for no-merge-commit merge: !8815 merge shift_val_bugfix into master 修复convTranspose 获取 FixedShiftVal 错误问题 Created-by: YuanTianyi Commit-by: YuanTianyi Merged-by: cann-robot Description: ## 描述 修复convTranspose 获取 FixedShiftVal 错误问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4901 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> rdv,自验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8815 | 1 个月前 | |
【9.2.0beta2】【cherry-pick】DequantSituQuant和SituMxQuant算子 Co-authored-by: demoauguste<zhanghao418@huawei.com> # message auto-generated for no-merge-commit merge: !8958 merge cherry-pick-mr-8798-1787210837614-auto into 9.2.0-beta.2 【9.2.0beta2】【cherry-pick】DequantSituQuant和SituMxQuant算子 Created-by: east_yang Commit-by: demoauguste Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 从主干cherry-pick DequantSituQuant和SituMxQuant算子到9.2.0beta2分支 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4850 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8958 | 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 | 2 个月前 | |
turbo_quant_compress_latent csrc upgrade Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !8607 merge torch into master turbo_quant_compress_latent csrc upgrade Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 turbo_quant_compress_latent csrc upgrade ## 关联的Issue [#4690](https://gitcode.com/cann/ops-nn/issues/4690) ## 测试 编译并安装cann_ops_nn ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8607 | 1 个月前 | |
fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8767 merge fix/scatter-noncontig-and-lamb-infershape into master fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 长尾算子问题优化:scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4865 ## 测试 不涉及 ## 文档更新 README ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8767 | 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 | 2 个月前 | |
perf: 修复 scatter reduce include_self 宽行场景性能回退(含 fp16/bf16) Co-authored-by: bartonfang<fangziyang1@huawei.com> # message auto-generated for no-merge-commit merge: !10096 merge fix-scatter-add-perf-110 into 9.2.0-beta.2 perf: 修复 scatter reduce include_self 宽行场景性能回退(含 fp16/bf16) Created-by: bartonfang Commit-by: bartonfang Merged-by: cann-robot Description: ## 背景 在 9.2.0-beta.2 上复现用户场景 [4096,64640] fp32、dim≈1、index[4096,1](每行仅一个 scatter 元素、include_self=true、reduce=add)出现性能回退:总耗时 21603us,其中 ScatterElementsV2 19855us(回退前基线约 1.8ms)。!10043 通过整体回退 #6460/#6624/#7736/#8714 验证性能可恢复,但同时移除了 min/max/mean 等新功能。本 PR 定位到真正的热点并做正向修复,保留上述 4 个 PR 的功能。 ## 根因 该簿记机制由 #6460(Add min, max, and mean modes to the scatter_reduce operator, d382188b4)引入:该 PR 把 arch22 legacy 内核从单一 MODE 模板的 add 实现重写为通用的运行时 mode reduce 内核,新增 countLocal/InitHitCount/ReduceValue 以支持 min/max/mean 与 include_self=false 语义,同时把原先直接累加的 add 路径也并入了 hit-count 路径。重写后的内核: - ProcessSmall/ProcessScatter 每个 chunk 先调用 InitHitCount(inputAlign),按对齐后的整行宽度把 countLocal 清零; - ScatterSetValue 对每次 scatter 都执行 countLocal.GetValue/SetValue。 宽行(64640)+ 每行只有 1 个元素需要更新的场景下,countLocal 的全量初始化/维护 O(row×chunk) 成为绝对热点。而 hit count 仅在以下场景必需: 1. include_self=false:需要区分“首次命中直接写 update”与后续累加; 2. mean:需要命中次数做除法。 include_self=true 的 add/mul/min/max 每个位置都有确定初值 self、命中同权归约,结果与“第几次命中”无关,计数是纯写不读的死开销。另外同批 #6624 仅放宽 host 侧 cache-op xDim1 保护(扩大暴露面),#7736(AICPU 拦截新 mode)与 #8714(文档)与本热点无直接关系。性能劣化本质不是新增 min/max/mean 功能的固有代价,而是通用化把 include_self=true 的 sum 也并入了 hit-count 内核,因此可以按本 PR 方式正向修复,无需整体回退。 ## 修改 index/scatter_elements_v2/op_kernel/scatter_elements_v2.h(两个 commit,共 ~35 行变更) 1. 066f2db35:InitHitCount/ScatterSetValue 仅在 NeedHitCount() 为真时读写 count;fp32 的 include_self=true add/mul/min/max 不再做整行清零与逐命中计数,count buffer 也改为按需分配。 2. 5adb7d38b:把 IsCastFloat(fp32 中间累加开关)从 NeedHitCount 中解耦。fp16/bf16 归约仍走 fp32 中间累加 + CAST_RINT 单次写回(精度行为不变),但 include_self=true 的 add/mul/min/max 同样跳过计数。 最终逻辑: - NeedHitCount = isReduceMode && (includeSelf == 0 || mode == MEAN); - IsCastFloat = 低精度 dtype && isReduceMode(与计数无关)。 仅影响 legacy kernel 内部簿记与 buffer 分配,不改 tiling、接口与运算语义。 ## 验证(910B 实机 ATK,同 [4096,64640]/每行 1 命中场景) ### 性能(performance_device,--performance_data 300,100,80) | 版本 | dtype | 总耗时 | ScatterElementsV2 | | --- | --- | --- | --- | | beta2(含 4 PR) | fp32 | 21603us | 19855us | | revert(!10043) | fp32 | 3548us | 1799us | | 本 PR | fp32 | ~3538us | 1792us | | fix1(仅 fp32 改动) | fp16 | — | 21208us | | 本 PR | fp16 | ~1846us | 925us | fp16 数据说明:#6460 的计数簿记同样拖累 fp16/bf16 原 add 路径(保留计数时 21.2ms),本次一并修复。 ### 正确性 - 仓库自带 atk_aclnnScatterReduce.json 29/29 Pass(fp32 sum、include_self=true); - fp32 大 shape accuracy md5 比对 Pass; - fp16 大 shape accuracy(CPU golden,single_bm)Pass; - fp16 同输入下“保留计数版本 vs 本 PR”输出 md5 完全一致(逐位相同),证明删除计数不改变任何结果; - include_self=false、mean、mul/min/max 分支经代码核对仍完整走原 hit-count/cast 路径,不受本次收紧影响;min/max/mean/include_self=false 等扩展模式受 upstream 既有 aclnnScatterReduce host 参数检查限制(仅支持 float32+sum+include_self=true)无法经该接口直测。 相关:!10043(回退验证,证明性能问题成立);本 PR 为正向修复方案,可替代整体回退。 See merge request: cann/ops-nn!10096 | 18 天前 | |
fix: restrict sigmoid cross entropy grad tiling to ascend950 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !10074 merge 9.2.0-beta.2 into 9.2.0-beta.2 fix: restrict sigmoid cross entropy grad tiling to ascend950 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue tiling使用错误,A2的kernel走入950的tiling,导致A2算子sigmoid cross entropy grad的精度出现错误,将950tiling全部放入arch35中,做隔离 ## 测试 https://gitcode.com/cann/ops-nn/issues/5683 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10074 | 23 天前 | |
【FEATURE】A2/A3 ACLNN Addmm/Baddbmm/AddmmWeightNz 支持 broadcast bias 路由 GemmV3 Co-authored-by: HuangKun8682<huangkun61@huawei.com> # message auto-generated for no-merge-commit merge: !8784 merge personal_gemmV3_bias_support_broadcast_aclnn_part into master 【FEATURE】A2/A3 ACLNN Addmm/Baddbmm/AddmmWeightNz 支持 broadcast bias 路由 GemmV3 Created-by: HuangKun8682 Commit-by: HuangKun8682 Merged-by: cann-robot Description: ## 描述 本 PR 适配 Addmm、Baddbmm 及 AddmmWeightNz 的 ACLNN 接口路由,使 A2/A3(DAV_2201)上的 broadcast bias 场景能够直接使用 GemmV3 完成矩阵乘、alpha/beta 缩放及 bias broadcast。 主要修改如下: ### 1. 清理 broadcast bias 路由限制 - 删除 CheckAddmmTensorShapeNeedBroadcast。 - 简化 CheckCubeMathTypeForAddMm,仅保留 cubeMathType 取值及平台能力校验。 - 不再因为 bias shape 与矩阵乘输出 shape 不一致而拒绝 cubeMathType=USE_FP32_ADD。 - 路由限制在 A2/A3(DAV_2201),不改变其他架构的执行逻辑。 ### 2. 调整 Addmm 和 Baddbmm 的 GemmV3 路由 - cubeMathType=USE_FP32_ADD 时,允许 broadcast bias 进入 GemmV3。 - 区分“接口计算需要 FP32 中间结果”和“GemmV3 实际输出 FP32”,避免 FP16/BF16 输出错误使用 16in32out GemmV3。 ### 3. 调整 AddmmWeightNz 的 GemmV3 路由 - 取消 A2/A3 上将 cubeMathType=USE_FP32_ADD 转换为 cubeMathType=KEEP_DTYPE 的逻辑。 - cubeMathType=USE_FP32_ADD 时,支持 AddmmWeightNz 直接路由至 GemmV3。 - 支持 broadcast bias 与 ND×NZ 矩阵输入组合进入 GemmV3。 - 支持 FP16/BF16 输入及对应的低精度输出。 - 保留原有 16in32out 场景,支持 GemmV3 输出 FP32。 ### 4. 补齐 GemmV3 OpDef 类型声明 补充以下四组类型和格式组合: | A 输入 | B 输入 | Bias 输入 | 输出 | |---|---|---|---| | FP16 ND | FP16 ND | FP16 ND | FP32 ND | | BF16 ND | BF16 ND | BF16 ND | FP32 ND | | FP16 ND | FP16 NZ | FP16 ND | FP16 ND | | BF16 ND | BF16 NZ | BF16 ND | BF16 ND | 前两组用于 ND×ND 低精度 bias 的 16in32out 场景,后两组用于 AddmmWeightNz 在 cubeMathType=USE_FP32_ADD 下保持低精度输出的场景。 ### 5. 补齐 A2/A3 GemmV3 binary 配置 在以下配置中补充 ND×NZ 同类型输出 Kernel: - ascend910b/gemm_v3_binary.json - ascend910_93/gemm_v3_binary.json 新增配置: | Binary | 输入输出组合 | |---|---| | GemmV3_ND_NZ_ND_ND_FP16_FP16_FP16_FP16 | FP16 ND×NZ、FP16 bias、FP16 输出 | | GemmV3_ND_NZ_ND_ND_BF16_BF16_BF16_BF16 | BF16 ND×NZ、BF16 bias、BF16 输出 | 未修改 ascend950 和 ascend350 的 binary 配置。 ### 6. 支持的 bias broadcast shape #### Addmm/AddmmWeightNz 输出 shape 为 [M,N]: | Broadcast 类型 | Bias shape | |---|---| | N broadcast | [N]、[1,N] | | M broadcast | [M,1] | | Scalar broadcast | [1]、[1,1] | | 非 broadcast | [M,N] | #### Baddbmm 输出 shape 为 [B,M,N]: | Broadcast 类型 | Bias shape | |---|---| | N broadcast | [N]、[1,N]、[1,1,N] | | M broadcast | [M,1]、[1,M,1] | | Scalar broadcast | [1]、[1,1]、[1,1,1] | | Per-batch scalar | [B,1,1] | | 非 broadcast | [B,M,N] | ## 关联的Issue Issue [#4844](https://gitcode.com/cann/ops-nn/issues/4844) ## 测试 ### 1. ATK 精度泛化用例 在 A2/A3 环境执行2000条 ATK L0 双标杆精度泛化用例: | 接口 | 用例数 | Bias shape 分布 | |---|---:|---| | Addmm | 400 | N:134,M:67,scalar:133,full:66 | | InplaceAddmm | 400 | full:400 | | AddmmWeightNz | 400 | N:134,M:67,scalar:133,full:66 | | Baddbmm | 400 | N:135,M:89,scalar:176 | | InplaceBaddbmm | 400 | full:400 | 精度用例覆盖: - FP16/BF16 矩阵输入; - FP16、BF16及FP32输出; - ND×ND 和 ND×NZ; - cubeMathType=USE_FP32_ADD; - FP16/BF16 16in32out; - transA/transB 四种组合; - N、M、scalar 和 per-batch scalar broadcast; - 对齐与非对齐 shape; - 大小 shape 及尾块场景。 双标杆精度首轮结果为 1998/2000 通过,两条失败用例定点复检均通过,未发现稳定复现的精度问题。 ### 2. 性能验证 执行100条三通路性能对比用例: | 分类 | 用例数 | |---|---:| | Addmm | 50 | | Baddbmm | 50 | | N broadcast | 33 | | M broadcast | 33 | | Scalar broadcast | 34 | 对比以下三条通路: 1. GemmV3 + broadcast bias; 2. GemmV3 + 等价 full-shape bias; 3. ATB PPMatMul + Muls + Axpy。 GemmV3 与 PPMatMul 使用相同的原始 shape、物理布局、transpose 和 contiguous 条件。 性能结果: - 小算子链/GemmV3 耗时比中位数:2.2852; - 比值范围:1.1051~2.8523; - GemmV3 broadcast 不慢于小算子拼接:100/100; - 三条通路输出一致性检查:100/100通过。 ## 文档更新 更新以下 ACLNN 接口文档: - aclnnAddmm&aclnnInplaceAddmm.md - aclnnBaddbmm&aclnnInplaceBaddbmm.md - aclnnAddmmWeightNz.md 文档更新内容包括: - A2/A3 上 cubeMathType=USE_FP32_ADD 对 broadcast bias 的支持说明; - AddmmWeightNz 对 cubeMathType=USE_FP32_ADD 的支持说明; - AddmmWeightNz 支持的 [M,1]、[1,1] 等 broadcast shape; - FP16/BF16 输入、低精度输出和 FP32 中间计算行为说明。 - GemmV3 broadcast bias 的 Kernel 设计和精度、性能验证方法由对应设计文档及测试 README 说明。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8784 | 1 个月前 | |
docs(norm): 修正 6 个 aclnn 算子 A5 确定性计算描述 Co-authored-by: HelloWord-LuXin<luxin67@h-partners.com> # message auto-generated for no-merge-commit merge: !8709 merge fix-bn-groupnorm-deterministic-doc into master docs(norm): 修正 6 个 aclnn 算子 A5 确定性计算描述 Created-by: HelloWord-LuXin Commit-by: HelloWord-LuXin Merged-by: cann-robot Description: ## 修改内容 修正 aclnnBatchNorm、aclnnBatchNormElemt、aclnnBatchNormBackward、aclnnGroupNormBackward、aclnnRmsNormGrad、aclnnRmsNormGradQuant 六个算子文档中 A5(Ascend 950) 确定性计算描述与代码实际行为不符的问题。 close #4890 ## 问题分析 原描述为「默认非确定性实现,支持通过 aclrtCtxSetSysParamOpt 开启确定性」,未区分芯片版本。代码核查表明: A5(Ascend 950) 的 arch35/regbase kernel 使用 SyncAll 做核间同步,无 SetAtomicAdd;regbase tiling 不检查 GetDeterministic(),不读取 aclrtCtxSetSysParamOpt 设置。因此 A5 实际为默认确定性实现,且不支持通过 aclrtCtxSetSysParamOpt 开启确定性。 ## 代码依据 | 算子 | A5 GetDeterministic() | A5 SetAtomicAdd | A5 同步机制 | |------|-----------------------|-----------------|-------------| | aclnnBatchNorm | 否 | 否 | SyncAll | | aclnnBatchNormElemt | 否 | 否 | 无跨核归约 | | aclnnBatchNormBackward | 否 | 否 | SyncAll | | aclnnGroupNormBackward | 否 | 是(workspace写入) | SyncAll+二分树归约 | | aclnnRmsNormGrad | 否 | 否 | SyncAll | | aclnnRmsNormGradQuant | 否 | 否 | 无跨核归约 | > GroupNormBackward A5 虽使用 SetAtomicAdd 写 workspace,但 SPLIT_COUNT=2 保证每个 workspace slot 仅 2 个核写入,浮点加法交换律(a+b==b+a)保证结果确定;stage2 用 SyncAll + 二分树归约,最终输出无 atomic add。 ## 修改方案 仅修改 A5(Ascend 950) 描述,区分芯片版本描述: | 算子 | A5 描述 | |------|---------| | aclnnBatchNorm | → 默认确定性实现 | | aclnnBatchNormElemt | → 默认确定性实现 | | aclnnBatchNormBackward | → 默认确定性实现 | | aclnnGroupNormBackward | → 默认确定性实现 | | aclnnRmsNormGrad | → 默认确定性实现 | | aclnnRmsNormGradQuant | → 默认确定性实现 | ## 涉及文件 - norm/batch_norm_v3/docs/aclnnBatchNorm.md — 分架构描述,A5 改为默认确定性实现 - norm/batch_norm_elemt/docs/aclnnBatchNormElemt.md — 分架构描述,A5 改为默认确定性实现 - norm/batch_norm_grad_v3/docs/aclnnBatchNormBackward.md — 分架构描述,A5 改为默认确定性实现 - norm/group_norm_grad/docs/aclnnGroupNormBackward.md — 分架构描述,A5 改为默认确定性实现 - norm/rms_norm_grad/docs/aclnnRmsNormGrad.md — 分架构描述,A5 改为默认确定性实现 - norm/rms_norm_grad_quant/docs/aclnnRmsNormGradQuant.md — 仅 A5 支持,改为默认确定性实现 - docs/zh/op_api_list.md — 同步修正上述 6 个算子的 A5 列 See merge request: cann/ops-nn!8709 | 1 个月前 | |
fix inplace_apply_keras_momentum 注册图模式接口修复 Co-authored-by: Davon14272<liuwenda4@huawei.com> # message auto-generated for no-merge-commit merge: !8877 merge fix/inplace-apply-keras-momentum-infer-dtype into master fix inplace_apply_keras_momentum 注册图模式接口修复 Created-by: Davon14272 Commit-by: Davon14272 Merged-by: cann-robot Description: ## 描述 这是算子安装/注册问题一算子opinfo已注册(能找到算子),但 op_proto的infer_datatype函数缺失或 .so未加 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4893](https://gitcode.com/cann/ops-nn/issues/4893) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8877 | 1 个月前 | |
avg_pool kernel精度提升 Co-authored-by: klein8793<zhangli24@huawei.com> # message auto-generated for no-merge-commit merge: !8595 merge dev_zl_2026_0811 into master avg_pool kernel精度提升 Created-by: klein8793 Commit-by: klein8793 Merged-by: cann-robot Description: ## 描述 avg_pool kernel精度提升,使用了下面这些手段: - avg_pool big_kernel模板,将先求倒数再相乘逻辑,改为直接除 - 对Fp32路径使用高精度除 ## 关联的Issue 关联Issue [#4756](https://gitcode.com/cann/ops-nn/issues/4756) ## 测试 白盒用例、atk用例、obp冒烟、david冒烟均已通过 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8595 | 1 个月前 | |
增加quantOffsetOptional的shape说明 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !9323 merge 9.2.0-beta.2 into 9.2.0-beta.2 增加quantOffsetOptional的shape说明 Created-by: fengying555682 Commit-by: fengying555682;fwx1169505 Merged-by: cann-robot Description: ## 描述 增加quantOffsetOptional的shape说明 ## 关联的Issue [#5234](https://gitcode.com/cann/ops-nn/issues/5234) ## 测试 测试了文档语法、链接一致性等 ## 文档更新 更新quant/dequant_situ_quant/docs/aclnnDequantSituQuant.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9323 | 1 个月前 | |
修复GRU、GRUGard算子cleancode问题 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !8851 merge fix_gru_codecheck_0818 into master 修复GRU、GRUGard算子cleancode问题 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复Gru\GruGrad算子的cleancode问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4892 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 跑example无问题 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8851 | 1 个月前 | |
[feat] support lstm grad a5 Co-authored-by: yaochen<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !8768 merge lstmA5final into master [feat] support lstm grad a5 Created-by: nextyale Commit-by: yaochen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> support lstm grad a5 ## 测试 200泛化用例已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!8768 | 1 个月前 | |
kernel ut 增加防卡死超时,快速模式,覆盖率控制 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !8187 merge master into master kernel ut 增加防卡死超时,快速模式,覆盖率控制 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 提交总结:kernel ut 增加防卡死超时、快速模式、覆盖率控制 **修改背景**:Kernel UT 存在单测卡死导致整套测试挂起、运行慢(addr2line 符号化耗时)、gcov 覆盖率始终链接带来不必要开销等问题。 **修改方案**: 1. **防卡死超时**:新增 run_kernel_ut.sh,按 case 逐个执行并用 timeout 限时(默认 120s,--ut_timeout 可配),超时即标记失败并继续,避免单点卡死阻塞全流程。 2. **快速模式**:新增 --ut_mode=fast/debug。fast 模式关闭符号化(注入 fake addr2line 跳过慢解析)、改用 -g0 -O2,用于快速验证;debug 模式保留 -g 与符号化,用于开发调试。 3. **覆盖率控制**:将 ut.cmake 中 gcov 的无条件链接改为 $<$<BOOL:${ENABLE_COVERAGE}>:gcov> 条件链接,仅在开启覆盖率时引入; 4. **修复失败的kernel ut**:TensorFlow 依赖替换为md_dtypes, 修复部分block 越界,缺少SetKernelMode 设置导致核获取错误等问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4606 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 通过kernel ut 测试,bash build.sh -u --opkernel --ut_mode=fast --ut_timeout=60 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8187 | 1 个月前 | |
【9.2.0beta2】【cherry-pick】DequantSituQuant和SituMxQuant算子 Co-authored-by: demoauguste<zhanghao418@huawei.com> # message auto-generated for no-merge-commit merge: !8958 merge cherry-pick-mr-8798-1787210837614-auto into 9.2.0-beta.2 【9.2.0beta2】【cherry-pick】DequantSituQuant和SituMxQuant算子 Created-by: east_yang Commit-by: demoauguste Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 从主干cherry-pick DequantSituQuant和SituMxQuant算子到9.2.0beta2分支 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4850 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8958 | 1 个月前 | |
modified md files (aclnnMultiScaleDeformableAttentionGrad.md and aclnnLinalgVectorNorm.md) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !8458 merge master into master modified md files (aclnnMultiScaleDeformableAttentionGrad.md and aclnnLinalgVectorNorm.md) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 - aclnnMultiScaleDeformableAttentionGrad supports A5, updates aclnnMultiScaleDeformableAttentionGrad, the corresponding README.md for the operator, and op_api_list.md. - Updates the return codes in aclnnLinalgVectorNorm.md. ## 关联的Issue [#4474](https://gitcode.com/cann/ops-nn/issues/4474) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 docs/zh/op_api_list.md vfusion/multi_scale_deformable_attention_grad/README.md vfusion/multi_scale_deformable_attention_grad/docs/aclnnMultiScaleDeformableAttentionGrad.md norm/lp_norm_v2/docs/aclnnLinalgVectorNorm.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8458 | 1 个月前 | |
修改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 | 2 个月前 | |
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 | 3 个月前 | |
新增 pre-push 本地编译门禁脚本,将 CI 质量门禁左移到开发者本地,在 git push 时自动触发构建与 UT 检查。 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !8563 merge master into master 新增 pre-push 本地编译门禁脚本,将 CI 质量门禁左移到开发者本地,在 git push 时自动触发构建与 UT 检查。 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: 本 PR 新增 pre-push 本地编译门禁脚本,将 CI 质量门禁左移到开发者本地,在 git push 时自动触发构建与 UT 检查。 ### 改动原因 远程 CI 门禁失败导致开发往返成本高,开发者需要在本地反复调试后才能合入。通过 pre-push hook 在 push 前自动运行本地构建与 UT,提前发现问题,提升远程门禁成功率。 ### 采取的方法 1. **新增 scripts/ci/pre_push_build.sh**:pre-push hook 脚本,支持两种运行模式: - **快速模式(默认)**:根据变更文件路径智能识别受影响模块(op_host/op_kernel/op_api/op_graph/arch35/experimental),仅触发相关阶段的构建与 UT,耗时短,适合日常迭代。 - **完整模式(PRE_PUSH_FULL=1)**:直接调用 local_build.sh,100% 复刻 CI 门禁语义,适合合入前验证。 2. **.pre-commit-config.yaml 注册 pre-push hook**:通过 pre-commit 框架管理,与现有 pre-commit 检查无缝衔接。 3. **智能跳过策略**: - 仅文档/配置/cmake/scripts 变更 → 全部跳过 - 仅 experimental 变更 → 只执行 check_experimental_pkg.sh - arch35/op_kernel 变更 → 跳过 JIT 打包,由 compile_ascend950_pkg.sh 处理 4. **CANN 环境检测**:未安装 CANN 包时红色高亮提示并跳过检查,允许提交。 5. **全流程日志**:所有环节名称、执行命令、构建输出同步写入终端和 pre_push_build.log,包含 Pipeline Preview 概览和变更文件列表。 ## 关联的Issue ## 测试 - 修改 matmul/mat_mul_v3/op_host/op_tiling/arch35/ 下文件,验证快速模式正确识别 arch35 变更,跳过 JIT 打包,触发 ascend950 pkg(force_jit)。 - 修改 op_host 非 arch35 文件,验证 JIT 打包 + ophost UT 正确触发。 - 仅修改 .md 文件,验证 md_only 早退逻辑生效,全部跳过。 - 未 source CANN 环境时,验证红色高亮提示并跳过检查。 - 验证 pre_push_build.log 日志内容与终端输出一致,包含变更文件列表、模块识别、Pipeline Preview、各阶段命令与输出。 ## 文档更新 - 新增 pre-commit.md:本地代码门禁使用指南(pre-commit + pre-push-build 合并文档),包含安装、环境前置条件、日常开发流程、跳过检查、运行模式、执行流程、典型场景、日志与报错排查、配置参数汇总、取消安装。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8563 | 1 个月前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !8149 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 修改AIDD扫描的核心资料问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3939](https://gitcode.com/cann/ops-nn/issues/3939) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8149 | 1 个月前 | |
refactor: init_cann_project() 移至 dependencies.cmake 之后调用 Co-authored-by: zhaoyingdong<zhaoyingdong@huawei.com> # message auto-generated for no-merge-commit merge: !8702 merge master into master refactor: init_cann_project() 移至 dependencies.cmake 之后调用 Created-by: zhaoyingdong Commit-by: zhaoyingdong Merged-by: cann-robot Description: ## 描述 refactor: init_cann_project() 移至 dependencies.cmake 之后调用 add_cann_third_party()依赖init_cann_project() 中的变量,所以需要放到add_cann_third_party()前面 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x ] AI辅助编写 See merge request: cann/ops-nn!8702 | 1 个月前 | |
产品文档中png文件改为英文名 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !8300 merge master into master 产品文档中png文件改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 产品文档中的png图片名由中文改为英文 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> png和相关的link md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8300 | 1 个月前 | |
init | 11 个月前 | |
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 | 2 个月前 | |
cannsim改名为npusim Co-authored-by: liangbinglong<liangbinglong@huawei.com> # message auto-generated for no-merge-commit merge: !8349 merge master into master cannsim改名为npusim Created-by: liangbinglong Commit-by: liangbinglong Merged-by: cann-robot Description: ## 描述 经TSC评审,cannsim工具正式更名为npusim,相关命令行、资料同步刷新,cannsim作为别名兼容一段时间,需要尽快切换 ## 关联的Issue NA ## 测试 使用最新链接版本测试,相关命令行已经全部更名为npusim ## 文档更新 更新doc下面的调优部分文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8349 | 1 个月前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !8149 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 修改AIDD扫描的核心资料问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3939](https://gitcode.com/cann/ops-nn/issues/3939) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8149 | 1 个月前 | |
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 | 7 个月前 | |
【描 述】 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 | 7 个月前 | |
修复matmul ut 编译失败的问题 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !8409 merge master into master 修复matmul ut 编译失败的问题 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 1. 删除冗余的测试代码 2. build.sh build ut 增加-k,即使ut失败,任可以继续构建,最后报错 ## 关联的Issue [#4734](https://gitcode.com/cann/ops-nn/issues/4734) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8409 | 1 个月前 | |
补充index-c的classify rule Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !8881 merge master_bak into master 补充index-c的classify rule Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补充index-c的classify rule ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4824 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8881 | 1 个月前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !8149 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 修改AIDD扫描的核心资料问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3939](https://gitcode.com/cann/ops-nn/issues/3939) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8149 | 1 个月前 | |
调整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 | 2 个月前 | |
调整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 | 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 | 4 个月前 |
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,可以通过NPU 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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。