Was ist GPU-Passthrough?
GPU-Passthrough ist eine Virtualisierungstechnik, die es ermöglicht, eine physische Grafikprozessoreinheit (GPU) direkt einer einzelnen virtuellen Maschine (VM) zuzuweisen. Dadurch kann die VM auf die volle Leistungsfähigkeit der GPU zugreifen, als würde sie auf direkter Hardware laufen. GPU-Passthrough umgeht die Abstraktionsschicht des Hypervisors und bietet so nahezu native Leistung für grafikintensive oder rechenintensive Anwendungen.
Diese Funktionalität ist in Anwendungsfällen wie virtueller Desktop-Infrastruktur (VDI), künstlicher Intelligenz ( KI ), maschinellem Lernen (ML) und Hochleistungsrechnen (HPC), wo GPU- Beschleunigung für optimale Leistung unerlässlich ist. Im Gegensatz zu gemeinsam genutzten oder emulierten GPU-Ressourcen stellt Passthrough einer virtuellen Maschine eine vollständige GPU zur Verfügung und bietet so maximalen Durchsatz bei minimaler Latenz.
GPU-Passthrough wird üblicherweise mithilfe von Virtualisierungsplattformen wie KVM (Kernel-based Virtual Machine), VMware ESXi und Citrix Hypervisor implementiert, oft in Kombination mit der IOMMU-Technologie (Input-Output Memory Management Unit), die in modernen Zentralprozessoren (CPUs) und Motherboards verfügbar ist.
So funktioniert GPU-Passthrough
GPU-Passthrough wird durch eine Kombination aus Hardware- und Software- Virtualisierungsunterstützung , insbesondere PCI Express, ermöglicht ( PCIe Geräte-Passthrough mittels IOMMU-Technologien. Dadurch kann eine physische GPU direkt einer Gast-VM zugeordnet werden, wodurch die Steuerung durch das Hostsystem umgangen wird und die VM direkten Zugriff auf die GPU mit geringer Latenz erhält.
Hardwarekonfiguration
Damit GPU-Passthrough funktioniert, muss der Server IOMMU (Input-Output Memory Management Unit) unterstützen, was die Geräteisolation und die Speicheradressumleitung ermöglicht. PCIe Geräte. Auf Intel-Plattformen ist diese Funktion als Intel VT-d bekannt; auf AMD Systeme, so nennt man es. AMD -Vi. Beides muss von der CPU, dem Motherboard-Chipsatz und der Firmware unterstützt werden.
Um IOMMU zu aktivieren, müssen Benutzer es in den System-BIOS- oder UEFI-Einstellungen aktivieren. Dies beinhaltet typischerweise die Aktivierung von Virtualisierungserweiterungen (VT-d oder VT-d). AMD -Vi) und sicherzustellen, dass PCIe ACS (Access Control Services) ist aktiviert, sofern die Plattform dies unterstützt. Bei manchen Systemen müssen möglicherweise auch Funktionen wie Secure Boot oder Fast Boot deaktiviert werden, um die volle Passthrough-Funktionalität zu gewährleisten.
Treiberinstallation
Nachdem die GPU einer virtuellen Maschine zugewiesen wurde, muss das Gastbetriebssystem mit den entsprechenden herstellerspezifischen Treibern, wie z. B. NVIDIA- , AMD oder Intel-GPU-Treibern , installiert werden. Diese Treiber ermöglichen es dem Gastbetriebssystem, die volle Leistungsfähigkeit der physischen GPU zu erkennen und zu nutzen, einschließlich 3D-Beschleunigung, CUDA- Kerne für paralleles Rechnen und hardwarebeschleunigte Rendering-Pipelines.
In einigen Fällen müssen möglicherweise die Grafikschnittstellen auf Hypervisor-Ebene innerhalb des Gastsystems deaktiviert werden, um Treiberkonflikte zu vermeiden und sicherzustellen, dass nur die durchgeschleifte GPU genutzt wird.
Hypervisor-Einrichtung
Sobald IOMMU aktiv ist, besteht der nächste Schritt darin, einen Hypervisor zu konfigurieren, der dies unterstützt. PCIe Passthrough. Beliebte Optionen sind KVM/QEMU, VMware ESXi und Citrix Hypervisor (ehemals XenServer). Diese Plattformen nutzen Low-Level-Virtualisierungstreiber und APIs, um den direkten Zugriff zu ermöglichen. PCIe Gerätezuordnung zu Gast-VMs.
In KVM-Umgebungen wird beispielsweise die Geräte-Durchleitung mithilfe des Kernelmoduls vfio-pci konfiguriert, wodurch ein sicherer und isolierter Gerätezugriff gewährleistet wird. VMware ESXi nutzt DirectPath I/O, um die GPU direkt für die VM bereitzustellen und so nahezu native Leistung bei minimalem Virtualisierungsaufwand zu ermöglichen.
Gerätebindung
Ein entscheidender Schritt beim GPU-Passthrough ist das Trennen der GPU vom Hostsystem und das Binden an die VM. Dies geschieht durch Aufheben der Bindung der GPU. PCIe Die Adresse wird von beliebigen Standard-Hosttreibern bezogen und an einen Passthrough-Treiber wie vfio-pci gebunden.
Nach der Bindung ist die GPU für das Host-Betriebssystem vollständig unzugänglich und kann nur von der zugewiesenen VM genutzt werden. Dies verhindert Konflikte und gewährleistet exklusiven GPU-Zugriff, was für latenzempfindliche Workloads wie Echtzeit-Rendering, Simulationen oder das Training von Deep-Learning-Modellen unerlässlich ist.
Vorteile und Herausforderungen des GPU-Passthrough
GPU-Passthrough ermöglicht virtuellen Maschinen den direkten Zugriff auf physische GPUs und erzielt so nahezu native Leistung, indem die Abstraktionsschicht des Hypervisors umgangen wird. Dadurch eignet es sich hervorragend für rechenintensive Workloads wie beispielsweise KI Schulungen, CAD-Rendering und Echtzeitsimulationen werden damit durchgeführt. Die Zuweisung einer dedizierten GPU zu einer VM verbessert zudem die Isolation und Leistungskonstanz, was in Produktionsumgebungen unerlässlich ist.
Über die reine Leistung hinaus erweitert Passthrough die Virtualisierungsfunktionen durch GPU-Beschleunigung in virtuellen Desktops, Remote-Workstations und containerisierten Anwendungen. Unternehmen können so Workloads auf weniger physischen Servern konsolidieren und gleichzeitig eine hohe Leistung pro VM beibehalten. Dies führt zu einer besseren Hardwareauslastung und gesteigerter betrieblicher Effizienz.
GPU-Passthrough stellt jedoch technische Herausforderungen dar. Es erfordert IOMMU-Unterstützung auf CPU- und Mainboard-Ebene, eine korrekte BIOS- oder UEFI-Konfiguration sowie GPUs, die Passthrough ermöglichen. Vielen Consumer-GPUs fehlt die vollständige Virtualisierungsunterstützung, was zu eingeschränkter Kompatibilität oder Treiberproblemen in Gastbetriebssystemen führen kann.
Die Komplexität der Einrichtung ist ein weiterer Faktor, da sie häufig Kernel-Anpassungen, präzise Gerätebindung und Hypervisor-Optimierungen erfordert. Die Fehlersuche ist oft zeitaufwändig, insbesondere auf Servern ohne grafische Benutzeroberfläche, und Änderungen erfordern in der Regel Neustarts, da die Hot-Plug-Unterstützung für durchgeschleifte GPUs eingeschränkt oder nicht verfügbar ist.
Hardwareanforderungen für GPU-Passthrough
Die Implementierung von GPU-Passthrough erfordert Serverhardware, die IOMMU-Virtualisierungsfunktionen wie Intel VT-d oder unterstützt. AMD -Vi, zusammen mit den entsprechenden BIOS- oder UEFI-Konfigurationen. CPU, Motherboard-Chipsatz und Firmware müssen kompatibel sein, und die GPU muss die Passthrough-Funktionalität unterstützen, die typischerweise bei Grafikkarten der Enterprise-Klasse wie der NVIDIA A100 oder zu finden ist. AMD Instinct MI-Serie.
Darüber hinaus sollten die Systeme ausreichend bieten PCIe Lanes und Stromversorgung zur Unterstützung von GPUs in voller Größe. Serverplattformen, die für GPU-Workloads mit hoher Dichte optimiert sind und typischerweise über fortschrittliche PCIe Für effiziente Passthrough-Konfigurationen in ordnungsgemäß verwalteten Rechenzentrumsumgebungen sind eine geeignete Topologie, eine robuste Kühlarchitektur und die Unterstützung von Passthrough auf Firmware-Ebene erforderlich.
Häufig gestellte Fragen
- Wie aktiviert man GPU-Passthrough?
GPU-Passthrough wird durch Aktivierung der IOMMU-Unterstützung (VT-d oder AMD -Vi) im System-BIOS oder UEFI und konfigurieren Sie anschließend Ihren Hypervisor (z. B. KVM oder VMware ESXi) so, dass die GPU direkt einer virtuellen Maschine zugewiesen wird. Außerdem müssen Sie die GPU von den Host-Treibern entbinden und die entsprechenden GPU-Treiber in der Gast-VM installieren. - Benötigt man zwei GPUs für GPU-Passthrough?
Zwei GPUs sind zwar nicht zwingend erforderlich, aber empfehlenswert. Eine sollte dem Hostsystem und die andere der virtuellen Maschine zugeordnet sein. Dadurch wird sichergestellt, dass das Hostsystem die Bildausgabe und Systemstabilität aufrechterhält, während die durchgeschleifte GPU vollständig von der virtuellen Maschine isoliert ist. - Funktioniert GPU-Passthrough mit Containern?
Ja, GPU-Passthrough kann mit Containern verwendet werden, wenn es in einer VM mit direktem GPU-Zugriff konfiguriert ist. Alternativ bieten containerspezifische Lösungen wie NVIDIA Docker oder GPU-Operator-Frameworks GPU-Zugriff in Kubernetes-Umgebungen.