执行摘要
该PR为AMD MI325 runner新增4-GPU CI测试套件,包括3个per-commit测试和1个nightly测试,通过修改CI工作流和测试注册逻辑实现,严格隔离AMD更改以保持NVIDIA路径不变,提升AMD平台测试覆盖和可靠性。
功能与动机
PR body中明确指出动机是'Add 4-GPU AMD CI test coverage on MI325 runners',解决AMD平台在4-GPU配置下的测试缺失问题。作者michaelzhang-ai在Issue评论中强调需'严格隔离AMD更改',确保NVIDIA代码路径不受影响,这反映了跨平台CI测试的设计需求。
实现拆解
实现分为两个主要模块:
- CI工作流模块:在
.github/workflows/下的四个YAML文件中新增jobs,如stage-c-test-4-gpu-amd和nightly-4-gpu,配置AMD MI325 runner和ROCm环境。关键代码片段:
```yaml
nightly-4-gpu-rocm720:
runs-on: linux-mi325-4gpu-sglang
steps:
- name: Nightly Test ROCm 7.2 (4-GPU)
run: bash scripts/ci/amd/amd_ci_exec.sh python3 run_suite.py --hw amd --suite nightly-amd-4-gpu
```
- 测试逻辑模块:在多个测试文件中使用
register_amd_ci()和is_in_amd_ci()实现AMD-specific调整:
| 文件 | AMD调整 | NVIDIA路径 |
|------|---------|------------|
| test_pp_single_node.py | 阈值从0.74降至0.70 | 保持0.74 |
| test_eagle_dp_attention.py | 后端切换为triton | 保持fa3 |
| test_dp_attention_large.py | 跳过MLA类测试 | 正常运行 |
评论区精华
review中无具体讨论,但Issue评论中作者michaelzhang-ai与HaiShaw交互,强调设计原则:
"I've cleaned up the PR to strictly isolate AMD changes: No NVIDIA code path changes."
这揭示了在跨平台CI测试中,通过条件分支和注册系统隔离更改的重要性,避免引入回归风险。
风险与影响
- 技术风险:AMD-specific逻辑可能引入假阳性,如
test_eagle_dp_attention.py中accuracy阈值降低可能掩盖性能问题;新增CI jobs增加资源消耗,但使用专用runner控制影响。
- 影响范围:对用户,提升AMD 4-GPU环境下的软件可靠性;对团队,建立标准化AMD测试流程,便于后续扩展;对系统,CI流水线增加4个jobs,但未改变NVIDIA测试行为。
关联脉络
与历史PR关联显示AMD平台测试的持续演进:
- PR #21193 修复AMD夜间测试的不兼容性,与本PR共同完善AMD CI覆盖。
- PR #21239 重构JIT内核CI使用
run_suite.py注册系统,与本PR的register_amd_ci()方法类似,体现仓库向中央化测试注册的演进趋势。
结合commit历史(44次提交),本PR经过多次迭代调整阈值和配置,最终采用严格隔离设计,反映了在多平台环境中平衡测试覆盖与代码维护性的技术权衡。
参与讨论