Skip to content

GPU 支持指南

Ollama 支持多种 GPU 加速,可以显著提升模型推理性能。本指南将帮助您配置和优化 GPU 支持。

支持的 GPU

NVIDIA GPU

Ollama 支持具有 计算能力 5.0 或更高 的 NVIDIA GPU: 支持的架构:

  • Maxwell (GTX 900 系列及更高)
  • Pascal (GTX 10 系列)
  • Volta (Tesla V100)
  • Turing (RTX 20 系列)
  • Ampere (RTX 30 系列)
  • Ada Lovelace (RTX 40 系列)
  • Hopper (H100) 最低要求:
  • CUDA 11.2 或更高版本
  • NVIDIA 驱动 470.57.02 或更高版本

AMD GPU

Ollama 在 Linux 上支持 AMD GPU(通过 ROCm): 支持的架构:

  • RDNA1 (RX 5000 系列)
  • RDNA2 (RX 6000 系列)
  • RDNA3 (RX 7000 系列)
  • CDNA (MI 系列) 最低要求:
  • ROCm 5.7 或更高版本
  • Linux 内核 5.4 或更高版本

Apple Silicon

Ollama 原生支持 Apple Silicon: 支持的芯片:

  • M1, M1 Pro, M1 Max, M1 Ultra
  • M2, M2 Pro, M2 Max, M2 Ultra
  • M3, M3 Pro, M3 Max 特性:
  • 统一内存架构
  • Metal Performance Shaders 加速
  • 自动内存管理

NVIDIA GPU 设置

1. 安装 NVIDIA 驱动

Ubuntu/Debian:

bash
# 添加 NVIDIA 仓库
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
# 安装推荐驱动
sudo ubuntu-drivers autoinstall
# 或手动安装特定版本
sudo apt install nvidia-driver-535

CentOS/RHEL/Fedora:

bash
# 启用 EPEL 仓库
sudo dnf install epel-release
# 安装 NVIDIA 仓库
sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
# 安装驱动
sudo dnf install nvidia-driver nvidia-settings

Windows: 从 NVIDIA 官网 下载并安装最新驱动。

2. 安装 CUDA Toolkit

Linux:

bash
# Ubuntu/Debian
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get install cuda-toolkit-12-3
# CentOS/RHEL/Fedora
sudo dnf install cuda-toolkit-12-3

Windows: 从 NVIDIA 开发者网站 下载 CUDA Toolkit。

3. 验证安装

bash
# 检查驱动
nvidia-smi
# 检查 CUDA
nvcc --version
# 检查 GPU 计算能力
nvidia-smi --query-gpu=compute_cap --format=csv

4. 配置环境变量

bash
# 添加到 ~/.bashrc 或 ~/.zshrc
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

AMD GPU 设置 (Linux)

1. 安装 ROCm

Ubuntu:

bash
# 添加 ROCm 仓库
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/5.7/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list
# 安装 ROCm
sudo apt update
sudo apt install rocm-dev rocm-libs rocm-utils

CentOS/RHEL:

bash
# 添加 ROCm 仓库
sudo tee /etc/yum.repos.d/rocm.repo <<EOF
[rocm]
name=ROCm
baseurl=https://repo.radeon.com/rocm/rhel8/5.7/main
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
# 安装 ROCm
sudo dnf install rocm-dev rocm-libs rocm-utils

2. 配置用户权限

bash
# 添加用户到 render 和 video 组
sudo usermod -a -G render,video $USER
# 重新登录或重启以使更改生效

3. 验证安装

bash
# 检查 ROCm 安装
rocm-smi
# 检查 GPU 信息
rocminfo
# 测试 GPU 计算
/opt/rocm/bin/rocm-bandwidth-test

4. 配置环境变量

bash
# 添加到 ~/.bashrc 或 ~/.zshrc
export PATH=/opt/rocm/bin:$PATH
export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH
export HSA_OVERRIDE_GFX_VERSION=10.3.0  # 根据您的 GPU 调整

Apple Silicon 设置

Apple Silicon 支持是内置的,无需额外配置。确保您运行的是:

  • macOS 12.0 (Monterey) 或更高版本
  • 最新版本的 Ollama 验证 Metal 支持:
bash
# 检查系统信息
system_profiler SPDisplaysDataType
# 运行模型时会自动使用 GPU 加速
ollama run gemma3

GPU 配置和优化

环境变量配置

变量名描述默认值示例
OLLAMA_NUM_GPU使用的 GPU 数量自动检测1, 2, 0 (CPU)
OLLAMA_GPU_MEMORY_FRACTIONGPU 内存使用比例0.90.8, 0.5
OLLAMA_GPU_LAYERS在 GPU 上运行的层数自动32, 16
CUDA_VISIBLE_DEVICES可见的 CUDA 设备全部0, 1,2
HIP_VISIBLE_DEVICES可见的 AMD GPU 设备全部0, 1,2

多 GPU 配置

使用所有 GPU:

bash
export OLLAMA_NUM_GPU=4  # 使用 4 个 GPU
ollama run gemma3

使用特定 GPU:

bash
# NVIDIA
export CUDA_VISIBLE_DEVICES=0,2  # 只使用 GPU 0 和 2
# AMD
export HIP_VISIBLE_DEVICES=0,1   # 只使用 GPU 0 和 1

负载均衡:

bash
# 自动在多个 GPU 间分配层
export OLLAMA_NUM_GPU=2
export OLLAMA_GPU_LAYERS=auto

内存优化

