Skip to main content

Proxmox GPU Sharing Passthrough

Share one GPU with any number of VMs created using Proxmox

Note​

Gave up on this because of the dependency on the proprietary driver.

If you have a dGPU and iGPU, try direct passthrough. As it stands now, GPU sharing is locked to Enterprise, which I didn't realize until half way through the guide.

Setup​

Add sources

nano /etc/apt/sources.list

in Nano add:

(For v6.x)

deb http://download.proxmox.com/debian/pve buster pve-no-subscription

(For v7.x)

deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription

Installing Dependencies​

apt update
apt -y upgrade
apt -y install git build-essential pve-headers dkms jq mdevctl

pip3 install frida

Get Scripts

git clone https://github.com/DualCoder/vgpu_unlock
git clone https://github.com/mbilker/vgpu_unlock-rs

Install Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Select 1

Headers Install

wget http://download.proxmox.com/debian/dists/bullseye/pve-no-subscription/binary-amd64/pve-headers-5.13.19-2-pve_5.13.19-4_amd64.deb

dpkg -i pve-headers-5.13.19-2-pve_5.13.19-4_amd64.deb

Clutch Moment - Get Nvivida KVM Drivers from the official site and download them to CWD.

Enable IOMMU​

Edit Grub

nano /etc/default/grub

Comment out:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

Based on your CPU Vendor (intel/amd), add:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
# - OR -
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

Update Grub

update-grub

Load VFIO modules On Boot​

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

Run only once. Check the file first with nano using:

nano /etc/modules

Blacklist Nouveau Drivers (in favour of official ones)​

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

Again, run this only once. Check the file first with nano using:

nano /etc/modprobe.d/blacklist.conf

Update Kernel Changes

update-initramfs -u

Reboot

Install NVIDIA Drivers​

chmod -R +x vgpu_unlock
chmod +x NVIDIA------.run
./NVIDIA------.run --dkms

Note: Replace ------ with the correct driver version.

--dkms is mandatory for it to be loaded as a kernel module.

Yes and Ok