站长百科将详细介绍两种实现方式:直接安装Ollama并配置GPU支持,以及通过Docker容器部署Ollama并调用GPU,解决过程中可能遇到的GPU无法使用的问题,帮你一步步实现模型在GPU上的高效运行。
一、安装Ollama
安装Ollama只需要一条命令就能完成(如果下载速度慢,可以找合适的镜像源):
curl -fsSL https://ollama.com/install.sh | sh
安装完成后,可以随便安装一个模型来测试一下,比如:
二、测试Ollama
接下来需要判断Ollama是否真的在使用GPU运行。虽然从模型的运行速度上能大概看出来,但还有更准确的判断方法:
查看Ollama配置:在Ollama的配置中,如果显示 “使用100%的GPU”,说明Ollama默认是打算用GPU的,但这并不能完全证明它真的在使用GPU。
通过 nvidia-smi 查看:这是最直接的方法。在模型运行时,打开终端输入以下命令(每秒刷新一次显卡信息):
nvidia-smi -l 1
如果显示中显卡的利用率和功耗都处于较高状态,那就说明Ollama确实在使用GPU运行了,这时候恭喜你安装成功。
如果发现Ollama没有使用GPU,应该是初始化GPU时出现了问题。可以按以下方法排查解决:
1、尝试重装Ollama:有时候因为网络问题,Ollama可能无法正常加载GPU相关组件。可以使用Gitee等国内镜像源重新安装,安装前可以先运行ollama serve查看具体的错误信息,方便定位问题。
2、参考官方解决方案:官方针对GPU无法使用的问题提供了一些解决方法,其中一个常用方案是重新加载 nvidia_uvm 模块(这也是很多用户实践有效的方法)。
3、处理nvidia_uvm模块问题:官方提到,Ollama挂起后再次运行,可能会出现找不到Nvidia GPU、转而使用CPU的情况。这时候可以尝试重新加载驱动模块:
sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm
但如果是桌面版Linux系统,可能会提示 “nvidia_uvm 正在使用中”,这时候需要先关闭使用该模块的进程:
- 用nvidia-smi查看正在使用显卡的进程;
- 关闭这些进程(kill 进程ID);
- 不过要注意,桌面版系统中有些进程关闭后会自动重启,可能导致无法顺利重载模块。如果是服务器版本的Linux,通常不会有这个问题。
三、Docker容器安装Ollama
如果上面的方法都无法解决问题,或者你更习惯用容器化方式运行,可以试试用Docker安装,步骤如下:
1、准备工作
用容器运行Ollama并使用GPU,需要先安装Docker和NVIDIA Container Toolkit(让容器支持GPU调用)。
优化网络(可选):如果安装模型或工具时速度很慢,可以尝试把DNS换成阿里公共DNS(223.5.5.5),改完后重启系统,可能会提升下载速度。
2、安装Docker
先删除系统中可能已有的旧版本Docker相关组件:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
添加Docker官方GPG密钥:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
将Docker仓库添加到APT源:
echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
安装Docker组件:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
(可选)配置镜像加速器:如果拉取镜像慢,可以参考华为云等平台的 “设置镜像加速器” 文档(需要实名认证),能大幅提升下载速度。
安装NVIDIA Container Toolkit:这是让Docker容器能使用GPU的关键组件,安装前要确保已经安装好NVIDIA显卡驱动。
配置包仓库:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg –dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed ‘s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g’ | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
更新包列表:
sudo apt-get update
安装工具包:
sudo apt-get install -y nvidia-container-toolkit
配置Docker运行时:
sudo nvidia-ctk runtime configure –runtime=docker
重启Docker服务:
sudo systemctl restart docker
四、用容器部署Ollama到GPU上
在开始之前,要确保主机上已安装的Ollama服务已经关闭,否则会出现端口占用的问题。如果需要同时使用,就得更换端口号,并在后续命令中做相应修改。
检查并关闭Ollama进程:
# 查看是否有Ollama进程在运行
ps -A | grep ollama
# 比如显示 “1321 ? 00:02:50 ollama”,就用下面的命令关闭
sudo kill 1321
部署容器:输入以下命令即可部署:
docker run -d –gpus=all -v ./ollama:/root/.ollama -p 11434:11434 –name ollama ollama/ollama
这个命令的各部分含义:
- –gpus=all:使用所有可用的GPU;
- -v ./ollama:/root/.ollama:将当前目录下的ollama文件夹挂载到容器的/root/.ollama目录,这样可以实现文件共享(比如 Llama3.2-Vision 需要用到的图片)。选择/root/.ollama是因为这是 Ollama 存放模型的地方,这样即使删除重装容器,也不用重新下载模型;
- -p 11434:11434:将容器的 11434 端口映射到主机的 11434 端口(11434 是 Ollama 的默认端口);
- –name ollama:给容器命名为 “ollama”;
- ollama/ollama:使用的镜像名称。
进入容器使用Ollama:输入以下命令进入容器:
sudo docker exec -it ollama /bin/bash
用容器方式运行时不用担心性能损耗因为 Docker和传统虚拟机不同,它是基于主机系统运行的。从nvidia-smi的显示中可以看到,显卡利用率和功耗都能达到较高水平,说明GPU在正常工作。
-
广告合作
-
QQ群号:4114653








