Pull Request已成功合入, 合并人@CANN-robot
(感谢 why you 的贡献)变更摘要
此 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_NAMES和ATTR_NAME_ORIGIN_OP_ATTRS_MAP等维测属性宏定义。 -
ReportFuse中集成幂等补写调用:在MarkPassNameOnReplacementNodes调用之后、RecordFusionStatistic调用之前插入RecordDatadumpAttrsIdempotently(before_nodes, after_nodes, pass_name_str),确保手动ReportFuse路径也能正确写入维测属性。


Pull Request
描述
GraphBasedPass 手动调用
ReportFuse上报融合结果时,_datadump_original_op_names、_datadump_original_op_types和_original_op_attrs_map三个维测属性不会被写入,导致 datadump 维测链路断裂、融合来源追溯不完整。本 PR 在
ReportFuse的MarkPassNameOnReplacementNodes之后、RecordFusionStatistic之前,新增RecordDatadumpAttrsIdempotently,对nodes_after_fuse中每个节点幂等补写上述维测属性。幂等检查保证 3 参SubgraphRewriter::Replace路径不重复写入。变更类型
关联的Issue
cann/ge#512
如何测试
graph_fuse_inspector_utils.cc对应的 object 文件,确认编译通过graph_fuse_inspector_utils_unittest现有 UT 用例,确认无回归ReportFuse后_datadump_original_op_names已写入、幂等性、纯删除场景核对清单
其他信息
详细设计方案见
report_fuse_datadump_attrs.md改动摘要
新增
RecordDatadumpAttrsIdempotently函数(+23 行),在ReportFuse内部调用:AttrUtils::HasAttr检查_datadump_original_op_names是否已存在,无则调用RecordOriginalNames补写TryGetExtAttr检查_original_op_attrs_map是否已存在,无则调用RecordOriginalOpAttrs补写(保留DUMP_GE_GRAPH环境变量依赖)各 Pass 类型维测属性写入情况(修复后)
_datadump_original_op_names_original_op_attrs_mapInheritedOriginAttrAndOpName写InheritedOriginAttrAndOpName写,ReportFuse 幂等跳过