Ollama使用GPU运行模型的环境部署指南
Ollama使用GPU运行模型的环境部署指南
Ollama是一个开源的AI模型运行环境,支持在本地运行各种AI模型。使用GPU可以显著提升模型的运行速度和效率,特别是对于大型模型。本文将详细介绍如何在Ollama中配置GPU环境,以便更好地利用NVIDIA独立显卡进行AI模型的运行。
1.背景介绍
对于像Llama 3 8B这样的小模型,使用CPU或集成显卡可以很好地工作。然而,如果您的计算机有Nvidia独立显卡,并且您希望运行更大的模型或实现更快的响应时间,您需要安装CUDA Toolkit以更好地利用独立显卡。
注意:使用GPU加速仅适用于具有计算能力5.0以上的Nvidia GPU。如果您使用的是AMD GPU,您可以查看支持的设备列表以确认您的显卡是否受Ollama支持。然而,CUDA Toolkit仅适用于Nvidia GPU,AMD GPU未深究。
Ollama支持的GPU列表
AMD GPU
系列 | 显卡和加速器 |
---|---|
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 |
NVIDIA GPU
计算能力 | 系列 | 显卡 |
---|---|---|
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 |
8.9 | 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 |
8.6 | 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 |
7.5 | NVIDIA Professional | T4, RTX 5000, RTX 4000, RTX 3000, T2000, T1200, T1000, T600, T500 |
7.5 | 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 |
6.1 | GeForce GTX | GTX 1080 Ti, GTX 1080, GTX 1070 Ti, GTX 1070, GTX 1060, GTX 1050 Ti, GTX 1050 |
6.1 | Quadro | P6000, P5200, P4200, P3200, P5000, P4000, P3000, P2200, P2000, P1000, P620, P600, P500, P520 |
6.1 | 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 |
5.2 | Quadro | M6000 24GB, M6000, M5000, M5500M, M4000, M2200, M2000, M620 |
5.2 | Tesla | M60, M40 |
5.0 | GeForce GTX | GTX 750 Ti, GTX 750, NVS 810 |
5.0 | Quadro | K2200, K1200, K620, M1200, M520, M5000M, M4000M, M3000M, M2000M, M1000M, K620M, M600M, M500M |
2.相关环境检查及部署
2.1、检查当前显卡驱动能支持的最高CUDA版本
2.1.1、命令行
nvidia-smi
其中显示的cuda version就是支持的最高版本
2.1.2、控制面板
也有说法说安装新版本的cuda ,会自动将当前显卡驱动升级(没试过)
2.2、安装Visual Studio 2022
Visual Studio 的版本需要与CUDA版本兼容,如果版本不兼容可能会导致安装CUDA失败
2.3、安装CUDA
2.3.1、下载CUDA Toolkit:CUDA Toolkit 12.6 Update 3 Downloads | NVIDIA Developer
下载适用于Windows x64架构的CUDA安装程序
2.3.2、运行安装程序并点击确定:
勾选这几个必须的就行,(nvtx可以不安装, nsight开头的都可以不安装),然后安装结束会提示其他版本Visual Studio没安装,勾选lunch samples!!! 没报错就安装完成了其他的默认安装就可以,如果此项没有选择自定义安装,可能会存在安装失败的风险。
2.3.3、打开命令行,输入
nvcc -V
2.4、配置环境变量
下面两个就是你的安装目录,会自动配置好,和Path同级
CUDA_SDK_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6
CUDA_LIB_PATH = %CUDA_PATH%\lib\u0064
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\u0064
环境变量配置完记得重启
进入安装路径,
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\extras\demo_suite
输入
bandwidthTest.exe
和
deviceQuery.exe
分别提示Result = PASS则安装成功
2.5、如何确认Ollama使用正确的GPU运行模型?
您可以开始运行一个模型,并询问它一个需要长时间回答的问题(例如“写一篇1000字的关于库里的文章”)。当它在响应时,打开一个新的命令行窗口并运行
ollama ps
,以检查Ollama是否使用了GPU以及使用率。此外,您可以使用Windows任务管理器监控GPU使用率和内存使用情况,以确定Ollama正在使用哪种硬件进行推理。
可以通过任务管理器来查看GPU的使用情况 在回答的瞬间会占满100%后归0
2.6、其他
2.6.1、Nvidia驱动程序(先安装驱动再安装CUDA)
在选择NVIDIA驱动程序时,有两种主要类型:Game Ready Driver (GRD) 和 Studio Driver (SD)。这两者的选择取决于您的主要用途:
Game Ready Driver (GRD):这种类型的驱动程序主要针对游戏玩家设计,确保最新的游戏能够在发布时获得最佳性能和体验。如果您主要用显卡玩游戏,那么GRD是较好的选择。
Studio Driver (SD):这种驱动程序是为创意专业人士设计的,例如那些从事视频编辑、3D渲染、图形设计和其他形式的创作内容的人。Studio Driver为这些应用程序提供了更稳定和优化的支持。
由于我们用于AI训练,Studio Driver (SD) 更适合我们的需求。它为专业软件和工作负载提供了优化和稳定性,特别是在处理图形和计算密集型任务时,这对AI训练是非常重要的。
驱动下载网址:Download The Official NVIDIA Drivers | NVIDIA中文链接:下载 NVIDIA 官方驱动 | NVIDIA
根据自身电脑配置,选择对应的驱动
下载完成后安装即可
2.6.2、不同模型GPU占比情况
显卡显存:
不同大小模型所使用GPU占比
2.6.3、长时间不使用会退出模型
如果在这个时间内不使用,则模型会自动退出,如果在退出后再次问答,第一次回答会比较慢。
绿色部分是首次选用模型时提问,迅速回答,红色部分是页面挂起很久之后的问答,回答会有延迟,用于加载模型。
如果想增加模型的激活时间,请设置环境变量
OLLAMA_KEEP_ALIVE
以下截图分别为
默认、600、-1
2.6.4、模型加载后Size变大
模型加载后的内存占用:当模型被加载到内存中时,除了模型本身的参数,还可能包括一些额外的数据结构和缓存,这些都会占用额外的内存。因此,显示的内存占用可能会比模型文件的原始大小要大。
内存对齐和数据结构开销:在内存中,数据通常需要对齐到特定的边界,这可能会导致一些未使用的空间被预留出来。此外,模型在内存中可能使用了一些数据结构来优化访问速度,这些结构也会占用额外的空间。
模型优化和压缩:有些模型在存储时会进行压缩,以减少文件大小。当这些模型被加载时,它们会被解压缩到内存中,这可能会导致内存占用增加。
额外的计算资源:模型在运行时可能需要额外的计算资源,比如用于存储中间结果的缓存,这些资源也会占用内存。
模型版本和配置:不同的模型版本和配置可能会有不同的内存占用情况。例如,一些模型可能包含更多的特性或者优化,这可能会导致内存占用增加。