Ollama开启GPU加速与NVIDIA驱动安装
Ollama 开启 GPU 加速可显著提升大语言模型运行效率与性能,通过利用 NVIDIA CUDA 等 GPU 并行计算能力优化矩阵运算,推理速度可实现数倍至数十倍的提升,有效降低用户交互延迟。可以按照以下步骤检查配置CPU加速。
一、检查 Ollama 是否开启 GPU 加速
启动Ollama服务并检查日志,在WSL命令行中执行以下命令:
OLLAMA_DEBUG=1 ollama serve
预期会输出一段较长日志,检查日志,是否像我的日志一样包含以下关键信息:
library=cuda、compute=8.6、variant=v12、driver=12.8
日志解读:
time=2025-03-09T10:30:00.176+08:00 level=DEBUG source=gpu.go:125 msg="detected GPUs" count=1 library=/usr/lib/wsl/lib/libcuda.so
含义:在路径 /usr/lib/wsl/lib/libcuda.so,检测到 1 块 NVIDIA GPU,并加载了 WSL 自带的 CUDA 12.8 库。
[GPU-cbb00053-655d-c435-004e-241491c5a80c] CUDA totalMem 4095 mb
[GPU-cbb00053-655d-c435-004e-241491c5a80c] CUDA freeMem 3304 mb
含义:显存总量为 4095 MB(即 4GB),可用显存 3304 MB,表明 Ollama 已为 GPU 分配显存。
[GPU-cbb00053-655d-c435-004e-241491c5a80c] Compute Capability 8.6
含义:Compute Capability 8.6对应的是NVIDIA RTX 30系列显卡,这说明Ollama正确识别了GPU的计算能力,并且支持CUDA 12.x版本。
library=cuda含义: GPU 加速已生效。
compute=8.6含义:对应 NVIDIA RTX 3050 显卡的计算能力(支持 CUDA 12)。
variant=v12、driver=12.8含义:Ollama 使用的 CUDA 版本为 12.8,与驱动版本 12.8 完全兼容。
如果,这些信息跟我的类似,那么恭喜你,你已经开启了GPU加速,不用继续往下看了。否则,需要按照下面步骤进行配置。
二、下载最新版本 的NVIDIA驱动
前往NVIDIA官网
NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIAhttps://www.nvidia.cn/geforce/drivers/ 选择对应自己电脑的 GPU 型号和操作系统版本,点击开始搜索。这里最后一项的下载类型中最好选择Studio 驱动,它专为创作和开发优化,通常包含完整的 WSL 支持。
搜索结果中,选择最新的版本,点击获取下载。
进入详情页面后,点击立即下载即可。
三、安装驱动
以管理员权限运行驱动安装程序 ,即刚刚下载好的.exe 文件(文件名形如 536.99-desktop-win10-win11-64bit-international-dch-whql.exe)。点击OK,等待完成即可。
之后,在这里要选择 第二个 图形驱动程序
选择自定义
记得勾选执行清洁程序
然后继续下一步,按照提示安装即可。
四,开始进行相关配置
1.在Windows终端中检查WSL版本,以管理员身份启动 PowerShell,执行以下命令:
wsl --list --verbose
运行结果要包括:
2. 在WSL的Linux终端中验证CUDA支持,在WSL中输入以下代码检查NVIDIA驱动是否可见:
nvidia-smi
正常情况下,运行结果如下图:
五、配置 CUDA 库路径
1.确认 WSL 自带 CUDA 库位置,在WSL中执行以下命令:
ls /usr/lib/wsl/lib
确认存在 libcuda.so
、libcuda.so.1
等关键桥接库文件。
2. 配置环境变量 ,在WSL中执行以下命令,
命令含义:打开环境变量文件
nano ~/.bashrc
下拉,在文件最后,查看是否包含以下代码,若未包含,则复制过去。
#该命令的含义:优先使用 WSL 自带的 CUDA 库
export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH
之后,因为这里使用的是 nano 编辑器,所以按以下方式退出:
保存并退出:编辑完成后
(1)按 Ctrl + O(写入更改)。
(2)按 Enter 确认文件名。
(3)再按 Ctrl + X 退出编辑器。
直接退出(不保存):
(1)按 Ctrl + X。
(2)如果已修改文件,会提示是否保存,按 N 放弃保存并退
3.验证环境变量,在WSL中执行以下命令
echo $LD_LIBRARY_PATH
预期会输出如下图一样,包含 /usr/lib/wsl/lib 或 /usr/local/lib/ollama/cuda_v12。
六、配置 Ollama 的 GPU 支持
1.复制并移动CUDA 库文件,Ollama 的 CUDA 库通常位于 lib/ollama/cuda_v12
或类似目录中。在WSL中执行以下命令
# 创建Ollama库目录
sudo mkdir -p /usr/local/lib/ollama
# 复制CUDA v12库(假设你使用CUDA 12)
sudo cp -r ~/lib/ollama/cuda_v12 /usr/local/lib/ollama/
2.修改环境变量文件
在WSL中执行以下命令
命令含义:打开环境变量文件
nano ~/.bashrc
下拉,在文件最后,查看是否包含以下代码,若未包含,则复制过去。
export LD_LIBRARY_PATH=/usr/local/lib/ollama/cuda_v12:$LD_LIBRARY_PATH
之后,因为这里使用的是 nano 编辑器,所以按以下方式退出:
保存并退出:编辑完成后
(1)按 Ctrl + O(写入更改)。
(2)按 Enter 确认文件名。
(3)再按 Ctrl + X 退出编辑器。
直接退出(不保存):
(1)按 Ctrl + X。
(2)如果已修改文件,会提示是否保存,按 N 放弃保存并退
七、重启 WSL 和 Ollama 服务并验证GPU加速
最后,再次按照文章开篇部分的检查方法检查一遍。
启动Ollama服务并检查日志,在WSL命令行中执行以下命令:
OLLAMA_DEBUG=1 ollama serve
预期会输出一段较长日志,检查日志,是否像我的日志一样包含以下关键信息:
library=cuda、compute=8.6、variant=v12、driver=12.8
日志解读:
time=2025-03-09T10:30:00.176+08:00 level=DEBUG source=gpu.go:125 msg="detected GPUs" count=1 library=/usr/lib/wsl/lib/libcuda.so
含义:在路径 /usr/lib/wsl/lib/libcuda.so,检测到 1 块 NVIDIA GPU,并加载了 WSL 自带的 CUDA 12.8 库。
[GPU-cbb00053-655d-c435-004e-241491c5a80c] CUDA totalMem 4095 mb
[GPU-cbb00053-655d-c435-004e-241491c5a80c] CUDA freeMem 3304 mb
含义:显存总量为 4095 MB(即 4GB),可用显存 3304 MB,表明 Ollama 已为 GPU 分配显存。
[GPU-cbb00053-655d-c435-004e-241491c5a80c] Compute Capability 8.6
含义:Compute Capability 8.6对应的是NVIDIA RTX 30系列显卡,这说明Ollama正确识别了GPU的计算能力,并且支持CUDA 12.x版本。
library=cuda含义: GPU 加速已生效。
compute=8.6含义:对应 NVIDIA RTX 3050 显卡的计算能力(支持 CUDA 12)。
variant=v12、driver=12.8含义:Ollama 使用的 CUDA 版本为 12.8,与驱动版本 12.8 完全兼容。
如果可以在日志中找到上述关键内容,恭喜你,已经成功开启Ollama的GPU加速。
文章属于记录个人学习过程,本人水平有限。如果文章中哪些地方有错误,真诚地欢迎各位大佬指出呀!!!