执行摘要
- 一句话:AMD 远程权重加载测试移至 extra CI,避免默认 CI 阻塞
- 推荐动作:不值得精读,属于一行级别的 CI 注册调整。可借鉴的点在于:面对 flaky 硬件相关测试时,除了“强制换后端”(#30035)之外,还可以通过“默认套件降级 + extra CI 保留覆盖”的方式平衡稳定性与覆盖度。若后续 AMD TransferEngine 路径修复,应将该测试移回默认套件。
功能与动机
PR body 明确指出:CI 缩减的测试会在 NCCL 与 TransferEngine 之间随机选择;在 AMD 上,当前 Mooncake TransferEngine 路径可能报告成功但目标权重保持为零,从而造成默认 CI 不稳定。作者选择将 AMD 注册移到 label 门控的 extra-a 套件,作为 #30035 的替代方案——#30035 是强制 AMD CI 走 NCCL,而本 PR 保留 TransferEngine 的 opt-in 覆盖,避免默认 CI 被 flaky 路径阻塞。
实现拆解
- 变更入口:修改测试文件
test/registered/model_loading/test_load_weights_from_remote_instance.py 中的 CI 注册调用。将 register_amd_ci(est_time=72, suite="stage-b-test-2-gpu-large-amd") 改为 register_amd_ci(est_time=72, stage="extra-a", runner_config="2-gpu-large-amd"),与 CUDA 侧 register_cuda_ci(est_time=145, stage="extra-a", runner_config="2-gpu-large") 的参数风格保持一致。
- 原因与影响:AMD 侧从默认 stage-b 套件切换到 label 门控的 extra-a 套件后,默认 AMD PR CI 不再运行该测试,避免 TransferEngine 路径的偶发失败阻塞常规提交;同时保留在 extra-a 套件中的覆盖,使该路径仍可被显式触发验证。
- 测试配套:作者已执行
git diff --check、py_compile 和 CI 注册解析验证,确认 CUDA 映射到 extra-a-test-2-gpu-large、AMD 映射到 extra-a-test-2-gpu-large-amd。测试计划中“运行 PR Test Extra (AMD)”与“运行 ROCm 7.2 extra 套件”两项尚未勾选,属于待验证项。
关键文件:
test/registered/model_loading/test_load_weights_from_remote_instance.py(模块 远程加载;类别 test;类型 test-coverage): 唯一的变更文件,通过修改 register_amd_ci 参数将 AMD 远程权重加载测试从默认 stage-b 套件移到 label 门控的 extra-a 2-GPU 套件,与 CUDA 注册对齐,是本 PR 的核心动作。
关键符号:未识别
关键源码片段
test/registered/model_loading/test_load_weights_from_remote_instance.py
唯一的变更文件,通过修改 register_amd_ci 参数将 AMD 远程权重加载测试从默认 stage-b 套件移到 label 门控的 extra-a 2-GPU 套件,与 CUDA 注册对齐,是本 PR 的核心动作。
# 该文件是远程实例权重加载测试的 CI 注册入口。
# CUDA 侧早已注册在 label 门控的 extra-a 2-GPU 大套件;
# AMD 侧原来挂在默认 stage-b 套件,会在默认 PR CI 中运行,
# 本次统一对齐到 extra-a,使 flaky 的 TransferEngine 路径不再阻塞默认 CI。
register_cuda_ci(est_time=145, stage="extra-a", runner_config="2-gpu-large")
register_amd_ci(est_time=72, stage="extra-a", runner_config="2-gpu-large-amd")
评论区精华
该 PR 没有 Review 评论线程,审阅者 HaiShaw 直接批准(APPROVED)。核心权衡体现在 PR body 中:相较于 #30035 强制 AMD CI 改用 NCCL 的方案,本 PR 选择保留 TransferEngine 在 extra CI 的覆盖,在默认 CI 稳定性与后端覆盖之间取折中,是本次唯一的实质设计决策。
风险与影响
- 风险:
- 回归检测延迟:AMD 上 TransferEngine 权重加载可能“假成功”的问题不再被默认 CI 捕获,后续迭代若未显式跑 extra-a 套件,相关回归可能延迟发现。
- 套件映射依赖:改动依赖
extra-a-test-2-gpu-large-amd 这一 runner 配置真实存在且由 label 正确门控;若映射配置漂移,测试可能被静默跳过。
- 验证不完整:PR 作者在测试计划中未实际运行 AMD extra 套件,改动是否在真实 MI300 2-GPU 环境上通过仍存在不确定性。
- 产品代码零改动:本次仅调整测试注册,不涉及任何运行时逻辑,产品路径无直接回归风险。
- 影响:对用户无直接影响。对系统而言,默认 AMD CI 的稳定性得到提升,减少因 TransferEngine 偶发失败导致的无效重跑;但 AMD 上远程权重加载的后端覆盖从默认降级为 opt-in,需要在 extra CI 中持续关注。对团队而言,这是一个 CI 编排策略调整,维护者需理解 suite 与 stage/runner_config 两种注册方式的语义差异,并确保 extra-a 的 label 门控配置与 CUDA/AMD 两侧保持一致。
- 风险标记:AMD 专用路径, 默认 CI 覆盖移除, 缺少 AMD 实测验证
关联脉络
- PR #30035 : PR body 中明确提及本 PR 是其替代方案:该 PR 强制 AMD CI 使用 NCCL,而本 PR 保留 TransferEngine 在 extra CI 的 opt-in 覆盖。
- PR #33694 [AMD] Gate DFLASH non-greedy verify on the target-only kernel being registered: 同属 AMD 侧 CI 门控策略调整:通过按条件注册/门控来避免 AMD 路径在默认 CI 中崩溃或误报,与本 PR 的处理思路一致。
参与讨论