Prhub

#37286 [AMD][MORI] Bump MoRI to 7c51d18 for ionic RoCE dmabuf fix (#509)

原始 PR 作者 Lzy17 合并时间 2026-09-01 12:37 文件变更 1 提交数 1 评论 0 代码增减 +1 / -1

执行摘要

升级 MoRI 依赖,修复 ionic RoCE 上 KV 传输 EOF 错误

PR body 明确指出:DSV4 HiSparse/HiCache PD over MoRI on ionic RoCE hits ReadMessageHeader failed: EOF during KV transfer with the pinned MoRI;#509 fixes it。即当前固定的 MoRI 版本缺少上游 #509(rdma: fix dmabuf offset for sub-allocated GPU buffers, LOC_PROT on ionic RoCE)的修复,在 ionic RoCE 网卡与子分配 GPU 缓冲组合下,KV 传输因 dmabuf 偏移错误而失败。作者在 7c51d18 版本上完成端到端验证(DSV4-Pro 2 节点 1P1D,GSM8K 0.95,0 faults)后提交本变更。

作为一行依赖版本升级,无需精读实现细节;但 AMD、hi-cache、disaggregation 相关团队应关注验证结论与 CI 失败项,建议合入前确认 Extra/AMD ROCm 7.2 流水线失败是否与本次 bump 相关。值得关注的设计决策是:将 MoRI 的 pin 放在 Dockerfile ARG 中并附带 NIXL/UCX 构建注释,便于快速定位和追踪上游依赖版本。

讨论亮点

本 PR 没有任何 review 评论或讨论线程,审核人 Duyi-Wang 直接提交 APPROVED 且未附加说明。因此没有设计权衡交锋可提炼,唯一可确认的是该依赖 bump 获得了 AMD 侧维护者的快速认可。

实现拆解

  1. 定位版本缺口:docker/rocm.DockerfileMORI_COMMIT 固定为 12d1bc32,该版本未包含上游 #509 的 ionic RoCE dmabuf 修复。
  2. 更新依赖 pin:将 MORI_COMMIT 一行替换为 7c51d18fda59457cc9238ed262bd93c8cad906c9,镜像构建时从源码克隆并编译的 MoRI 即携带 #509 修复,同时包含 #505 到 #617 之间的全部上游变更。
  3. 验证与配套:无 Python 代码与测试改动,仅镜像构建参数变化;作者在 2 节点 1P1D DSV4-Pro 上完成端到端验证。CI 中 Base 流水线通过,Extra 与 AMD ROCm 7.2 流水线未通过,PR 内未说明失败原因。
文件 模块 状态 重要度
docker/rocm.Dockerfile 镜像构建 modified 2.78

关键源码片段

docker/rocm.Dockerfile dependency-bump

ROCm 镜像构建入口,`MORI_COMMIT` 构建参数的 pin 从 12d1bc32 更新为 7c51d18,是整个 PR 唯一且核心的变更点,直接决定镜像内 MoRI 的行为。

# MoRI 版本 pin:需与上游修复保持同步。此次从 12d1bc32 提升到 7c51d18,
# 以引入 ionic RoCE 上子分配 GPU 缓冲的 dmabuf 偏移修复(上游 #509)。
ARG ENABLE_MORI=0
ARG NIC_BACKEND=none
ARG MORI_REPO="https://github.com/ROCm/mori.git"
ARG MORI_COMMIT="7c51d18fda59457cc9238ed262bd93c8cad906c9"# NIXL(上游 ai-dynamo/nixl)—— prefill/decode 分离场景下的 KV 传输后端。
# 从源码构建以适配 ROCm,需要 UCX 以 --with-rocm 方式构建(此处基于 openucx 源码构建)。

评论区精华

review 结论 other

无任何 review 评论;审核人 Duyi-Wang 提交 APPROVED,未附加说明。

结论:批准合入,无需进一步修改。 · 已解决

风险与影响

  1. 版本跳升范围较大:从 12d1bc32(#505 时代)跳到 7c51d18(#617),携带 #505 至 #617 之间的所有上游变更,除目标修复外可能引入其他行为变化。
  2. CI 状态存疑:Extra 与 AMD ROCm 7.2 两条流水线标记为未通过,PR 中未给出原因;考虑到变更仅发生在 ROCm 镜像构建参数上,若失败发生在镜像构建阶段则与本 PR 直接相关,合入前需确认失败根因。
  3. 镜像级影响面:docker/rocm.Dockerfile 是 ROCm 全量镜像的构建入口,该改动影响所有基于此镜像的构建产物与下游测试,行数虽少但影响面是整类镜像。
  4. 验证覆盖面窄:端到端验证仅在 DSV4-Pro 2 节点 1P1D + ionic RoCE 一种拓扑上完成,其他网卡、后端或模型组合未覆盖。

对用户:AMD ROCm 平台上使用 MoRI 做 prefill/decode 分离或 DSV4 HiSparse/HiCache 部署的用户(尤其是 ionic RoCE 网络)将修复 KV 传输 EOF 故障;非 AMD 平台用户不受影响。对系统:ROCm 镜像重新构建后生效,属于部署侧变更,需要镜像仓库重新出包。对团队:AMD 平台维护者需跟进 Extra 与 ROCm 7.2 CI 失败项,并保持 MoRI pin 与上游修复的同步节奏。

依赖版本跳升 CI 部分流水线未通过 ROCm 镜像全局变更 验证场景单一

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论