目录

Ollama GPU 设置与性能调优教程:为什么这么慢?

本地模型最常见的抱怨就是“太慢”。大多数情况下,原因不是电脑性能不够,而是模型没有完整加载到 GPU。

第一步:确认是否使用了 GPU

先运行一个模型,再查看:

ollama run qwen3:8b "你好" --verbose
ollama ps
ollama ps 的 PROCESSOR含义速度
100% GPU完整放在显卡上最快
30%/70% CPU/GPU显卡放不下,部分放在系统内存中明显变慢
100% CPU完全没有使用 GPU最慢

--verbose 输出的 eval rate 是每秒生成的 token 数,可以用来比较调整前后的差异。

NVIDIA 显卡未被使用

  1. 更新驱动程序。驱动程序过旧是最常见的原因。

  2. 确认系统能识别显卡:

    nvidia-smi
  3. 查看 Ollama 日志,搜索 GPU 相关信息:

    • Linux:journalctl -u ollama --no-pager | grep -i -E "gpu|cuda"
    • Windows:%LOCALAPPDATA%\Ollama\server.log
    • macOS:~/.ollama/logs/server.log
  4. 如果笔记本同时有集成显卡和独立显卡,请确认 Ollama 使用的是独立显卡(Windows 的“图形设置”可以指定应用使用高性能 GPU)。

  5. 如果有多张显卡,可以使用 CUDA_VISIBLE_DEVICES=0 指定要使用的显卡。

AMD 显卡

Ollama 通过 ROCm 支持部分 AMD 显卡,支持的型号列表请参阅官方文档。不在列表中的显卡有时可以通过 HSA_OVERRIDE_GFX_VERSION 环境变量强制指定相近的架构,但无法保证稳定。

Apple Silicon Mac

M 系列芯片会自动使用 GPU。Mac 的“统一内存”由 CPU 和 GPU 共享,但系统默认只允许 GPU 使用其中一部分(大约三分之二到四分之三),模型和上下文所需内存不能超过这个额度。

模型无法全部放入 GPU 时怎么办

按效果排序:

1. 换用更小的模型或量化版本

例如从 14b 换成 8b,或从 q8_0 换成 q4_K_M。速度通常比“大模型但一半在 CPU 上运行”快很多。详见模型选择与硬件需求。

2. 缩短上下文长度

上下文所需的内存(KV cache)会随长度增加。如果 ollama ps 中的 CONTEXT 数值很大,可以尝试调小 OLLAMA_CONTEXT_LENGTH 或 num_ctx。

3. 量化 KV cache

OLLAMA_FLASH_ATTENTION=1
OLLAMA_KV_CACHE_TYPE=q8_0

q8_0 可以让上下文的内存用量减半左右,对质量的影响很小;q4_0 节省更多,但对质量的影响比较明显。KV cache 量化需要 Flash Attention。

4. 关闭其他占用显存的程序

浏览器、游戏和其他 AI 工具都会占用 VRAM。使用 nvidia-smi 可以查看各程序的显存用量。

5. 一次只加载一个模型

同时加载多个模型会争用内存:

ollama ps
ollama stop 不需要的模型

或者设置 OLLAMA_MAX_LOADED_MODELS=1。

其他影响速度的因素

现象原因与对策
第一次回答特别慢模型正在加载。调高 OLLAMA_KEEP_ALIVE,让模型保持加载状态
开始回答前停顿很久输入(提示词)很长,模型需要先处理。此阶段主要受 GPU 运算能力影响
推理模型回答很慢它正在“思考”。不需要深度推理时,可以关闭思考模式
多人同时使用时变慢请求正在排队,参见 OLLAMA_NUM_PARALLEL

大致的速度参考

生成速度主要受内存带宽限制,大致规律如下:

  • 在同一张显卡上,模型越大,速度越慢,大致与模型文件大小成反比。
  • 每秒生成 20 个 token 以上,阅读起来就很流畅;低于 10 个 token 时会感觉在等待。

如果你的速度远低于同级硬件的一般水平,几乎可以确定模型有一部分溢出到 CPU,回到第一步检查。

更新于 2026年10月12日