本项目是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 | 16 天前 | |
relu6 算子 dtype 分发机制修改为由def驱动,补全 InferShape/InferDataType 规范化实现。 Co-authored-by: zhangweiwei11<3104154550@qq.com> # message auto-generated for no-merge-commit merge: !8721 merge pr/relu6-normalization into master relu6 算子 dtype 分发机制修改为由def驱动,补全 InferShape/InferDataType 规范化实现。 Created-by: zhangweiwei11 Commit-by: zhangweiwei11 Merged-by: cann-robot Description: ## 描述 relu6 算子存在两类规范化问题:dtype 分发机制与仓内标准模式不一致、InferShape/InferDataType 实现不完整。本 PR 仅针对这两方面进行整改,不涉及算法逻辑变更。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4811 ## 测试 - UT 编译验证:tests/ut/op_kernel/CMakeLists.txt 已配置 -DDTYPE_X=half + MULTI_KERNEL_TARGET,验证 DTYPE_X 宏方式编译通过 - UT 用例一致性:test_relu6.cpp 中 6 个测试用例(fp32_small、fp32_multi_loop、fp16_small、int32_small、bf16_small、fp16_multi_loop)同步移除 dataType 赋值,与 TilingData 结构体定义一致 - InferShape UT:test_relu6_infershape.cpp 覆盖 float16/float/int32/bf16 四种 dtype + scalar/empty shape 场景,验证 InferShape 正确性 - 参考算子对齐:改动后与 celu_v2(def 驱动 dtype + InferDataType)实现模式完全一致 ## 文档更新 无。本次改动不涉及 README.md 或其他文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x ] 其他,请描述:规范化整改(dtype 分发机制对齐 + InferShape/InferDataType 补全) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ x] AI辅助编写 See merge request: cann/ops-nn!8721 | 14 天前 | |
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 | 16 天前 | |
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 | 15 天前 | |
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 | 27 天前 | |
修复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 | 15 天前 | |
[CANNBot]:新增ActULQClampMinGrad算子适配 Ascend950 Co-authored-by: Coder_Nerd<shishuai5@huawei.com> # message auto-generated for no-merge-commit merge: !8762 merge master into master [CANNBot]:新增ActULQClampMinGrad算子适配 Ascend950 Created-by: Coder_Nerd Commit-by: Coder_Nerd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 算子功能:用于ULQ(Ultra-Low-bit Quantization,超低比特量化)量化感知训练中,计算clamp下界截断的反向梯度。该算子对输入张量执行全轴归约求和操作,输出一个标量梯度值。 - 计算公式: $$ clamp\_min\_grad = \sum_{全轴}(y\_grad \times ((1 - clamp\_min\_mask) - x\_clamped\_loss)) $$ 其中: - $y\_grad$:来自后续层的梯度张量 - $clamp\_min\_mask$:clamp下界掩码(布尔型或浮点型,取值为0或1) - $x\_clamped\_loss$:经过clamp后的损失值张量 - $clamp\_min\_grad$:输出的标量梯度(0维张量) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4366 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8762 | 15 天前 | |
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 | 1 个月前 | |
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 | 20 天前 | |
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 | 15 天前 | |
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 | 1 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 14 天前 | |
修复 SmoothL1LossGrad README Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !8822 merge codex/fix-smooth-l1-loss-grad-dout-doc into master 修复 SmoothL1LossGrad README Created-by: zhongheng Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 SmoothL1LossGrad README 中第三个输入名称与实际接口定义不一致的问题。 将计算公式、参数表、dtype 约束和 shape 约束中的 gradOutput 统一修改为 dout,与需求文档、CANNDEV 原型、op_graph、op_host 及构建生成的 binary.json 保持一致。 问题根因是算子首次提交时 codespell 尚未豁免 dout,因此 README 使用了 gradOutput;当前 .pre-commit-config.yaml 已将 dout 加入白名单。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> https://gitcode.com/cann/ops-nn/issues/4862 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新 loss/smooth_l1_loss_grad/README.md,将四处 gradOutput 统一为 dout。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8822 | 15 天前 | |
【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 | 15 天前 | |
EuclideanNorm,AscendAntiQuant 资料增加A2/A3的支持 | 14 天前 | |
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 | 15 天前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 14 天前 | |
EuclideanNorm,AscendAntiQuant 资料增加A2/A3的支持 | 14 天前 | |
修复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 | 15 天前 | |
[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 | 16 天前 | |
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 | 26 天前 | |
删除未实现的引入 Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !8813 merge torch into master 删除未实现的引入 Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 torch定义了未实现的test目录,需要删除 ## 关联的Issue [#4869](https://gitcode.com/cann/ops-nn/issues/4869) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8813 | 15 天前 | |
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 | 23 天前 | |
修改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 | 1 个月前 | |
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 | 21 天前 | |
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 | 30 天前 | |
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 | 19 天前 | |
产品文档中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 | 28 天前 | |
init | 10 个月前 | |
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 | 1 个月前 | |
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 | 26 天前 | |
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 | 30 天前 | |
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 | 6 个月前 | |
【描 述】 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 | 6 个月前 | |
修复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 | 21 天前 | |
补充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 | 15 天前 | |
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 | 30 天前 | |
调整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 | 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 | 1 个月前 | |
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 | 3 个月前 |
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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。