| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(aicpu): enable constant folding for migrated ops Co-authored-by: hid29204727<wangboyu20@huawei.com> # message auto-generated for no-merge-commit merge: !9280 merge codex/aicpu-const-folding into master feat(aicpu): enable constant folding for migrated ops Created-by: hid29204727 Commit-by: hid29204727 Merged-by: cann-robot Description: ## 描述 补充 ops-nn 仓 AICPU host 常量折叠注册通路,并为当前已标记 OPEN_OPS_FLAG 的 18 个迁移算子统一开启常量折叠支持。 主要改动: - 新增仓级 OPS_NN_REGISTER_CPU_KERNELV2 注册包装宏,host 构建优先注册 V2,device/custom/UT 保持 V1 回退。 - 为 add_modules_sources 和 add_all_modules_sources 增加 HOSTCPU 参数及 host OBJECT 收集逻辑。 - 为 18 个 OPEN_OPS_FLAG 算子补充 HOSTCPU TRUE、注册头文件和 V2 注册。 - host OBJECT 汇入 libopconstant_folding_nn.so。 ## 关联的Issue 无。 ## 测试 已完成以下静态验证: - git diff --check 通过。 - 18 个 OPEN_OPS_FLAG 算子均具备 HOSTCPU TRUE。 - 18 个算子均使用 OPS_NN_REGISTER_CPU_KERNELV2,无直接 V1 注册残留。 - 注册头文件、host 编译宏和仓级 so 收集通路检查通过。 当前 Windows 环境缺少 CANN、NPU、CMake 和远端构建桥,未执行 bash build.sh --pkg -j16;完整打包构建及常量折叠功能验证待 CANN Linux 环境/CI 完成。 ## 文档更新 无仓内文档变更。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9280 | 17 天前 | |
fix: migrate simple onnx parse params plugins Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !9161 merge onnx-fix-0825 into master fix: migrate simple onnx parse params plugins Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将一批 ONNX 插件的参数解析接口从 ParseParamsFn 迁移到 ParseParamsByOperatorFn,实现onnx插件和protobuf的解耦 涉及算子: - Mish - FastGelu - Size - Elu - LeakyRelu - HardMax 【实现说明】 - 无属性或仅默认属性的算子,直接切换新注册接口。 - 对 Elu、LeakyRelu、HardMax,从 ge::Operator 的 attribute JSON 中解析 ONNX 属性。 - 保留旧逻辑中的默认值行为。 - 对缺失或非数组形式的 attribute JSON 增加保护,避免无属性场景误返回 FAILED。 ## 关联的Issue Issue #5115 ## 测试 onnx插件ut编译、执行通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9161 | 1 个月前 | |
反向卷积算子支持新机器DV100Lite Co-authored-by: Jiaxin_001<jiaxin12@huawei.com> # message auto-generated for no-merge-commit merge: !11114 merge 0924_lite into master 反向卷积算子支持新机器DV100Lite Created-by: Jiaxin_001 Commit-by: Jiaxin_001 Merged-by: cann-robot Description: ## 描述 反向卷积算子支持新机器DV100Lite,新增了算子原型文件和编译出包配置。 ## 关联的Issue [#6143](https://gitcode.com/cann/ops-nn/issues/6143) ## 测试 rdv、custom用例可以pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11114 | 11 天前 | |
feat(bn_training_update): 新增 BNTrainingUpdate 算子 Ascend C arch35 实现 Co-authored-by: m0_73979701<1958538170@qq.com> # message auto-generated for no-merge-commit merge: !10674 merge feat/bn-training-update-arch35 into master feat(bn_training_update): 新增 BNTrainingUpdate 算子 Ascend C arch35 实现 Created-by: m0_73979701 Commit-by: m0_73979701 Merged-by: cann-robot Description: ## 变更说明 新增 norm/bn_training_update 算子目录,提供 Ascend950 arch35 的 Ascend C 纯 Vector 实现(GEIR 通路,无 aclnn): - **op_graph**: proto.h(与内置原型一致的 REG_OP 链 + 双层去重宏)、graph_infer.cpp(InferDataType 含 dtype 校验) - **op_host**: def.cpp(7 输入/2 必选属性/5 输出;9 个 dtype-format 槽位 = {fp16,fp32,bf16}×{NCHW,NCDHW,NHWC};动态 Shape/Rank 支持)、infershape.cpp、arch35 tiling(Broadcast Standard 切分 + 多核切分 + rank4/rank5 双 tilingKey + dtype/format 维数一致性/通道/属性校验)、config/ascend950/bn_training_update_binary.json(9 bin 二进制信息库) - **op_kernel**: arch35 入口(RANK_4/RANK_5 双模板实例)+ kernel:TBuf×8、NDDMA 按 tile 布局分派(BROADCAST 广播 / GATHER 紧凑拷贝 + 寄存器 Gather 广播 / LEGACY_GATHER 兜底三模式)、FP32 计算链、FP16/BF16 Cast 进出、统计输出连续拷贝、空 tensor NaN/0 语义 - **examples**: 静态 + 动态(-1/-2) GEIR 示例 - **tests**: st 用例 CSV(11 条:三 dtype × NCHW/NHWC/NCDHW、负方差、FP16 饱和、空 tensor、num==1、factor 端点、非对齐尾块)、golden.py(TestSpec 多路)、tiling UT(33 用例) - **docs**: README.md(产品支持表/参数/约束/调用说明)、op_list.md 同步 **数值口径**(与官方 tbetoolkits golden_funcs 一致):batch_variance 为有偏方差、不做非负钳制;归一化分母 sqrt(|var+ε|)(0ULP 正确舍入);fp16 y 饱和 ±65504 且 NaN→0;num==1 时 Bessel 修正取 0。**格式**:NCHW/NHWC(4D)+ NCDHW(5D),不含 NC1HWC0/NDC1HWC0。 ## 本地验证 - build.sh --soc=Ascend950 --pkg --ops=bn_training_update 构建+打包成功(9 bin × rank4/rank5 双核) - UT(--soc=Ascend950 -u --ophost)33/33 PASS(含 NCDHW rank5、ND 拒绝、格式/维数一致性反向用例) - 真机 ST 11/11 PASS(含负方差与 FP16 饱和边界用例) - 三方 cross_check L1(NPU vs golden vs TensorFlow GPU):kernel 113/113、GEIR 213/213、TF 白盒矩阵 35/35 全 PASS,无已知分歧用例 - 性能(对 A100 级 GPU 实测):NPU/GPU 时延比平均约 1.2x、最差 6.9x,约六成用例 NPU 快于 GPU - pre-commit(clang-format / ruff / OAT 合规)通过 > 注:本地 pre-push-build 门禁因仓内 index/scatter/embedding 等算子的预存编译错误(SetSupportPcieThrough API 与本机 CANN 9.2.0 头不兼容)及 torch_extension whl 环境缺件无法全量通过,与本变更无关,故按环境不具备场景跳过推送门禁。 ## 竞品对标 对标 TensorFlow FusedBatchNormV3:空 tensor 语义与其对齐;数值口径对齐官方 golden_funcs,特殊值(NaN/Inf)类别与 golden 逐位一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5967 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!10674 | 6 天前 | |
Feature: 为 index 和 pooling 类算子新增 Ascend350 平台支持 Co-authored-by: klein8793<zhangli24@huawei.com> # message auto-generated for no-merge-commit merge: !9754 merge dev_zl_2026_0902 into master Feature: 为 index 和 pooling 类算子新增 Ascend350 平台支持 Created-by: klein8793 Commit-by: klein8793 Merged-by: cann-robot Description: ## 描述 为 index 和 pooling 类算子新增 Ascend350 平台支持。具体变更包括: 1. **新增 Ascend350 平台配置文件**(42 个 JSON):为每个算子新增 op_host/config/ascend350/ 下的二进制配置 JSON 2. **注册 Ascend350 平台**:在各算子 _def.cpp 中添加 his->AICore().AddConfig(ascend350, aicoreConfig) 3. **更新编译配置**:修改各算子 CMakeLists.txt,添加 Ascend350 编译选项;更新 scendc_config.json 中对应算子的 compute_units 列表,将 [ascend950] 扩展为 [ascend950, ascend350] 4. **更新 Fusion Pass 平台判断**:在 bucketize_v2_fusion_pass、inplace_add_fusion_pass、gather_fusion_pass、tensor_scatter_add_fusion_pass、sorted_sparse_segment_mean_grad_fusion_pass 中将 Ascend350 加入平台白名单 涉及算子(35+): - index: bucketize_v2, concat_offset, gather_elements, gather_nd, gather_v2, index_fill, index_fill_d, index_put_v2, inplace_index_add, inplace_index_fill, linear_index_v2, masked_scatter, repeat_interleave, reverse_sequence, reverse_v2, scatter, scatter_add, scatter_add_with_sorted, scatter_elements, scatter_elements_v2, scatter_nd, scatter_nd_add, scatter_nd_max, scatter_nd_min, scatter_nd_update, scatter_sub, scatter_update, segment_sum, sorted_sparse_segment_mean_grad, sparse_segment_mean, sparse_to_dense, unsorted_segment_max, unsorted_segment_min - pooling: avg_pool, avg_pool_v2 - 公共库: scatter_nd_common, unsorted_segment_common, sort_lib ## 关联的Issue - #5651 ## 测试 obp冒烟、david冒烟已通过 ## 文档更新 NA ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9754 | 18 天前 | |
pooling,loss,common目录下MicroAPI → Reg 命名空间迁移 Co-authored-by: yulinwu<3130311700@qq.com> # message auto-generated for no-merge-commit merge: !9142 merge reg-migration-pooling-loss into master pooling,loss,common目录下MicroAPI → Reg 命名空间迁移 Created-by: qq_64396346 Commit-by: yulinwu Merged-by: cann-robot Description: ## 描述 MicroAPI → Reg 命名空间迁移: pooling/loss/common CANN 头文件 kernel_macros.h 中存在命名空间别名 namespace MicroAPI = Reg;,MicroAPI 只是 Reg 的别名。为统一命名规范,将 nn 仓所有算子 kernel 代码中的 MicroAPI 替换为 Reg,并通过对比替换前后 binary .o 文件 MD5 验证替换无影响。 覆盖范围 - nn 主仓目录:pooling,loss,common ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5098](https://gitcode.com/cann/ops-nn/issues/5098) ## 测试 验证方法 严格按四步流程,逐算子验证: 1. Step 1:编译原始代码,保存 baseline binary .o 文件 MD5 2. Step 2:执行 MicroAPI → Reg 替换 3. Step 3:编译替换后代码,保存 after binary .o 文件 MD5 4. Step 4:对比 A_before.md5 与 B_after.md5 平台:ascend950,编译参数:--soc=ascend950 --ops=<op> -j16 验证替换前后 binary 产物 MD5 完全一致。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: pooling,loss,common目录下MicroAPI → Reg 命名空间迁移 See merge request: cann/ops-nn!9142 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
动态库解耦 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 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 17 天前 | ||
| 1 个月前 | ||
| 11 天前 | ||
| 6 天前 | ||
| 18 天前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 |