Pull Request已成功合入, 合并人@CANN-robot
(感谢 GengChao 的贡献)变更摘要
此 PR 新增了 H2D 与 Compute 重叠执行的编译选项接口,允许用户通过 ATC 命令行参数 --h2d_overlapped_with_compute 控制在静态 shape 模型上启用输入 H2D 重叠。该选项通过编译期选项 ge.compile.h2dOverlappedWithCompute 传递至 GE 内部,同时明确排除了 OM2 模式及 raw_ge_options 路径的支持,并补充了相应的单元测试覆盖。
主要改动
-
新增 GE 编译选项常量: 在
ge_common_api_types.h中定义了OPTION_H2D_OVERLAPPED_WITH_COMPUTE(值为"ge.compile.h2dOverlappedWithCompute"),并将其加入ir_builder_suppported_options和global_options集合,使该选项在 IR 构建和全局选项路径中可被识别。 -
新增 ATC 命令行参数: 在
atc_flags.cc/atc_flags.h中定义了FLAGS_h2d_overlapped_with_compute,支持0(禁用,默认)、1(启用默认 DP)、边界值和范围值等配置形式。 -
参数传递与 OM2 限制: 在
main_impl.cc中,SetAtcJitOptions函数将FLAGS_h2d_overlapped_with_compute写入编译选项 map;同时在kOm2UnsuppotedFlag集合中显式排除该参数,确保 OM2 模式下不支持此特性。 -
raw_ge_options 路径不支持: 在
atc_raw_options_unittest.cc中新增测试用例H2DOverlappedWithComputeOptionDoesNotUseRawOption,验证GetRawCliName对OPTION_H2D_OVERLAPPED_WITH_COMPUTE返回空字符串,确认该选项不走 raw_ge_options 路径。 -
测试环境初始化: 在
atc_utils.h中声明FLAGS_h2d_overlapped_with_compute并在AtcTest基类中将其初始化为空字符串,确保测试环境确定性。


代码审查
审查总结
审查覆盖的 6 个文件:
| 文件 | 结果 |
|---|---|
api/atc/atc_flags.cc |
✅ 无问题 |
api/atc/atc_flags.h |
✅ 无问题 |
api/atc/main_impl.cc |
⚠️ 1 个 P2 问题 |
inc/graph_metadef/external/ge_common/ge_common_api_types.h |
✅ 无问题 |
tests/framework/ge_running_env/include/ge_running_env/atc_utils.h |
✅ 无问题 |
tests/ge/ut/ge/session/atc_raw_options_unittest.cc |
✅ 无问题 |
按严重度统计:
- P0: 0
- P1: 0
- P2: 1
- P3: 0
整体风险评估:
低风险。变更范围清晰、模式与现有代码一致:新增了一个 ATC CLI 参数 --h2d_overlapped_with_compute,正确地在 OM2 中禁用、在 raw_ge_options 路径中不支持,并通过 SetAtcJitOptions 传递到 GE 编译选项。ir_option 命名空间中的常量定义、ir_builder_suppported_options 和 global_options 集合的补充均与现有模式一致。测试覆盖了 raw_ge_options 不支持该参数的路径。
唯一需要关注的是:参数值缺少格式校验,仅记录日志而未验证,非法值将静默传递到后续编译管线。建议在后续批次中补充校验逻辑,或至少添加 TODO 注释。
⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。


/approve


20260709评审通过
Pull Request
描述
新增 H2D 与 Compute overlap 的 option 接口部分。
本 PR 只包含第一批上库内容:
ge.compile.h2dOverlappedWithCompute--h2d_overlapped_with_compute并传递到 compile options变更类型
关联的Issue
无
如何测试
cmake --build build_ut --target ut_libge_multiparts_utest -j4LSAN_OPTIONS=detect_leaks=0 ./build_ut/tests/ge/ut/ge/ut_libge_multiparts_utest --gtest_filter='AtcRawOptionsUTest.*'核对清单
其他信息
后续编译期规划、加载执行时实现、example/README 将按批次拆分提交。