本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修改编译任务 Co-authored-by: chenyajie<chenyajie6@huawei.com> # message auto-generated for no-merge-commit merge: !7462 merge master into master 修改编译任务 Created-by: yajie_caroline Commit-by: chenyajie Merged-by: cann-robot Description: ## 描述 修改代码话编译任务始终跳过不跑的bug ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4069 ## 测试 在测试环境中验证修改过后可以正常识别条件跑编译 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7462 | 2 个月前 | |
!1 merge fix/def-driven-dtype-and-infer-celu-dfdm-apgd into master fix: def-driven dtype + InferDataType separation for Celu/DataFormatDimMap/ApplyProximalGradientDescent Created-by: babeiee Commit-by: l50065286 Merged-by: babeiee Description: ## Changes Per operator (Celu, DataFormatDimMap, ApplyProximalGradientDescent): ### 1. def-driven dtype (item 7) - tiling_key.h: ASCENDC_TPL_DATATYPE_DECL → ASCENDC_TPL_UINT_DECL - kernel .cpp/_apt.cpp: template <typename D_T> → template <int MODE>, use DTYPE_<INPUT> macro - tiling_arch35.cpp/tiling.cpp: ASCENDC_TPL_SEL_PARAM no longer passes dtype value ### 2. InferShape/InferDataType separation (item 8) - Delete op_host/*_infershape.cpp (InferShape reused from canndev runtime) - Create op_graph/*_graph_infer.cpp with IMPL_OP().InferDataType() registration - InferDataType logic: output dtype = input[0] dtype ### 3. Celu dynamic GEIR example added (item 5) Reference: ops-cv PR 1126, acts_ulq_input_grad pattern See merge request: babeiee/ops-nn!1 | 1 个月前 | |
support deb\rpm pkg Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !8121 merge pkg into master support deb\rpm pkg Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 此 PR 为构建系统新增了 deb 和 rpm 包格式支持。通过新增的 --pkg-type 参数(支持 run/rpm/deb/all),用户可在 --pkg 构建模式下选择生成指定格式的系统安装包,并配套了 RPM/DEB 包的安装后/卸载前脚本以自动管理 Python wheel 文件,同时更新了底层 cann-cmake 依赖版本及包描述文件的权限配置。 主要改动 build.sh 新增 --pkg-type 参数及包类型构建流程:新增 check_pkg_type 校验函数,限定仅接受 run/rpm/deb/all;在 check_param 中约束非 run/all 类型不得与 --static、--jit、--ops/--vendor_name/--experimental 等自定义算子选项混用;build_pkg 中对 all 类型循环构建三种包,并通过 clean_rpm_deb_package 和 collect_rpm_deb_package 清理旧产物与复制成品到输出目录。 新增 RPM/DEB 安装与卸载脚本:custom_postinst.sh 在包安装后通过 pip install 自动部署 es_packages/whl 及 python/site-packages 下的 .whl 文件;custom_prerm.sh 在包卸载前通过 pip uninstall 移除 cann-ops-nn 和 es-nn,并清理相关目录和残留文件。 cmake/package.cmake 传递 PACKAGE_TYPE 并调整包配置:set_cann_cpack_config 调用中新增 PACKAGE_TYPE "${PACKAGE_TYPE}" 参数;移除了 path.cfg 配置文件的安装逻辑;新增 CANN_VERSION_ops-nn_VERSION 的版本号映射以兼容 CPack 组件命名。 fetch_cann_cmake.cmake 升级底层依赖版本:CANN_CMAKE_TAG 从 master-015 升级至 master-046,并新增离线包的 URL_HASH(SHA256)校验。 CI 打包脚本及包描述文件权限调整:ops_run_repackage.sh 新增 --pkg-type 参数解析,并在非 run 类型时调用 ops_generate_rpm_deb.sh 生成 RPM/DEB 包;ops_nn.xml 调整 scene.info 权限为 640、version.info 显式设为 440,并移除了对已删除 EngineeringFiles.xml 的引用。 ## 关联的Issue [#4536](https://gitcode.com/cann/ops-nn/issues/4536) ## 测试 本地验证 --pkg-type 参数校验逻辑 CI 流水线已通过 ## 文档更新 更新 docs/zh/install/compile.md 中 cann-cmake 版本信息 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8121 | 1 个月前 | |
merge: apply_adam_v2 转测准入检查项补齐 Co-authored-by: handsomeRobot_SK<suke13@huawei.com> # message auto-generated for no-merge-commit merge: !8201 merge master into master merge: apply_adam_v2 转测准入检查项补齐 Created-by: handsomeRobot_SK Commit-by: handsomeRobot_SK Merged-by: cann-robot Description: ### 标题 feat(optim): 新增 ApplyAdamV2 和 FusedMulApplyMomentum 算子 Ascend950 实现 ### 描述 #### 变更内容 本 PR 为 Ascend950 (arch35) 平台新增两个优化器算子的完整实现: **1. ApplyAdamV2** - Adam 优化器变体,支持 adam / mbart_adam 两种模式 - 12 输入(含 2 个 Optional:max_grad_norm、step_size)/ 3 输出 - 支持 DT_FLOAT16、DT_FLOAT,FP16 内部提升至 FP32 计算 - 支持动态 shape(-1)和动态 rank(-2) **2. FusedMulApplyMomentum** - 融合梯度缩放(mul)与动量更新(apply_momentum) - 6 输入 / 2 输出(inplace 复用 var、accum) - 支持标准动量和 Nesterov 动量(use_nesterov 属性) - 支持广播 shape,最大 rank 8 #### 主要改动 | 模块 | 说明 | |------|------| | op_host/*_def.cpp | 算子注册定义(OpDef 格式),属性标记 AttrType(OPTIONAL) | | op_host/arch35/*_tiling_arch35.cpp | Tiling 实现,含维度/dtype/format 校验 | | op_graph/*_proto.h | GE IR 图构建 proto 定义 | | op_kernel/arch35/ | AscendC kernel 实现 | | common/inc/op_graph/op_nn_proto_extend.h | 移除旧 REG_OP(ApplyAdamV2) 定义,迁移至 OpDef 格式 | | examples/arch35/ | GEIR 静态/动态/异常用例(本地保留,暂不入库) | #### Tiling 校验项 - 维度数 ≤ 8(MAX_DIM_NUM) - dtype 仅支持 DT_FLOAT16、DT_FLOAT - format 仅支持 FORMAT_ND - 输入间 dtype 一致性校验 - 广播 shape 兼容性校验 #### 提交记录 | Commit | 说明 | |--------|------| | a18138bfa | feat(optim): add apply_adam_v2 operator (Ascend950, arch35) | | ae5c7ae52 | feat(optim): fused_mul_apply_momentum | | f5b882236 | feat(optim): add apply_adam_v2 operator | | ca43328b0 | feat(fused_mul_apply_momentum): add tiling exception checks | | 2325929ee | feat(apply_adam_v2): 补齐转测准入检查项 | | 38bea1cdc | merge: apply_adam_v2 转测准入检查项补齐 | | a77f1cd6d | feat(optim): 对齐校验格式(OP_LOGE 统一风格) | | e345b1414 | chore: 从远端移除 example 测试文件(本地保留) | --- See merge request: cann/ops-nn!8201 | 1 个月前 | |
fallback 迁移 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !8131 merge ziliao into master fallback 迁移 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 变更摘要 此 PR 为三个量化相关算子新增了 fallback 执行实现,均以 IMPL_OP 宏注册到 fallback 命名空间中。当硬件原生不支持这些算子时,框架将通过 fallback 路径调用对应的 aclnn API 在 Host 侧完成计算,从而提供兜底能力。 ### 主要改动 * 新增 QuantBatchMatmulInplaceAdd fallback 实现: 在 quant_batch_matmul_inplace_add_fallback.cpp 中,通过 QuantBatchMatmulInplaceAddExecuteFunc 获取输入张量 x1、x2、x2Scale、可选 x1Scale 及 yRef,解析 transposeX1、transposeX2、groupSize 属性后调用 aclnnQuantBatchMatmulInplaceAdd API 执行计算。 * 新增 QuantBatchMatmulV3 fallback 实现: 在 quant_batch_matmul_v3_fallback.cpp 中,QuantBatchMatmulV3ExecuteFunc 根据输入数据类型(是否属于 v5InputDtypes 或满足 isA8W8GB 条件)分发到 aclnnQuantMatmulV5 或 aclnnQuantMatmulV4 API,支持 float8/fp4 等新数据类型及 INT8 分组量化场景。 * 新增 TransQuantParamV2 fallback 实现: 在 trans_quant_param_v2_fallback.cpp 中,TransQuantParamV2ExecuteFunc 获取 scale、可选 offset 及输出张量,解析 roundMode 属性后调用 aclnnTransQuantParamV3 API 完成量化参数的转换。 ## 关联的Issue [#4535](https://gitcode.com/cann/ops-nn/issues/4535) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8131 | 1 个月前 | |
解决convback编译warning问题 Co-authored-by: wishercy<zhaoyang56@huawei.com> # message auto-generated for no-merge-commit merge: !8202 merge codecheck1 into master 解决convback编译warning问题 Created-by: wishercy Commit-by: wishercy Merged-by: cann-robot Description: ## 描述 编译时下面两个文件有表达式类型不匹配告警 conv/common/op_host/conv_backprop_infershape.cpp conv/common/op_host/op_tiling/convbp_tiling_debug_util.h ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4556 ## 测试 bash build.sh --opkernel --soc=conv2d_v2 --soc=ascend950 --no_force 执行命令时无报错 UT、RDV冒烟用例全部通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8202 | 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 个月前 | |
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 个月前 | |
!1 merge fix/def-driven-dtype-and-infer-celu-dfdm-apgd into master fix: def-driven dtype + InferDataType separation for Celu/DataFormatDimMap/ApplyProximalGradientDescent Created-by: babeiee Commit-by: l50065286 Merged-by: babeiee Description: ## Changes Per operator (Celu, DataFormatDimMap, ApplyProximalGradientDescent): ### 1. def-driven dtype (item 7) - tiling_key.h: ASCENDC_TPL_DATATYPE_DECL → ASCENDC_TPL_UINT_DECL - kernel .cpp/_apt.cpp: template <typename D_T> → template <int MODE>, use DTYPE_<INPUT> macro - tiling_arch35.cpp/tiling.cpp: ASCENDC_TPL_SEL_PARAM no longer passes dtype value ### 2. InferShape/InferDataType separation (item 8) - Delete op_host/*_infershape.cpp (InferShape reused from canndev runtime) - Create op_graph/*_graph_infer.cpp with IMPL_OP().InferDataType() registration - InferDataType logic: output dtype = input[0] dtype ### 3. Celu dynamic GEIR example added (item 5) Reference: ops-cv PR 1126, acts_ulq_input_grad pattern See merge request: babeiee/ops-nn!1 | 1 个月前 | |
【社区任务】ForeachMulList算子支持INT16/INT8/UINT8实现贡献 Co-authored-by: liujiacheng_2026<laneljc@qq.com> # message auto-generated for no-merge-commit merge: !4940 merge task/foreach-mul-list into master 【社区任务】ForeachMulList算子支持INT16/INT8/UINT8实现贡献 Created-by: liujiacheng_2026 Commit-by: liujiacheng_2026 Merged-by: cann-robot Description: ## 描述 实现了 Ascend C ForeachMulList 算子对 DT_INT16、DT_INT8、DT_UINT8 数据类型的支持。 本次修改基于现有 foreach/foreach_mul_list 实现扩展,不改变 aclnn 接口和原有数据类型计算路径。新增小整数计算分支,将 int16/int8/uint8 输入搬入 UB 后转换为中间类型完成逐元素乘法,再转换回输出类型。 主要修改包括: - 扩展 host/proto 侧支持的数据类型。 - 补充 ascend910b、ascend910_93、ascend950 的 binary 配置。 - 新增 DT_INT16、DT_INT8、DT_UINT8 kernel 分支。 - 补充小整数类型的 UT、tiling 测试、aclnn 调用样例。 - 更新 README 和 aclnn 接口文档中的数据类型支持说明。 ## 关联的Issue 关联Issue: [[Requirement|需求建议]: 【社区任务】ForeachMulList算子支持INT16/INT8/UINT8实现贡献](https://gitcode.com/cann/ops-nn/issues/2737) ## 测试 采用 aclnn 调用测试,并补充 UT 覆盖新增数据类型。 已覆盖场景: - DT_INT16 TensorList 逐元素乘法 - DT_INT8 TensorList 逐元素乘法 - DT_UINT8 TensorList 逐元素乘法 - 多 Tensor 输入场景 - 非 32 字节对齐 shape 场景 - 原有 float16、float32、int32、bfloat16 回归场景 - host 侧 tiling key 校验 ## 文档更新 更新 foreach/foreach_mul_list/README.md 和 foreach/foreach_mul_list/docs/aclnnForeachMulList.md,补充 DT_INT16、DT_INT8、DT_UINT8 支持说明。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4940 | 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 个月前 | |
!1 merge fix/def-driven-dtype-and-infer-celu-dfdm-apgd into master fix: def-driven dtype + InferDataType separation for Celu/DataFormatDimMap/ApplyProximalGradientDescent Created-by: babeiee Commit-by: l50065286 Merged-by: babeiee Description: ## Changes Per operator (Celu, DataFormatDimMap, ApplyProximalGradientDescent): ### 1. def-driven dtype (item 7) - tiling_key.h: ASCENDC_TPL_DATATYPE_DECL → ASCENDC_TPL_UINT_DECL - kernel .cpp/_apt.cpp: template <typename D_T> → template <int MODE>, use DTYPE_<INPUT> macro - tiling_arch35.cpp/tiling.cpp: ASCENDC_TPL_SEL_PARAM no longer passes dtype value ### 2. InferShape/InferDataType separation (item 8) - Delete op_host/*_infershape.cpp (InferShape reused from canndev runtime) - Create op_graph/*_graph_infer.cpp with IMPL_OP().InferDataType() registration - InferDataType logic: output dtype = input[0] dtype ### 3. Celu dynamic GEIR example added (item 5) Reference: ops-cv PR 1126, acts_ulq_input_grad pattern See merge request: babeiee/ops-nn!1 | 1 个月前 | |
update in_infer,fused_cross_entropy_loss_with_max_sum LOGE Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !8307 merge master into master update in_infer,fused_cross_entropy_loss_with_max_sum LOGE Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> in_infer,fused_cross_entropy_loss_with_max_sum 算子arch35 tiling 异常拦截上报没有按照最新的 上报宏,需要整改,按照最新的上报宏上报可以从日志清晰的看出报错原因 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4380 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 算子ops-test-kit 全case 回归PASS ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Tiling上报机制更新,不影响功能。 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8307 | 1 个月前 | |
qbmm golden with ttk Co-authored-by: he_kan<hekan4@huawei.com> # message auto-generated for no-merge-commit merge: !8267 merge wqbmm into master qbmm golden with ttk Created-by: he_kan Commit-by: he_kan Merged-by: cann-robot Description: ## 描述 matmul量化算子支持ops-test-kit的aclnn和e2e(torchapi)测试 新增golden和用例: 1. quant_batch_matmul_v3: 1.1 重新优化kernel算子golden 1.2 新增aclnn golden文件 1.3 新增torch api golden文件 2. quant_batch_matmul_v4: 2.1 重新优化kernel算子golden 2.2 新增aclnn golden文件 3. weight_quant_batch_matmul_v2: 3.1 重新优化kernel算子golden 3.2 新增aclnn golden文件 3.3 新增torch api golden文件 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。-->  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8267 | 1 个月前 | |
update in_infer,fused_cross_entropy_loss_with_max_sum LOGE Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !8307 merge master into master update in_infer,fused_cross_entropy_loss_with_max_sum LOGE Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> in_infer,fused_cross_entropy_loss_with_max_sum 算子arch35 tiling 异常拦截上报没有按照最新的 上报宏,需要整改,按照最新的上报宏上报可以从日志清晰的看出报错原因 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4380 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 算子ops-test-kit 全case 回归PASS ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Tiling上报机制更新,不影响功能。 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8307 | 1 个月前 | |
!1 merge fix/def-driven-dtype-and-infer-celu-dfdm-apgd into master fix: def-driven dtype + InferDataType separation for Celu/DataFormatDimMap/ApplyProximalGradientDescent Created-by: babeiee Commit-by: l50065286 Merged-by: babeiee Description: ## Changes Per operator (Celu, DataFormatDimMap, ApplyProximalGradientDescent): ### 1. def-driven dtype (item 7) - tiling_key.h: ASCENDC_TPL_DATATYPE_DECL → ASCENDC_TPL_UINT_DECL - kernel .cpp/_apt.cpp: template <typename D_T> → template <int MODE>, use DTYPE_<INPUT> macro - tiling_arch35.cpp/tiling.cpp: ASCENDC_TPL_SEL_PARAM no longer passes dtype value ### 2. InferShape/InferDataType separation (item 8) - Delete op_host/*_infershape.cpp (InferShape reused from canndev runtime) - Create op_graph/*_graph_infer.cpp with IMPL_OP().InferDataType() registration - InferDataType logic: output dtype = input[0] dtype ### 3. Celu dynamic GEIR example added (item 5) Reference: ops-cv PR 1126, acts_ulq_input_grad pattern See merge request: babeiee/ops-nn!1 | 1 个月前 | |
optim、pooling打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8311 merge master into master optim、pooling打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 optim、pooling打标签 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8311 | 1 个月前 | |
资料多余分号修改 Co-authored-by: linzehui2058<2602241040@qq.com> # message auto-generated for no-merge-commit merge: !8254 merge doc_data_fix into master 资料多余分号修改 Created-by: linzehui2058 Commit-by: linzehui2058 Merged-by: cann-robot Description: ## 描述 扫描出资料有多余分号,进行修改 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4567 ## 测试 无 ## 文档更新 matmul/batch_mat_mul_v3/docs/aclnnEinsum.md quant/flat_quant/docs/aclnnFlatQuant.md quant/flat_quant/docs/aclnnFlatQuantV2.md quant/flat_quant/docs/aclnnFlatQuantV3.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8254 | 1 个月前 | |
aclnnGatherV2/aclnnGatherV3 添加NZ拦截 & gru_grad拦截batch_size输入 Co-authored-by: sakuraqqz<furao15@h-partners.com> # message auto-generated for no-merge-commit merge: !8197 merge master into master aclnnGatherV2/aclnnGatherV3 添加NZ拦截 & gru_grad拦截batch_size输入 Created-by: sakuraqqz Commit-by: sakuraqqz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.aclnnGatherV2/aclnnGatherV3 添加NZ拦截 2.gru_grad拦截batch_size输入 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4545 ## 测试 <!--描述进行了哪些测试来验证你的改动。-->  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> aclnnGRUBackward.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8197 | 1 个月前 | |
qbmm golden with ttk Co-authored-by: he_kan<hekan4@huawei.com> # message auto-generated for no-merge-commit merge: !8267 merge wqbmm into master qbmm golden with ttk Created-by: he_kan Commit-by: he_kan Merged-by: cann-robot Description: ## 描述 matmul量化算子支持ops-test-kit的aclnn和e2e(torchapi)测试 新增golden和用例: 1. quant_batch_matmul_v3: 1.1 重新优化kernel算子golden 1.2 新增aclnn golden文件 1.3 新增torch api golden文件 2. quant_batch_matmul_v4: 2.1 重新优化kernel算子golden 2.2 新增aclnn golden文件 3. weight_quant_batch_matmul_v2: 3.1 重新优化kernel算子golden 3.2 新增aclnn golden文件 3.3 新增torch api golden文件 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。-->  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8267 | 1 个月前 | |
[fix] QBMMV3 batch consistency handling Co-authored-by: guiruoyu<guiruoyu@h-partners.com> # message auto-generated for no-merge-commit merge: !7705 merge fix/qbmmv3-batch-consistency into master [fix] QBMMV3 batch consistency handling Created-by: guiruoyu Commit-by: guiruoyu Merged-by: cann-robot Description: ## 描述 - QBMMV3 StreamK 场景的 batch 一致性校验由 GetDeterministic() == 1 调整为 GetDeterministicLevel() > 1,仅在 batch 一致性等级下过滤 StreamK,保留普通确定性等级的行为。 - QBMMV3 per-block 场景选中对应 tiling 模板且 GetDeterministicLevel() > 1 时输出 warning,提示该量化模式天然不支持 batch 一致性。 ## 关联的Issue 无。 ## 测试 - git diff --check HEAD^ HEAD 通过。 - 推送 GitCode 时仓库 pre-push hook 检查通过。 - 当前本地 Windows 环境不具备 CANN/Linux 编译运行环境,编译与 UT 由 CI 验证。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7705 | 2 个月前 | |
修改torch_extension结构 Co-authored-by: liuweihuui<liuweihui3@h-partners.com> # message auto-generated for no-merge-commit merge: !8249 merge fix_torch into master 修改torch_extension结构 Created-by: liuweihui3 Commit-by: liuweihuui Merged-by: cann-robot Description: ## 描述 迁移quant_matmul_activation_quant的torch_extension到算子目录 ## 关联的Issue 关联Issue [#4561](https://gitcode.com/cann/ops-nn/issues/4561) ## 测试  ## 文档更新 更新算子torch_extension相关文档中示例脚本代码 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:规范nn仓torch要求,迁移torch相关代码到算子目录下。 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8249 | 1 个月前 | |
feat: NormalizeBBox 算子 Ascend950 重实现 无aclnn Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !8130 merge feat/normalize_bbox_no_aclnn into master feat: NormalizeBBox 算子 Ascend950 重实现 无aclnn Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 变更说明 NormalizeBBox 算子 Ascend950(arch35 RegBase)重实现,仅支持 GEIR 图模式通路,不提供 aclnn 接口。 ### 算子功能 将目标检测预选框的绝对像素坐标,按对应图像的高(height)与宽(width)逐 batch 归一化到 [0, 1] 区间。每个框由 4 个坐标构成,y 系坐标除以 height、x 系坐标除以 width。 计算公式: 对第 b 个 batch,令 h = shapeHw[b, 0]、w = shapeHw[b, 1](int32 转 float): y[b,i] = boxes[b,i] / [h, w, h, w] ### 实现内容 - **op_host**:算子原型定义(def)、InferShape/InferDataType、RegBase Tiling(多核切分 + UB 规划) - **op_kernel(arch35)**:Ascend950 RegBase 内核,支持 fp16/fp32/bf16 三种 dtype,normal/reversed 两种 layout - **op_graph**:GEIR proto 声明(含 DT_BF16,对齐 950 实现) - **golden**:tests/assets/golden.py(numpy 复刻 cast 链,随 PR 上库) - **UT**:infershape UT(9 case,含 -1/-2 动态 shape)+ tiling UT(41 case,含负向校验) - **GEIR 测试**:examples/arch35/test_geir_normalize_bbox.cpp(真机 RunGraph 验证) - **文档**:README.md + docs/zh/op_list.md 条目 ### 产品支持 | 产品 | 支持 | |------|------| | Ascend 950PR/Ascend 950DT | √ | | Atlas A3 训练/推理系列产品 | √(built-in TBE) | | Atlas A2 训练/推理系列产品 | √(built-in TBE) | | Atlas 200I/500 A2 推理产品 | √(built-in TBE) | | Atlas 推理系列产品 | √(built-in TBE) | | Atlas 训练系列产品 | √(built-in TBE) | 注:Ascend950 为本 PR 新实现的 RegBase 内核;A2/A3/推理/训练系列由 canndev built-in TBE 实现支持。 ### 验证结果 | 测试项 | 规模 | 结果 | |--------|------|------| | ophost UT | 50 case | 50/50 PASS | | kernel UT | - | PASS | | 单算子出包 | --pkg --soc=ascend950 | SUCCESS | | 冒烟测试 | run_example graph(NPU 真机) | PASS,精度正确 | | pre-commit | 格式/拼写/OAT | PASS | | 文档链接 | MD 链接有效性 | PASS | ### 关联 Issue #4347 See merge request: cann/ops-nn!8130 | 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 个月前 | |
【社区任务】ForeachMulList算子支持INT16/INT8/UINT8实现贡献 Co-authored-by: liujiacheng_2026<laneljc@qq.com> # message auto-generated for no-merge-commit merge: !4940 merge task/foreach-mul-list into master 【社区任务】ForeachMulList算子支持INT16/INT8/UINT8实现贡献 Created-by: liujiacheng_2026 Commit-by: liujiacheng_2026 Merged-by: cann-robot Description: ## 描述 实现了 Ascend C ForeachMulList 算子对 DT_INT16、DT_INT8、DT_UINT8 数据类型的支持。 本次修改基于现有 foreach/foreach_mul_list 实现扩展,不改变 aclnn 接口和原有数据类型计算路径。新增小整数计算分支,将 int16/int8/uint8 输入搬入 UB 后转换为中间类型完成逐元素乘法,再转换回输出类型。 主要修改包括: - 扩展 host/proto 侧支持的数据类型。 - 补充 ascend910b、ascend910_93、ascend950 的 binary 配置。 - 新增 DT_INT16、DT_INT8、DT_UINT8 kernel 分支。 - 补充小整数类型的 UT、tiling 测试、aclnn 调用样例。 - 更新 README 和 aclnn 接口文档中的数据类型支持说明。 ## 关联的Issue 关联Issue: [[Requirement|需求建议]: 【社区任务】ForeachMulList算子支持INT16/INT8/UINT8实现贡献](https://gitcode.com/cann/ops-nn/issues/2737) ## 测试 采用 aclnn 调用测试,并补充 UT 覆盖新增数据类型。 已覆盖场景: - DT_INT16 TensorList 逐元素乘法 - DT_INT8 TensorList 逐元素乘法 - DT_UINT8 TensorList 逐元素乘法 - 多 Tensor 输入场景 - 非 32 字节对齐 shape 场景 - 原有 float16、float32、int32、bfloat16 回归场景 - host 侧 tiling key 校验 ## 文档更新 更新 foreach/foreach_mul_list/README.md 和 foreach/foreach_mul_list/docs/aclnnForeachMulList.md,补充 DT_INT16、DT_INT8、DT_UINT8 支持说明。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4940 | 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 个月前 | |
support deb\rpm pkg Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !8121 merge pkg into master support deb\rpm pkg Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 此 PR 为构建系统新增了 deb 和 rpm 包格式支持。通过新增的 --pkg-type 参数(支持 run/rpm/deb/all),用户可在 --pkg 构建模式下选择生成指定格式的系统安装包,并配套了 RPM/DEB 包的安装后/卸载前脚本以自动管理 Python wheel 文件,同时更新了底层 cann-cmake 依赖版本及包描述文件的权限配置。 主要改动 build.sh 新增 --pkg-type 参数及包类型构建流程:新增 check_pkg_type 校验函数,限定仅接受 run/rpm/deb/all;在 check_param 中约束非 run/all 类型不得与 --static、--jit、--ops/--vendor_name/--experimental 等自定义算子选项混用;build_pkg 中对 all 类型循环构建三种包,并通过 clean_rpm_deb_package 和 collect_rpm_deb_package 清理旧产物与复制成品到输出目录。 新增 RPM/DEB 安装与卸载脚本:custom_postinst.sh 在包安装后通过 pip install 自动部署 es_packages/whl 及 python/site-packages 下的 .whl 文件;custom_prerm.sh 在包卸载前通过 pip uninstall 移除 cann-ops-nn 和 es-nn,并清理相关目录和残留文件。 cmake/package.cmake 传递 PACKAGE_TYPE 并调整包配置:set_cann_cpack_config 调用中新增 PACKAGE_TYPE "${PACKAGE_TYPE}" 参数;移除了 path.cfg 配置文件的安装逻辑;新增 CANN_VERSION_ops-nn_VERSION 的版本号映射以兼容 CPack 组件命名。 fetch_cann_cmake.cmake 升级底层依赖版本:CANN_CMAKE_TAG 从 master-015 升级至 master-046,并新增离线包的 URL_HASH(SHA256)校验。 CI 打包脚本及包描述文件权限调整:ops_run_repackage.sh 新增 --pkg-type 参数解析,并在非 run 类型时调用 ops_generate_rpm_deb.sh 生成 RPM/DEB 包;ops_nn.xml 调整 scene.info 权限为 640、version.info 显式设为 440,并移除了对已删除 EngineeringFiles.xml 的引用。 ## 关联的Issue [#4536](https://gitcode.com/cann/ops-nn/issues/4536) ## 测试 本地验证 --pkg-type 参数校验逻辑 CI 流水线已通过 ## 文档更新 更新 docs/zh/install/compile.md 中 cann-cmake 版本信息 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8121 | 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 个月前 | |
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 个月前 | |
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 个月前 | |
修复cann_sim.md等文档的问题 Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !8258 merge 0804readme into master 修复cann_sim.md等文档的问题 Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复build.sh、cann_sim.md等文档的问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了cann_sim.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8258 | 1 个月前 | |
fix aclnn自动生成算子输出参数非连续Tensor标记错误及aclnnRReluWithNoise支持A5 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8106 merge fix/aclnn-doc-noncontiguous-and-classify-rule into master fix aclnn自动生成算子输出参数非连续Tensor标记错误及aclnnRReluWithNoise支持A5 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ### 1. aclnnInplaceRReluWithNoise支持A5 ### 2. 修复aclnn自动生成算子文档中输出参数非连续Tensor标记错误 自动生成的aclnn算子( ACLNNTYPE aclnn),输出参数不支持非连续Tensor,应标记为 ×。以下5个算子的8个文档文件共19处输出参数从 √ 修正为 ×: | 算子 | 文件 | 修正参数 | |------|------|---------| | dynamic_mx_quant_with_dual_axis | aclnnDynamicMxQuantWithDualAxis.md, aclnnDynamicMxQuantWithDualAxisV2.md | y1Out, mxscale1Out, y2Out, mxscale2Out | | dynamic_block_mx_quant | aclnnDynamicBlockMxQuant.md | yOut, scale1Out, scale2Out | | grouped_dynamic_block_quant | aclnnGroupedDynamicBlockQuant.md, aclnnGroupedDynamicBlockQuantV2.md | yOut, scaleOut | | dynamic_block_quant | aclnnDynamicBlockQuant.md, aclnnDynamicBlockQuantV2.md | yOut, scaleOut | |swi_glu_grad|aclnnSwiGluGrad|x_grad| ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4549 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8106 | 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,可以通过CANN Simulator仿真工具开发调试;优化指南类文档,聚焦算子开发指南,明确最小交付件和关键示例代码,针对Ascend/samples仓算子提供迁移本项目的指导;新支持稀疏4:2量化matmul算子,针对稀疏矩阵开启硬件加速能力。
- [2025/11] 新支持算子index_fill、masked_scatter、scatter、tf_scatter_add、fused_cross_entropy_loss_with_max_sum。
- [2025/10] 新增experimental目录,完善贡献指南,支持开发者调试并贡献自定义算子。
- [2025/09] ops-nn项目首次上线,开源算子支持Atlas A2/A3系列产品。
🚀概述
ops-nn是CANN(Compute Architecture for Neural Networks)算子库中提供神经网络计算能力的高阶算子库,包括matmul类、activation类等算子,算子库架构图如下:

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