GPU-Passthrough in Proxmox einrichten: NVIDIA/AMD von IOMMU bis zur VM (Anleitung)
Komplette GPU Passthrough Proxmox Anleitung deutsch: IOMMU im BIOS und Kernel aktivieren, GPU per vfio-pci binden und in einer VM mit NVIDIA- oder AMD-Treibern nutzen. Inklusive Verifikation und Troubleshooting.

Mit dieser GPU Passthrough Proxmox Anleitung deutsch reichst du eine komplette NVIDIA- oder AMD-Grafikkarte vom Proxmox-Host direkt an eine virtuelle Maschine durch. Die VM erhält damit native Hardware-Performance fürs Rendering, Transcoding, für KI-Workloads oder Gaming, ohne dass der Host-Kernel die Karte weiter belegt. Diese Schritt-für-Schritt-Anleitung richtet sich an Admins, Homeserver-Betreiber und die Selfhosting-Szene und führt dich von der IOMMU-Konfiguration im BIOS über das vfio-pci-Binding bis zur Treiber-Installation in der VM. Alle Befehle gelten für Proxmox VE 8.x auf Debian-Basis.
Kurzfassung: VT-d/AMD-Vi im BIOS aktivieren, intel_iommu=on iommu=pt (bzw. amd_iommu=on) setzen, VFIO-Module laden, GPU per PCI-ID an vfio-pci binden, Host-Treiber blacklisten, GPU als PCI-Device an die VM durchreichen, in der VM den NVIDIA- oder AMD-Treiber installieren.
Was ist GPU-Passthrough und warum nutzt du es?
Beim GPU-Passthrough wird ein physisches PCIe-Gerät über die IOMMU (Input/Output Memory Management Unit) so isoliert, dass es exklusiv einer VM zugewiesen werden kann. Das Kernel-Framework dahinter heißt VFIO (Virtual Function I/O). Statt den Standard-Grafiktreiber zu laden, bindet Proxmox die Karte an den Platzhalter-Treiber vfio-pci. Dadurch sieht die VM die GPU als echtes Gerät und kann den herstellereigenen Treiber installieren.
Der Nutzen: Du betreibst zum Beispiel eine Windows-VM mit voller GPU-Beschleunigung, einen Linux-Container für Stable-Diffusion oder einen Jellyfin-Server mit Hardware-Transcoding, während Proxmox selbst headless weiterläuft. Voraussetzung ist saubere GPU Isolation in Proxmox über getrennte IOMMU-Gruppen, damit du nicht versehentlich andere Geräte mit durchreichst.
Voraussetzungen
- Eine CPU mit IOMMU-Unterstützung: Intel mit VT-d oder AMD mit AMD-Vi (SVM/IOMMU).
- Ein Mainboard, dessen UEFI/BIOS VT-d bzw. IOMMU bereitstellt und das den ACS-/PCIe-ARI-Support für saubere Gruppen mitbringt.
- Proxmox VE 8.x mit Root-Zugriff per SSH oder Konsole.
- Eine dedizierte NVIDIA- oder AMD-GPU, die nicht die primäre Boot-/Konsolen-Karte des Hosts ist (idealerweise eine zweite GPU oder iGPU für den Host).
- Die PCI-Hersteller-IDs deiner Karte im Format
10de:xxxx(NVIDIA) bzw.1002:xxxx(AMD). - Ein aktuelles Backup deiner Proxmox-Konfiguration, bevor du Bootloader und Module veränderst.
Schritt 1: VT-d / IOMMU im BIOS aktivieren
Boote ins UEFI/BIOS deines Servers und aktiviere die Virtualisierungs- und IOMMU-Optionen. Die Bezeichnungen unterscheiden sich je nach Hersteller.
- Intel: Aktiviere Intel Virtualization Technology (VT-x) und Intel VT for Directed I/O (VT-d).
- AMD: Aktiviere SVM Mode und IOMMU (manchmal unter "AMD-Vi" oder "Advanced > AMD CBS").
Speichere und starte neu. Ohne aktives VT-d/IOMMU im BIOS funktioniert kein einziger der folgenden Schritte.
Schritt 2: IOMMU im Kernel/Bootloader aktivieren
Jetzt aktivierst du IOMMU auf Kernel-Ebene. Proxmox nutzt je nach Installation GRUB oder systemd-boot. Prüfe zuerst, welcher Bootloader aktiv ist.
proxmox-boot-tool status
# Zeigt der Output "Using ... systemd-boot"? -> systemd-boot, andernfalls GRUBVariante A: GRUB
Bearbeite die Datei /etc/default/grub und ergänze die Kernel-Parameter in der Zeile GRUB_CMDLINE_LINUX_DEFAULT.
nano /etc/default/grubFür Intel-CPUs:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"Für AMD-CPUs:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"Anschließend GRUB neu schreiben:
update-grubVariante B: systemd-boot
Bei systemd-boot trägst du dieselben Parameter in /etc/kernel/cmdline ein und aktualisierst den Bootloader.
nano /etc/kernel/cmdline
# Beispiel-Inhalt (Intel):
# root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt
proxmox-boot-tool refreshDer Parameter iommu=pt (Passthrough-Modus) reduziert den Overhead, weil nur durchgereichte Geräte über die IOMMU laufen. Starte den Host anschließend neu.
rebootSchritt 3: IOMMU verifizieren
Nach dem Reboot prüfst du, ob IOMMU aktiv ist und Geräte in Gruppen aufgeteilt wurden.
dmesg | grep -e DMAR -e IOMMU
# Erwartet z. B.: "DMAR: IOMMU enabled" (Intel) bzw. "AMD-Vi: ... initialized"Liste anschließend die IOMMU-Gruppen auf. Deine GPU sollte möglichst allein (oder nur mit ihrem HDMI-Audio-Teil) in einer Gruppe stehen:
for d in /sys/kernel/iommu_groups/*/devices/*; do
n=${d#*/iommu_groups/*}; n=${n%%/*}
printf 'IOMMU-Gruppe %s: ' "$n"
lspci -nns "${d##*/}"
doneWenn deine GPU eine eigene Gruppe hat, ist die GPU Isolation in Proxmox sauber. Teilt sie sich die Gruppe mit fremden Geräten, hilft oft ein BIOS-Update oder der Kernel-Parameter pcie_acs_override=downstream,multifunction (Sicherheitsabwägung beachten).
Schritt 4: VFIO-Module laden
Damit der Host beim Booten die VFIO-Treiber bereitstellt, trägst du die Module ein. Bei Proxmox VE 8.x mit aktuellem Kernel sind sie meist eingebaut, der Eintrag stellt das Laden aber sicher.
nano /etc/modules
vfio
vfio_iommu_type1
vfio_pciAuf älteren Kerneln existierte zusätzlich vfio_virqfd; bei aktuellen Proxmox-Kerneln ist dieses Modul integriert und muss nicht mehr separat aufgeführt werden.
Schritt 5: GPU per vfio-pci binden
Jetzt das Kernstück des vfio-pci Bindings. Ermittle zuerst die PCI-IDs deiner Karte. NVIDIA-GPUs nutzen die Vendor-ID 10de, AMD die 1002. Eine Grafikkarte besteht meist aus zwei Funktionen: der VGA-Einheit und dem HDMI-Audio-Controller.
lspci -nn | grep -e VGA -e Audio
# Beispiel:
# 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation ... [10de:2484]
# 01:00.1 Audio device [0403]: NVIDIA Corporation ... [10de:228b]Trage beide IDs in /etc/modprobe.d/vfio.conf ein, damit vfio-pci die Geräte beim Boot beansprucht:
nano /etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:2484,10de:228bBei AMD entsprechend mit 1002:xxxx. Verwende stets die echten IDs deiner Karte, nicht die Beispielwerte.
Host-Treiber blacklisten
Damit der Host-Kernel nicht zuerst den NVIDIA-/Nouveau- oder AMDGPU-Treiber lädt, blacklistest du diese:
nano /etc/modprobe.d/blacklist-gpu.conf
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
blacklist radeon
blacklist amdgpuAktualisiere danach die initramfs und starte neu:
update-initramfs -u -k all
rebootSchritt 6: Binding verifizieren
Nach dem Reboot prüfst du, ob die GPU tatsächlich an vfio-pci gebunden ist und nicht mehr am Host-Treiber hängt.
lsmod | grep vfio
lspci -nnk -d 10de:2484
# In der Zeile "Kernel driver in use:" muss "vfio-pci" stehenSteht dort vfio-pci, ist die Karte sauber isoliert. Erscheint stattdessen nvidia, nouveau oder amdgpu, stimmt entweder die PCI-ID nicht oder das Blacklisting hat nicht gegriffen.
Schritt 7: GPU an die VM durchreichen
Lege eine VM an (für Windows mit Maschinentyp q35 und OVMF (UEFI)-BIOS) und füge die GPU als PCI-Device hinzu. Im Proxmox-Webinterface gehst du in die VM unter Hardware > Hinzufügen > PCI Device und wählst die Raw-Device-Variante deiner GPU. Aktiviere All Functions, damit Video und HDMI-Audio gemeinsam durchgereicht werden, sowie PCI-Express.
Alternativ per CLI in der VM-Konfiguration unter /etc/pve/qemu-server/<VMID>.conf bzw. per qm:
qm set 100 -hostpci0 01:00,pcie=1,x-vga=1Der Parameter x-vga=1 markiert die Karte als primäre Anzeige der VM. Bei reinem Compute-Passthrough (z. B. Transcoding ohne Monitor) lässt du x-vga=1 weg. Für NVIDIA-Consumer-Karten in Windows-VMs hilft zudem das Verstecken der Virtualisierung über das cpu-Argument, damit der Treiber nicht den Fehler Code 43 meldet:
qm set 100 -cpu host,hidden=1,flags=+pcidDer Schalter hidden=1 setzt im Hintergrund kvm=off und blendet die KVM-Signatur aus, sodass der NVIDIA-Treiber die VM nicht als virtuelle Umgebung erkennt. Maschinentyp q35 und OVMF sind dafür Pflicht.
Schritt 8: Treiber in der VM installieren und erster Test
Starte die VM und installiere den herstellereigenen Treiber im Gast.
- Windows-Gast: Lade den aktuellen NVIDIA- bzw. AMD-Treiber von der offiziellen Hersteller-Seite und installiere ihn. Im Geräte-Manager muss die GPU ohne Ausrufezeichen erscheinen.
- Linux-Gast (NVIDIA): Installiere die Treiberpakete deiner Distribution, etwa per
apt install nvidia-driver(Debian/Ubuntu mit aktivierten passenden Quellen), und prüfe mitnvidia-smi. - Linux-Gast (AMD): Der quelloffene
amdgpu-Treiber ist meist im Kernel enthalten; prüfe mitlspci -nnkden geladenen Treiber.
Erfolgreich ist der Test, wenn die GPU im Gast erkannt wird und Last anzeigt:
# Im Linux-Gast mit NVIDIA-Karte
nvidia-smiZeigt nvidia-smi die Karte mit Speicher und Auslastung, ist das GPU-Passthrough vollständig eingerichtet.
Updates und Wartung
Halte sowohl Proxmox als auch die Gast-Treiber aktuell. Nach einem Proxmox-Kernel-Update solltest du das VFIO-Binding erneut prüfen, da neue Kernel gelegentlich Treiber-Reihenfolgen ändern.
apt update && apt full-upgrade
# Nach Reboot Binding kontrollieren:
lspci -nnk -d 10de:2484Wenn du Kernel-Parameter oder vfio.conf änderst, immer update-initramfs -u -k all ausführen und neu booten. Die Gast-GPU-Treiber aktualisierst du regulär im Gastbetriebssystem.
Backup-Hinweis
Sichere vor jeder Änderung an Bootloader und Modulen die Dateien /etc/default/grub bzw. /etc/kernel/cmdline, /etc/modules und /etc/modprobe.d/. Erstelle zusätzlich ein vollständiges VM-Backup über Datacenter > Backup oder Proxmox Backup Server, bevor du PCI-Devices anhängst. So kannst du nach einem fehlgeschlagenen Boot über die Proxmox-Konsole schnell zurückrollen.
Troubleshooting
- Kein "IOMMU enabled" in dmesg: VT-d/AMD-Vi ist im BIOS nicht aktiv oder der Kernel-Parameter fehlt. BIOS prüfen und
intel_iommu=onbzw.amd_iommu=onkorrekt setzen. - "Kernel driver in use" zeigt weiterhin nvidia/amdgpu: PCI-ID in
vfio.confkontrollieren, Blacklist-Datei prüfen undupdate-initramfs -u -k allnicht vergessen. - NVIDIA Code 43 in Windows: Virtualisierung verstecken mit
hidden=1amcpu-Parameter, Maschinentypq35+ OVMF verwenden. - GPU teilt sich eine IOMMU-Gruppe mit anderen Geräten: BIOS-Update einspielen, anderen PCIe-Slot testen oder als letztes Mittel
pcie_acs_overrideerwägen (sicherheitskritisch in Multi-Tenant-Umgebungen). - Host bootet nicht mehr / kein Bild: Du hast wahrscheinlich die primäre Host-GPU durchgereicht. Über IPMI/serielle Konsole booten,
x-vga=1entfernen oder eine zweite GPU/iGPU für den Host vorsehen. - Reset-Bug nach VM-Neustart: Manche AMD-Karten (Polaris/Vega) brauchen einen Reset-Workaround, weil sie nach dem Herunterfahren der VM nicht sauber re-initialisieren.
Häufige Fragen
Brauche ich für GPU-Passthrough in Proxmox zwei Grafikkarten?
Nicht zwingend, aber empfohlen. Wenn du die einzige GPU durchreichst, verliert der Host sein lokales Bild. Eine zweite GPU oder eine integrierte CPU-Grafik (iGPU) für den Proxmox-Host vermeidet diesen Konflikt und erleichtert das Troubleshooting.
Funktioniert NVIDIA GPU Passthrough in Proxmox auch mit Consumer-Karten?
Ja. GeForce-Karten lassen sich durchreichen. Für Windows-VMs musst du gegebenenfalls die Virtualisierung mit hidden=1 verstecken, damit der Treiber nicht den Fehler Code 43 wirft. Bei aktuellen NVIDIA-Treibern ist das offiziell unterstützt.
Worin unterscheidet sich AMD GPU Passthrough in Proxmox von NVIDIA?
Das Grundprinzip mit IOMMU und vfio-pci-Binding ist identisch, du verwendest nur die Vendor-ID 1002 statt 10de und blacklistest amdgpu/radeon. Einige ältere AMD-Karten haben einen bekannten Reset-Bug, der nach dem VM-Neustart einen Host-Reboot oder einen Reset-Workaround erfordert.
Warum brauche ich iommu=pt?
Der Passthrough-Modus iommu=pt aktiviert die IOMMU-Übersetzung nur für die tatsächlich durchgereichten Geräte. Das senkt den Overhead für alle übrigen Host-Geräte und gilt als Best Practice beim GPU-Passthrough.
Kann ich eine GPU gleichzeitig mehreren VMs zuweisen?
Mit normalem PCIe-Passthrough nicht, ein Gerät gehört exklusiv einer VM. Geteilter Zugriff erfordert SR-IOV/vGPU-Technologien, die nur bestimmte Profi-Karten (z. B. NVIDIA mit vGPU-Lizenz oder AMD MxGPU) unterstützen.
Fazit
GPU-Passthrough in Proxmox ist mit der richtigen Reihenfolge gut beherrschbar: IOMMU im BIOS und Kernel aktivieren, VFIO laden, die GPU per PCI-ID an vfio-pci binden, Host-Treiber blacklisten und die Karte als PCI-Device an die VM durchreichen. Achte auf saubere IOMMU-Gruppen, ein aktuelles Backup und die Verifikation über lsmod | grep vfio sowie lspci -nnk. Danach steht dir die volle GPU-Leistung in der VM zur Verfügung, egal ob für Transcoding, KI oder Gaming.
Weiterführende Artikel und Quellen
Wenn du Hardware für GPU-lastige Workloads planst, lohnt ein Blick auf die AMD Instinct MI350P PCIe AI-GPU für Enterprise-Umgebungen. Weitere praktische Server- und Homelab-Anleitungen findest du in unserer Kategorie Hardware.
Quellen: Proxmox VE Wiki – PCI(e) Passthrough und die Linux-Kernel-Dokumentation zu VFIO.