加载中...

使用 Ollama 运行本地 AI 大模型时如何调用 GPU ?


0x00 前言

随着近期 DeepSeek 的爆火,相信很多同学都已经在试用了。

使用下来发现,效果确实让人惊艳,可以说是目前国产开源大模型最好的,甚至在某些领域有超越 GPT 的迹象,不愧是国产之光。

但是模红是非多,随着使用率暴涨、加上漂亮国的黑客下场,在线版的 DeepSeek 开始变得不稳定,频频报错 “服务器繁忙,请稍后再试。”

由于 DeepSeek 是开源的,于是不少同学开始从线上使用转向线下部署了:

其实我在上一篇文章《快速搭建本地大模型与知识库》中,已经介绍了如何使用 Ollama 在本地部署 AI 大模型。

安装好 Ollama 后,一行命令即可本地启用:

ollama run deepseek-r1:7b

目前 deepseek-r1 提供了 1.5b7b8b14b32b70b671b 等不同参数规模供下载。

这里使用 7b 对机器的配置要求已经很低了,但是依然有同学发现,运行 deepseek-r1:7b 电脑会卡得不行。

一查任务管理器,发现压力全给到 CPU 了,GPU 几乎毫无波澜:

由此引出了本文要解决的问题: Ollama 如何调用 GPU ?

0x10 结论

其实我之前翻看了很多网上教程,他们说的方法大部分都是错的(不起作用)。

后来我才找到 Ollama 官方针对 GPU 的调用方法,这里直接给结论:

Ollama 是自动调用 GPU 的,如果不能调用,可能:

  1. Ollama 不支持你的 GPU 系列
  2. Ollama 支持你的 GPU 系列,但是你的是 N 卡且 CUDA 版本太低
  3. 你的 GPU 显存不够大

所以你唯一能做的,不外乎换一块支持的显卡,然后装上对应的 CUDA 。

小知识: CUDA 并非显卡驱动

CUDA 的全称是 Compute Unified Device Architecture,一般指的是 CUDA Toolkit。

按照 NVIDIA 官方的说法,CUDA 是一个并行计算平台和编程模型,能够使得使用 GPU 进行通用计算变得简单和优雅。

简而言之,CUDA 是 NVIDIA 为了帮助大家更好地使用他们生产的 GPU 而开发的一个辅助工具。

打比喻就是,汽车厂商(NVIDIA)卖给你了车(GPU),帮你请了司机(显卡驱动),又负责教司机如何开车开得简单又优雅(CUDA)。

不要过于追求新版的 CUDA,更高级的 CUDA 工具包只有更高级别的驱动才能学会

0x20 Ollama GPU 选择

截至 2025-02,根据 Ollama 官方给出的最新显卡清单,目前支持的显卡系列为:

  • Nvidia(N卡): 需要 CUDA 支持
  • AMD(A卡): 需要 ROCm 支持(可以理解为类似 CUDA 的存在)

至于 Intel(I卡)和集显是完全不支持的。

0x21 支持的 Nvidia 具体型号

CUDA 版本 系列 显卡型号
9.0 NVIDIA H100
8.9 GeForce RTX 40xx RTX 4090 RTX 4080 SUPER RTX 4080 RTX 4070 Ti SUPER RTX 4070 Ti RTX 4070 SUPER RTX 4070 RTX 4060 Ti RTX 4060
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 RTX 3050 Ti RTX 3050
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 Ti 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

具体每种型号的 GPU 支持什么 CUDA 版本,可以查看 Nvidia 官方显卡说明

0x22 支持的 AMD 具体型号

Windows

在 ROCm v6.1 中,以下 GPU 在 Windows 上受支持:

系列 显卡型号
AMD Radeon RX 7900 XTX 7900 XT 7900 GRE 7800 XT 7700 XT 7600 XT 7600 6950 XT 6900 XTX 6900XT 6800 XT 6800
AMD Radeon PRO W7900 W7800 W7700 W7600 W7500 W6900X W6800X Duo W6800X W6800 V620

Linux

在 Linux 下,Ollama 同样使用 AMD ROCm 库,但由于 LLVM(Low-Level Virtual Machine) 并未为所有 AMD GPU 架构提供完整或符合 ROCm 要求的目标描述,因此支持型号也受限:

系列 显卡型号
AMD Radeon RX 7900 XTX 7900 XT 7900 GRE 7800 XT 7700 XT 7600 XT 7600 6950 XT 6900 XTX 6900XT 6800 XT 6800 Vega 64 Vega 56
AMD Radeon PRO W7900 W7800 W7700 W7600 W7500 W6900X W6800X Duo W6800X W6800 V620 V420 V340 V320 Vega II Duo Vega II VII SSG
AMD Instinct MI300X MI300A MI300 MI250X MI250 MI210 MI200 MI100 MI60 MI50

0x20 案例

以我自己的显卡为例,RTX 2080 Ti 在 Ollama 支持的 GPU 清单范围内,且要求 CUDA >= 7.5。

那么其实我只需要检查:

  1. CUDA 是否有安装,没有安装则到 Nvidia 官方下载对应版本
  2. CUDA 版本是否大于 7.5 ,命令行输入 nvidia-smi 检查:

然后重启 Ollama,通过任务管理器可以发现已经切换到 GPU 模式了:

此后,当 Ollama 在回答问题时,你可以新建另一个终端,输入命令 ollama ps,就可以实时查看这次交互使用了多少比例的 GPU 算力:

当你发现 GPU 的比例有点低时(算力过剩),可以

  1. 在终端执行命令 ollama run ${MODEL_NAME} 进入 Ollama 交互模式
  2. 在交互模式中输入指令 /set parameter num_ctx 4096(默认是 2048)

这个命令可以设置模型上下文的 token 数量,值越大、记忆上下文的文本数量就越多、需要的算力就越多。

没有软上限,物理上限就是显存大小,设置过大会交互时报错内存溢出

当然,如果你有多张 GPU 想让 Ollama 使用它们的算力,你还可以在交互模式中输入指令 /set parameter num_gpu 2(数字是你期望使用 GPU 的数量)

Ollama 的 API 也支持指定这些参数,详细可以看官方文档


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
常用办公软件集成 AI 指引 常用办公软件集成 AI 指引
本文记录了如何将 AI 集成到常用办公软件,如开发工具 IDEA、VSCode、VS2022,文档工具 Word、Excel 等,方便需要时参考。
2025-02-13
下一篇 
「流行声乐学习笔记 21」戏腔与中国风/古风 「流行声乐学习笔记 21」戏腔与中国风/古风
价值 6K 的流行声乐课程笔记!本节课为风格课 —— 戏腔,它融合了戏曲唱法与流行声乐元素,特点是声音高亢尖锐,依赖头声与咽音共鸣,尾音婉转且具有古风韵味。
2025-01-27
  目录