限制 GPU 内存使用:

bash
# 使用 80% 的 GPU 内存
export OLLAMA_GPU_MEMORY_FRACTION=0.8

混合 CPU/GPU 推理:

bash
# 在 GPU 上运行 20 层,其余在 CPU
export OLLAMA_GPU_LAYERS=20

动态内存管理:

bash
# 启用动态内存分配
export OLLAMA_DYNAMIC_GPU_MEMORY=1

性能调优

模型选择建议

根据您的 GPU 内存选择合适的模型:

GPU 内存推荐模型备注
4-6 GB7B 模型 (Q4)基础使用
8-12 GB7B 模型 (Q8), 13B 模型 (Q4)平衡性能
16-24 GB13B 模型 (Q8), 30B 模型 (Q4)高质量输出
32+ GB70B 模型 (Q4+)最佳性能

批处理优化

bash
# 增加批处理大小
export OLLAMA_BATCH_SIZE=512
# 调整并发请求数
export OLLAMA_MAX_CONCURRENT_REQUESTS=4

精度优化

bash
# 使用混合精度
export OLLAMA_MIXED_PRECISION=1
# 启用 TensorRT 优化 (NVIDIA)
export OLLAMA_TENSORRT=1

监控和诊断

GPU 使用监控

NVIDIA:

bash
# 实时监控
watch -n 1 nvidia-smi
# 详细信息
nvidia-smi -q -d MEMORY,UTILIZATION
# 持续日志
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,memory.used,memory.total --format=csv -l 1

AMD:

bash
# 实时监控
watch -n 1 rocm-smi
# 详细信息
rocm-smi -a
# 温度和功耗
rocm-smi --showtemp --showpower

Apple Silicon:

bash
# 使用 Activity Monitor 或
sudo powermetrics -n 1 -i 1000 --samplers gpu_power

性能基准测试

bash
# 测试推理速度
time ollama run gemma3 "写一首关于春天的诗"
# 测试吞吐量
for i in {1..10}; do
  echo "测试 $i" | ollama run gemma3 &
done
wait

内存使用分析

bash
# 检查模型内存使用
ollama ps
# 详细内存信息
ollama show gemma3 --verbose

故障排除

常见问题

问题: GPU 未被检测到

No CUDA-capable device is detected

解决方案:

  1. 检查驱动安装:nvidia-smi
  2. 检查 CUDA 安装:nvcc --version
  3. 重启系统
  4. 检查 GPU 兼容性 问题: 内存不足
CUDA out of memory

解决方案:

  1. 减少 GPU 内存使用:export OLLAMA_GPU_MEMORY_FRACTION=0.7
  2. 使用更小的模型
  3. 减少 GPU 层数:export OLLAMA_GPU_LAYERS=20问题: AMD GPU 不工作
No HIP-capable device found

解决方案:

  1. 检查 ROCm 安装:rocm-smi
  2. 检查用户权限:groups $USER
  3. 设置正确的 GFX 版本:export HSA_OVERRIDE_GFX_VERSION=10.3.0

性能问题诊断

推理速度慢:

  1. 检查 GPU 利用率
  2. 确认模型完全加载到 GPU
  3. 调整批处理大小
  4. 检查内存带宽 内存泄漏:
  5. 监控 GPU 内存使用
  6. 重启 Ollama 服务
  7. 检查模型缓存设置 多 GPU 不平衡:
  8. 检查 GPU 拓扑:nvidia-smi topo -m
  9. 调整负载分配
  10. 使用 NCCL 优化通信

调试工具

bash
# 启用详细日志
export OLLAMA_DEBUG=1
export CUDA_LAUNCH_BLOCKING=1  # NVIDIA
export HIP_LAUNCH_BLOCKING=1   # AMD
# 运行诊断
ollama run gemma3 --verbose
# 检查系统兼容性
ollama --version

Docker 中的 GPU 支持

NVIDIA Docker

bash
# 安装 NVIDIA Container Toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | 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
# 运行容器
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

AMD Docker

bash
# 运行 ROCm 容器
docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm

最佳实践

1. 硬件选择

NVIDIA GPU 推荐:

  • 入门级: RTX 4060 (8GB) - 适合 7B 模型
  • 中端: RTX 4070 Ti (12GB) - 适合 13B 模型
  • 高端: RTX 4090 (24GB) - 适合 30B+ 模型
  • 专业级: A100 (40/80GB) - 适合大型模型 AMD GPU 推荐:
  • 入门级: RX 7600 XT (16GB)
  • 中端: RX 7800 XT (20GB)
  • 高端: RX 7900 XTX (24GB)

2. 系统配置

bash
# 优化系统设置
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf
# 设置 GPU 性能模式
sudo nvidia-smi -pm 1  # NVIDIA
sudo rocm-smi --setperflevel high  # AMD

3. 模型管理

bash
# 预加载常用模型
ollama pull gemma3
ollama pull qwen3
ollama pull deepseek-r1
# 设置模型缓存
export OLLAMA_KEEP_ALIVE=24h

4. 监控和维护

bash
# 定期清理
ollama prune
# 监控脚本
#!/bin/bash
while true; do
  nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader,nounits
  sleep 5
done

下一步

GPU 配置完成后,您可以:

  1. 查看 模型库 选择适合的模型
  2. 探索 API 文档 集成到应用中
  3. 参考 故障排除指南 解决问题

现在您已经成功配置了 GPU 支持!享受 GPU 加速带来的性能提升。

让大语言模型触手可及 - Get up and running with large language models