Windows 11安装Ollama优先使用GPU运行
最近deepseek大火,但是官网因为请求人数过多,想必大家经常遇到:“抱歉,服务繁忙,请稍后再试吧”的尴尬局面,因此本地部署可以完美解决这个问题,实现随时可以使用。
常规安装ollama操作我就不讲了,可以参考ollama官网。
作者安装完ollama之后,使用时会话卡顿,cpu占用超过90%,查看任务管理器和ollama日志,发现未成功调用GPU
我这边使用的显卡型号是RTX2060,显存6G,使用的是deepseek-r1:8b模型
在Windows系统中设置环境变量优先让Ollama使用GPU 运行,可以按照以下步骤操作:
步骤 1:确认 GPU 兼容性
Ollama的GPU加速依赖以下条件:
NVIDIA GPU:需要安装CUDA工具包(推荐 CUDA 11+)和对应驱动。
AMD/Intel GPU:可能需要ROCm或DirectML支持(取决于 Ollama 版本)。
步骤 2:安装必要组件
NVIDIA 用户:
CUDA和CUDNN的安装(解决显存不足的办法)
CUDA Unified Memory: CUDA 提供了统一内存(Unified Memory),允许 GPU 和 CPU 共享内存空间。这可以使得内存需求超出 GPU 显存时,数据可以存储在主机内存中并在需要时传输到 GPU。
安装最新 NVIDIA 驱动。
安装 CUDA Toolkit(版本需与 Ollama 兼容)。以windows11为例:
https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local
安装 cuDNN(可选,但推荐)。以windows11为例:
https://developer.nvidia.com/cudnn-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exe_local
验证:cmd输入
1.最高版本:nvidia-smi
nvidia-smi
Sat Feb 8 16:14:06 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 571.96 Driver Version: 571.96 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 2060 WDDM | 00000000:01:00.0 On | N/A |
| 44% 35C P2 44W / 160W | 5595MiB / 6144MiB | 5% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
2.当前版本:nvcc --version
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:38:46_Pacific_Standard_Time_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0
AMD/Intel 用户:
安装最新 GPU 驱动。
确认 Ollama 是否支持 DirectML(Windows 默认支持的 GPU 加速框架)。
步骤 3:设置环境变量
打开环境变量设置:
右键点击 开始菜单 → 系统 → 高级系统设置 → 环境变量。
新建系统变量:
变量名: OLLAMA_GPU_LAYER
变量值: cuda(NVIDIA)或 directml(AMD/Intel)
(可选)强制指定 GPU 设备(多 GPU 时):
变量名: CUDA_VISIBLE_DEVICES
变量值: 0(使用第一个 GPU)
确认设置:
打开 PowerShell,运行 echo $env:OLLAMA_GPU_LAYER 检查变量是否生效。
步骤 4:重启 Ollama 服务
在 PowerShell 中运行:
ollama serve stop
ollama serve
或直接重启计算机。
步骤 5:验证 GPU 使用
- 查看日志:
启动 Ollama 时,日志中应显示类似 Using GPU 的提示。
运行 ollama run <模型名> 时观察 GPU 占用(通过任务管理器或 nvidia-smi)。 - 测试性能:
对比 GPU/CPU 模式下模型的推理速度差异。
常见问题
- 环境变量未生效:
确保以管理员权限运行 Ollama。
检查变量名是否拼写错误。 - CUDA 版本不兼容:
升级 Ollama 到最新版本。
参考 Ollama 官方文档的 GPU 支持说明。 - DirectML 支持:
部分 Ollama 版本可能需要手动启用 DirectML,例如添加 --use-directml 参数。
总结
通过设置 OLLAMA_GPU_LAYER=cuda 或 OLLAMA_GPU_LAYER=directml 环境变量,可以让 Ollama 优先使用 GPU。作者按照这个设置完并重启电脑之后,运行deepseek-r1:8b模型非常流畅。
附录:常见NVIDIA GPU计算能力表格
| Compute Capability | Family | Cards |
|---|---|---|
| 9.0 | NVIDIA | H100 |
| 8.9 | GeForce RTX 40xx | RTX 4090 RTX 4080 RTX 4070 Ti RTX 4060 Ti |
| NVIDIA Professional | L4 L40 RTX 6000 | |
| 8.6 | GeForce RTX 30xx | RTX 3090 Ti RTX 3090 RTX 3080 Ti RTX 3080 RTX 3070 Ti RTX 3070 RTX 3060 Ti RTX 3060 |
| NVIDIA Professional | A40 RTX A6000 RTX A5000 RTX A4000 RTX A3000 RTX A2000 A10 A16 A2 | |
| 8.0 | NVIDIA | A100 A30 |
| 7.5 | GeForce GTX/RTX | GTX 1650 Ti TITAN RTX RTX 2080 Ti RTX 2080 RTX 2070 RTX 2060 |
| NVIDIA Professional | T4 RTX 5000 RTX 4000 RTX 3000 T2000 T1200 T1000 T600 T500 | |
| Quadro | RTX 8000 RTX 6000 RTX 5000 RTX 4000 | |
| 7.0 | NVIDIA | TITAN V V100 Quadro GV100 |
| 6.1 | NVIDIA TITAN | TITAN Xp TITAN X |
| GeForce GTX | GTX 1080 Ti GTX 1080 GTX 1070 Ti GTX 1070 GTX 1060 GTX 1050 | |
| Quadro | P6000 P5200 P4200 P3200 P5000 P4000 P3000 P2200 P2000 P1000 P620 P600 P500 P520 | |
| Tesla | P40 P4 | |
| 6.0 | NVIDIA | Tesla P100 Quadro GP100 |
| 5.2 | GeForce GTX | GTX TITAN X GTX 980 Ti GTX 980 GTX 970 GTX 960 GTX 950 |
| Quadro | M6000 24GB M6000 M5000 M5500M M4000 M2200 M2000 M620 | |
| Tesla | M60 M40 | |
| 5.0 | GeForce GTX | GTX 750 Ti GTX 750 NVS 810 |
| Quadro | K2200 K1200 K620 M1200 M520 M5000M M4000M M3000M M2000M M1000M K620M M600M M500M |
欢迎关注我的公众号 辣个男人Devin ,新鲜技术文章第一时间推送。
参考链接:
1.https://github.com/qianniuspace/ollama-doc/blob/main/ollama/docs/Ollama%20%E5%AF%B9GPU%20%E6%94%AF%E6%8C%81%E4%BF%A1%E6%81%AF.md
2.https://blog.csdn.net/m0_67228616/article/details/140854218