# PR #33809 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[AMD] Move test_load_weights_from_remote_instance.py to extra CI
- 合并时间：2026-08-06 16:57
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/33809

---

# 执行摘要

- 一句话：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 路径阻塞。

# 实现拆解

1. **变更入口**：修改测试文件 `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")` 的参数风格保持一致。
2. **原因与影响**：AMD 侧从默认 stage-b 套件切换到 label 门控的 extra-a 套件后，默认 AMD PR CI 不再运行该测试，避免 TransferEngine 路径的偶发失败阻塞常规提交；同时保留在 extra-a 套件中的覆盖，使该路径仍可被显式触发验证。
3. **测试配套**：作者已执行 `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 的核心动作。

```python
# 该文件是远程实例权重加载测试的 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 稳定性与后端覆盖之间取折中，是本次唯一的实质设计决策。

- 暂无高价值评论线程

# 风险与影响

- 风险：
 1. **回归检测延迟**：AMD 上 TransferEngine 权重加载可能“假成功”的问题不再被默认 CI 捕获，后续迭代若未显式跑 extra-a 套件，相关回归可能延迟发现。
 2. **套件映射依赖**：改动依赖 `extra-a-test-2-gpu-large-amd` 这一 runner 配置真实存在且由 label 正确门控；若映射配置漂移，测试可能被静默跳过。
 3. **验证不完整**：PR 作者在测试计划中未实际运行 AMD extra 套件，改动是否在真实 MI300 2-GPU 环境上通过仍存在不确定性。
 4. **产品代码零改动**：本次仅调整测试注册，不涉及任何运行时逻辑，产品路径无直接回归风险。
 - 影响：对用户无直接影响。对系统而言，默认 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 的处理思路一致。