已合并
【PR】: 重构,删除 exec_order 相关处理,保留 exec_order 字段以保证兼容性 #1297
【PR】: 重构,删除 exec_order 相关处理,保留 exec_order 字段以保证兼容性 #1297
已合并
shengnan创建于 7月15日
shengnan成员
7月15日

Pull Request

描述

废弃 exec_order 字段,删除 exec_order 相关处理,保留 exec_order 字段以保证兼容性

变更类型

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

关联的Issue

如何测试

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

核对清单

其他信息

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

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 shengnan 的贡献)
Sshengnan成员
7月15日 添加了label:enhancement
Sshengnan成员
7月15日 创建了 pull request,commit 64855fa3
atomgit-bot
atomgit-bot
7月15日 评论:

变更摘要

本次 PR 主要废弃了 exec_order 字段,移除了所有与 exec_order 相关的业务处理逻辑,但保留了该字段定义以保证向后兼容性。核心变更包括:在 protobuf 中将 exec_order 标记为 deprecated;删除 AscGraph 中的 SortByExecOrder() 和 CheckExecOrderValid() 方法;将 CreateContiguousData 接口改为接受显式 index 参数替代内部自动生成 exec_order;代码生成器不再输出 exec_order 赋值语句;序列化/反序列化逻辑不再处理 exec_order 字段。

主要改动

  • Protobuf 字段废弃: af_ir.proto 中 SchedInfoDef.exec_order 添加 [deprecated = true] 标记,注释注明自 2026-07-15 起废弃,仅为兼容性保留。
  • CreateContiguousData 接口变更: AscGraph 和 AscGraphImpl 的 CreateContiguousData 方法新增 size_t index 参数替代原有的 exec_order 自动分配逻辑,内部直接使用传入的 index 设置 AscDataIrAttrDef 的索引。
  • 删除 exec_order 相关方法: 移除 AscGraph::SortByExecOrder()、AscGraph::CheckExecOrderValid() 及其在 AscGraphImpl 中的实现,移除 TopologicalSorting 中按 exec_order 排序的逻辑。
  • 代码生成与序列化清理: generator.cc 中的 GenSchedInfo 和 StoreNodeFuncGenerator 不再生成 exec_order 赋值代码;SerializeAttr/DeserializeAttr 不再读写 exec_order 字段;调试输出(ascendc_ir_dump_utils.cc)不再打印 exec_order。
  • 测试用例全面清理: 所有测试文件中移除对 node.attr.sched.exec_order 的显式赋值、exec_order 计数器变量及相关递增逻辑;CreateContiguousData 调用处统一补充 index 参数;删除 ExecOrderIncreaseOk 测试用例。
likedislike
不准确?
atomgit-bot
atomgit-bot
7月15日 评论:

代码审查

The remaining references to exec_order in test snapshot files and an unrelated test file (test_ascir.cpp) are pre-existing and not affected by this diff. The cleanup is thorough.

Now let me write the closing summary.


审查总结

本次变更审查了全部 32 个文件,核心目标是废弃 exec_order 字段的处理逻辑,同时保留该字段以保证向后兼容性。

审查结果统计

  • P2:1 个 — Python 测试文件中算子名称意外变更
  • P3:1 个 — Proto 废弃注释中的日期问题
  • P0/P1:0 个

各文件审查确认

