GPU Passthrough in Proxmox VE

This guide walks you through enabling PCI passthrough for GPUs on a Proxmox VE host system. It focuses strictly on preparing the Proxmox host to support GPU passthrough and does not include guest VM creation or OS-level configuration.

Thank you for sharing the original content again. Based on your previous instructions and this exact text, here is a professionally rewritten version that strictly focuses on host-side GPU passthrough configuration in Proxmox, preserving the technical accuracy of the Reddit-based guide while improving clarity, structure, and tone.

Requirements

  • Proxmox VE 6.x, 7.x, or later
  • VT-d (Intel) or AMD-Vi (AMD) enabled in the BIOS
  • A dedicated GPU not used by the host
  • Shell access to the Proxmox node

Step 1: Configure GRUB for IOMMU

Open the GRUB configuration file:

nano /etc/default/grub

Locate the following line:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

Modify it as follows, depending on your CPU vendor.

For Intel CPUs:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb nomodeset video=vesafb:off,efifb:off"

For AMD CPUs:

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb nomodeset video=vesafb:off,efifb:off"

Explanation of additional flags:

  • iommu=pt: Enables passthrough mode for performance
  • pcie_acs_override: Helps split IOMMU groups for better isolation
  • nofb, nomodeset, video=vesafb:off,efifb:off: Prevents the host from initializing the framebuffer on the GPU

Update GRUB:

update-grub

Step 2: Load VFIO Kernel Modules

Edit the modules configuration:

nano /etc/modules

Add the following lines:

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

Save and close the file.

Step 3: Enable Unsafe Interrupts and MSR Ignoring

These settings are sometimes required depending on hardware compatibility.

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

Step 4: Blacklist Host GPU Drivers

To prevent the Proxmox host from loading drivers for the GPU, blacklist the following kernel modules (radeon, nouveau, nvidia and amd):

echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
echo "blacklist amdgpu" >> /etc/modprobe.d/blacklist.conf

Step 5: Identify GPU Device IDs

Run the following command to list PCI devices:

lspci -v
lspci -nn | grep -E "VGA|Audio"

Locate the GPU and its associated audio function. Example:

My ouput was below

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Bonaire [FirePro W5100] [1002:6649]
01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Tobago HDMI Audio [1002:aac8]

Note the vendor/device IDs:

Audio: 1002:aac8

VGA: 1002:6649

Next, get the vendor and device IDs:

lspci -n -s 01:00

Example output:

01:00.0 0300: 1002:6649
01:00.1 0403: 1002:aac0

Step 6: Bind the GPU to VFIO

Using the IDs from the previous step, create the VFIO configuration file:

echo "options vfio-pci ids=1002:6649,1002:aac0 disable_vga=1" > /etc/modprobe.d/vfio.conf

Replace 10de:1b81 and 10de:10f0 with the IDs from your hardware.

Update the initramfs:

update-initramfs -u

Step 7: Reboot the Host

Reboot Proxmox to apply all changes:

reboot

Step 8: Verify VFIO Binding

After reboot, check that the GPU is bound to vfio-pci:

lspci -k

Example output:

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Bonaire [FirePro W5100]
        Subsystem: Hewlett-Packard Company FirePro W5100
        Kernel driver in use: vfio-pci
        Kernel modules: radeon, amdgpu

If the GPU is still using another driver (e.g., nvidia or nouveau), revisit the blacklisting and initramfs steps.

Conclusion

Your Proxmox host is now configured to support GPU passthrough using VFIO. You can proceed to attach this GPU to a virtual machine through Proxmox’s Web UI or by manually editing the VM configuration file.

Let me know if you’d like a continuation of this guide to cover VM creation, VBIOS passthrough, or troubleshooting.

Leave a Comment