🖥️

Ollama GPU 加速配置详解

详解如何在 Ollama 中配置 NVIDIA/AMD GPU 加速,包括 Windows WSL2、Linux 原生、Docker 容器三种环境的完整配置流程。涵盖驱动检测、CUDA/ROCm 安装、Ollama 验证。

Ollama GPU WSL2 Docker

Ollama 的强大之处在于能充分利用你的 GPU 来加速大模型推理。本教程覆盖 NVIDIA(CUDA)、AMD(ROCm)、Intel(OpenVINO)三大平台,以及 WSL2、Linux 原生、Docker 三种运行环境。

检测当前 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。

前置条件

安装 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 中 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-smi

NVIDIA + 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 docker

AMD 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-smirocm-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 加速成功!
如果 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 docker

Q: CUDA out of memory

显存不足,需要更小的模型或更小的量化:

$
# 使用更小的量化模型 docker exec -it ollama ollama pull llama3.2:1b # 1b 模型只需要 ~1GB 显存

Q: AMD GPU 不被识别

检查 ROCm 版本和显卡兼容性:

$
rocm-smi --showproductname # 如果输出为空,说明 ROCm 未识别显卡
Advertisement