Prhub

#37225 [AMD] build gfx1250 release image from main

原始 PR 作者 yctseng0211 合并时间 2026-08-31 17:04 文件变更 1 提交数 1 评论 0 代码增减 +18 / -19

执行摘要

AMD gfx1250 镜像改从 main 构建并转正式发布

PR 正文明确指出:PR #36871 已把 gfx1250-rocm1000 stage 合入 main,因此 release job 不再需要 checkout amd_helios 分支;随之可以删除分支 pin 及其所需的 BRANCH_SHA 传递,并把镜像提升为与 gfx942/gfx950 一致的正式 release tag,镜像同步到 lmsysorg/sglang-rocm。此前 gfx1250 镜像只能从 bring-up 分支构建并带有 -dev 后缀,用户无法从常规发布通道获取,且维护分支 pin 需要额外的 BRANCH_SHA 传递逻辑,增加流水线复杂度与 tag 语义歧义。

值得快速浏览而非精读。对维护 AMD 发布流水线的成员有参考价值,重点注意两个设计决策:(1) 用独立 job 隔离 bring-up 构建失败,避免影响正式发布;(2) tag 从 dev 到 release 的切换时机以构建 stage 是否合入 main 为准。若后续 gfx1250 镜像被 MI450 集群实际消费,应重新评估是否仍需要独立 job,并考虑为发布镜像增加冒烟验证步骤。

讨论亮点

该 PR 没有任何实质 review 讨论:0 条 comment、0 条 review comment,唯一审核为 bingxche 的 APPROVED(正文为空),说明变更符合 reviewer 预期。值得提炼的决策全部写在代码注释里:gfx1250 保持独立 job,避免 bring-up 构建失败阻断 gfx942/gfx950 发布;tag 从 -dev 升级为正式语义并写入 IMAGE_TAG 供同步步骤复用。PR 快照中 Extra CI 显示失败状态(Run #33375062164),但材料未提供失败详情,无法归因。

实现拆解

  1. 解除分支锁定publish-gfx1250 job 的 Checkout 步骤删除 ref: amd_helios(保留 fetch-depth: 0),改为构建当前 workflow 触发的 ref(main)。这是整个 PR 的前提,依赖 #36871 已合入 main。
  2. 删除 BRANCH_SHA 传递链路:version 步骤不再计算并输出 branch_sha;docker build 的 --build-arg SGL_BRANCH${BRANCH_SHA} 改为 ${GITHUB_SHA},镜像内源码版本与触发发布时的 main commit 绑定。
  3. Tag 语义升级:image tag 从 v${VERSION}-rocm10-mi45x-dev-${DATE} 改为 v${VERSION}-rocm10-mi45x-${DATE},去掉 -dev 后缀,并把 IMAGE_TAG 写入 GITHUB_ENV 供后续同步步骤复用。
  4. 镜像同步到公开仓库:新增“Login to Docker Hub (lmsys)”(使用 DOCKERHUB_USERNAME / DOCKERHUB_TOKEN)与“Push to lmsysorg/sglang-rocm”两步,将 rocm/sgl-dev 镜像 tag 后推送到 lmsysorg/sglang-rocm,与 gfx942/gfx950 路径一致。
  5. 保留独立 job 结构:gfx1250 仍与 gfx942/gfx950 分开运行;工作流注释说明原因——目前没有 MI450 runner 池消费该镜像,bring-up 构建失败不应 gate 已发布的正式镜像。

配套说明:无测试改动、无配置 schema 变更;属于 CI 发布流水线调整,验证只能通过触发 release job 实际运行完成。

文件 模块 状态 重要度
.github/workflows/release-docker-amd-rocm10.yml 发布流水线 modified 4.23

关键符号

publish-gfx1250 Push to lmsysorg/sglang-rocm

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

评论区精华

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

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

风险与影响

  1. 镜像质量风险:去掉 -dev 后缀后,gfx1250 镜像以正式 release tag 出现在 lmsysorg/sglang-rocm 公共仓库;当前没有 MI450 runner 池消费该镜像,质量验证可能不足,用户可能拉取到未充分验证的镜像。缓解:tag 仍含 mi45x 与日期标识,且该 job 失败不 gate 其他镜像。
  2. 构建来源变更风险:SGL_BRANCH 从固定分支 head 改为 GITHUB_SHA 后与 main 实时状态绑定,若 docker/rocm.Dockerfile 的 gfx1250 stage 有回归,构建会失败,但不会波及其他 job。
  3. 配置/密钥风险:新增 lmsys 登录步骤依赖 DOCKERHUB_USERNAME / DOCKERHUB_TOKEN secrets,缺失或权限不足会导致发布失败;此类配置错误无单元测试覆盖,只能运行时暴露。
  4. CI 状态:PR 快照中 Extra CI 运行显示失败(Run #33375062164)、AMD ROCm 7.2 无对应运行;材料中无失败详情,无法判断是否与本 PR 相关。
  5. 兼容性风险:-dev tag 不再生成,若此前有消费者依赖该 tag 会受影响(bring-up 阶段镜像,影响面很小)。

影响范围集中在发布流水线,无运行时、性能或 API 影响。

  • 用户侧:AMD MI45x(gfx1250,ROCm 10)用户可从 lmsysorg/sglang-rocm 获取与 gfx942/gfx950 同语义的正式 tag 镜像,不再依赖 amd_helios 分支手工构建。
  • 流水线侧:移除对 amd_helios 分支的运行时依赖,减少分支管理与 BRANCH_SHA 传递复杂度;后续 gfx1250 修复只需改 main 上的 docker/rocm.Dockerfile。
  • 团队侧:AMD 多架构发布流程统一到 main;job 独立性使 gfx1250 的 bring-up 风险与正式镜像发布隔离。
  • 影响程度:中等偏低,改动量小(+18/-19),但属于生产发布通道变更。
发布流水线变更 镜像标签语义变化(-dev 移除) 无自动化验证 依赖前置 PR #36871 Extra CI 失败待查

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论