| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(SmoothL1LossGrad算子):质量加固:典型问题+代码问题整改 Co-authored-by: aqt666<2016141505@qq.com> # message auto-generated for no-merge-commit merge: !10462 merge codex/smooth-l1-loss-grad-quality into master fix(SmoothL1LossGrad算子):质量加固:典型问题+代码问题整改 Created-by: aqt666 Commit-by: aqt666 Merged-by: cann-robot Description: ## 描述 本次修改针对 SmoothL1LossGrad 算子共性问题进行质量加固: 1. 删除 common extend 中的重复原型,仅保留算子目录正式原型。 2. 补充 gradient 输出与 predict 的 shape、dtype 一致性校验。 3. 补充 sigma 对 NaN、Inf 等非有限值的校验。 4. 修正产品支持表,补充空 Tensor 短路和非连续输入处理说明。 5. 补充输出 shape、dtype 不一致的 Tiling 单元测试。 6. 移除 op_host 中重复的 InferDataType 实现及注册,类型推导统一由 op_graph 负责,避免重复注册和加载顺序依赖。 7. 在 UB 切分前增加可用 UB 容量校验,并在计算后增加 ubFormer > 0 校验,避免小 UB 场景下 Kernel 使用零值除数或初始化零长度队列。 8. 新增小 UB 异常场景 Tiling 单元测试,验证对齐后无法容纳一个 tile 时正确返回失败。 ## 关联的Issue #5898 ## 测试 - Ascend 950 定向 ophost + opgraph 构建通过。 - SmoothL1LossGrad Tiling UT:16/16 通过。 - scalar_mainchain_check.py、vf_reachability_check.py、non3510_scaffold_check.py 均通过。 - git diff --check 通过。 See merge request: cann/ops-nn!10462 | 20 小时前 | |
解决公共知识库模块静态编译报错问题 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 | 1 天前 | |
迁移重构 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 | 4 天前 | |
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 | 2 天前 | |
调整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 | 28 天前 |