快速结论:Ollama 在 AMD RDNA 3.5(如 Radeon 890M)iGPU 上可能未正确启用 ROCm 后端,导致性能远低于 llama.cpp 的 ROCm 或 Vulkan 后端。优先排查 Ollama 内置的 ROCm 库是否支持你的 GPU gfx 架构类型。
问题场景
用户在一台仅配备 AMD iGPU(Radeon 890M,RDNA 3.5 架构)的 Linux 设备上运行 Ollama(版本 0.5.11),并与 llama.cpp 的 CPU、ROCm 后端进行性能对比。测试发现 Ollama 推理速度显著慢于 llama.cpp 的 ROCm 后端,甚至慢于 llama.cpp 的 CPU 后端。在另一边,用户另一台配备双独立 AMD GPU 的设备上,Ollama 与 llama.cpp 速度相近,问题集中在 iGPU-only 设备。
报错原文
time=2025-02-16T07:31:24.513Z level=INFO source=gpu.go:217 msg="looking for compatible GPUs"
time=2025-02-16T07:31:24.525Z level=WARN source=amd_linux.go:61 msg="ollama recommends running the https://www.amd.com/en/support/linux-drivers" error="amdgpu version file missing: /sys/module/amdgpu/version stat /sys/module/amdgpu/version: no such file or directory"
time=2025-02-16T07:31:24.533Z level=WARN source=amd_linux.go:376 msg="amdgpu is not supported (supported types:[gfx1030 gfx1100 gfx1101 gfx1102 gfx900 gfx906 gfx908 gfx90a gfx940 gfx941 gfx942])" gpu_type=gfx1150 gpu=0 library=/usr/local/lib/ollama/rocm
原因分析
Issue 中服务器日志显示,Ollama 自带的 ROCm 库(位于 /usr/local/lib/ollama/rocm)仅支持特定的 gfx 架构列表,而用户的 iGPU 类型为 gfx1150(RDNA 3.5)。Ollama 报出“amdgpu is not supported”警告,且不支持列表中不包含 gfx1150 或 gfx1151。虽然用户系统已安装完整 ROCm(6.3.2),且 /opt/rocm/lib/rocblas/library/ 中存在 gfx1151 的 TensileLibrary 文件,但 Ollama 并不使用系统 ROCm,而是使用自带的受限库。
可能原因:Ollama 捆绑的 ROCm 库缺少对 RDNA 3.5(gfx1150/gfx1151)GPU 架构的支持,导致 Ollama 回退到 CPU 后端运行。用户尝试设置 HSA_OVERRIDE_GFX_VERSION=11.5.1(使 llama.cpp 生效的选项)对 Ollama 也无帮助,进一步佐证了内置库兼容性问题。
环境排查
- Ollama 版本:0.5.11
- ROCm 系统版本:6.3.2
- GPU:AMD Radeon 890M(RDNA 3.5 架构,gfx1150,据评论属于 gfx1151 家族)
- 操作系统:Linux
- 确认
/sys/module/amdgpu/version文件是否存在(问题中出现 “no such file or directory”) - 确认 Ollama 内置库路径
/usr/local/lib/ollama/rocm下是否包含对应 gfx 类型的 rocblas 库文件 - 检查
rocminfo输出中的 GPU 架构类型
解决步骤
- 确认 GPU 架构:运行
rocminfo查看 GPU 的 gfx 类型(例如 gfx1150)。 - 检查 Ollama 内置库支持范围:查看
/usr/local/lib/ollama/rocm目录下是否存在与你的 gfx 匹配的 .dat 文件:
ls /usr/local/lib/ollama/rocm | grep gfx(Issue 中日志显示支持的列表为:[gfx1030 gfx1100 gfx1101 gfx1102 gfx900 gfx906 gfx908 gfx90a gfx940 gfx941 gfx942],不包含 gfx1150/1151) - 尝试使用
HSA_OVERRIDE_GFX_VERSION:设置环境变量运行 Ollama(可优先尝试,但在 Issue 中对 Ollama 无效):
HSA_OVERRIDE_GFX_VERSION=11.5.1 ollama serve - 如果 Ollama 内置库不支持你的 GPU:目前 Issue 中的根本原因在于 Ollama 内置的 ROCm 库没有涵盖 RDNA 3.5。可能的方案(来自 Issue 讨论者建议):
– 等待 Ollama 更新内置 ROCm 库以支持新的 gfx 类型;
– 考虑使用 Vulkan 后端(如果 Ollama 后续支持);
– 使用 llama.cpp 直接搭配 ROCm 或 Vulkan 作为替代方案。 - 收集更多服务器日志:运行 Ollama server 时,收集详细日志以确认后端回退行为:
ollama serve 2>&1 | tee ollama_server.log - 检查 amdgpu 驱动:确保 amdgpu 内核模块已加载,并检查缺失的
/sys/module/amdgpu/version文件(可能只是一个文件缺失问题,不影响功能,但应确认驱动版本与 ROCm 兼容)。
验证方法
使用相同的模型(例如同一 .gguf 文件)在 Ollama 与 llama.cpp 的 ROCm 后端进行对比推理测试。如果 Ollama 正确启用了 ROCm 后端,其 tokens/s 应接近 llama.cpp ROCm 的性能。若速度仍显著低于 CPU 级别或远远慢于 llama.cpp ROCm,说明 Ollama 仍在使用 CPU 后端。可运行 ollama ps 查看当前模型是否分配到 GPU(显示 GPU 利用率)。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


