本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
不编译场景的api检查类型赋值 Co-authored-by: wangchuang616<wangchuang12@huawei.com> # message auto-generated for no-merge-commit merge: !11598 merge master into master 不编译场景的api检查类型赋值 Created-by: wangchuang616 Commit-by: wangchuang616 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11598 | 1 天前 | |
feat: ThresholdV2 与 ConcatOffset 算子适配 ascend350/ascend960pr/ascend960dt Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !11280 merge f0928 into master feat: ThresholdV2 与 ConcatOffset 算子适配 ascend350/ascend960pr/ascend960dt Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 为 ThresholdV2(activation/threshold_v2)与 ConcatOffset(index/concat_offset)两个算子扩展芯片支持,新增适配 ascend350、ascend960pr、ascend960dt 产品型号。 **改动原因**:新芯片需要在算子定义、编译单元与 tiling 配置中显式声明支持,否则算子不会为这些芯片生成 kernel 及二进制配置。 **改动方法**: - activation/threshold_v2 - CMakeLists.txt:SUPPORT_COMPUTE_UNIT 新增 ascend350、ascend960pr、ascend960dt,SUPPORT_TILING_DIR 统一映射到 arch35。 - op_host/threshold_v2_def.cpp:为 ascend350、ascend960pr、ascend960dt 注册 AICore().AddConfig。 - op_kernel/CMakeLists.txt:COMPUTE_UNITS 补充 ascend350 ascend960pr ascend960dt。 - 新增 op_host/config/{ascend350,ascend960pr,ascend960dt}/threshold_v2_binary.json(沿用 arch35/ascend950 tiling 配置)。 - index/concat_offset - CMakeLists.txt:SUPPORT_COMPUTE_UNIT 新增 ascend960pr、ascend960dt(ascend350 原已支持),SUPPORT_TILING_DIR 同步补齐为 4 个 arch35。 - op_host/concat_offset_def.cpp:为 ascend960pr、ascend960dt 注册 AICore().AddConfig。 - 新增 op_kernel/CMakeLists.txt,声明 ascend950 ascend350 ascend960pr ascend960dt 编译单元。 - 新增 op_host/config/{ascend960pr,ascend960dt}/concat_offset_binary.json。 ## 关联的Issue - #6258 https://gitcode.com/cann/ops-nn/issues/6258 ## 测试 - 本 PR 为芯片适配配置变更,未新增/修改测试用例。 ## 文档更新 - 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!11280 | 1 天前 | |
[feat] support UT:ascend960 Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !11541 merge pkg into master [feat] support UT:ascend960 Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 CMake UT编译新增ascend960目录检测 ## 关联的Issue [#6396](https://gitcode.com/cann/ops-nn/issues/6396) ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11541 | 1 天前 | |
fix(selu_grad): 修复example及文档头文件包含路径错误,并删除重复的原型 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !11066 merge fix_selu_grad_example into master fix(selu_grad): 修复example及文档头文件包含路径错误,并删除重复的原型 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 修复 selu_grad 算子 example 及文档中的头文件包含路径错误。头文件 aclnn_selu_backward.h 实际位于 aclnnop/ 目录下,example 代码与文档示例中缺少该目录前缀,导致用户参照编译时报"找不到头文件"错误。 变更内容: - activation/selu_grad/examples/arch35/test_aclnn_selu_grad.cpp:#include "aclnn_selu_backward.h" 修改为 #include "aclnnop/aclnn_selu_backward.h" - activation/selu_grad/docs/aclnnSeluBackward.md:同步修正示例代码中的头文件包含路径 与 activation/selu_grad/examples/test_aclnn_selu_grad.cpp(已使用正确路径)保持一致。 ## 关联的Issue 关联Issue #6145:[Bug-Report|缺陷反馈]: selu_grad算子example及文档中头文件包含路径错误(https://gitcode.com/cann/ops-nn/issues/6145) ## 测试 仅修正头文件包含路径字符串,与仓库内其他算子 example 的标准写法一致(如 activation/selu_grad/examples/test_aclnn_selu_grad.cpp),无逻辑变更。 ## 文档更新 更新 activation/selu_grad/docs/aclnnSeluBackward.md 示例代码中的头文件包含路径。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!11066 | 2 天前 | |
aidd问题修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11509 merge master into master aidd问题修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 aidd问题修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 文档更新不涉及测试 ## 文档更新 修改md文档在扫描出来的aidd问题 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11509 | 2 天前 | |
Conv2DTranspose算子解决量化+Mix场景AICore问题 Co-authored-by: cheng_gao<cheng.gao@huawei.com> # message auto-generated for no-merge-commit merge: !11415 merge extendconvtranspose_0930 into master Conv2DTranspose算子解决量化+Mix场景AICore问题 Created-by: cheng_gao Commit-by: cheng_gao Merged-by: cann-robot Description: ## 描述 Conv2DTranspose算子,量化且使用了Vector的MIX场景,由于extend_conv_transpose op_kernel编译配置被误删,SSBUF通信未开启,GetUserWorkspace存在地址偏移(具体见https://gitcode.com/cann/asc-devkit/pull/5264/diffs ),导致Vector访问GM地址时报AICore错误。 ## 关联的Issue - 关联 Issue #6440:https://gitcode.com/cann/ops-nn/issues/6440 ## 测试 RDV功能测试 量化场景测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11415 | 1 天前 | |
feat: fused_linear_cross_entropy_loss_grad 适配 ascend950 Co-authored-by: mazihan<mazihan1@huawei.com> # message auto-generated for no-merge-commit merge: !11210 merge fused_linear_cross_entropy_loss_grad-ascend950 into master feat: fused_linear_cross_entropy_loss_grad 适配 ascend950 Created-by: zihan0007 Commit-by: mazihan Merged-by: cann-robot Description: ## 描述 fused_linear_cross_entropy_loss_grad 算子新增 ascend950 支持(基于 upstream/master,4 个提交,14 文件): - **tiling**:950 上声明 batch 调度模式( SetScheduleMode(1),两个 TilingFunc 各一处)。kernel 内跨核 flag 计数屏障要求 launch 核共驻,950 上 stream 调度可能派发不全导致计数不齐而挂死,需声明 batch 模式保障全核派发 - **kernel**:CopyOutVecFull 行起始偏移显式按 uint64 计算(大 BT 场景下 startRow * VOut512BAlignedSize 可超出 int32 表示范围) - **平台注册**:def.cpp AddConfig / aclnn 平台检查 / CMakeLists COMPUTE_UNITS / ascend950 binary.json,接口文档标注 950 支持,**op_api_list.md 950 确定性列同步刷新** - **测试基建**:tests/assets/golden.py(符合 golden 编写规范:计算全部 torch 实现,numpy 仅限数据转换)与 ttk 验收用例 csv;UT 注册入口按 mat_mul_v3 风格收敛至算子根 CMakeLists(AddOpTestCase("ascend910B1;ascend950pr_9599"),op_host/op_api UT 由框架自动发现);新增 950 满核 28 核 kernel UT 用例(多 baseM 块 + wsNum workspace 轮转路径),tiling UT 补 SoC 版本 mock 覆盖 SetScheduleMode 分支与 dtype 矩阵/边界用例(11→16 条),aclnn UT 补 950 平台守卫与成功用例 ## 关联的Issue 无 ## 测试 本地 UT(fast 模式)实测: | UT 层 | ascend910b | ascend950 | |---|---|---| | op_kernel UT | 4/4 | 4/4(28 核用例全量执行,0 skip) | | op_host tiling UT | 16/16 | 16/16 | | op_host aclnn UT | 11/11 | 11/11(含 SocVersionManager(950) 用例) | 另在 950 环境完成真机验证:10 条典型三方 cross_check、bt8193 专项 5/5、50 次压测(5 条 × 10 轮)PASS 50/50、100 条泛化前 50 条 PASS。 配套交付: - 验证用例:cann/ops-test-kit MR #276(40 条精选 aclnn 用例) - 交付件(DESIGN/spec/golden/测试报告):opencann/operator-artifacts FusedLinearCrossEntropyLossGrad/ ## 文档更新 docs/aclnnFusedLinearCrossEntropyLossGrad.md:Ascend 950PR&950DT 支持状态由「不支持」更新为「支持」;docs/zh/op_api_list.md:本算子 950 确定性列由「-」刷新为「默认确定性实现」。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11210 | 1 天前 | |
修改产品名 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11348 merge master into master 修改产品名 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 修改产品名 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 仅涉及md文档更新,不涉及测试 ## 文档更新 修改所有md文件的产品名称 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11348 | 11 天前 | |
aidd问题修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11509 merge master into master aidd问题修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 aidd问题修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 文档更新不涉及测试 ## 文档更新 修改md文档在扫描出来的aidd问题 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11509 | 2 天前 | |
fix: Support non-configuous out for ForeachMulScalar Co-authored-by: yifangao<gaoyifan20@huawei.com> # message auto-generated for no-merge-commit merge: !11347 merge fix-non-contiguous into master fix: Support non-configuous out for ForeachMulScalar Created-by: yifangao Commit-by: yifangao Merged-by: cann-robot Description: ## 描述 修复 aclnnForeachMulScalarV2 对非连续输出 Tensor 的支持。此前仅将输入转为连续 Tensor,输出直接传给 kernel,无法按非连续输出的 stride 正确写回结果。 - 使用公共 helper 构造连续的输入、输出 TensorList,交由 kernel 计算,再通过 ViewCopy 将结果回写到原始非连续输出。 - 对已连续且 storage shape 与 view shape 一致的 Tensor 复用原 Tensor,保持 TensorList 的索引和数量对应。 - 补充转置输出、输入输出均非连续、连续与非连续混合输出 TensorList 的 UT。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6404 ## 测试 David冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20260930_101309053 Obp冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20261007_114531517 200条泛化用例自验通过。输入输出连续场景下性能无明显变化。 ## 文档更新 更新 foreach/foreach_mul_scalar/docs/aclnnForeachMulScalarV2.md,将输入 x 和输出 out 的“非连续Tensor”支持标记均改为 √。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!11347 | 2 天前 | |
fix: Remove unnecessary workspace for init_embedding_hash_table/sigmoid_cross_entropy_with_logits_v2/group_norm/group_norm_silu Co-authored-by: yifangao<gaoyifan20@huawei.com> # message auto-generated for no-merge-commit merge: !9867 merge workspace-remove-3 into master fix: Remove unnecessary workspace for init_embedding_hash_table/sigmoid_cross_entropy_with_logits_v2/group_norm/group_norm_silu Created-by: yifangao Commit-by: yifangao Merged-by: cann-robot Description: ## 描述 Ascend 950(arch35)路径下, init_embedding_hash_table、sigmoid_cross_entropy_with_logits_v2、group_norm 和 group_norm_silu 算子未实际使用 workspace,但原实现仍申请或保留了 workspace 相关处理。 本次修改: - 将上述 4 个算子的 workspace 大小设置为 0,避免不必要的内存申请。 - 删除 group_norm 和 group_norm_silu kernel 中未使用的 workspace 判空、用户 workspace 获取及参数传递。 - 统一 workspace 常量命名,并补充相关文件末尾换行。 - 修改仅作用于 Ascend 950(arch35)实现,不影响其他芯片路径。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6122 ## 测试 David冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20260928_144411817 obp冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20260929_083012442 ## 文档更新 无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9867 | 11 天前 | |
修复gather_elements算子在输入x在大于int32最大值时出现的精度问题 Co-authored-by: sikaiwei<sikaiwei1@h-partners.com> # message auto-generated for no-merge-commit merge: !11313 merge gather_elements_fix into master 修复gather_elements算子在输入x在大于int32最大值时出现的精度问题 Created-by: sikaiwei Commit-by: sikaiwei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> gather_elements的simt模板在输入x的shape是二维,个数大于int32最大值,并且index的最后一维不是2的幂时,精度失败。定位分析是kernel内对于dim2的场景与大于dim2的场景处理不同,大于dim2的场景,simt函数内使用的快除参数都是kernel内计算的,并且是区分了int32和int64场景的;而dim2场景走的路径并没有在kernel内计算,直接使用tiling里计算好的,tiling里快除参数的计算是固定int32场景的,所以导致了该问题。该pr把dim2场景也归入到大于dim2场景里,对齐大于dim2场景的实现后精度通过 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6278 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> st用例、冒烟等均已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11313 | 1 天前 | |
docs_fix Co-authored-by: jisongyuan@h-partners.com<jisongyuan@h-partners.com> # message auto-generated for no-merge-commit merge: !11525 merge master into master docs_fix Created-by: ji-songyuan Commit-by: jisongyuan@h-partners.com Merged-by: cann-robot Description: ## 描述 修正 loss/l1_loss_grad/docs/aclnnL1LossBackward.md 文档中 ACLNN_ERR_PARAM_NULLPTR(错误码 161001)的参数名错误:将 out 修正为 gradInput,与 aclnnL1LossBackward 接口实际的输出参数名保持一致。 ## 关联的Issue #6402 ## 测试 文档修改,无需运行测试。 ## 文档更新 本次 PR 即文档更新:修正 aclnnL1LossBackward.md 的错误码说明。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11525 | 2 天前 | |
修复matmul 目录 README 文档错别字和中英文语义重复问题 Co-authored-by: yangyang016<yangyang306@hisilicon.com> # message auto-generated for no-merge-commit merge: !11612 merge master into master 修复matmul 目录 README 文档错别字和中英文语义重复问题 Created-by: yangyang016 Commit-by: yangyang016 Merged-by: cann-robot Description: ## 描述 修复 AIDD 扫描发现的 matmul 目录 README 文档错别字和中英文语义重复问题,统一术语表达,提升文档准确性。本次仅修改文档,不涉及算子接口及功能逻辑变化。 ## 修改内容 - 修正 dual_level_quant_batch_matmul/README.md 计算说明及公式中的变量名:Levl0/Levl1 改为 Level0/Level1。 - 修正 gemm_v2/README.md 和 gemm_v3/README.md 中“输入input和输出”的中英文重复表述。 - 修正 quant_batch_matmul_inplace_add/README.md 中“梯度累计”为“梯度累积”。 ## 关联的Issue - 关联 [Issue #6415](https://gitcode.com/cann/ops-nn/issues/6415) ## 测试 - git diff --check 检查通过。 - 已检查目标 README,不再包含 Levl、输入input、梯度累计 等问题文本。 - 本次为纯文档修改,不涉及代码编译及单元测试。 ## 文档更新 更新以下 README: - matmul/dual_level_quant_batch_matmul/README.md - matmul/gemm_v2/README.md - matmul/gemm_v3/README.md - matmul/quant_batch_matmul_inplace_add/README.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11612 | 1 天前 | |
refactor: 代码规范整改 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !11305 merge ccc_0928 into master refactor: 代码规范整改 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本次提交对 log_softmax_v2、softmax_v2、add_rms_norm_cast、add_rms_norm_quant、rms_norm 五个算子目录及脚本 scripts/util/parse_changed_files.py 进行代码规范整改。 ### 改动原因 1. 部分文件的版权声明头仍为旧版格式(Copyright 2025 及旧 License 措辞),需统一为 2026 年新版规范格式。 2. 部分源文件(.cpp/.h/.py/.json/CMakeLists.txt)文末缺少换行符以及代码格式,不符合代码检查要求。 3. 部分 Python 测试脚本存在代码风格问题:单双引号混用、docstring 风格不统一、字典格式冗余、未使用的 import/变量、行尾空白。 ### 改动方法 1. 统一版权声明头为 2026 年新版格式,并规范化 License 措辞。 2. 为文末缺少换行符的文件补齐换行。 3. 规范化 Python 代码风格:统一双引号、docstring 采用 """、精简字典格式、清理未使用的 import 与变量、去除行尾空白。 ## 关联的Issue 关联 Issue #6287 ## 测试 本次为代码规范整改与脚本逻辑修正,不涉及算子功能变更;相关算子测试用例逻辑未改动。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范整改(copyright 头、文末换行、Python 格式) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11305 | 2 天前 | |
fix(optim): inplace_apply_ftrl tiling健壮性修复 Co-authored-by: zhaixiao<zhaixiao1@huawei.com> # message auto-generated for no-merge-commit merge: !10478 merge fix/inplace-apply-ftrl-tiling-robustness into master fix(optim): inplace_apply_ftrl tiling健壮性修复 Created-by: Onthetreeoh Commit-by: zhaixiao Merged-by: cann-robot Description: ## 描述 InplaceApplyFtrl 算子 Tiling 健壮性修复,共 1 文件(+3/-3),来自 ops-code-reviewer 代码检视发现项: **1. 出参初始化(检视发现:外部数据合法性检查 MED)** - GetPlatformInfo 出参 ubSize/coreNum 未初始化即传入 void 返回的 GetCoreMemSize。平台信息异常未写出参时,*ubSize == 0 检查将读取未初始化值,校验失效 - 修复:初始化为 0,使"未写出"情形自然落入失败分支(对齐仓内 Ops::Base::GetUbSize 先置 0 的实现惯例) **2. 日志表意修正(检视发现:LOG API 规范 MED)** - ubSize == 0 时原日志 "ubSize is 0, fallback to 0" 声称回退,实际行为为 return ge::GRAPH_FAILED,误导排障 - 修复:改为 "ubSize is 0, get platform UB size failed",OP_LOGW → OP_LOGE 与 coreNum 分支风格统一 ## 验证 - build.sh --pkg --soc=ascend950 --ops=inplace_apply_ftrl 全量构建通过(-Wall -Wextra -Wshadow -Wformat=2 无告警) - TTK 20 用例两方对拍(dyn vs TF golden,seed=7):18/20 PASS、性能 20/20,与修复前基线完全一致(无数值行为变化) - GEIR 动态通路:unknown_dim(-1) 5/5 + unknown_rank(-2) 5/5 全部 PASSED ## 备注 同批检视发现的"通用 Power 分支补 floor 守卫"建议经 TTK A/B 实测引入 4 个精度回归(TF golden 在 accum=0 时 pow(0,p)=0 → var=±inf,加 eps 守卫后偏离 golden),已确认原实现为 TF 语义一致的正确行为,不在本 PR 修改范围内。 See merge request: cann/ops-nn!10478 | 1 天前 | |
fix(pooling): 消除 VF scope 内结构体参数访问,修复 Ascend950 VF stack 波动 Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !11396 merge fix/pooling-vf-scope-param-struct into master fix(pooling): 消除 VF scope 内结构体参数访问,修复 Ascend950 VF stack 波动 Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 - 回退“收编 Ascend950/arch35 Kernel 重复实现”在 pooling 侧引入的结构体参数访问,恢复局部变量推导,消除 -Wcce-compat 告警与 VF stack 上涨; - MaxPoolGradWithArgmaxV3 NCHW int64 索引路径:索引装载细化 + 主循环拆分 VF scope,修复VF stack 爆栈问题(6944B/6176B > 6144B)导致的编译失败。 ## 关联的Issue [#6326](https://gitcode.com/cann/ops-nn/issues/6326) ## 测试 本地复跑不同的数据类型用例组合均通过,-d模式下无爆栈问题,精度均通过,David冒烟无异常 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11396 | 10 天前 | |
aclnnDynamicQuantV2参数校验修改 Co-authored-by: liujie12345678<liujie81@huawei.com> # message auto-generated for no-merge-commit merge: !11389 merge master into master aclnnDynamicQuantV2参数校验修改 Created-by: liujie12345678 Commit-by: liujie12345678 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 issue [#6271](https://gitcode.com/CANN/ops-nn/issues/6271):MoE 场景(groupIndexOptional 提供)下专家数为 0 时, aclnnDynamicQuantV2 第一段接口未拦截非法 shape,错误被推迟到 tiling/构图阶段并以 561103(ACLNN_ERR_INNER_NULLPTR)报出,与文档约定的 161002(ACLNN_ERR_PARAM_INVALID)不符。 具体改动: 1. 第一段接口(quant/dynamic_quant/op_host/op_api/aclnn_dynamic_quant.cpp):group_index 提供时补齐对 smooth_scales 的关联校验——smooth_scales 必须非空、必须为 2 维(专家数, x 最后一维)、第一维与 group_index 长度一致、专家数不超过 1024、x 非空时专家数不小于 1,均返回 ACLNN_ERR_PARAM_INVALID。 2. Tiling(quant/dynamic_quant/op_host/dynamic_quant_tiling.cpp):group_index 提供且专家数为 0 时直接校验失败;MoE 分支判断由 groupNum >= 1 调整为按 group_index 是否提供,避免专家数为 0 的 MoE 输入落入非 MoE 分支报出误导性错误信息。 说明:该校验为 aclnnDynamicQuant / V2 / V3 / V4 共用,本改动对四个入口同时生效。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#6271](https://gitcode.com/CANN/ops-nn/issues/6271) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1. 新增 L2 UT(quant/dynamic_quant_v2/tests/ut/op_host/test_aclnn_dynamic_quant_v2.cpp): - x 非空 + smoothScales(0,8) + groupIndex(0,):第一段返回 ACLNN_ERR_PARAM_INVALID(issue 复现用例); - x 为空 Tensor + 专家数为 0:走空 Tensor 提前返回,返回 ACLNN_SUCCESS; - group_index 提供时 smooth_scales 缺省 / 为 1 维 / 专家数与 group_index 长度不一致:均返回 ACLNN_ERR_PARAM_INVALID; - 存量 3 个 MoE 用例的 smooth_scales 形状由 1 维修正为 (8, 32)。 2. 新增 tiling UT(quant/dynamic_quant/tests/ut/op_host/test_dynamic_quant_tiling.cpp):group_index(0,) 提供时 tiling 返回 GRAPH_FAILED。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 本 PR 未包含文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11389 | 2 天前 | |
[doc-fix] 修正dynamic_rnn readme中mask参数的dtype Co-authored-by: yaochen<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !11606 merge doc_fix into master [doc-fix] 修正dynamic_rnn readme中mask参数的dtype Created-by: nextyale Commit-by: yaochen Merged-by: cann-robot Description: ## 描述 修正dynamic_rnn readme中mask参数的dtype ## 关联的Issue issue6336 ## 测试 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> rnn/dynamic_rnn/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11606 | 1 天前 | |
[feat] support ascend960 Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !11506 merge pkg into master [feat] support ascend960 Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 ops-nn新增支持soc:ASCEND960PR、ASCEND960DT ## 关联的Issue [#6396](https://gitcode.com/cann/ops-nn/issues/6396) ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11506 | 2 天前 | |
修复使用asan执行ut的报错 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !10930 merge master into master 修复使用asan执行ut的报错 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 背景:当前ut使用asan工具执行ut报错,需要修复 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10930 | 12 天前 | |
fix(add_rms_norm_dynamic_quant): 顶层入口对非int标量做原始类型校验,修复dispatcher归一化绕过 Co-authored-by: wangqi<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !10891 merge fix/add-rms-norm-quant-public-entry-validation into master fix(add_rms_norm_dynamic_quant): 顶层入口对非int标量做原始类型校验,修复dispatcher归一化绕过 Created-by: wangqi_ai Commit-by: wangqi Merged-by: cann-robot Description: ## 关联 issue fixes #6055 ## 问题 顶层入口 cann_ops_nn.add_rms_norm_dynamic_quant(文档单算子示例路径)解析为 dispatcher OpOverloadPacket,标量参数在进入算子代码前被 schema 静默归一化(torch.int4 -> 40、torch.uint7 -> 36、np.int64(36) -> 36 等)。torch.uint6/uint7/int4/int5 四个 dtype 的序号恰好完整覆盖合法 dst_type 值域 {35,36,40,41},导致传入非 int 类型完全不报错、静默按"碰巧"的量化类型执行,与约束说明承诺的入口 TypeError 不符。详见 #6055。 ## 修改内容 1. torch_extension/cann_ops_nn/ops/norm/add_rms_norm_dynamic_quant/add_rms_norm_dynamic_quant.py 拆分 PrivateUse1 kernel(原逻辑逐字保留)与公开入口 add_rms_norm_dynamic_quant:先 _validate_arg_types 校验**原始**参数,再委托 torch.ops.cann_ops_nn.add_rms_norm_dynamic_quant 分发;公开入口携带 _cann_ops_nn_public_entry_ 标记。 2. torch_extension/cann_ops_nn/__init__.py __getattr__ 优先导出带标记的公开入口(而非 dispatcher 句柄);未携带标记的算子保持原行为——opt-in 机制,对其余算子零影响。 3. norm/add_rms_norm_dynamic_mx_quant/tests/ut/torch_extension/test_torch_extension_param_validation.py 入口结构锁定用例更新为断言"公开入口 + 与 raw 入口同一函数对象"(标量拦截覆盖经同一性断言传递至既有用例);删除与 test_scalar_type_interception 完全重复(同函数×同 7 个坏值×同断言)的参数化用例。 4. norm/add_rms_norm_dynamic_mx_quant/docs/torchapi_add_rms_norm_dynamic_quant.md 约束说明修正严格校验适用入口(补充顶层入口;dispatcher 归一化说明限定为直接经 torch.ops 调用场景);两个调用示例改为打印 shape/dtype,避免大 shape 输出刷屏。 ## 为什么委托 torch.ops 而非直调 C++ 模块 保证图模式行为不变:torch.compile 下 Dynamo 将公开入口内联后,torch.ops 调用仍作为 FX 图节点(实测 node.target 与修复前同为 OpOverloadPacket、逐节点一致),graph_convert 注册的 torchair GE 转换不受影响;若直调 C++ 模块则会在 builder.load() 处 graph break,图模式静默退化为 eager(mxscale dtype 等文档承诺行为改变)。 ## 验证(Ascend 950PR 实测) - 参数校验 UT:**42 passed**(meta/CPU,设备无关) - NPU UT test_torch_extension.py:**113 passed** - 文档 eager 示例路径实测:torch.int4/uint6/uint7/int5、torch.float8_e5m2/e4m3fn、np.int64/np.int32、36.0、"36"、True 全部抛指名 TypeError(如 dst_type must be a Python int (35=FP8_E5M2, 36=FP8_E4M3FN, 40=FP4_E2M1, 41=FP4_E1M2), but got torch.dtype: torch.int4);dst_type=36 正常输出 float8_e4m3fn (4,64),示例新打印语句输出与返回值说明表一致 - 图模式:FX 图与修复前逐节点一致;graph(trace) 与 eager 数值 torch.equal 为 True;torch.compile 下传 torch.int4 在 trace 阶段即 TypeError - pre-commit run(ruff check / ruff format / codespell / OAT 等)全部通过,零自动改动 ## 兼容性 - eager 合法调用(Python 原生 int/str/bool/float、IntEnum)行为不变 - torch.ops.cann_ops_nn.* 直调路径行为不变(框架归一化 + 值域兜底,文档已说明) - 其余算子顶层入口解析行为不变(仅带标记的公开入口生效) See merge request: cann/ops-nn!10891 | 19 天前 | |
统一aclnnScaledMaskedSoftmax的fixTriuMask参数为fixedTriuMask Co-authored-by: caihualilili<liangfuzhan@h-partners.com> # message auto-generated for no-merge-commit merge: !11599 merge sms_smsg_fixedTriuMask into master 统一aclnnScaledMaskedSoftmax的fixTriuMask参数为fixedTriuMask Created-by: caihualilili Commit-by: caihualilili Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 主要围绕 aclnnScaledMaskedSoftmax 系列接口的参数命名统一,将与上三角掩码相关的参数名由 fixTriuMask/triuMask 统一为 fixedTriuMask ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6431 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11599 | 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 | 3 个月前 | |
docs: 新增图融合规则说明文档 Co-authored-by: linzehui2058<2602241040@qq.com> # message auto-generated for no-merge-commit merge: !9676 merge fusion_pass_doc into master docs: 新增图融合规则说明文档 Created-by: linzehui2058 Commit-by: linzehui2058 Merged-by: cann-robot Description: ## 描述 对于已开源的图融合算子,进行对应的资料开源,包含MatmulToGemmOpFusionPass、MatmulReshapeTransposeFusionPass、GemmToMatmulFusionPass、BatchMatMul2MulFusionPass 其中的png图片格式,使用lfs进行托管 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5541 ## 文档更新 matmul\batch_mat_mul_v3\docs\BatchMatMul2MulFusionPass.md matmul\mat_mul_v3\docs\MatmulToGemmOpFusionPass.md matmul\mat_mul_v3\docs\MatmulReshapeTransposeFusionPass.md matmul\mat_mul_v3\docs\GemmToMatmulFusionPass.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9676 | 1 个月前 | |
动态库解耦 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !8927 merge master into master 动态库解耦 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 本 PR 旨在将算子侧代码与 legacy 动态库(libophost_comm_legacy.so)解耦:LegacyCommonMgr 新增 isSupported_ 支持位与 IsSupport() 接口,依据编译宏 ASCEND_COMPUTE_UNIT 判断当前 SoC 版本是否属于受支持集合 SUPPORTED_VERS(ascend910b、ascend910_93、ascend310p、ascend310b、ascend910),仅受支持时才 dlopen 加载 legacy 库;各 legacy 封装接口在不受支持时提前短路返回,matmul 系列算子的 tiling 流程同步改为容忍 legacy 能力缺失而不再硬失败,并配套调整 CMake 编译宏与 UT 测试。 ## 关联的Issue [5093](https://gitcode.com/cann/ops-nn/issues/5093) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8927 | 1 个月前 | |
einsum_pass图融合开源 Co-authored-by: linzehui2058<2602241040@qq.com> # message auto-generated for no-merge-commit merge: !9312 merge einsum_pass into master einsum_pass图融合开源 Created-by: linzehui2058 Commit-by: linzehui2058 Merged-by: cann-robot Description: ## 描述 einsum_pass图融合开源+资料开源,资料涉及公式label,会误判为拼写错误,同步添加检查白名单 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6241 ## 测试 门槛用例验证 ## 文档更新 matmul/batch_mat_mul_v3/docs/EinsumPass.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:融合算子开源 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9312 | 11 天前 | |
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 | 2 个月前 | |
[feat] support ascend960 Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !11506 merge pkg into master [feat] support ascend960 Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 ops-nn新增支持soc:ASCEND960PR、ASCEND960DT ## 关联的Issue [#6396](https://gitcode.com/cann/ops-nn/issues/6396) ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11506 | 2 天前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 11 天前 | |
init | 1 年前 | |
docs: add LayerNormRemoveBroadcastFusionPass doc Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !9631 merge ln_pass_doc into master docs: add LayerNormRemoveBroadcastFusionPass doc Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 为现有LayerNormRemoveBroadcastFusionPass融合规则补充独立资料页。该规则在Ascend 950PR/Ascend 950DT场景下,将LayerNorm算子gamma和beta输入前的BroadcastTo从图中删除,使gamma和beta直接作为LayerNorm算子的输入,并将begin_norm_axis和begin_params_axis统一设置为归一化维度的起始轴。 资料同步说明规则的使用约束: - LayerNorm算子的gamma和beta输入前均为BroadcastTo,且两个BroadcastTo的shape输入相同。 - 输入x、gamma和beta均为静态shape。 - gamma和beta不为标量,二者的shape和数据类型相同。 - gamma的维数不大于x的维数,且gamma的shape与x从归一化轴开始的后缀shape相同。 - LayerNorm算子的begin_norm_axis换算为非负轴后,指向归一化维度的起始轴。 同时新增融合前后拓扑对比图,展示两个BroadcastTo节点被移除前后的图结构。 ## 关联的Issue - https://gitcode.com/cann/ops-nn/issues/5430 ## 测试 - 本次仅新增文档和配图,不涉及代码逻辑变更,未执行代码测试。 - 已检查Markdown格式、图片文件格式及图片引用路径。 ## 文档更新 - 新增 norm/layer_norm/docs/LayerNormRemoveBroadcastFusionPass.md,说明融合模式和使用约束。 - 新增docs/zh/figures/LayerNormRemoveBroadcastFusionPass_1.png,展示融合前后的图结构。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9631 | 1 个月前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 11 天前 | |
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 | 2 个月前 | |
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 个月前 | |
[feat] support ascend960 Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !11506 merge pkg into master [feat] support ascend960 Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 ops-nn新增支持soc:ASCEND960PR、ASCEND960DT ## 关联的Issue [#6396](https://gitcode.com/cann/ops-nn/issues/6396) ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11506 | 2 天前 | |
feat: add qbmm swiglu mx quant fusion Co-authored-by: smdbha<panzhijie2@huawei.com> # message auto-generated for no-merge-commit merge: !11230 merge master into master feat: add qbmm swiglu mx quant fusion Created-by: smdbha Commit-by: smdbha Merged-by: cann-robot Description: ## 描述 为 quant_matmul_activation_quant 算子增加 SwiGLU 与 MX 动态量化融合能力,并重构相关校验、推导和 Tiling 流程。 - 支持 SwiGLU:Matmul + Bias 后按 [gate | linear] 切分,计算 SiLU(gate) * linear,输出维度为输入的 1/2。 - 支持 Ascend 950、FP8 E4M3/E5M2、FP4 E2M1,以及 ND/WeightNZ 输入布局。 - 根据 scaleAlg 支持 OCP/BLAS 量化路径,并补充 FP4 对应量化算法。 - 新增 batch/without-batch kernel 路径,完善 WeightNZ、转置、MX Scale Shape 等参数校验。 - 保留并整理 GELU 现有路径,更新 Torch/ACLNN 接口、InferShape、Tiling、文档、示例和测试用例。 ## 关联的Issue - https://gitcode.com/cann/ops-nn/issues/5902 ## 测试 - 已补充和更新 op_api、op_host、op_kernel UT 及 ST CSV。 - 已补充 GELU/SwiGLU、ND/WeightNZ、FP8/FP4、batch/without-batch 等主要场景用例。 ## 文档更新 - 已更新算子 README、接口说明、示例及测试相关文档。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11230 | 11 天前 | |
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 | 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 个月前 | |
revert//fix(opgraph): 支持旧版本 CANN 运行时加载融合 pass 库 Co-authored-by: cann-robot<cann@cann.team> # message auto-generated for no-merge-commit merge: !11095 merge revert-mr-9924-1790130631176-auto into master revert//fix(opgraph): 支持旧版本 CANN 运行时加载融合 pass 库 Created-by: cann-robot Commit-by: cann-robot Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11095 | 17 天前 | |
upgrade version 9.2.0 Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !9513 merge master into master upgrade version 9.2.0 Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 upgrade version 9.2.0 ## 关联的Issue [#5362](https://gitcode.com/cann/ops-nn/issues/5362) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 版本更新 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9513 | 1 个月前 |
🔥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&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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。