Prhub

#42793 [ROCm][CI] Stage C mirrors

原始 PR 作者 AndreasKaratzas 合并时间 2026-06-08 14:00 文件变更 11 提交数 17 评论 7 代码增减 +213 / -38

执行摘要

为 ROCm CI 新增 Stage C 镜像测试组

为了提升 ROCm 平台的测试覆盖和门控质量,需要将更多 CI 测试组镜像到 AMD GPU 硬件上运行。PR body 列出了所有镜像的测试组,并指定了 agent 数量(6 x mi300_1, 2 x mi325_1),确保关键功能在 AMD 平台上的正确性。

建议合并本 PR(已合并),但后续应跟进 review 中关于父步依赖缺失的问题,将 vllm/platforms/rocm.py 等文件添加到对应测试区域的 source_file_dependencies 中,确保 ROCm 代码变更能够正确触发镜像测试。本 PR 可以作为 CI 镜像模式的参考实现。

讨论亮点

在 review 中,gemini-code-assist[bot] 提出了多个建议:

1) 建议将 Extract Hidden States Integration 标记为 optional,以避免 CI 瓶颈——已采纳并设置 optional: true
2) 指出 attentionentrypointsspec_decode 等测试区域的父 step 中未包含 vllm/platforms/rocm.py 等 ROCm 特定依赖,可能导致修改这些文件时不触发镜像测试——该问题未在 PR 中修正,后续可以继续改进。

实现拆解

  1. 主配置添加新 job:在 .buildkite/test-amd.yaml 中新增 Speculators CorrectnessExtract Hidden States Integration 两个测试组,均设定为 optional: true,并详细指定源文件依赖,确保只有在相关模块变更时才会触发。
  2. 测试区域添加 AMD mirror:在 .buildkite/test_areas/ 下的多个 YAML 文件中,为 attentionengineentrypointsspec_decodemodels_multimodallm_evalmodels_languagekernels 等测试组增加 mirror 配置,指定 AMD 设备(MI300 或 MI325)和超时时间。
  3. 调整 CI 运行脚本:在 .buildkite/scripts/hardware_ci/run-amd-test.sh 中,设置 Hugging Face 下载超时为 300 秒、ETAG 超时为 60 秒,统一容器内 Python 路径为 /vllm-workspace,并定义容器级缓存目录(torchinductor、triton、VLLM 等),以解决冷缓存超时问题。
  4. Dockerfile 更新:在 docker/Dockerfile.rocm 中增加了必要的依赖安装,确保镜像构建时包含所需工具(如 torchcodec)。
  5. 集成测试:这些配置变更不直接修改应用代码,而是通过 CI 流水线在每次 PR 时自动运行 AMD 镜像测试,验证 ROCm 平台的兼容性。
文件 模块 状态 重要度
.buildkite/test-amd.yaml 构建配置 modified 5.07
.buildkite/test_areas/spec_decode.yaml 测试区域 modified 4.67
.buildkite/scripts/hardware_ci/run-amd-test.sh CI 脚本 modified 4.59
.buildkite/test_areas/entrypoints.yaml 测试区域 modified 4.45
.buildkite/test_areas/models_multimodal.yaml 测试区域 modified 4.44
.buildkite/test_areas/attention.yaml 测试区域 modified 4.19
.buildkite/test_areas/engine.yaml 测试区域 modified 4.1
.buildkite/test_areas/lm_eval.yaml 测试区域 modified 4.09
.buildkite/test_areas/models_language.yaml 测试区域 modified 3.23
.buildkite/test_areas/kernels.yaml 测试区域 modified 3.12
docker/Dockerfile.rocm 容器镜像 modified 2.64

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

Extract Hidden States Integration 的可选性 设计

gemini-code-assist[bot] 建议将新测试标记为 optional 以避免 CI 阻塞

结论:已采纳,该 job 在 test-amd.yaml 中已设置 optional: true · 已解决

父 step source_file_dependencies 缺少 ROCm 文件 正确性

gemini-code-assist[bot] 指出 attention、entrypoints、spec_decode 等测试区域的父 step 未包含 vllm/platforms/rocm.py 等依赖,可能导致相关变更不触发镜像测试

结论:未在 PR 中修正,需后续改进 · unresolved

风险与影响

1) 父 step 依赖缺失可能导致测试盲区,例如修改 vllm/platforms/rocm.py 不会触发 attention 等测试的 AMD 镜像,影响回归检测能力。
2) 新增的 Speculators CorrectnessExtract Hidden States Integration 测试超时均为 180 分钟,虽然标记为 optional,但仍会消耗 CI 资源,若频繁失败可能影响开发体验。
3) 脚本中的路径和缓存配置变更(如 PYTHONPATHCONTAINER_TMPDIR)可能与其他 CI 步骤产生冲突,需观察日志。
4) 配置重复较多,维护成本上升。

正面:显著提升 AMD GPU 上的测试覆盖,使得 V1 attention、LLM Engine、Spec Decode 等核心功能在 ROCm 平台上获得门控级验证,有助于提前发现兼容性问题。负面影响:CI 执行总时间增加,需要更多 AMD agent 资源(6×mi300_1 + 2×mi325_1),配置复杂度提升。团队需要投入精力维护这些镜像配置与主步骤同步。

测试覆盖盲区(依赖缺失) CI 时间延长风险 配置复杂度增加

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论