Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Hardware 01.06.2026 · 8 min Lesezeit

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.

Eine leistungsstarke Grafikkarte in einem Servergehäuse, die leuchtend grüne und rote Energie direkt in einen orangen, virtuellen Würfel leitet, als Symbol für GPU-Passthrough in einer Proxmox-VM.

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

  1. Eine CPU mit IOMMU-Unterstützung: Intel mit VT-d oder AMD mit AMD-Vi (SVM/IOMMU).
  2. Ein Mainboard, dessen UEFI/BIOS VT-d bzw. IOMMU bereitstellt und das den ACS-/PCIe-ARI-Support für saubere Gruppen mitbringt.
  3. Proxmox VE 8.x mit Root-Zugriff per SSH oder Konsole.
  4. 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).
  5. Die PCI-Hersteller-IDs deiner Karte im Format 10de:xxxx (NVIDIA) bzw. 1002:xxxx (AMD).
  6. 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.

  1. Intel: Aktiviere Intel Virtualization Technology (VT-x) und Intel VT for Directed I/O (VT-d).
  2. 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 GRUB

Variante A: GRUB

Bearbeite die Datei /etc/default/grub und ergänze die Kernel-Parameter in der Zeile GRUB_CMDLINE_LINUX_DEFAULT.

nano /etc/default/grub

Fü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-grub

Variante 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 refresh

Der Parameter iommu=pt (Passthrough-Modus) reduziert den Overhead, weil nur durchgereichte Geräte über die IOMMU laufen. Starte den Host anschließend neu.

reboot

Schritt 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##*/}"
done

Wenn 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_pci

Auf ä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:228b

Bei 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 amdgpu

Aktualisiere danach die initramfs und starte neu:

update-initramfs -u -k all
reboot

Schritt 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" stehen

Steht 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=1

Der 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=+pcid

Der 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.

  1. 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.
  2. Linux-Gast (NVIDIA): Installiere die Treiberpakete deiner Distribution, etwa per apt install nvidia-driver (Debian/Ubuntu mit aktivierten passenden Quellen), und prüfe mit nvidia-smi.
  3. Linux-Gast (AMD): Der quelloffene amdgpu-Treiber ist meist im Kernel enthalten; prüfe mit lspci -nnk den geladenen Treiber.

Erfolgreich ist der Test, wenn die GPU im Gast erkannt wird und Last anzeigt:

# Im Linux-Gast mit NVIDIA-Karte
nvidia-smi

Zeigt 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:2484

Wenn 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

  1. 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=on bzw. amd_iommu=on korrekt setzen.
  2. "Kernel driver in use" zeigt weiterhin nvidia/amdgpu: PCI-ID in vfio.conf kontrollieren, Blacklist-Datei prüfen und update-initramfs -u -k all nicht vergessen.
  3. NVIDIA Code 43 in Windows: Virtualisierung verstecken mit hidden=1 am cpu-Parameter, Maschinentyp q35 + OVMF verwenden.
  4. GPU teilt sich eine IOMMU-Gruppe mit anderen Geräten: BIOS-Update einspielen, anderen PCIe-Slot testen oder als letztes Mittel pcie_acs_override erwägen (sicherheitskritisch in Multi-Tenant-Umgebungen).
  5. Host bootet nicht mehr / kein Bild: Du hast wahrscheinlich die primäre Host-GPU durchgereicht. Über IPMI/serielle Konsole booten, x-vga=1 entfernen oder eine zweite GPU/iGPU für den Host vorsehen.
  6. 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.