GPU Passthrough in Proxmox – NVIDIA und AMD
Proxmoxguide

GPU Passthrough in Proxmox – NVIDIA und AMD

Physische GPU direkt an VM durchreichen für KI und Gaming

S
SeeColors IT
08. November 20254 Min. Lesezeit

Für wen sich GPU Passthrough überhaupt lohnt

GPU Passthrough gibt einer einzelnen VM exklusiven, nahezu nativen Zugriff auf eine physische Grafikkarte – kein Sharing, keine Emulation. Sinnvoll für VMs mit KI/ML-Workloads (CUDA), Gaming-VMs oder GPU-beschleunigtes Transcoding (Jellyfin, Plex). Wer die GPU-Leistung auf mehrere VMs gleichzeitig verteilen will, braucht dagegen vGPU-fähige Hardware (bestimmte NVIDIA-Profikarten mit vGPU-Lizenz) – normales Passthrough gibt die Karte immer nur an eine VM zur Zeit.

IOMMU aktivieren

IOMMU ist die Grundvoraussetzung – ohne sie kann der Host PCIe-Geräte nicht sicher isoliert an eine VM durchreichen.

# /etc/default/grub anpassen:
# Intel: GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
# AMD:   GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
update-grub && reboot
dmesg | grep -e DMAR -e IOMMU

Zeigt dmesg hier nichts Sinnvolles, lohnt sich der Blick ins BIOS/UEFI: VT-d (Intel) bzw. AMD-Vi muss dort zusätzlich aktiviert sein – das GRUB-Flag allein reicht nicht, wenn die Firmware IOMMU nicht anbietet.

GPU identifizieren und IOMMU-Gruppe prüfen

lspci -nn | grep -iE "NVIDIA|AMD"
# Beispiel: 01:00.0 [10de:2684] NVIDIA RTX 4090

(Wichtig: grep -iE mit großem -E, nicht nur -i – ohne Extended-Regex wird das | als literales Zeichen gesucht statt als Oder-Verknüpfung, und der Befehl findet dann gar nichts.)

Vor dem nächsten Schritt lohnt sich ein Blick auf die IOMMU-Gruppe der Karte – manche Mainboards packen GPU und andere Geräte (z.B. USB-Controller) in dieselbe Gruppe, was Passthrough ohne zusätzliche ACS-Override-Patches verhindert:

for d in /sys/kernel/iommu_groups/*/devices/*; do
  n=${d#*/iommu_groups/*}; n=${n%%/*}
  echo "Gruppe $n: $(lspci -nns ${d##*/})"
done | grep -i nvidia

VFIO-Treiber binden

echo "options vfio-pci ids=10de:2684,10de:22ba" >> /etc/modprobe.d/vfio.conf
echo "vfio-pci" >> /etc/modules
echo "softdep nvidia pre: vfio-pci" >> /etc/modprobe.d/nvidia.conf

update-initramfs -u -k all && reboot

# Prüfen
lspci -nnk | grep -A3 "01:00"
# Soll zeigen: Kernel driver in use: vfio-pci

Die zweite ID (10de:22ba im Beispiel) ist üblicherweise der Audio-Teil derselben Karte (HDMI-Audio) – beide IDs müssen an vfio-pci gebunden werden, sonst hängt der Host weiter am Audio-Device fest und Passthrough der GPU allein schlägt fehl.

Proxmox VM konfigurieren

qm create 200 --name gpu-vm --memory 32768 --cores 8 \
    --machine q35 --bios ovmf --efidisk0 local-lvm:1 \
    --net0 virtio,bridge=vmbr0

qm set 200 --hostpci0 01:00.0,allFunctions=1,pcie=1,x-vga=1
qm set 200 --cpu host,hidden=1   # verhindert NVIDIA Error 43
qm start 200

--machine q35 und --bios ovmf (UEFI statt SeaBIOS) sind für GPU Passthrough praktisch Pflicht, nicht optional – mit dem alten i440fx-Maschinentyp und SeaBIOS gibt es regelmäßig Probleme beim Erkennen der durchgereichten Karte.

NVIDIA Error 43 – die häufigste Fehlermeldung

NVIDIA-Consumer-Treiber (GeForce, nicht Quadro/Tesla) erkennen aktiv, ob sie in einer virtualisierten Umgebung laufen, und verweigern dann den Dienst mit Code 43 im Windows-Geräte-Manager. Der --cpu host,hidden=1-Flag versteckt die Virtualisierungs-Signatur vor dem Gast-Treiber und umgeht die Erkennung. Wichtig: Das ist keine Garantie – NVIDIA ändert die Erkennungsmethode gelegentlich mit neuen Treiberversionen, und was heute funktioniert, kann nach einem Treiber-Update erneut Error 43 werfen.

AMD-Besonderheit: Reset-Bug

Manche AMD-Consumer-GPUs (insbesondere ältere RDNA/RDNA2-Generationen) lassen sich nach dem Herunterfahren der VM nicht sauber zurücksetzen ("AMD Reset Bug") – ein VM-Neustart mit Passthrough funktioniert dann erst nach einem kompletten Host-Reboot. Der vendor-reset-Kernel-Patch behebt das für die meisten betroffenen Karten, ist aber kein offizieller Proxmox-Bestandteil und muss manuell nachgerüstet werden.

Fazit

GPU Passthrough bringt fast native Grafikleistung in eine VM – die Einrichtung hat aber mehrere Stellen, an denen es ohne ersichtlichen Grund scheitert (falsche IOMMU-Gruppe, vergessenes Audio-Device, fehlendes q35/OVMF, NVIDIA-Erkennung). Wer die Fehlerquellen kennt, spart sich Stunden im Trial-and-Error.

SeeColors IT plant und implementiert Proxmox-Virtualisierung für KMU in Heidelberg und der Rhein-Neckar-Region. Anfragen.

Artikel teilen

War dieser Artikel hilfreich?

Dein Feedback hilft uns, bessere Inhalte zu erstellen.

Kommentar hinterlassen

Passende Tools & Services

Aus der Praxis für die Praxis — die Werkzeuge und Leistungen von SeeColors IT.

Projektgespräch vereinbaren

Verwandte Artikel