Prhub

#33462 [AMD] Bump mori to latest in sglang

原始 PR 作者 Lzy17 合并时间 2026-08-05 06:12 文件变更 1 提交数 1 评论 3 代码增减 +1 / -1

执行摘要

升级 ROCm 镜像 MORI pin,修复 EP16 分离启动不稳定

PR body 说明:当前 pin 早于 bootstrap-timeout 修复(ROCm/mori#493),该修复通过 MORI_BOOTSTRAP_TIMEOUT 使 MORI rendezvous 超时可配置并解决间歇性 EP16 bootstrap 失败。上游 issue #493 指出 socket_bootstrap.cpp 中四个硬编码超时点合计约 10 秒,根 rank 慢启动时会令非根 rank 耗尽重试并报错 failed to connect to root after 50 retries;提交信息补充:EP16 启动器已设置 MORI_BOOTSTRAP_TIMEOUT=300,但旧 pin 完全忽略该变量,提升到 12d1bc32 后配置才真正生效。

该 PR 适合快速浏览,重点不在代码而在上下游联动:阅读 ROCm/mori#493 可理解 bootstrap 超时为何是启动不稳定的根因。值得关注的设计决策是让默认超时从约 10 秒提升到 300 秒,并统一四个超时点,这是分布式 bootstrap 超时配置的一个合适示例。若团队维护 AMD/ROCm 镜像,应留意多节点验证补跑。

讨论亮点

唯一实质讨论来自关联 issue 评论,bingxche 报告验证状态:单节点 MORI 回归套件在精确 head fc35c2bd 上通过(MORI EP small + MI35X MORI disaggregation);多节点 DSV4 2P1D 验证因分支重写被取消,尚未重新触发。审查人 Duyi-Wang 直接 APPROVED,没有 review 评论。其余评论为已失效的 gemini-code-assist 机器人提示。

实现拆解

  1. 变更入口:仅修改 docker/rocm.DockerfileARG MORI_COMMIT,这是 ROCm 镜像构建时固定 MORI 源码版本的参数。
  2. 关键变更MORI_COMMITf7e6ac68... 更新为 12d1bc32...,后者包含 ROCm/mori#493。
  3. 原因与效果:旧 pin 中 bootstrap 超时硬编码为约 10 秒,不可外部配置;新 pin 将所有超时点统一从 MORI_BOOTSTRAP_TIMEOUT 读取(默认 300 秒,非法值回退),并修正与实际行为不符的注释,从而让 EP16 启动器设定的 300 秒预算生效。
  4. 影响范围:仅影响 ENABLE_MORI=1 的 AMD/ROCm 分离部署,源码和测试逻辑零改动。
  5. 验证配套:无新增测试文件,依赖 CI 回归;单节点 MORI 回归在 head fc35c2bd 通过,多节点 DSV4 2P1D 验证在合并前未重新触发。
文件 模块 状态 重要度
docker/rocm.Dockerfile 镜像配置 modified 2.78

关键源码片段

docker/rocm.Dockerfile configuration

唯一变更文件,通过 `MORI_COMMIT` 将 MORI 依赖 pin 提升到包含可配置 bootstrap 超时修复的提交,解决 AMD EP16 分离启动失败。

# MORI 是 AMD 环境下的分离通信后端(负责 MoE all-to-all 与 KV 传输)。
# 该 ARG 固定 MORI 源码 commit;本次提升到 12d1bc32,包含 ROCm/mori#493,
# 使 bootstrap rendezvous 超时改为可配置环境变量 MORI_BOOTSTRAP_TIMEOUT(默认 300 s),
# 修复 EP16 启动时慢节点因旧版约 10 s 硬编码超时而报 "Failed to setup communication ring" 的间歇性失败。
ARG ENABLE_MORI=0
ARG NIC_BACKEND=none
ARG MORI_REPO="https://github.com/ROCm/mori.git"
ARG MORI_COMMIT="12d1bc32d0c93dcd5062e74f4e0f772e36e1aac4"

评论区精华

MORI pin 的验证状态与多节点回归 测试

bingxche 在关联 issue 评论中报告:单节点 MORI 回归套件已在精确 PR head `fc35c2bd` 上通过(MORI EP small + MI35X MORI disaggregation),并给出 CI 链接;多节点 DSV4 2P1D 因验证分支重写未重新触发。审查人 Duyi-Wang 直接 APPROVED。

结论:单节点复杂度已通过,多节点验证留待后续补跑,PR 已合并。 · 已解决

风险与影响

(1)依赖升级风险:f7e6ac6812d1bc32 之间除 #493 外可能存在其他上游提交,且多节点 DSV4 2P1D 未在合并前复验,可能有残余回归。(2)超时行为变化:MORI_BOOTSTRAP_TIMEOUT 默认 300 秒,真实连接失败时错误路径感知延迟变长;上游声明为有界等待,不会无限挂起。(3)镜像构建影响:需要重建 ROCm 镜像才能生效,已发布镜像在重建前不受影响。(4)影响范围:仅限 ENABLE_MORI=1 的 AMD 分离部署,CUDA/NIXL 后端不受影响。

用户侧:AMD/ROCm 上使用 EP16 分离(如 DeepSeek 宽 EP16)的部署将不再间歇性遭遇 bootstrap 竞争失败,启动更稳定。系统侧:ROCm Docker 镜像的依赖被更新,需重新构建验证。团队侧:为后续 AMD 分离链路的 bootstrap 超时调试提供了可配置手段,降低同类问题排查成本。整体影响程度中等,主要影响 AMD 用户群,但代码改动极小。

依赖 pin 升级 AMD/ROCm 路径 多节点验证未重新运行

关联 Issue

#493 fix(bootstrap): make rendezvous timeout configurable via MORI_BOOTSTRAP_TIMEOUT

完整报告

参与讨论