Prhub

#35603 [AMD][CI] Run Both ROCm 7.2.4 and ROCm 7.2.0 Images on Nightly Test AMD

原始 PR 作者 bingxche 合并时间 2026-08-20 16:37 文件变更 4 提交数 5 评论 0 代码增减 +254 / -47

执行摘要

AMD 夜间 CI 同时跑 ROCm 7.2.4 与 7.2.0 镜像

PR body 明确说明:#30984 started publishing rocm724 images nightly, but the nightly test suite still hardcoded --rocm-version rocm720 everywhere, so the new images went untested. 镜像发布与测试版本脱节,导致 7.2.4 镜像的潜在问题无法被夜间测试发现。

值得精读,尤其适合 CI 工程师参考 matrix 参数化模式:如何用 fromJson 控制矩阵规模、如何通过 workflow_call 默认值避免调用方意外扩量,以及如何通过显式传参把版本决策上移。

讨论亮点

该 PR 没有 review comments。审阅人 HaiShaw 直接 APPROVED。提交历史体现了关键设计权衡:起初尝试两条 cron 分别跑两个版本,但提交信息指出 Two identical cron entries could not have worked: github.event.schedule is the only thing that distinguishes them,因此改为单次 nightly 内的 matrix 展开,避免重复调度且保证两个版本共享同一批资源。

实现拆解

实现分为四步:

  1. 在 nightly-test-amd-rocm720.yml 中为 workflow_dispatch 和 workflow_call 新增 rocm_version 输入(all/rocm724/rocm720),dispatch 默认 all 与夜间调度一致,call 默认 rocm724 以避免调用方未指定时静默获取双倍 GPU 开销。
  2. 对 nightly-test-1-gpu-unit-rocm720、nightly-test-1-gpu-kernel-rocm720、nightly-test-1-gpu-mi35x-rocm720 等任务添加 strategy.matrix,通过 fromJson 表达式根据输入生成单元素或双元素数组,并把容器启动脚本的 --rocm-version 改为 ${{ matrix.rocm_version }},同时设置 fail-fast: false 确保一个版本失败不阻塞另一个。
  3. 在 amd-aiter-scout.yml、bot-bump-sglang-version.yml、release-branch-cut.yml 的 workflow 调用处显式增加 rocm_version: rocm724,把版本选择提升到调用侧,防止 callee 默认值变化导致这些流程从 7.2.0 静默切到 7.2.4。
  4. 合入 main 时解决与 #32570(GLM-5.2 MI35x 任务重命名)的冲突,以 main 版本为准后重新套用矩阵逻辑。
文件 模块 状态 重要度
.github/workflows/nightly-test-amd-rocm720.yml CI 配置 modified 5.29
.github/workflows/amd-aiter-scout.yml CI 配置 modified 2.81
.github/workflows/bot-bump-sglang-version.yml CI 配置 modified 2.81
.github/workflows/release-branch-cut.yml CI 配置 modified 2.81

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

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

  1. 资源开销:matrix 展开后夜间任务数量翻倍,占用双份 GPU 时间,可能挤压其他 nightly 作业。
  2. 版本稳定性:调用方显式指定 rocm724 后,AITER scout、版本 bump 和 release-branch-cut 的测试覆盖从 7.2.0 迁移到 7.2.4,若新镜像存在回归这些流程将先失败。
  3. 表达式错误:fromJson 表达式依赖 inputs.rocm_version 值,非法字符串会令矩阵定义报错导致整个 workflow 无法启动;当前调用点均以逐一核对。
  4. 告警稀释:fail-fast: false 虽保证两版本都执行,但失败报告翻倍,可能降低告警醒目度。

对团队而言,AMD MI300 系列 nightly 测试从单版本覆盖变为双版本覆盖,能更快发现镜像发布问题;对开发者无行为变更。对基础设施而言,夜间运行时间和 GPU 消耗翻倍,需要关注排队情况。对现有流程而言,AITER scout、版本 bump 和 release 分支 cut 的测试基础镜像从 7.2.0 变为 7.2.4,需要验证兼容性。

nightly 运行资源翻倍 调用方版本静默迁移 矩阵表达式可能出错 fail-fast 关闭告警稀释

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论