| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 10 天前 | |
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 个月前 | |
refactor: 为公共op_api头文件增加NN后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10791 merge refactor/nn-suffix-common-headers into master refactor: 为公共op_api头文件增加NN后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-nn 的 common/inc/op_api 目录中仍有 level2_base.h 和 level2_base_caculation.h 两个通用名称。它们与其他算子仓的同名文件一起进入软件包时存在覆盖风险。 本 MR 是 ops-nn 分阶段迁移的第一阶段: - 新增完整实现头 level2_base_nn.h 和 level2_base_caculation_nn.h; - 保留原文件为轻量转发头,兼容尚未迁移的存量 ACLNN 源文件和开发中的 MR; - 新计算头只依赖新基础头,避免新命名链路回退到旧文件名; - op_api_def_nn.h 已具有 NN 标识,本次不修改; - classify_rule.yaml 中没有这两个头文件的现有条目,也没有证据表明该文件负责软件包头文件筛选,因此本次不修改; - 先迁移 Mish、UniqueConsecutive、Silu、LogSigmoid 四个简单 ACLNN 接口作为样例。 本阶段不删除兼容头,也不声明已完成最终软件包去重。当前仍有 32 处 level2_base.h 和 5 处 level2_base_caculation.h 的旧引用,后续可按模块分批迁移;旧引用归零并验证实际制品清单后,再移除兼容头。 ## 关联的Issue 关联并在合入后关闭 #6008: https://gitcode.com/cann/ops-nn/issues/6008 ## 测试 已完成: - git diff --check; - 新旧完整实现内容等价性检查(仅头文件保护宏和内部 include 路径变化); - 两个旧文件均为 16 行轻量转发头; - 新命名头文件之间仅通过新文件名依赖; - 四个样例 ACLNN 文件均为单行 include 替换; - 使用 clang++ -M -MG 完成头文件依赖解析冒烟检查; - 统计剩余旧引用:level2_base.h 32 处、level2_base_caculation.h 5 处; - 8 个变更文件通过 OAT 合规检查; - origin 同名分支与本地提交一致。 ## 文档更新 无。 ## 类型标签 - [ ] 新功能(不影响现有功能的新特性) - [ ] Bug 修复(不影响现有功能的问题修复) - [ ] 重大变更(会导致现有功能无法正常工作的修复或功能) - [ ] 文档更新 - [ ] 性能优化 - [ ] 代码重构 - [x] 其他,请描述:头文件命名与兼容迁移 ## AI/Agent生成声明 - [ ] 完全由开发者手工编写 - [x] AI辅助编写 - [ ] AI生成 See merge request: cann/ops-nn!10791 | 7 天前 | |
fix(optim): LarsV2Update整改修复与转测准入补全 Co-authored-by: zhaixiao<zhaixiao1@huawei.com> # message auto-generated for no-merge-commit merge: !10615 merge feat/lars-v2-update-remediation into master fix(optim): LarsV2Update整改修复与转测准入补全 Created-by: Onthetreeoh Commit-by: zhaixiao Merged-by: cann-robot Description: ## 描述 LarsV2Update 算子代码检视整改与转测准入补全,共 16 文件。 ### 1. 检视整改(132 条例扫描:6 FAIL / 9 SUSPICIOUS) **P0 缺陷修复:** - op_kernel/arch35/lars_v2_update_kernel.h:GM 元素偏移 int64 直接下发,修复 uint32 截断(FP32 张量超 4G 元素时高位丢失写错 GM 地址) - op_host/lars_v2_update_tiling.cpp:ComputePerBufBytes 预留 SCALAR_BUF_BYTES 后再均分,修复 UB 容量恒超订 512B - op_host/arch35/lars_v2_update_tiling_arch35.cpp:GetTilingData/GetPlatformInfo 改用 OP_CHECK_NULL_WITH_CONTEXT,修复空指针吞错 **P1/P2 加固:** 负数维校验、hasRef 独立哨兵、explicit、常量收敛共享(全大写命名)、22 处 static_cast、UT 安全编译选项。 ### 2. 原型唯一性(转测第 1/2 项) - 删除 op_nn_proto_extend.h 中 LarsV2Update 重复原型(对齐 AdvanceStep 惯例:算子本地 proto.h 唯一交付),消除双定义与字段风格不一致 - 移除 proto.h 双重去重守卫宏,恢复标准单一定义 ### 3. 运行时约束补全(转测第 10/11/13/15.4 项) - Tiling 新增 6 输入 storage format 强校验(FORMAT_ND,与 def.cpp 声明一致) - Tiling 新增 w/g 严格同形校验(实测 w=(4,8), g=(4,1) 被拒) - Tiling 新增标量输入 dtype 与元素数校验(README 约束的代码实现) - README 补空 Tensor 支持与标量广播语义声明(资料-代码对齐) ### 4. 其他 静态 example 补输出校验打印;infershape 清理无用 include;README 约束说明补充 Tiling 校验位置与 NaN 语义披露。 ## 测试 | 验证项 | 结果 | |---|---| | UT(同源编译真实 Tiling 代码) | 80/80 通过 | | GEIR 静态 + 动态(-1/-2) | Ascend950 实卡通过 | | 约束实测 | ND control/空 Tensor PASS;w/g 广播 shape 被拒;格式校验分支入码 | | TTK 两方精度(300 用例,CST+DYN) | 300/300,精度均 100% | | TTK 异常用例 | 有效拦截 10 / 应拦截未拦截 0 / 不可判定 0 | 🤖 Generated with CANNBot See merge request: cann/ops-nn!10615 | 7 天前 | |
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 | 11 天前 | |
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 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 10 天前 | ||
| 1 个月前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 |