当前位置: 首页 > news >正文

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.solibcuda.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加速。

文章属于记录个人学习过程,本人水平有限。如果文章中哪些地方有错误,真诚地欢迎各位大佬指出呀!!!

相关文章:

  • 51单片机Proteus仿真速成教程——P1-软件与配置+Proteus绘制51单片机最小系统+新建程序模版
  • mac系统安装
  • 前端之超好使的canvas的场景应用
  • 黄金贵金属行情
  • 【学习方法一】
  • 【面试】Zookeeper
  • uniapp 自定义地图组件(根据经纬度展示地图地理位置)
  • 【Git】合并冲突
  • MySQL-MVCC
  • MPPT与PWM充电原理及区别详解
  • 使用 Vue 3 + TypeScript + Vant 4 构建现代移动端应用
  • 小米智能音箱Pro搭载“超级小爱”,支持远程控车
  • 2025科技项目申报预测月历来啦!
  • C++程序设计语言笔记——基本功能:指针、数组与引用
  • Grafana Loki
  • 深度学习实战车辆目标跟踪与计数
  • 全栈网络安全|渗透测试-1
  • 网络初级复习作业
  • react+ts+eslint+prettier 配置教程
  • 【AI】AI开源IDE:CLine源码分析报告
  • 芬兰西南部两架直升机相撞坠毁,第一批救援队已抵达现场
  • 湖南慈利一村干部用AI生成通知并擅自发布,乡纪委立案
  • 博物馆日|为一个展奔赴一座城!上海171家博物馆等你来
  • 2000多年前的“新衣”长这样!马王堆文物研究新成果上新
  • 魔都眼|锦江乐园摩天轮“换代”开拆,新摩天轮暂定118米
  • 昆明警方重拳打击经济领域违法犯罪:去年抓获905名嫌犯