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.

Moderne IT Grafik zur Einrichtung von GPU Passthrough in Proxmox. Die Darstellung zeigt die Konfiguration von NVIDIA und AMD Grafikkarten mit IOMMU, VFIO Treibern, PCIe Passthrough und virtuellen Maschinen für KI, Machine Learning, Gaming und professionel

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.

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.