Prhub

#49737 [ROCm][Docker] Drop MORI_GPU_ARCHS so MoRI autodetects the device arch

原始 PR 作者 Rohan138 合并时间 2026-07-25 05:14 文件变更 1 提交数 2 评论 0 代码增减 +1 / -1

执行摘要

移除硬编码的 GPU 架构环境变量以修复 MoRI 启动崩溃

PR body 明确指出:MoRI 在 gfx950 主机上因 MORI_GPU_ARCHS 被设为首个支持的架构 gfx942 而加载错误的代码对象,导致启动崩溃。报错日志显示 device kernel image is invalid

该 PR 改动简洁、目标明确,建议合并。值得关注的是 MOI 自动检测架构的设计逻辑,避免类似的环境变量覆盖陷阱。

讨论亮点

无 review 评论或额外讨论。PR 由 tjtanaa 审核通过。

实现拆解

  1. 编辑 docker/Dockerfile.rocm_base 第 33 行:删除 ENV MORI_GPU_ARCHS=gfx942;gfx950,改为注释 # Note: Do not set MORI_GPU_ARCHS here, it is automatically inferred at runtime
  2. 使得 MoRI 的 mori.jit.config.detect_gpu_arch() 不再被环境变量覆盖,而是自动从当前 GPU 设备获取正确架构。
  3. 该变更只影响 Docker 构建时的环境变量设置,不涉及任何源码逻辑改动。
文件 模块 状态 重要度
docker/Dockerfile.rocm_base 部署脚本 modified 3.58

关键源码片段

docker/Dockerfile.rocm_base infrastructure

删除了 `ENV MORI_GPU_ARCHS=gfx942;gfx950`,解决 MoRI 因 GPU 架构硬编码导致的启动崩溃。

# 删除 ENV MORI_GPU_ARCHS=gfx942;gfx950 以防止 MoRI 在运行时错误加载 gfx942 的代码对象
# MoRI 会自动检测 GPU 架构
ENV PYTORCH_ROCM_ARCH=${PYTORCH_ROCM_ARCH}
ENV AITER_ROCM_ARCH=gfx942;gfx950
# Note: Do not set MORI_GPU_ARCHS here, it is automatically inferred at runtime
# Required for RCCL in ROCm7.1
ENV HSA_NO_SCRATCH_RECLAIM=1

评论区精华

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

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

风险与影响

风险极低:仅移除一行环境变量设置,使 MoRI 回退到自动检测行为,与官方推荐用法一致。如果后续 base image 中缺少 MoRI 自动检测所需的运行时库,可能会导致 MoRI 无法正确识别架构,但这种情况在标准 ROCm Docker 环境中不会出现。

影响范围限定于使用 ROCm Docker 镜像的 CI 和用户部署。修复了 MoRI 在 gfx950 设备上的关键启动崩溃,使得 ROCm 上的 Mamba2/SSM 等依赖 MoRI 的推理功能恢复正常。无其他功能影响。

低风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论