快速结论:该问题发生在 Ollama 从旧版升级到 0.7.1 之后,AMD RX 7600 XT(gfx1102)显卡不再被用于推理,模型被强制跑在 CPU 上。优先排查 Ollama 自带的 ROCm 后端库(libggml-rocm 相关 .so 文件)是否随更新被覆盖或未安装。
适用环境:Ubuntu 24.04.2 LTS(内核 6.11.0-26-generic),Ollama 0.7.1,AMD Radeon RX 7600 XT(gfx1102,Navi 33,16 GiB VRAM),Intel i7-10700K,系统已安装 ROCm 且 rocminfo 能识别显卡。
最快修复方案:暂无确认的一步修复方案。Issue 中用户尝试了重新安装 Ollama 和强制指定 OLLAMA_GPU_BACKEND=rocm 均未生效,最终结论指向 Ollama 安装脚本未能正确部署 ROCm 后端运行时库,可优先尝试手工核对并补装 /usr/local/lib/ollama/ 下的 ROCm 后端库。
注意事项:Ollama 日志中的“no nvidia devices detected”是正常探测行为,不代表异常;真正的问题在于日志末尾只加载了 CPU 后端(load_backend: loaded CPU backend),没有任何以 rocm 为库名的后端加载记录。此问题在 Issue 关闭时未给出可复现的最终解决方案,以下排查步骤属于基于日志的推测路径。
问题场景
用户运行 Ollama 0.7.1 加载 Qwen3:14b 模型时触发。升级前通过 radeontop 能看到 GPU 利用率与 VRAM 占用,升级后 GPU 完全空闲,CPU 核心全部打满,小模型也运行缓慢。用户已按官方一行安装脚本 curl -fsSL https://ollama.com/install.sh | sh 完成更新,安装过程出现“Nvidia GPU installed”提示,但机器实际只有 AMD 显卡。
报错原文
msg="looking for compatible GPUs"
msg="no nvidia devices detected by library /usr/lib/x86_64-linux-gnu/libcuda.so.570.133.07"
msg="amdgpu is supported" gpu=0 gpu_type=gfx1102
msg="inference compute" id=0 library=rocm variant="" compute=gfx1102 driver=6.12 name=1002:7480 total="16.0 GiB" available="15.8 GiB"
... msg="system memory" total="78.5 GiB" free="75.3 GiB" free_swap="8.0 GiB"
... msg=offload library=rocm layers.requested=-1 layers.model=41 layers.offload=41
... load_backend: loaded CPU backend from /usr/local/lib/ollama/libggml-cpu-haswell.so
time=2025-05-27T21:07:26.601-05:00 level=INFO source=ggml.go:104 msg=system CPU.0.SSE3=1 CPU.0.SSSE3=1 CPU.0.AVX=1 CPU.0.AVX2=1 CPU.0.F16C=1 CPU.0.FMA=1 CPU.0.BMI2=1 CPU.0.LLAMAFILE=1 CPU.1.LLAMAFILE=1 compiler=cgo(gcc)
原因分析
从日志可以看出,Ollama 正确地识别了 AMD GPU(gfx1102),并判断模型可以完整装入 VRAM(layers.offload=41),但随后加载后端时只出现了 load_backend: loaded CPU backend,没有任何 rocm 后端加载记录。可能原因:
安装脚本在更新 Ollama 时覆盖或未正确部署 ROCm 后端动态库(如 libggml-rocm.so、libggml-cpu-rocm.so 等),导致运行时找不到 ROCm 后端,只能回退到 CPU。另一个可能原因是安装脚本检测到系统存在 NVIDIA CUDA 库(libcuda.so.570.133.07)后,后端选择逻辑出现异常,但这一点在 Issue 中缺乏直接证据。
环境排查
- 确认 Ollama 版本:
ollama --version(应为 0.7.1,问题由此版本引入)。 - 检查 Ollama 后端目录是否存在 ROCm 库:
ls -la /usr/local/lib/ollama/ | grep -i rocm。如果没有任何rocm相关.so文件,说明 ROCm 后端未安装。 - 确认系统 ROCm 环境独立可用:
rocminfo应能列出 gfx1102 设备(用户已确认可见)。 - 检查是否有 NVIDIA 驱动残留:
ls /usr/lib/x86_64-linux-gnu/libcuda.so*,如果存在可能影响 Ollama 的 GPU 探测优先顺序。 - 查看完整 Ollama 服务日志:
journalctl -u ollama --no-pager | grep -E "rocm|ggml"。
解决步骤
- 核对 ROCm 后端库是否存在:运行
find /usr/local/lib/ollama -name "*rocm*"。若输出为空,可优先尝试重新执行官方安装脚本,并在安装完成后立即检查该目录;如果仍无 ROCm 库,考虑从 Ollama 的 GitHub Release 手动下载对应ollama-linux-amd64-rocm.tgz包,解压后手工放置到/usr/local/lib/ollama/。 - 检查是否有 NVIDIA CUDA 库干扰:用
dpkg -l | grep cuda或ls /usr/lib/x86_64-linux-gnu/libcuda*确认系统是否残留 NVIDIA 驱动。如果有但机器没有 NVIDIA 卡,可考虑暂时移除此库文件(改名备份)后重启 Ollama 服务,观察是否能加载 ROCm 后端。此步骤属于可优先尝试的排查,未在 Issue 中验证。 - 清理后重装 Ollama:
sudo systemctl stop ollama,然后执行curl -fsSL https://ollama.com/install.sh | sh,安装完成后检查后端目录;若有 ROCm 库但问题依旧,继续下一步。 - 验证 GPU 是否真被调用:通过
ollama run qwen3:14b加载模型,同时开两个终端分别运行radeontop和htop,观察 GPU 利用率与 CPU 占用。另外可用journalctl -u ollama --no-pager -f查看实时日志,确认是否出现load_backend: loaded rocm backend字样。 - 如果确认 ROCm 后端缺失:可优先尝试回退到升级前可正常使用的 Ollama 版本(例如通过官方 GitHub Release 下载旧版二进制覆盖),确认版本回退能恢复 GPU 推理,以进一步锁定问题由 0.7.1 的安装逻辑引起。此步骤建议在备份当前配置后进行。
验证方法
执行以下检查确认修复生效:1) find /usr/local/lib/ollama -name "*rocm*" 能输出至少一个 .so 文件;2) Ollama 服务日志中出现 load_backend: loaded rocm backend 或类似记录;3) 运行模型时 radeontop 显示 GPU 利用率非零且 VRAM 有占用;4) htop 中 CPU 不再全部打满。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


