已合并
【PR】: fix: 修复融合pass编译失败 #3787
hugo111创建于 6月30日
【PR】: fix: 修复融合pass编译失败 #3787
已合并
hugo111创建于 6月30日
hugo111成员
6月30日

Pull Request

描述

decompose_grouped_conv_to_splited_pass.cpp 修复编译失败

变更类型

请选择本次引入的变更类型:

关联的Issue

如何测试

描述测试此变更的步骤和前提条件:
1.
2.

核对清单

其他信息

在此添加任何其他关于本次 PR 的说明。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 hugo111 的贡献)
Hhugo111成员
6月30日 添加了label:enhancement
Hhugo111成员
6月30日 创建了 pull request,commit cb3a8c67
CANN-robotCANN-robot成员
6月30日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
6月30日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
repo-cann/ge wangxiaotian995, Mexyy, xchu42 (3/2) wangxiaotian995 (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

hugo111, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
hugo111成员
6月30日 评论:

compile

likedislike
Hhugo111成员
6月30日 update merge request[project id: 8824148, iid: 3787, commit_id: 9f022e891fe363664548ee576c06fa0af43b55b0] virtual merging success
CANN-robotCANN-robot成员
6月30日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
6月30日 评论:

流水线任务触发成功
任务链接 [7f0d8810201c409fb6bea0033849bb2c][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
Compile_X86_compiler ✅ SUCCESS >>>>> >>>>>
Compile_X86_executor ✅ SUCCESS >>>>> >>>>>
Compile_X86_dflow ✅ SUCCESS >>>>> >>>>>
UT_Test_dflow ✅ SUCCESS
UT_Test_ge_common ✅ SUCCESS
UT_Test_parser ✅ SUCCESS
UT_Test_python ✅ SUCCESS >>>>>
UT_Test_rt ✅ SUCCESS
UT_Test_acl ✅ SUCCESS
UT_Test_autofuse ✅ SUCCESS
UT_Test_executor ✅ SUCCESS
UT_Test_autofuse_ascendc_api ✅ SUCCESS
ST_Test_dflow ✅ SUCCESS
ST_Test_ge_common ✅ SUCCESS
ST_Test_parser ✅ SUCCESS
ST_Test_python ✅ SUCCESS >>>>>
ST_Test_rt ✅ SUCCESS
ST_Test_autofuse ✅ SUCCESS
ST_Test_executor ✅ SUCCESS
ST_Test_hetero ✅ SUCCESS
ST_Test_autofuse_ascendc_api ✅ SUCCESS
ST_Test_autofuse_e2e ✅ SUCCESS
UT_Test_fe ✅ SUCCESS
UT_Test_tefusion ✅ SUCCESS
ST_Test_fe ✅ SUCCESS
ST_Test_tefusion ✅ SUCCESS
ST_Test_ge_common_atc ✅ SUCCESS
UT_Test_Report_graphengine ✅ SUCCESS >>>>>
UT_Test_Report_ge_executor_c ✅ SUCCESS >>>>>
UT_Test_Report_ge_autofuse ✅ SUCCESS >>>>>
ST_Test_Report_graphengine ✅ SUCCESS >>>>>
ST_Test_Report_ge_executor_c ✅ SUCCESS >>>>>
ST_Test_Report_ge_autofuse ✅ SUCCESS >>>>>
UT_Test_Report_fe ✅ SUCCESS >>>>>
ST_Test_Report_fe ✅ SUCCESS >>>>>

[2026-06-30 10:57:43]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
6月30日 评论:

流水线任务触发成功
任务链接 [0ab7f48a05a6471cbd1a2943e738d8ef][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
Compile_ARM_compiler ✅ SUCCESS >>>>> >>>>>
Compile_ARM_executor ✅ SUCCESS >>>>> >>>>>
Compile_ARM_dflow ✅ SUCCESS >>>>> >>>>>
API_Check ✅ SUCCESS >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>

[2026-06-30 10:56:53]    CI执行结束

likedislike
CANN-robotCANN-robot成员
6月30日 添加了label:api-check-pass
atomgit-bot
atomgit-bot
6月30日 评论:

变更摘要

此 PR 主要修复两个融合 pass 示例的编译失败问题,核心改动是将 decompose_grouped_conv_to_splited_pass.cppbatch_matmul_flatten_pass.cpp 中的 shape/dtype 推导逻辑统一迁移到 InferShapeUtil::InferShape 接口,消除了旧的私有推断方法和对 GeUtils::InferShape 的依赖,并补充了相关头文件引用与文档注释。

主要改动

  • decompose_grouped_conv_to_splited_pass.cpp 统一使用 InferShapeUtil::InferShape:移除私有方法 InferShapeAndCheckSupport,将原来的 InferShape(matched_node, *replace_graph) 调用替换为 InferShapeUtil::InferShape(*replace_graph, matched_node),并增加失败时的 SUCCESS 状态判断和 std::cout 错误输出。

  • batch_matmul_flatten_pass.cpp 简化 shape 推断流程:头文件从 ge/ge_utils.h 改为 ge/fusion/infer_shape_util.hInferShapeAndCheckSupport 方法中移除了手动遍历输入节点提取 TensorDescShape 的代码,直接调用 InferShapeUtil::InferShape(graph, matched_node) 完成推断,消除对 GeUtils::InferShape 的依赖。

  • 补充注释说明接口行为:在 decompose_grouped_conv_to_splited_pass.cpp 中新增注释,说明 InferShapeUtil::InferShape 会自动从 matched_node 边界获取输入 tensor desc(shape/dtype/format),便于后续维护者理解。

likedislike
CANN-robotCANN-robot成员
6月30日 删除了label:api-check-pass
CANN-robot
CANN-robot成员
6月30日 评论:

流水线任务触发成功
任务链接 [03c196a00f4744a593e5c72e030f5b35][流水线指导]

任务名称状态日志下载链接
codecheck_Pr ✅ SUCCESS
codecheck ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
codecheck_dt ✅ SUCCESS >>>>>
codecheck_precommit ✅ SUCCESS >>>>>
StaticCheck_codespell_check ✅ SUCCESS
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS

[2026-06-30 10:57:34]    CI执行结束

likedislike
CANN-robotCANN-robot成员
6月30日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
6月30日 添加了label:ci-pipeline-passed
atomgit-bot
atomgit-bot
6月30日 评论:

代码审查

审查总结

文件 审查结果
examples/fusion_pass/cpp_fusion_pass_development_guide.md 无问题 — 文档 API 名称更新
examples/fusion_pass/cpp_fusion_pass_development_guide_en.md 无问题 — 文档 API 名称更新(英文)
examples/fusion_pass/pattern_base_pass/6_decompose_grouped_conv_to_splited_pass/cpp/src/decompose_grouped_conv_to_splited_pass.cpp 发现 1 个 P3 问题(重复注释)
examples/fusion_pass/pattern_base_pass/7_batch_matmul_flatten_pass/cpp/src/batch_matmul_flatten_pass.cpp 无问题 — 正确的 API 迁移和 include 替换

问题统计: P0: 0, P1: 0, P2: 0, P3: 1

整体风险评估:低。 本次变更主要是将旧 API(GeUtils::InferShape / 基类 InferShape)迁移到新 API(InferShapeUtil::InferShape),同时移除了死代码(decompose 文件中从未被调用的 InferShapeAndCheckSupport)。代码逻辑等价,唯一的瑕疵是 decompose 文件的 if 块内残留了重复注释,不影响运行时行为。

⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。

likedislike
Hhugo111成员
6月30日 update merge request[project id: 8824148, iid: 3787, commit_id: 8cf6b719f932bf613a1bc293a8b5a79a4fb40159] virtual merging success
Hhugo111成员
6月30日 强制推送  1 个提交:0ac440db-fix sample pass
Hhugo111成员
6月30日 update merge request[project id: 8824148, iid: 3787, commit_id: 965ec3af9537a49164efb996b5c1eaa2bf9da3aa] virtual merging success
CANN-robotCANN-robot成员
6月30日 删除了label:ci-pipeline-passed
CANN-robot
CANN-robot成员
6月30日 评论:

Notification

This pull request has been changed(code update) or closed, so removes the following label(s): ci-pipeline-passed.

likedislike
hugo111成员
6月30日 评论:

compile

likedislike
Hhugo111成员
6月30日 update merge request[project id: 8824148, iid: 3787, commit_id: 8b863bd78ae463a6621170806ada5560e09ac0ab] virtual merging success
CANN-robotCANN-robot成员
6月30日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
6月30日 评论:

流水线任务触发成功
任务链接 [61de2903721c4c329d51fe7a810b1fc5][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
Compile_X86_compiler ✅ SUCCESS >>>>> >>>>>
Compile_X86_executor ✅ SUCCESS >>>>> >>>>>
Compile_X86_dflow ✅ SUCCESS >>>>> >>>>>
UT_Test_dflow ✅ SUCCESS
UT_Test_ge_common ✅ SUCCESS
UT_Test_parser ✅ SUCCESS
UT_Test_python ✅ SUCCESS >>>>>
UT_Test_rt ✅ SUCCESS
UT_Test_acl ✅ SUCCESS
UT_Test_autofuse ✅ SUCCESS
UT_Test_executor ✅ SUCCESS
UT_Test_autofuse_ascendc_api ✅ SUCCESS
ST_Test_dflow ✅ SUCCESS
ST_Test_ge_common ✅ SUCCESS
ST_Test_parser ✅ SUCCESS
ST_Test_python ✅ SUCCESS >>>>>
ST_Test_rt ✅ SUCCESS
ST_Test_autofuse ✅ SUCCESS
ST_Test_executor ✅ SUCCESS
ST_Test_hetero ✅ SUCCESS
ST_Test_autofuse_ascendc_api ✅ SUCCESS
ST_Test_autofuse_e2e ✅ SUCCESS
UT_Test_fe ✅ SUCCESS
UT_Test_tefusion ✅ SUCCESS
ST_Test_fe ✅ SUCCESS
ST_Test_tefusion ✅ SUCCESS
ST_Test_ge_common_atc ✅ SUCCESS
UT_Test_Report_graphengine ✅ SUCCESS >>>>>
UT_Test_Report_ge_executor_c ✅ SUCCESS >>>>>
UT_Test_Report_ge_autofuse ✅ SUCCESS >>>>>
ST_Test_Report_graphengine ✅ SUCCESS >>>>>
ST_Test_Report_ge_executor_c ✅ SUCCESS >>>>>
ST_Test_Report_ge_autofuse ✅ SUCCESS >>>>>
UT_Test_Report_fe ✅ SUCCESS >>>>>
ST_Test_Report_fe ✅ SUCCESS >>>>>

[2026-06-30 11:05:43]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
6月30日 评论:

流水线任务触发成功
任务链接 [38532d84a52a46949931fd66f3d957f5][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
Compile_ARM_compiler ✅ SUCCESS >>>>> >>>>>
Compile_ARM_executor ✅ SUCCESS >>>>> >>>>>
Compile_ARM_dflow ✅ SUCCESS >>>>> >>>>>
API_Check ✅ SUCCESS >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>

[2026-06-30 11:05:06]    CI执行结束

likedislike
CANN-robotCANN-robot成员
6月30日 添加了label:api-check-pass
CANN-robot
CANN-robot成员
6月30日 评论:

流水线任务触发成功
任务链接 [f82ea1f18a464ef5b0659837f85994de][流水线指导]

任务名称状态日志下载链接
codecheck_Pr ✅ SUCCESS
codecheck ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
codecheck_dt ✅ SUCCESS >>>>>
codecheck_precommit ✅ SUCCESS >>>>>
StaticCheck_codespell_check ✅ SUCCESS
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS

[2026-06-30 11:05:12]    CI执行结束

likedislike
CANN-robotCANN-robot成员
6月30日 删除了label:api-check-pass
CANN-robotCANN-robot成员
6月30日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
6月30日 添加了label:ci-pipeline-passed
夏国正成员
6月30日 评论:

/lgtm

likedislike
xchu42
xchu42成员
6月30日 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
6月30日 添加了label:lgtm
Hhugo111成员
6月30日 修改标题为 “【PR】: fix: 修复融合pass编译失败”,原标题为“【PR】: feat: 修复融合pass编译失败”
wangxiaotian995成员
6月30日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
6月30日 添加了label:approved
CANN-robotCANN-robot成员
6月30日 合入了pull request