以下是配置 Ollama 使用 GPU 加速推理的详细步骤,综合多平台(Windows/Linux/Docker)和不同显卡类型(NVIDIA/Intel)的解决方案:
一、通用环境准备
1. 验证 GPU 驱动
- NVIDIA 显卡:
nvidia-smi # 检查驱动状态和 CUDA 版本(需≥11.8)
- Intel Arc 显卡:
确保安装最新版显卡驱动,支持SYCL
和oneAPI
工具链1。
2. 安装 CUDA 工具包
- NVIDIA 用户:
从 NVIDIA 官网 下载对应版本 CUDA Toolkit。 - Intel 用户:
安装Intel® oneAPI Base Toolkit
和Intel® Extension for PyTorch
1。
二、不同平台的配置方法
NVIDIA 显卡(Windows/Linux)
-
Windows 10/11 配置:
- 安装 Ollama 后,设置环境变量:
set OLLAMA_NUM_GPU=999 # 允许最大 GPU 层数 set OLLAMA_GPU_LAYERS=35 # 手动指定加载层数(如 Llama3-8B)
- 修改模型参数文件(以 Llama3 为例):
ollama show llama3:8b --modelfile > mymodel.modelfile # 添加 PARAMETER num_gpu 35 ollama create mymodel -f mymodel.modelfile ```[3](@ref)
- 安装 Ollama 后,设置环境变量:
-
Linux 配置:
- 使用 Docker 部署(推荐):
# 安装 NVIDIA Container Toolkit curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker # 启动 Ollama 容器 docker run -d --gpus all -p 11434:11434 -v ollama:/root/.ollama --name ollama ollama/ollama ```[6](@ref)[8](@ref)
- 使用 Docker 部署(推荐):
Intel Arc 显卡(Windows)
-
配置 Conda 环境:
conda create -n llm python=3.11 libuv conda activate llm pip install dpcpp-cpp-rt==2024.0.2 mkl-dpcpp==2024.0.0 onednn==2024.0.0 pip install --pre ipex-llm[xpu] --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/ ```[1](@ref)
-
启动 GPU 加速服务:
set SYCL_CACHE_PERSISTENT=1 set OLLAMA_HOST=0.0.0.0 ollama serve # 保持此窗口运行 # 新终端运行模型 ollama run llama3
三、关键参数调优
参数 | 作用 | 示例值 | 适用场景 |
---|---|---|---|
num_gpu | 指定加载到 GPU 的模型层数 | 35 (8B模型) | 平衡显存与推理速度 |
OLLAMA_GPU_LAYERS | 全局 GPU 层数限制 | 999 | 允许最大层数 |
OLLAMA_NUM_GPU | 并行 GPU 数量(多卡) | 2 | 多 GPU 分布式推理 |
OLLAMA_KEEP_ALIVE | 模型常驻内存时间(秒) | 3600 | 减少重复加载开销 |
四、验证与排错
-
验证 GPU 使用:
- 查看服务日志:
tail -f ~/.ollama/logs/server.log # 输出应包含 "Using GPU"
- 监控 GPU 占用率:
watch -n 1 nvidia-smi # 实时查看显存和计算负载
- 查看服务日志:
-
常见问题解决:
五、性能对比(Llama3-8B 示例)
配置 | 推理速度 (tokens/s) | 显存占用 (GB) |
---|---|---|
CPU (i9-13900K) | 8~12 | 0 |
GPU (RTX 4090) | 85~120 | 14.5 |
Intel Arc A770M | 32~45 | 8.2 |
参考文档: