My Proxmox GPU Passthrough Setup
My personal notes and configuration for GPU passthrough on Proxmox VE with NVIDIA cards. Includes the exact setup I use for high-performance VMs.
My Proxmox GPU Passthrough Setup
These are my personal notes from setting up GPU passthrough on my Proxmox VE homelab. I’m sharing this configuration because it took me days to get it working properly, and these are the exact steps that worked for my hardware.
Why I Needed This
I wanted to consolidate multiple physical machines into one Proxmox server while maintaining GPU performance for:
- Gaming Windows VM with near-native performance
- ML/AI experimentation with CUDA acceleration
- Video encoding projects
- Testing GPU-accelerated applications
My Hardware Setup
- Proxmox VE 8.1
- Intel CPU with VT-d enabled
- ASUS motherboard with IOMMU support
- NVIDIA RTX 3080 for passthrough
- Integrated graphics for Proxmox host display
My Configuration Steps
1. BIOS Settings
I enabled VT-d in my BIOS under Advanced > CPU Configuration. This is critical - without it, nothing works.
2. GRUB Configuration
This is what I added to /etc/default/grub on my system:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"Then updated GRUB:
update-grubNote: Use amd_iommu=on if you have an AMD CPU.
3. Load VFIO Modules
Edit /etc/modules:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd4. Blacklist GPU Drivers
Create /etc/modprobe.d/blacklist.conf:
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
blacklist nvidia_drm5. Update initramfs
update-initramfs -u -k allVerify IOMMU Groups
After reboot, check IOMMU groups:
#!/bin/bash
for d in /sys/kernel/iommu_groups/*/devices/*; do
n=${d#*/iommu_groups/*}; n=${n%%/*}
printf 'IOMMU Group %s ' "$n"
lspci -nns "${d##*/}"
doneYour GPU should be in its own IOMMU group or with only its audio device.
VM Configuration
- Add PCI device in Proxmox web UI
- Enable “All Functions” if GPU has audio
- Set machine type to
q35 - Add
hostpci0line to VM config:
hostpci0: 0000:01:00,pcie=1,x-vga=1Common Issues
Black Screen on VM Boot
- Try adding
video=efifb:offto VM kernel parameters - Ensure you have a second GPU for Proxmox host
Code 43 in Windows
- Add vendor-id to VM config:
vendor-id=1234567890ab - Hide KVM:
args: -cpu host,kvm=off
Poor Performance
- Enable MSI interrupts
- Use
virtiodrivers for storage and network - Pin CPU cores for better performance
My Results
After getting everything configured, I’m now running:
- Windows 11 VM for gaming with ~95% native RTX 3080 performance
- Ubuntu VM with CUDA for AI/ML experiments
- Stable 4K gaming at 60+ FPS in most titles
- Can reassign the GPU between VMs without rebooting the host
The setup has been rock-solid for several months now.
Helpful Resources
These resources helped me figure this out:
- Proxmox VE Official Docs
- Arch Wiki GPU Passthrough Guide
- My complete config files and automation scripts are in the GitHub repo linked above
Last Updated: November 2025 My Setup: Proxmox VE 8.1 + NVIDIA RTX 3080 Status: Production-ready and stable