2024年1月,我心血来潮想开个mc服务器,于是买下浪潮5212m4准系统,配备了128GB的DDR4 RECC内存,以及两颗E5-2696v3。后续因为我的母亲的工作和ai相关,导致我也对这方面比较感兴趣,在比较之下,我决定在Tesla p40和Tesla p100选择一张购入,考虑到p40有24GB的显存,虽然半精度浮点是个残疾,但是好歹能跑参数量比较大的模型,于是花700大洋,购入了这张计算卡(事实证明这一点是正确的)。
在我更换固态硬盘前(之前自制的固态硬盘掉盘太严重了),vGPU配置是没有任何问题的,但是更换之后,我安装了pve8.3.0,随后迁移了虚拟机,因此其他的配置都要重新来一遍。
2025年1月,deepseek爆火,基于Deepseekv3蒸馏的模型显然参数量太大(671B),我看了一下模型的大小,我的24GB显存,刚好能装下21GB的deepseek-r1:32b-qwen-distill-q4_K_M,为了能在虚拟机上使用计算卡运行模型,首要任务就是配置vGPU直通。
第一步,我们要在宿主机上安装驱动,在24年时我搜集了很多个版本的驱动,我直接选择了最新的那个(NVIDIA-Linux-x86_64-550.127.06-vgpu-kvm.run),然后按照流程安装完以后,输入nvidia-smi,居然没有任何输出,此时我到NVIDIA® Virtual GPU Software Supported GPUs一看,pascal架构的tesla p40只支持到vGPU Software 16,再到驱动版本对应vGPU软件版本一看,535.*的驱动版本才是vGPU版本16,而550.127.06是版本17,于是不能使用。
事情到这里还是很简单,我这里有535.104的驱动,sftp上传到pve,输入以下命令安装
chmod +x NVIDIA-Linux-x86_64-535*
./NVIDIA-Linux-x86_64-535*
此时dkms在编译的时候报错了,我能想到的唯一原因就是内核版本太新了,不兼容,到pve的wiki页面核实:

再查看自己的内核版本uname -a,发现内核版本是6.8.12-8-pve,不支持535版本的驱动,于是果断降级:
apt install proxmox-kernel-6.5.13-5-pve-signed
apt install proxmox-headers-6.5.13-5-pve
proxmox-boot-tool kernel pin 6.5.13-5-pve
reboot
重启之后,继续安装,一次成功。此时再次重启,就可以再直通pci设备里面,选择nvidia gpu,再右上角就可以看到可以选的类型,a、b和q中,q的性能是最高的,至于显存可以自己分配。
随后有时间会发一篇文章,记录一下在虚拟机上安装vgpu grid驱动,同时介绍一下如何自己搭建授权服务器(使用Fastapi-DLS),敬请期待

Comments 1 条评论
保持你对爱好的热情