已合并
feat: ReportFuse 补写 _datadump_original_op_names 和 _original_op_attrs_map 维测属性 #4344
feat: ReportFuse 补写 _datadump_original_op_names 和 _original_op_attrs_map 维测属性 #4344
已合并
why you创建于 14 天前
why you成员
14 天前

Pull Request

描述

GraphBasedPass 手动调用 ReportFuse 上报融合结果时,_datadump_original_op_names_datadump_original_op_types_original_op_attrs_map 三个维测属性不会被写入,导致 datadump 维测链路断裂、融合来源追溯不完整。

本 PR 在 ReportFuseMarkPassNameOnReplacementNodes 之后、RecordFusionStatistic 之前,新增 RecordDatadumpAttrsIdempotently,对 nodes_after_fuse 中每个节点幂等补写上述维测属性。幂等检查保证 3 参 SubgraphRewriter::Replace 路径不重复写入。

变更类型

关联的Issue

cann/ge#512

如何测试

  1. 编译 graph_fuse_inspector_utils.cc 对应的 object 文件,确认编译通过
  2. 运行 graph_fuse_inspector_utils_unittest 现有 UT 用例,确认无回归
  3. 后续补充新增 UT:验证手动调 ReportFuse_datadump_original_op_names 已写入、幂等性、纯删除场景

核对清单

其他信息

详细设计方案见 report_fuse_datadump_attrs.md

改动摘要

新增 RecordDatadumpAttrsIdempotently 函数(+23 行),在 ReportFuse 内部调用:

  1. AttrUtils::HasAttr 检查 _datadump_original_op_names 是否已存在,无则调用 RecordOriginalNames 补写
  2. TryGetExtAttr 检查 _original_op_attrs_map 是否已存在,无则调用 RecordOriginalOpAttrs 补写(保留 DUMP_GE_GRAPH 环境变量依赖)

各 Pass 类型维测属性写入情况(修复后)

场景 _datadump_original_op_names _original_op_attrs_map
PatternBasedPass / DecomposePass InheritedOriginAttrAndOpName 不写(已有行为)
GraphBasedPass + 3 参 Replace InheritedOriginAttrAndOpName 写,ReportFuse 幂等跳过 不写
GraphBasedPass + 手动 ReportFuse ReportFuse 写(修复) ReportFuse 写(修复,需 DUMP_GE_GRAPH)
likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 why you 的贡献)
Wwhy you成员
14 天前 创建了 pull request,commit 092fb3ab
Wwhy you成员
14 天前 关联了issue:【缺陷】GraphBasedPass 手动调用 ReportFuse 时 _datadump_original_op_names 和 _original_op_attrs_map 维测属性缺失
atomgit-bot
atomgit-bot
14 天前 评论:

变更摘要

此 PR 修复了 GraphBasedPass 手动调用 ReportFuse 上报融合结果时,_datadump_original_op_names_original_op_attrs_map 两个维测属性缺失的问题。通过在 ReportFuse 中新增 RecordDatadumpAttrsIdempotently 函数,在 MarkPassNameOnReplacementNodes 之后对融合后的节点幂等补写上述属性,确保 datadump 维测链路完整、融合来源可追溯,同时通过幂等检查避免与 3 参 SubgraphRewriter::Replace 路径(已由 InheritedOriginAttrAndOpName 写入)产生重复写入。

主要改动

  • 新增 RecordDatadumpAttrsIdempotently 函数:在 graph_fuse_inspector_utils.cc 的匿名命名空间中新增该函数,遍历 after_nodes 中的每个节点,通过 AttrUtils::HasAttr 检查 ATTR_NAME_DATA_DUMP_ORIGIN_OP_NAMES 是否已存在,若不存在则调用 RecordOriginalNames 补写;通过 TryGetExtAttr 检查 ATTR_NAME_ORIGIN_OP_ATTRS_MAP 是否已存在,若不存在则调用 RecordOriginalOpAttrs 补写。

  • 新增头文件引用:添加 #include "graph/debug/ge_attr_define.h",引入 ATTR_NAME_DATA_DUMP_ORIGIN_OP_NAMESATTR_NAME_ORIGIN_OP_ATTRS_MAP 等维测属性宏定义。

  • ReportFuse 中集成幂等补写调用:在 MarkPassNameOnReplacementNodes 调用之后、RecordFusionStatistic 调用之前插入 RecordDatadumpAttrsIdempotently(before_nodes, after_nodes, pass_name_str),确保手动 ReportFuse 路径也能正确写入维测属性。

likedislike
atomgit-bot
atomgit-bot
14 天前 评论:

代码审查

✅ 未发现问题

likedislike
CANN-robotCANN-robot成员
14 天前 添加了label:cann-cla/yes
此处折叠了111条消息 查看更多
张德鹏成员
12 天前 评论:

/approve

likedislike
CANN-robotCANN-robot成员
12 天前 添加了label:approved
张德鹏成员
12 天前 评论:

/approve

likedislike
CANN-robotCANN-robot成员
12 天前 关闭了关联的issue
CANN-robotCANN-robot成员
12 天前 合入了pull request