文件 结论
autofuse/ascir/meta/ascir_utils.cpp 无问题 — 仅移除 DebugStr 中的 exec_order 注释
autofuse/graph_metadef/graph/ascendc_ir/core/ascendc_ir.cc 无问题 — 删除 SortByExecOrder、CheckExecOrderValid,修改 CreateContiguousData 签名,清理序列化/反序列化中的 exec_order 处理
autofuse/graph_metadef/graph/ascendc_ir/core/ascendc_ir_impl.h 无问题 — 删除 SortByExecOrder 声明,更新 CreateContiguousData 签名
autofuse/graph_metadef/graph/ascendc_ir/generator/generator.cc 无问题 — 移除代码生成模板中的 exec_order 赋值
autofuse/graph_metadef/graph/ascendc_ir/utils/ascendc_ir_dump_utils.cc 无问题 — 移除 dump 输出中的 exec_order
autofuse/graph_metadef/proto/af_ir.proto P3 — 废弃注释日期写为未来日期 2026-07-15
autofuse/inc/.../ascendc_ir.h 无问题 — 更新 CreateContiguousData 签名,删除 SortByExecOrder/CheckExecOrderValid 声明
autofuse/inc/.../ascendc_ir_def.h 无问题 — SchedInfo::exec_order 注释标记为废弃
autofuse/tests/st/ascir/code_dumper/code_dumper_unittest.cc 无问题 — 移除 exec_order 赋值
autofuse/tests/st/att/testcase/scenario/add_layer_norm/test_add_layer_norm.cpp 无问题 — 移除 exec_order 参数
autofuse/tests/st/att/testcase/scenario/concat/test_concat.cpp 无问题 — 移除 exec_order 参数,更新 CreateContiguousData 调用
autofuse/tests/st/att/testcase/scenario/e2e_brc_buf/att_test_brc_buf.cpp 无问题 — 移除 exec_order 参数
autofuse/tests/st/att/testcase/source_mirror/gen_model_info_content/stub_graph.cpp 无问题 — 移除所有 exec_order 赋值和变量
autofuse/tests/st/att/testcase/source_mirror/gen_model_info_content/test_api_tiling_gen.cpp 无问题 — 更新 CreateContiguousData 调用
autofuse/tests/st/att/testcase/source_mirror/gen_model_info_content/test_auto_fuse.cpp 无问题 — 移除 exec_order 参数
autofuse/tests/st/att/testcase/source_mirror/gen_model_info_content/test_gen_model_info.cpp 无问题 — 移除 exec_order 赋值
autofuse/tests/st/att/testcase/source_mirror/gen_model_info_content/test_schedule.cpp 无问题 — 移除 exec_order 变量和赋值
autofuse/tests/st/att/utils/graph_construct_utils.cpp 无问题 — 更新 CreateContiguousData 调用
autofuse/tests/st/codegen/ascir_tool/testcase/.../input_ascir.py P2 — Abs/Sum 算子名称从 'abs'/'sum' 变更为 "abs1"/"sum1"
autofuse/tests/ut/ascir/code_dumper_unittest.cc 无问题 — 移除 exec_order 赋值
autofuse/tests/ut/att/testcase/ascir/test_ascir_graph.cpp 无问题 — 移除 exec_order 赋值和注释
autofuse/tests/ut/att/testcase/ascir/test_ascir_ops.cpp 无问题 — 移除 ExecOrderIncreaseOk 测试用例
autofuse/tests/ut/att/testcase/gen_model_info/core/test_brc_buf_graph.cpp 无问题 — 移除 exec_order 参数
autofuse/tests/ut/att/testcase/gen_model_info/core/test_concat.cpp 无问题 — 移除 exec_order 参数,更新 CreateContiguousData 调用
autofuse/tests/ut/att/testcase/gen_model_info/core/test_fa_ascir_graph.cpp 无问题 — 移除 exec_order 参数
autofuse/tests/ut/att/testcase/gen_model_info/core/test_gen_model_info.cpp 无问题 — 更新 CreateContiguousData 调用
autofuse/tests/ut/att/testcase/gen_model_info/expr_gen/test_pipe_perf_expr.cpp 无问题 — 更新 CreateContiguousData 调用
autofuse/tests/ut/att/testcase/gen_model_info/parser/test_ascend_graph_parser.cpp 无问题 — 更新 CreateContiguousData 调用
autofuse/tests/ut/att/testcase/gen_model_info/reuse_group_utils/test_equivalent_graph_recongnizer.cpp 无问题 — 更新 CreateContiguousData 调用
autofuse/tests/ut/att/utils/graph_construct_utils.cpp 无问题 — 更新 CreateContiguousData 调用
autofuse/tests/v35/st/att/concat/test_concat.cpp 无问题 — 更新 CreateContiguousData 调用
autofuse/tests/v35/ut/att/gen_model_info/api_perf_register/test_pipe_perf_expr_v2.cpp 无问题 — 更新 CreateContiguousData 调用

总体风险评估

低风险。 本次变更是一个干净的废弃重构:彻底移除了 exec_order 的处理逻辑(方法、检验、序列化/反序列化、代码生成),同时保留了结构体成员和 proto 字段以保证向后兼容。所有调用方均已同步更新。发现的 P2 问题(Python 测试算子名称变更)需要确认是否为预期变更,P3 问题仅为注释日期修正,不影响功能。

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

likedislike
不准确?
CANN-robotCANN-robot成员
7月15日 添加了label:stat/needs-squash
此处折叠了44条消息 查看更多
zhang_shengjie成员
7月15日 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
7月15日 添加了label:lgtm
yangyongqiang
yangyongqiang成员
7月15日 评论:

/approve

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