Ollama 硬件支持
Ollama 一共走四条加速后端:NVIDIA 的 CUDA、AMD 的 ROCm、Apple 的 Metal、以及跨厂商的 Vulkan。判断你的卡能不能用,不是看型号新旧,而是看算力和驱动版本是否达标。
版本基线 v0.40.12,官方
docs.ollama.com/gpu。
一、判断路径:先看后端,再看门槛
| 你的硬件 | 后端 | 硬性门槛 |
|---|---|---|
| NVIDIA 独显 | CUDA | 算力 5.0+,驱动 550+ |
| AMD 独显 / 集显(Linux) | ROCm | ROCm v7 驱动 |
| AMD 独显(Windows) | ROCm / HIP7 | ROCm v7 驱动栈 |
| Apple Silicon | Metal | 无额外要求 |
| Intel / 其他显卡 | Vulkan | 装好 Vulkan 驱动即可 |
一个关键点:驱动版本不够时,Ollama 不会报错,而是静默退回 CPU 运行。所以「能启动」不等于「在用 GPU」,一定要用 ollama ps 确认 PROCESSOR 列。
二、NVIDIA:算力与驱动双门槛
官方要求:算力 5.0 及以上,驱动 550 及以上。
这里有个容易忽略的附加条件:算力 5.0 到 6.2 的老卡,需要驱动 570 或更新。也就是说 GTX 10 系这一代虽然算力够,但对驱动的要求反而更高。
各代算力对照(选取常见型号):
| 算力 | 代表型号 |
|---|---|
| 12.0 | RTX 50 系(5060 / 5070 / 5080 / 5090)、RTX PRO Blackwell |
| 9.0 | H200、H100 |
| 8.9 | RTX 40 系(4090 / 4080 / 4070 / 4060 全系) |
| 8.6 | RTX 30 系(3090 / 3080 / 3070 / 3060 全系)、A40、A10 |
| 8.0 | A100、A30 |
| 7.5 | RTX 20 系、T4、Quadro RTX 系列 |
| 7.0 | V100、TITAN V |
| 6.1 | GTX 10 系(1080 Ti / 1080 / 1070 / 1060 / 1050) |
| 5.0 | GTX 750 Ti、Quadro K 系列 |
完整清单查 NVIDIA 官方算力表:developer.nvidia.com/cuda-gpus。算力低于 5.0 的卡需要自行编译(见官方 development 页)。
多卡机器:只用一个或几个
## 先查 UUID(比数字 ID 可靠,数字顺序可能变)
nvidia-smi -L
## 用 UUID 指定
CUDA_VISIBLE_DEVICES=GPU-xxxx,GPU-yyyy ollama serve
想强制只用 CPU(比如跑基准对比),把 ID 设成非法值即可:
CUDA_VISIBLE_DEVICES=-1 ollama serve
Linux 休眠唤醒后 GPU 消失
这是个已知的驱动 bug:笔记本合盖再唤醒,Ollama 找不到 NVIDIA 卡、退回 CPU。应急办法是重载 UVM 驱动:
sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm
三、AMD:Linux 支持面最大
AMD 走 ROCm,Linux 上必须装 ROCm v7 驱动,用 AMD 的 amdgpu-install 工具安装或升级。
Linux 支持的卡
覆盖面比较广,包含这几类:
- Radeon RX 9000 / 7000 / 6000 系(9070 XT、7900 XTX、7800 XT、7600、6950 XT、6800 XT 等)
- Radeon AI PRO(R9700、R9600D)
- Radeon PRO(W7900、W7800、W6800、V620 等)
- Ryzen AI 系列 APU(Ryzen AI Max+ 395、Ryzen AI 9 HX 375 等)
- Instinct 计算卡(MI350X、MI300X、MI300A、MI250X、MI210、MI100)
Windows 支持的卡少得多
Windows 侧只覆盖:
- Radeon RX:7900 XTX / 7900 XT / 7900 GRE / 7800 XT / 7700 XT / 7600 XT / 7600
- Radeon PRO:W7900 / W7800 / W7700 / W7600 / W7500
需求是 ROCm v7 / HIP7 能力的驱动栈。比 Linux 少了 9000 系和 APU,如果你在 Windows 上用的是 RX 9070 这类新卡,走 Vulkan 后端反而更容易成功。
强行支持不认识的卡
ROCm 不支持所有 AMD 卡,但可以用 HSA_OVERRIDE_GFX_VERSION 骗它按相近架构跑。比如 RX 5400 是 gfx1034,ROCm 没这个目标,最接近的是 gfx1030:
HSA_OVERRIDE_GFX_VERSION="10.3.0" ollama serve
多块不同架构的卡可以分别设:
HSA_OVERRIDE_GFX_VERSION_0=10.3.0
HSA_OVERRIDE_GFX_VERSION_1=11.0.0
多卡与强制 CPU
## 查看设备列表
rocminfo
## 只使用指定卡(优先用 Uuid 而非数字)
ROCR_VISIBLE_DEVICES=0,1 ollama serve
## 强制 CPU
ROCR_VISIBLE_DEVICES=-1 ollama serve
容器里访问不到 AMD 卡
部分发行版的 SELinux 会拦住容器访问 GPU 设备,在宿主机上放行:
sudo setsebool container_use_devices=1
四、Apple:Metal 开箱即用
Apple Silicon(M1 及以后)通过 Metal API 加速,不需要装任何驱动或额外配置,装完 Ollama 就自动启用。
这也是 Mac 上跑本地模型体验最省心的原因——没有驱动版本、没有算力门槛。统一内存架构还让显存上限直接等于内存容量,跑 70B 级别的模型比同价位 N 卡更容易。
五、Vulkan:覆盖 Intel 和 Windows 上的新 A 卡
Vulkan 是兜底方案,覆盖 Windows 和 Linux 上其他后端不支持的情况。默认启用,不用手动开。
- Windows:主流显卡驱动都自带 Vulkan,装完驱动就能用
- Linux:多数发行版需要单独装 Vulkan 驱动(Mesa 或厂商包)
Linux 上的两个额外配置:
## AMD 卡可能需要把 ollama 用户加进 render 组
sudo usermod -aG render ollama
## 让 Ollama 读到准确的可用显存(不授权就只能估算)
sudo setcap cap_perfmon+ep /usr/local/bin/ollama
第二条值得单独说明:Ollama 的调度器依赖 GPU 库上报的可用显存来做卸载决策。Vulkan 需要 cap_perfmon 能力或 root 权限才能读到这个数据,拿不到就只能按模型大小粗略估算,容易出现「显存明明够却只加载了一半」。
选择或禁用 Vulkan 显卡
## 只用编号 1 的 Vulkan 设备
GGML_VK_VISIBLE_DEVICES=1 ollama serve
## 完全禁用 Vulkan
OLLAMA_VULKAN=0 ollama serve
## 等价写法
GGML_VK_VISIBLE_DEVICES=-1 ollama serve
混合显卡(核显 + 独显)机器上如果 Vulkan 核显不稳定,不要整体禁用 Vulkan,而是把 GGML_VK_VISIBLE_DEVICES 指向独显编号。
六、确认到底用上了没
三种确认手段,从粗到细:
## ① 最快:看 PROCESSOR 列
ollama ps
NAME ID SIZE PROCESSOR UNTIL
qwen2.5:7b xxxx 5.2 GB 100% GPU 4 minutes from now
## ② 看服务日志里的设备发现结果
cat ~/.ollama/logs/server.log | grep -i -E "gpu|library"
## ③ 看加载了哪些 LLM 库
OLLAMA_DEBUG=1 ollama serve 2>&1 | head -30
日志里会出现类似 Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5] 的行,说明各后端库都已就位。
如果 ollama ps 显示 100% CPU 而你有合格显卡,排查顺序是:驱动版本 → 算力门槛 → 驱动是否正确加载(nvidia-smi)→ 完整日志。具体的错误码和设备发现失败处理见 11.1 Ollama 故障排查。
动手试
装完先跑这一条,比看任何文档都直接:
ollama run qwen2.5:0.5b "hello" && ollama ps
小模型加载快、显存占用低,如果连它都显示 100% CPU,说明是驱动或后端问题,不是显存不够。

TRAE-AI编程


更多建议: