Deskpool VDI with vGPU

Hardware & Network

Server: Dell T3640, i7-10700, 64G , 1T NVME, nvidia Tesla P4-8G

Network: DHCP Service is enable on network.

Install Proxmox 7.1

  1. Download Proxmox ISO image

https://www.proxmox.com/en/downloads

  1. Boot from USB or CD/DVD

Use rufus create a bootable usb key.

http://rufus.ie/

  1. Configure via GUI

https://<Proxmox_ipaddr>:8006

Install nvidia vGPU driver on Proxmox

  1. Install PVE-headers & dkms
echo 'deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription' | tee -a /etc/apt/sources.list
rm /etc/apt/sources.list.d/pve-enterprise.list

apt update && apt dist-upgrade -y

Install pve-headers & dkms


apt install pve-headers dkms -y 
  1. Enable IOMMU
# /etc/default/grub , GRUB_CMDLINE_LINUX_DEFAULT,add intel_iommu=on iommu=pt

sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"/g' /etc/default/grub

update-grub

# Loading vfio vfio_iommu_type1 vfio_pci vfio_virqfd    four Modules

echo vfio >> /etc/modules
echo vfio_iommu_type1 >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_virqfd >> /etc/modules


echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

update-initramfs -u
reboot 

Checking the IOMMU is enabled

root@pveserver:~# dmesg | grep -e DMAR -e IOMMU
[ 0.000000] ACPI: DMAR 0x0000000079A48648 0000A8 (v01 INTEL EDK2 00000002 01000013)
[ 0.000000] DMAR: IOMMU enabled
[ 0.004000] DMAR: Host address width 39
[ 0.004000] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[ 0.004000] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
[ 0.004000] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[ 0.004000] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
  1. Install nvidia vGPU Drivers
#download nvidia drivers
wget https://dl.deskpool.com/NVIDIA-Linux-x86_64-470.82-vgpu-kvm.run
chmod +x NVIDIA-Linux-x86_64-470.82-vgpu-kvm.run

#install nvidia vgpu driver for kvm hypervisor
./NVIDIA-Linux-x86_64-470.82-vgpu-kvm.run -dkms

Reboot PVE Server

systemctl daemon-reload
reboot

Check P4 is working

root@pveserver:~# cat /var/log/syslog |grep P4
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x47: GRID P4-1B Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x3f: GRID P4-1Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x40: GRID P4-2Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x41: GRID P4-4Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x42: GRID P4-8Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x43: GRID P4-1A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x44: GRID P4-2A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x45: GRID P4-4A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x46: GRID P4-8A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x9d: GRID P4-2B Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0xd6: GRID P4-2B4 Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0xf3: GRID P4-1B4 Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x121: GRID P4-8C Class: Compute
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x120: GRID P4-4C Class: Compute

Install Deskpool on Proxmox

Please refer to Deskpool for Proxmox quick start

In the step of Download Image from Remote Repository, select win21h1gpu.

In the step of Pool configure Pool, Select the GPU and vGPU type.