ROCm fails to initialize on AMD Radeon RX 9070 XT

该报错发生在 Ollama 使用 AMD Radeon RX 9070 XT 且 GPU 未被 ROCm 正确初始化时。优先排查 Linux 下是否安装了冲突的 NVIDIA 驱动或内核版本不匹配,Windows 下检查 Ollama 版本是否≥0.15.2。

快速结论:该报错发生在 Ollama 使用 AMD Radeon RX 9070 XT 且 GPU 未被 ROCm 正确初始化时。优先排查 Linux 下是否安装了冲突的 NVIDIA 驱动或内核版本不匹配,Windows 下检查 Ollama 版本是否≥0.15.2。

适用环境:Ollama 0.15.1 / 0.15.2,Windows / Ubuntu 26.04 / EndeavourOS (Arch Linux),AMD Radeon RX 9070 XT(GPU ID gfx1201),ROCm。

最快修复方案:暂无全局确认的一步修复方案。已知有效做法:在 Arch Linux 系列移除所有 NVIDIA 包并安装 linux-firmware-amdgpu;在 Ubuntu 使用内核 6.17 并重装 amdgpu-install(不带 --no-dkms 标志)。升级至最新 Ollama 版本(≥0.15.2)后该问题可能已修复。

注意事项:内核 6.18 在部分 Ubuntu 系统上会导致 ROCm 初始化失败;移除 NVIDIA 驱动包需谨慎操作,确保系统不依赖这些包。Windows 用户未提供已验证的修复步骤,优先升级 Ollama。

问题场景

用户运行 Ollama 时,AMD Radeon RX 9070 XT 虽被检测到,但日志显示“filtering device which didn’t fully initialize”,导致退回到 CPU 推理。后续加载模型时出现“ROCm error: out of memory”或“do load request: EOF”等错误。

报错原文

time=2026-01-26T16:13:57.699-03:00 level=DEBUG source=runner.go:153 msg="filtering device which didn't fully initialize" id=0 libdir=C:\Users\aldoc\AppData\Local\Programs\Ollama\lib\ollama\rocm pci_id=0000:03:00.0 library=ROCm
time=2026-01-26T16:13:57.699-03:00 level=INFO source=types.go:60 msg="inference compute" id=cpu library=cpu compute="" name=cpu description=cpu libdirs=ollama driver="" pci_id="" type="" total="95.6 GiB" available="81.3 GiB"
time=2026-01-26T16:13:57.699-03:00 level=INFO source=routes.go:1725 msg="entering low vram mode" "total vram"="0 B" threshold="20.0 GiB"

Linux 下额外出现:

Jan 27 08:58:47 xyz1 ollama[10339]: ROCm error: out of memory
Jan 27 08:58:47 xyz1 ollama[10339]: //ml/backend/ggml/ggml/src/ggml-cuda/ggml-cuda.cu:94: ROCm error

原因分析

可能原因:

  • Ollama 使用的 ROCm 库与 AMD Radeon RX 9070 XT(gfx1201)的 ROCm 版不兼容,导致设备初始化不完整。
  • 在 Linux 上,NVIDIA 驱动包(如 linux-firmware-nvidia)与 AMD GPU 固件冲突,或内核版本(如 6.18)的 amdgpu 驱动存在 bug,导致 ROCm 无法正确分配显存。
  • Ollama 0.15.1 对 gfx1201 的检测逻辑有缺陷,已在新版本修复(Issue 关闭时版本为 0.15.2)。

环境排查

  • Ollama 版本:确认是否为 0.15.1 或更早。
  • 操作系统及内核版本(Linux):uname -r 查看内核版本。
  • 显卡固件包:检查是否安装了冲突的 NVIDIA 包(yay -Qs nvidiadpkg -l | grep nvidia)。
  • AMD ROCm 安装方式:是否使用 amdgpu-install 安装,以及是否附带 --no-dkms 标志。
  • GPU 识别:运行 rocm-smilspci | grep AMD 确认 GPU 被系统识别。

解决步骤

  1. 升级 Ollama:确保使用 ≥0.15.2 版本(Issue 关闭时已验证新版本可正常工作)。
  2. Linux 用户:检查并移除冲突的 NVIDIA 驱动
    • 列出 NVIDIA 包:yay -Qs nvidia(Arch)或 dpkg -l | grep nvidia(Ubuntu/Debian)。
    • 卸载所有 NVIDIA 相关包(如 yay -Rc nvidia nvidia-utils linux-firmware-nvidia)。
    • 安装 AMD GPU 固件:yay -S linux-firmware-amdgpu
    • 重启系统。
  3. Ubuntu 用户:使用内核 6.17 并重装 amdgpu-install
    • 启动时选择内核 6.17(若使用 GRUB)。
    • 移除所有 6.18 内核包。
    • 运行 amdgpu-install不使用 --no-dkms 标志。
    • 重启后测试。
  4. Windows 用户:升级 Ollama 至最新版;若仍不工作,请提供新的 server.log 以重新开启 Issue。

验证方法

启动 Ollama 后,查看日志应不再出现“filtering device which didn’t fully initialize”,且 GPU 列在推理设备中(ollama ps 或日志中应显示类似 inference compute 的 GPU 行)。加载模型时不应出现 ROCm OOM 或 EOF 错误。

参考来源

ollama/ollama #13920

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 15208

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注