Prhub

#28853 [AMD CI] Add nightly Miles ROCm 7.2 MI350X suites

原始 PR 作者 XinyuJiangCMU 合并时间 2026-06-26 18:47 文件变更 1 提交数 11 评论 7 代码增减 +93 / -0

执行摘要

新增 AMD MI350X 夜间测试 workflow

PR body 指出:'Add a nightly GitHub Actions workflow for the Miles ROCm 7.2 MI350X e2e suites.' 目的是在代码变更后,通过夜间回归测试确保 AMD MI350X 硬件的持续兼容性,提前发现回归。

对于 CI 运维和 AMD 平台关注者,建议精读此工作流的镜像解析和矩阵策略设计,可作为类似硬件覆盖的模板。对于一般开发者,只需了解新的夜间测试流程存在即可,无需深入阅读。

讨论亮点
  • PYTHONPATH 覆盖:bingxche 指出容器已设 PYTHONPATH,不必要的覆盖会丢掉 /opt/tilelang。XinyuJiang 修复为 PYTHONPATH=/root/miles:/opt/tilelang
  • 镜像来源:bingxche 要求从公共 Docker Hub 解析镜像而非本地 registry。XinyuJiang 改为使用 docker manifest inspect 探测公共仓库标签。
  • 对 miles 仓库的依赖:bingxche 询问 --hw rocm 选项是否依赖于 miles#1379。XinyuJiang 确认正确,表示需等待该 MR 合入。

实现拆解

  1. 创建工作流文件:在 .github/workflows/nightly-test-amd-miles-rocm720.yml 中定义定时调度(UTC 17:30,晚于镜像构建的 12:00)和手动触发(workflow_dispatch),支持自定义镜像标签和继续运行出错开关。
  2. 并发与策略:设置 concurrency 组避免重复运行;通过矩阵策略定义三个套件 (stage-c-2/4/8-gpu-mi350),分别映射到 2-GPU 和 8-GPU 的自托管 runner。
  3. 镜像解析:首先登录 Docker Hub,然后从 rocm/sgl-dev 仓库中探测最近 7 天内日期标签(miles-rocm720-mi35x-YYYYMMDD),使用 docker manifest inspect 避免实际拉取。若无可用镜像则报错退出。
  4. 环境准备与测试执行:清理 VRAM,通过 amd_ci_start_container.sh 启动 miles 容器并挂载工作区;在容器内设置 PYTHONPATH=/root/miles:/opt/tilelang 确保导入路径正确;调用 tests/ci/run_suite.py 运行对应套件,支持 --continue-on-error 参数。
  5. 结果汇总:测试步骤将结果写入 github_summary.md,并在步骤末尾追加到 GitHub Step Summary 中,便于查看。
文件 模块 状态 重要度
.github/workflows/nightly-test-amd-miles-rocm720.yml CI 流程 added 5.76

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

评论区精华

PYTHONPATH 覆盖问题 设计

bingxche 指出 workflow 中覆盖 PYTHONPATH 会丢失容器内已设置的 /opt/tilelang 路径,建议避免不必要的覆盖。

结论:XinyuJiang 接受并修改为 PYTHONPATH=/root/miles:/opt/tilelang,保留两条路径。 · 已解决

镜像解析来源 设计

bingxche 要求从公共 Docker Hub 解析镜像,而非本地 registry,以确保 build 后镜像可用。

结论:XinyuJiang 改为使用 docker manifest inspect 探测公共仓库标签。 · 已解决

对 miles 仓库的依赖 question

bingxche 询问 --hw rocm 选项是否在 miles#1379 合入后才可用。

结论:XinyuJiang 确认正确,表示需等待该 MR 合入;当前 workflow 提交时可能测试会因不支持 --hw rocm 而失败。 · 已解决

风险与影响

  • 镜像可用性风险:工作流依赖 miles 镜像的 dated tag 必须存在,若构建失败或超过 7 天未更新则工作流报错退出,导致测试缺失。
  • 测试环境差异:4-GPU 套件在 8-GPU runner 上运行,可能掩盖仅出现在 4-GPU 拓扑下的问题(如 NCCL 通信模式)。
  • 外部依赖:测试套件定义在 miles 仓库中,sglang 仓库无法直接控制其注册逻辑;若 miles 侧注册延迟,可能导致套件为空(早期提交中有空套件保护,后移除)。
  • 资源消耗:夜间多个矩阵任务可能长时间占用 GPU runner,影响其他 CI 使用。

本 PR 仅新增一个 CI 工作流,对系统无直接变更。影响范围限于 AMD MI350X 硬件的夜间回归测试。团队需维护 miles 镜像构建和测试套件注册。对普通用户无感知,但可提升 AMD 平台的发布质量。

外部镜像依赖 4-GPU 套件在 8-GPU 上运行 外部测试套件注册时机

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论