Proxmox VE (Tesla P40) vGPU 配置

环境

  • 系统
    • 宿主机:(全新安装的) Proxmox VE 7.3-6
    • 客户机:Debian 11
  • 硬件
    • Tesla P40
    • BIOS 开启 VT-x/VT-d 虚拟化技术以及 Above 4G Decoding

主板需要支持 Intel VT-d 虚拟化技术才能开启 IOMMU 并向客户机添加 PCI 设备

需要注意 VT-d 不是 VT-x,有些(阉割了功能的)主板只支持 VT-x,不支持 VT-d

Intel 平台有这个硬件坑,AMD 平台没有搭建过不清楚

参考

步骤

准备安装环境

apt install gcc g++ make cmake dkms pve-headers mdevctl

配置 IOMMU

安装好 PVE 后,先开启 IOMMU,以下以 Intel 平台、grub 启动为例,AMD 平台或者使用 systemd-boot 可以查看参考链接里的官方教程

编辑 /etc/default/grub,修改 GRUB_CMDLINE_LINUX_DEFAULT 一行,添加

intel_iommu=on iommu=pt

如下图

这里删除了默认的 quiet 参数方便 debug

编辑后执行

update-grub

然后编辑 /etc/modules,添加以下组件

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

禁用 Nvidia 开源驱动

Proxmox(Debian) 会默认启用 Nvidia nouveau 开源驱动,需要禁用才能安装 Nvidia 官方驱动

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

然后重启系统

验证 IOMMU

重启完毕后执行

dmesg | grep -e DMAR -e IOMMU

如果出现类似下图的输出信息,代表开启成功

如果只输出了

DMAR: IOMMU enabled

一行,没有其他输出,代表主板不支持 VT-d,需要换主板(当然也有可能是其他方面的问题,这里只阐述我遇到的坑)

获取 Nvidia vGPU 驱动

不同于一般的 Geforce/Studio 驱动,Nvidia 没有提供公开免费下载 vGPU 驱动的渠道,必须注册企业账户后在账户页面下载

然而账户不是个人随便能注册成功的(使用公共邮箱的话 Nvidia 会审核申请),最后在 Reddit 和 PVE 论坛找到了驱动资源

以上链接包含了 525.60.12 版本的宿主机 vGPU 驱动和 525.60.13(Linux)、527.41(Windows)的客户机 Grid 驱动

并不是最新版本,但是能用

下载后解压

安装 vGPU 驱动

赋予运行权限

chmod +x ./NVIDIA-xxxx.run

运行安装程序

./NVIDIA-xxxx.run --dkms

DKMS 提示信息选择 yes 即可,安装完毕后重启系统

验证驱动安装

执行以下指令,如果正确输出了安装的显卡,则代表安装成功

nvidia-smi

另外可以执行下述指令查看显卡支持的 vGPU 类型,输出如图

mdevctl types

也可以执行下述指令查看显卡是否支持并开启 vGPU

nvidia-smi vgpu

新建 vGPU 客户机

按一般的客户机新建步骤新建客户机,机器类型要注意选择 q35

新建完毕后进入客户机 Web UI 下的 Hardware 标签,添加一个 PCI 设备

PCI 设备选择显卡,然后右侧会出现选择 vGPU 类型(MDev Type)的选项

选择结尾为 C 类型的设备,Avail 列的数字代表 vGPU 的显存大小

 

关于不同 vGPU 系列的差异可以查看 https://docs.nvidia.com/grid/13.0/grid-vgpu-user-guide/index.html#vgpu-types-tesla-p40

Grid 驱动安装

Grid 驱动需要安装在分配了 vGPU 的客户机内

将 Grid 驱动传输到客户机,关闭 nouveau 开源驱动

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

安装驱动运行环境

apt install gcc g++ cmake make linux-headers-$(uname -r)

重启客户机

赋予驱动运行权限

chmod +x ./NVIDIA-Linux-x86_64-xxx.xx.xx-grid.run

安装驱动

./NVIDIA-Linux-x86_64-xxx.xx.xx-grid.run

安装完毕后运行

nvidia-smi

查看设备信息,验证安装状态

修改客户机配置

执行此步骤是因为发现开启显示时,Stable Diffusion 在启动过程中会假死,关闭后才能运行,如果使用中没有遇到问题则可以忽略此步骤

将客户机关闭,进入 PVE Web UI,导航到当前客户机配置界面,进入硬件设置

选择显示,将显卡设置为无(none),关闭前确保开启了 SSH 等可以控制客户机的服务,否则将无法与客户机交互

然后开启客户机即可

Windows 客户机驱动安装

同 Debian,系统安装完毕后先开启 Remote Desktop,然后安装驱动,关闭系统

在硬件设置中关闭显卡 (选择 none),开机即可,之后使用远程桌面管理虚拟机

效果

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据