| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: 移除NN公共op_api旧转发头 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !11002 merge nn_prefix_common_headers_exp_0921 into master refactor: 移除NN公共op_api旧转发头 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 本变更完成 NN 公共 op_api 头文件迁移的兼容清理阶段: - 将 experimental/activation/swish_v2 最后一处 op_api/level2_base.h 调用迁移到 op_api/level2_base_nn.h。 - 删除已无仓内调用的兼容转发头 common/inc/op_api/level2_base.h。 - 删除已无仓内调用的兼容转发头 common/inc/op_api/level2_base_caculation.h。 - 保留 level2_base_nn.h 和 level2_base_caculation_nn.h 作为唯一规范实现。 本 MR 合入后,旧 basename 不再提供源码兼容,调用方需要使用带 _nn 后缀的规范头文件。 ## 关联的Issue Issue #6008 ## 测试 - git diff --check:通过。 - pre-commit:全部通过,包括 clang-format、codespell 和 OAT。 - audit_header_collisions.sh:两个旧头均为 MISSING,include 和文本引用均为 0;两个 _nn 规范头均存在。 - 全库 rg 扫描:未发现旧文件名的 include、配置或打包引用。 - 未执行完整编译验证。 ## 文档更新 无文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件迁移兼容清理 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11002 | 4 天前 | |
解决公共知识库模块静态编译报错问题 Co-authored-by: Jiaxin_001<jiaxin12@huawei.com> # message auto-generated for no-merge-commit merge: !10735 merge zsk_0918 into master 解决公共知识库模块静态编译报错问题 Created-by: Jiaxin_001 Commit-by: Jiaxin_001 Merged-by: cann-robot Description: ## 描述 静态编译失败,原因是common/src/op_host/bank_mgr/中有依赖的文件放在外部目录,迁移文件可以解决问题。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6050 ## 测试 代码提交后出包,静态编译可以pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10735 | 5 天前 | |
迁移重构 LayerNormFusionPass 与 LayerNormInferenceFusionPass 两条融合规则 Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !9533 merge layer_norm_pass into master 迁移重构 LayerNormFusionPass 与 LayerNormInferenceFusionPass 两条融合规则 Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 新增 LayerNormFusionPass 和 LayerNormInferenceFusionPass 两条 GE 自定义融合规则,将 LayerNorm 的计算图展开形式融合为 LayerNorm 算子,减少图执行时的算子下发数量和中间结果访存。同步补充设计文档和融合模式图示。 ### 改动原因 LayerNorm 在 GE 图中以展开形式存在(多个 ReduceMean、Sub、Mul、Add 等基础算子),执行效率低。新增融合规则将展开图模式匹配后替换为 LayerNorm 算子节点,提升执行性能。 ### 改动方法 1. **LayerNormFusionPass**(训练场景): - 匹配训练版 LayerNorm 展开图:mean → SquaredDifference → Add(eps) → Mul → ReduceMean → Sub → Mul → Mul(rstd) → Mul(gamma) → Add(beta) - 支持交换律枚举(4 位),覆盖等价图拓扑变体 - 校验:keep_dims、axes 匹配、eps 位置、中间节点无外部消费者等 - 平台限制:NpuArch = 3510(Ascend 950PR/950DT) 2. **LayerNormInferenceFusionPass**(推理场景): - 匹配推理版 LayerNorm 展开图:mean1 → mean2 → Rsqrt → mul1 → mul2 → mul3 → Sub → Add - 支持交换律枚举(6 位),覆盖等价图拓扑变体 - 校验:推理流判别(不含 mean 的 SquaredDifference)、keep_dims、axes 匹配等 - 平台限制:NpuArch = 3510(Ascend 950PR/950DT) 3. **设计文档**:新增 LayerNormFusionPass.md 和 LayerNormInferenceFusionPass.md,描述融合模式(含图示)、使用约束(不支持动态 shape、输入参数限制、ReduceMean/Sub 限制、数据类型仅支持 FLOAT32/FLOAT16)、支持的型号。 4. **融合模式图示**:新增 6 张 PNG 图片,展示融合前后的图结构。 5. **math_proto_stub.cpp**(+101):新增 ReduceMean、SquaredDifference、Sub、Mul、Rsqrt 算子原型 stub,供融合规则 UT 构图使用。 涉及文件(15 个): - norm/layer_norm/op_graph/fusion_pass/layer_norm_fusion_pass.cpp(+462) - norm/layer_norm/op_graph/fusion_pass/layer_norm_fusion_pass.h(+33) - norm/layer_norm/op_graph/fusion_pass/layernorm_inference_fusion_pass.cpp(+377) - norm/layer_norm/op_graph/fusion_pass/layernorm_inference_fusion_pass.h(+33) - norm/layer_norm/docs/LayerNormFusionPass.md(+46) - norm/layer_norm/docs/LayerNormInferenceFusionPass.md(+39) - docs/zh/figures/LayerNormFusionPass_1~4.png(+12) - docs/zh/figures/LayerNormInferenceFusionPass_1~2.png(+6) - norm/layer_norm/tests/ut/op_graph/test_layer_norm_fusion_pass.cpp(+317) - norm/layer_norm/tests/ut/op_graph/test_layernorm_inference_fusion_pass.cpp(+279) - common/stub/op_graph/math_proto_stub.cpp(+101) ## 关联的Issue - #5852 ## 测试 - LayerNormFusionPassTest:9 个 UT 用例,覆盖融合成功(form A/B、交换律操作数、共享 axes const)、不融合场景(keep_dims=false、axes 不匹配、eps 位置错误、中间节点有外部消费者)。 - LayerNormInferenceFusionPassTest:6 个 UT 用例,覆盖融合成功(含交换律操作数、共享 axes const)、不融合场景(keep_dims=false、axes 不匹配、训练流不融合)。 - 测试环境:Ascend950(NpuArch=3510)。 ## 文档更新 - 新增 norm/layer_norm/docs/LayerNormFusionPass.md:训练场景融合规则设计文档 - 新增 norm/layer_norm/docs/LayerNormInferenceFusionPass.md:推理场景融合规则设计文档 - 新增 6 张融合模式图示 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9533 | 8 天前 | |
fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !10783 merge elu-onnx-fix into master fix: onnx插件解析属性时零值字段被GE省略导致回退默认值 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 GE 序列化 ONNX 算子属性为 JSON 时,会省略值为 0 的标量字段(float 的 "f"、int 的 "i")。部分插件用 attr.contains("f"/"i") 判断属性是否存在,或直接访问 attr["f"/"i"],导致属性传 0 时被错误回退到算子默认值,或直接抛异常使转换失败。 修复方式:先按 name 判断属性是否存在,值字段缺失时按该类型的 protobuf 默认值 0 处理,而不是回退默认值或抛异常。 涉及算子: - Elu(alpha) - LeakyRelu(alpha) - HardMax(axis) - AdaCast(pixel) - GroupNormRelu(eps / num_groups) - BoundingBoxDecode(wh_ratio_clip) - AscendAntiQuantV2(dst_dtype) ## 关联的Issue Issue #6004 ## 测试 - 编译:bash build.sh --onnxplugin -j16 通过(7 个修复源文件全部编译通过)。 - 单测:bash build.sh -u --ophost --ops=elu,leaky_relu,hardmax,ada_cast,14 个用例全部 PASSED(含各算子新增的「零值字段缺失」用例)。 - 端到端 NPU(Ascend 910B3 / CANN 9.0.0):ELU alpha=0 负半轴输出 [0,0,0,0],alpha=3.0 回归无影响。 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10783 | 6 天前 | |
调整cube_utils的源码和ut的位置 Co-authored-by: jiang-mingming01<jiangmingming16@h-partners.com> # message auto-generated for no-merge-commit merge: !9060 merge br_mingmingj_mv_cube_utils_0824 into master 调整cube_utils的源码和ut的位置 Created-by: jiang-mingming01 Commit-by: jiang-mingming01 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> t调整cube_utils的源码和ut的位置 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT在在--opgraph -u或者ut_test_all的时候触发 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9060 | 1 个月前 |