Was ist GPU-Passthrough?
GPU-Passthrough ist eine Virtualisierungstechnik, mit der eine physische Grafikprozessoreinheit (GPU) direkt einer einzelnen virtuellen Maschine (VM) zugewiesen werden kann. Dadurch kann die VM auf die volle Leistungsfähigkeit der GPU zugreifen, als würde sie auf Bare-Metal-Hardware ausgeführt. GPU-Passthrough umgeht die Abstraktionsschicht des Hypervisors und bietet nahezu native Leistung für grafikintensive oder rechenintensive Workloads.
Diese Funktionalität ist in Anwendungsfällen wie Virtual Desktop Infrastructure (VDI), Künstliche Intelligenz (KI), Maschinelles Lernen (ML) und High-Performance Computing (HPC) von entscheidender Bedeutung, wo GPU-Beschleunigung für eine optimale Leistung erforderlich ist. Im Gegensatz zu gemeinsam genutzten oder emulierten GPU-Ressourcen widmet Passthrough eine gesamte GPU einer einzigen VM und bietet so maximalen Durchsatz und minimale Latenz.
GPU-Passthrough wird in der Regel mithilfe von Virtualisierungsplattformen wie KVM (Kernel-based Virtual Machine), VMware ESXi und Citrix Hypervisor implementiert, häufig 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 ermöglicht, insbesondere durch PCI Express (PCIe)-Geräte-Passthrough unter Verwendung von IOMMU-Technologien. Dadurch kann eine physische GPU direkt einer Gast-VM zugeordnet werden, wodurch die Kontrolle des Host-Systems 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, wodurch Geräteisolierung und Speicheradress-Remapping für PCIe-Geräte ermöglicht werden. Auf Intel-Plattformen ist diese Funktion als Intel VT-d bekannt, auf AMD als AMD. Beide müssen 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. Dazu müssen in der Regel Virtualisierungserweiterungen (VT-d oder AMD) aktiviert und sichergestellt werden, dass PCIe ACS (Access Control Services) aktiviert ist, sofern die Plattform dies unterstützt. Bei einigen 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 (OS) mit den entsprechenden herstellerspezifischen Treibern, wie z. B. NVIDIA, installiert werden. AMDoder Intel GPU-Treiber. Diese Treiber ermöglichen es dem Gastbetriebssystem, die volle Leistungsfähigkeit der physischen GPU zu erkennen und zu nutzen, einschließlich 3D-Beschleunigung, CUDA -Kernen für paralleles Rechnen und hardwarebeschleunigten Rendering-Pipelines.
In einigen Fällen müssen Grafikschnittstellen auf Hypervisor-Ebene innerhalb des Gastes deaktiviert werden, um Treiberkonflikte zu vermeiden und sicherzustellen, dass nur die Passthrough-GPU verwendet wird.
Hypervisor-Einrichtung
Sobald IOMMU aktiv ist, besteht der nächste Schritt darin, einen Hypervisor zu konfigurieren, der PCIe-Passthrough unterstützt. Beliebte Optionen sind KVM/QEMU, VMware ESXi und Citrix Hypervisor (ehemals XenServer). Diese Plattformen verwenden Low-Level-Virtualisierungstreiber und APIs, um die direkte Zuweisung von PCIe-Geräten zu Gast-VMs zu ermöglichen.
Beispielsweise wird in KVM-Umgebungen das Device Passthrough mithilfe des Kernel-Moduls vfio-pci konfiguriert, das einen sicheren und isolierten Gerätezugriff gewährleistet. VMware ESXi nutzt DirectPath I/O, um die GPU direkt für die VM verfügbar zu machen, wodurch eine nahezu native Leistung mit minimalem Virtualisierungsaufwand erzielt wird.
Gerätebindung
Ein wichtiger Schritt beim GPU-Passthrough ist das Trennen der GPU vom Hostsystem und das Binden an die VM. Dazu wird die PCIe-Adresse der GPU von allen Standard-Hosttreibern getrennt 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 verwendet werden. Dies verhindert Konflikte und gewährleistet einen exklusiven GPU-Zugriff, was für latenzempfindliche Workloads wie Echtzeit-Rendering, Simulationen oder Deep-Learning-Modelltraining unerlässlich ist.
Vorteile und Herausforderungen von GPU-Passthrough
GPU-Passthrough ermöglicht virtuellen Maschinen den direkten Zugriff auf physische GPUs und liefert nahezu native Leistung, indem die Abstraktionsschicht des Hypervisors umgangen wird. Dadurch eignet es sich besonders für rechenintensive Workloads wie KI , CAD-Rendering (Computer-Aided Design) und Echtzeitsimulationen. Die Zuweisung einer dedizierten GPU zu einer VM verbessert außerdem die Isolation und Leistungskonsistenz, was in Produktionsumgebungen von entscheidender Bedeutung ist.
Über die reine Leistung hinaus erweitert Passthrough die Virtualisierungsmöglichkeiten, indem es GPU-Beschleunigung in virtuellen Desktops, Remote-Workstations und containerisierten Anwendungen ermöglicht. Damit können Unternehmen Workloads auf weniger physischen Servern konsolidieren und gleichzeitig eine hohe Leistung pro VM aufrechterhalten, was zu einer besseren Hardwareauslastung und einer höheren Betriebseffizienz führt.
Allerdings bringt GPU-Passthrough technische Herausforderungen mit sich. Es erfordert IOMMU-Unterstützung auf CPU- und Motherboard-Ebene, eine korrekte BIOS- oder UEFI-Konfiguration sowie GPUs, die Passthrough zulassen. Viele Consumer-GPUs bieten keine vollständige Virtualisierungsunterstützung, was zu eingeschränkter Kompatibilität oder Treiberproblemen innerhalb von Gastbetriebssystemen führen kann.
Die Komplexität der Einrichtung ist ein weiterer Faktor, der häufig Kernel-Modifikationen, präzise Gerätebindung und Optimierungen auf Hypervisor-Ebene erfordert. Die Fehlerbehebung ist oft zeitaufwändig, insbesondere auf Headless-Servern, und Änderungen erfordern in der Regel einen Neustart, da die Hot-Plug-Unterstützung für Passthrough-GPUs eingeschränkt oder nicht verfügbar ist.
Hardwareanforderungen für GPU-Passthrough
Die Implementierung von GPU-Passthrough erfordert Server-Hardware, die IOMMU-Virtualisierungsfunktionen wie Intel VT-d oder AMD unterstützt, sowie entsprechende BIOS- oder UEFI-Konfigurationen. Die CPU, der Motherboard-Chipsatz und die Firmware müssen kompatibel sein, und die GPU muss die Passthrough-Funktionalität unterstützen, die in der Regel in Grafikkarten der Enterprise-Klasse wie NVIDIA A100 oder AMD MI-Serie zu finden ist.
Darüber hinaus sollten Systeme über ausreichend PCIe-Lanes und Stromversorgung verfügen, um GPUs in voller Größe zu unterstützen. Serverplattformen, die für GPU-Workloads mit hoher Dichte optimiert sind und in der Regel über eine fortschrittliche PCIe-Topologie, eine robuste Kühlarchitektur und Passthrough-Unterstützung auf Firmware-Ebene verfügen, sind erforderlich, um effiziente Passthrough-Konfigurationen in ordnungsgemäß verwalteten Rechenzentrumsumgebungen zu ermöglichen.
FAQs
- Wie aktiviert man GPU-Passthrough?
GPU-Passthrough wird aktiviert, indem man die IOMMU-Unterstützung (VT-d oder AMD) im System-BIOS oder UEFI aktiviert und dann den Hypervisor (z. B. KVM oder VMware ESXi) so konfiguriert, dass die GPU direkt einer virtuellen Maschine zugewiesen wird. Außerdem muss man die GPU von den Host-Treibern trennen und die entsprechenden GPU-Treiber in der Gast-VM installieren. - Benötigen Sie zwei GPUs für GPU-Passthrough?
Obwohl dies nicht unbedingt erforderlich ist, wird empfohlen, zwei GPUs zu verwenden. Eine sollte für das Host-System und die andere für die virtuelle Maschine vorgesehen sein. Dadurch wird sichergestellt, dass der Host die Bildschirmausgabe und die Systemstabilität aufrechterhalten kann, während die Passthrough-GPU vollständig für die VM isoliert ist. - Funktioniert GPU-Passthrough mit Containern?
Ja, GPU-Passthrough kann mit Containern verwendet werden, wenn es innerhalb einer VM konfiguriert ist, die direkten GPU-Zugriff hat. Alternativ bieten containerspezifische Lösungen wie NVIDIA Docker oder GPU-Operator-Frameworks GPU-Zugriff in Kubernetes-Umgebungen.