DELL R730XD 安装 NVIDIA Tesla K80 以及使用 Ollama 运行 Deepseek

折腾麻了,垃圾佬套餐还是难啃,好在有地方抄作业

  • NVIDIA Tesla K80
  • DELL R730XD

什么,你也玩 Deepseek?

这个年过的还是挺有意思的,尽管没学什么东西,好在有点东西折腾。

Deepseek 大火,年前发布,除夕那几天火的不行,官网服务繁忙,像极了 ChatGPT 刚出时的样子,好就好在 Deepseek 在国内访问总是便捷的。于此同时,开源权重模型无疑是大大提高了它的可玩性。在我弱鸡的 3050 笔记本上,4G 的尴尬显存,7B 上不去,1.5B 占用又比较少,属于是很尴尬的情况。在开始几天稍微玩了玩,后来还用 open-webui 做网页版,不过由于 GPU 显存实在太小,同时 distill 模型也不能说是真正的 Deepsek,也就搁置了。

怎么会想到买显卡呢?

事情最早是从叫朋友帮我给 R730XD 装个 PVE 开始,当时连核显都没有的 Win 10,看起来就很卡,于是想着搞张显卡,不过当时看着 M40,P40 价格水涨船高,直接劝退,况且还有折腾门槛。

当时看到了 K80,但是经过一通 Search,发现这玩意是双核心显卡,常规软件无法使用,例如 Ollama 和 pytorch,毕竟 Kepler 架构有够老的,CUDA 最新支持到 11.4,也是无敌。

怎么会买呢?

这就要说,看到这个视频了。

大佬给出了 K80 跑 ollama 的解决方案,12G 显存毕竟是 12G,能跑总比没有强

看着淘宝上 300 左右的 K80,想着怎么都不亏,10 年前的卡,大不了收藏,遂入手。

怎么装的呢?

装 CUDA 和修改版的 ollama 参考大佬给的教程 教程:为老显卡编译 Ollama 框架并调用 CUDA 加速

下面给出我的步骤

显卡安装

DELL 这个显卡还算好装,不过一开始自己没想到怎么装(毕竟台式机也没 DIY 过),遇到了挡板顶住的问题,我一开始是把 Riser 卡拆下来,把显卡先插上 Riser 再一起装,后来发现并不是这样装的。。

实际参考了这个视频

我一开始甚至都不知道后面这个挡板是可以拆的 🤣

barrier

这个是 Riser2,因为我只插一张卡,就用最右边那个比较好装的了

Riser2

装好,插好电源线,是这个样子的

GPU installed

虚拟机配置与驱动安装

插电,开机。可以看到 PCI 设备里有两张卡,一并添加(分两次)

PCI devices

PVE 中给虚拟机加两个 PCI 原始设备

vm configuration

然后进入虚拟机,打开设备管理器,可以看到两个 3D 视频控制器,这个就是 K80 的两个核心

devices manager

安装驱动可以直接去 NVIDIA 官网上搜,我用的是 11.4 的 CUDA,WSL 里的安装也使用这个版本,直链在这 Data Center Driver for Windows 475.14 | Windows 10 64-bit

然后是改 WDDM,我参考了 LTT 上的一个帖子 (Guide) Using an NVIDIA Tesla K80 for Gaming on Windows

不是哥们 LTT 上能找到这玩意

重启后我们就能在任务管理器看到两个 GPU 了

taskmgr

给 WSL 装 CUDA

根据大佬教程中的步骤,依次执行以下命令即可

CUDA 11.4 installation
1
2
3
4
5
6
7
8
9
10
11
12
13
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin

sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600

wget https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.2-1_amd64.deb

sudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.2-1_amd64.deb

sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub

sudo apt-get update

sudo apt-get -y install cuda

这里我在执行 dpkg 的时候遇到一个问题

CUDA installation issue

随后我找到了解决方案,参考这篇 (WSL2 安装 CUDA 踩坑 Debug 全记录)[https://www.cnblogs.com/rthete/p/17551419.html]

具体是

liburcu installation
1
2
wget http://archive.ubuntu.com/ubuntu/pool/main/libu/liburcu/liburcu6_0.11.1-2_amd64.deb
sudo dpkg -i liburcu6_0.11.1-2_amd64.deb

随后再重新执行 dpkg 及其以下的命令即可。

然后要配置一下环境变量

environment
1
export PATH=$PATH:/usr/local/cuda/bin

我是把这个直接放到 /etc/profile 了,然后 source 一下就好。

随后我们可以使用 nvcc --version 来校验。

至此,环境已经安装完毕。

使用修改版 ollama

大佬原文中的是通过编译,我偷懒直接拿他编译好的 binary 用的(评论区置顶)。

由于这个模型下载缓慢,我把我电脑上的 .ollama 经过 NAS copy 到了 WSL 里

然后使用 ollama 可以参考大佬文中给出的代码,我是通过 screen 托管 serve 再另外开 shell run

serve
1
2
3
screen -S ollama
cd /path/to/ollama
./ollama serve
run
1
2
3
screen -S ollama
cd /path/to/ollama
./ollama run [model]

我跑了 1.5b 和 14b,作为对比。

以下均使用 how to calcualte 1+1 作为 prompt
我的笔记本配置是 32g ddr5 4800MHz, i7-12700H, 3050 Laptop 4G
服务器虚拟机是 16G, 30C E5-2650 v3 2.30GHz

  • 1.5b
1.5b laptop
1.5b K80
  • 14b
14b laptop
14b K80

翻车

不出意外。。那包是要出意外的,在我给 14b 跑了两个 prompt 后突然死机,然后重启了,发来邮件说 fatal error:

email

重启后仍能看到卡。。

关机后开机盖检查了下 PCB,显存没炸。。

后来又开机,我怀疑是过热死机,试了下,果然是,拿 hwinfo 看 GPU 温度

hwinfo

虽然服务器设置的是风扇自动控制,但是可能并没有考虑外围 PCI 设备,K80 只有被动散热,35%的风扇直接热死了,且由于两个核心距离出风口的位置不一样,后一个,也就是 GPU1 吃到了脏空气,温度更是高。

GPU1 temp
GPU2 temp

总结

作为一张十年前的卡,300 多点,是就这么个性能,在 8b 及以下场景下不如我的笔记本,14b 略微领先,包括这台服务器在内,第一次捡垃圾,还算成功。