Ollama GPU 加速配置详解
详解如何在 Ollama 中配置 NVIDIA/AMD GPU 加速,包括 Windows WSL2、Linux 原生、Docker 容器三种环境的完整配置流程。涵盖驱动检测、CUDA/ROCm 安装、Ollama 验证。
Ollama 的强大之处在于能充分利用你的 GPU 来加速大模型推理。本教程覆盖 NVIDIA(CUDA)、AMD(ROCm)、Intel(OpenVINO)三大平台,以及 WSL2、Linux 原生、Docker 三种运行环境。
Table of Contents
检测当前 GPU 环境
开始之前,先确认你的 GPU 类型和驱动状态:
NVIDIA GPU
$
nvidia-smi正常输出应显示 GPU 型号、驱动版本和显存大小。如果报错 "command not found",说明 NVIDIA 驱动未安装。
AMD GPU
$
rocm-smi或查看设备:
$
ls /dev/kfd && ls /dev/dri/| GPU 平台 | 所需驱动 | Ollama 镜像标签 |
|---|---|---|
| NVIDIA (CUDA) | NVIDIA Driver 525+ | ollama/ollama:latest |
| AMD (ROCm) | AMD ROCm 5.7+ | ollama/ollama:rocm |
| Apple Silicon | 系统自动 | ollama/ollama:latest |
| Intel Arc | Intel OpenVINO | ollama/ollama:openvino |
NVIDIA + WSL2 配置
Windows 11 + WSL2 是最方便的本地开发环境,可以同时用 Windows 和 Linux。
前置条件
- Windows 11 22H2+
- NVIDIA 显卡 + Driver 525+
- BIOS 开启 WSL2 和虚拟化
安装 WSL2
$
wsl --install -d Ubuntu-22.04安装 NVIDIA Driver (Windows 端)
从 NVIDIA 官网下载对应显卡的驱动,安装时勾选 WSL2 CUDA Driver 选项。
安装 CUDA Toolkit (WSL2 内)
$
wsl -d Ubuntu-22.04
# 添加 CUDA 仓库
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get install -y cuda
WSL2 特殊路径
WSL2 中
WSL2 中
nvidia-smi 指向的是 Windows 驱动,不是 Linux 驱动。确保 CUDA 版本与 Windows 驱动兼容(建议 CUDA 12.x)。
安装 NVIDIA Container Toolkit
$
curl -fsSL https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia.gpg
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu2204/nvidia-docker.list | \
sed 's#deb https#deb [signed-by=/usr/share/keyrings/nvidia.gpg] https#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker验证 WSL2 GPU
$
nvidia-smi
# 应该显示 GPU 信息
docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smiNVIDIA + Linux 原生配置
在 Ubuntu 22.04 / Debian 12 原生安装。
安装 NVIDIA 驱动
$
sudo apt update && sudo apt install -y nvidia-driver-535 nvidia-dkms-535
sudo systemctl reboot安装 CUDA Toolkit
$
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get install -y cuda-toolkit-12-3
echo 'export PATH=/usr/local/cuda-12.3/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc安装 Container Toolkit
$
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -fsSL https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia.gpg
curl -s -L https://nvidia.github.io/nvidia-docker/nvidia-docker.list | \
sed "s#deb https#deb [signed-by=/usr/share/keyrings/nvidia.gpg] https#g" | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart dockerAMD GPU + ROCm 配置
AMD GPU 需要 ROCm (Radeon Open Compute) 驱动。支持的显卡:RX 6000/7000 系列、AMD Instinct 系列。
检查 AMD GPU 兼容性
$
# 查看 GPU 型号
lspci | grep -i vga
# 确认在 ROCm 兼容列表中:https://rocm.docs.amd.com/en/latest/release/gpu_os_support.html安装 ROCm
$
# 添加 ROCm 仓库
curl -fsSL https://repo.radeon.com/rocm/rocm.gpg.key | sudo gpg --keyring /tmp/rocm.gpg --recv-keys 0x30C3EBC3E63DBE46
sudo add-apt-repository 'deb [signed-by=/tmp/rocm.gpg] https://repo.radeon.com/rocm/apt/6.1.1 ubuntu22.04 main'
sudo apt-get update && sudo apt-get install -y rocm-hip-runtime6.1.1
# 设置用户组
sudo usermod -aG video $USER
sudo usermod -aG render $USER
Ollama ROCm 专用镜像
使用
使用
docker run --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama ollama/ollama:rocm 启动 Ollama 容器。
Docker 环境 GPU 加速
Docker 是最推荐的方式,隔离性好且易管理。
Docker Compose 配置
version: '3.8'
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
# NVIDIA GPU
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
# AMD GPU (ROCm)
# devices:
# - /dev/kfd
# - /dev/dri
# environment:
# - HSA_OVERRIDE_GFX_VERSION=11.0.0
volumes:
ollama_data:
验证 GPU 在容器内可用
$
# NVIDIA
docker exec -it ollama nvidia-smi
# AMD
docker exec -it ollama rocm-smi验证 GPU 加速生效
用 nvidia-smi 或 rocm-smi 实时观察 GPU 使用率:
$
watch -n 1 nvidia-smi启动 Ollama 并运行模型:
$
# 直接运行(不需要 docker exec,因为端口已映射)
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2:3b",
"prompt": "Count to 3",
"stream": false
}'观察 GPU 显存:
- GPU-Util 上升 → 模型正在 GPU 上推理
- VRAM 占用增加 → 模型权重已加载到显存
- 温度上升 → GPU 正在工作
GPU 加速成功!
如果 GPU-Util 显示 >0%,说明模型正在使用 GPU 加速。相比纯 CPU 推理,速度通常快 10-50 倍。
如果 GPU-Util 显示 >0%,说明模型正在使用 GPU 加速。相比纯 CPU 推理,速度通常快 10-50 倍。
常见问题排查
Q: nvidia-smi 报错 "No devices were found"
驱动未正确安装或 Docker 无法访问 GPU:
$
# 确认 nvidia-container-toolkit 已安装
dpkg -l | grep nvidia-container
# 编辑 /etc/docker/daemon.json
sudo nano /etc/docker/daemon.json
# 添加:{ "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "args": ["--runtime", "nvidia"] } } }
sudo systemctl restart dockerQ: CUDA out of memory
显存不足,需要更小的模型或更小的量化:
$
# 使用更小的量化模型
docker exec -it ollama ollama pull llama3.2:1b
# 1b 模型只需要 ~1GB 显存Q: AMD GPU 不被识别
检查 ROCm 版本和显卡兼容性:
$
rocm-smi --showproductname
# 如果输出为空,说明 ROCm 未识别显卡Advertisement