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 Virtualisierungsunterstützung auf Hardware- und Softwareebene ermöglicht, insbesondere durchPCIe-Passthrough unter Verwendung von IOMMU-Technologien. Dadurch kann eine physische GPU direkt einer Gast-VM zugeordnet werden, wobei die Steuerung durch das Host-System umgangen wird und die VM direkten Zugriff auf die GPU mit geringer Latenz erhält.
Hardwarekonfiguration
Damit der GPU-Passthrough funktioniert, muss der Server IOMMU (Input-Output Memory Management Unit) unterstützen, wodurch die Geräteilisolierung und die Neuzuordnung von Speicheradressen für PCIe ermöglicht wird. Auf Intel-Plattformen ist diese Funktion als Intel VT-d bekannt; auf AMD wird sie als AMD bezeichnet. Beide müssen von der CPU, dem Chipsatz des Motherboards und der Firmware unterstützt werden.
Um IOMMU zu aktivieren, müssen Benutzer diese Funktion in den BIOS- oder UEFI-Einstellungen des Systems aktivieren. Dazu müssen in der Regel Virtualisierungserweiterungen (VT-d oder AMD) aktiviert und sichergestellt werden, dass PCIe (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. 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 parallele Berechnungen und hardwarebeschleunigte 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 aktiviert ist, besteht der nächste Schritt darin, einen Hypervisor zu konfigurieren, der PCIe unterstützt. Zu den gängigen Optionen zählen KVM/QEMU, VMware ESXi und Citrix Hypervisor (ehemals XenServer). Diese Plattformen nutzen Low-Level-Virtualisierungstreiber und APIs, um die direkte Zuweisung PCIe an 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 entscheidender Schritt beim GPU-Passthrough besteht darin, die GPU vom Host-System zu trennen und sie an die VM zu binden. Dies geschieht, indem die PCIe der GPU von allen Standard-Host-Treibern entkoppelt und an einen Passthrough-Treiber wie vfio-pci gebunden wird.
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
Für die Implementierung von GPU-Passthrough ist Serverhardware erforderlich, die IOMMU-Virtualisierungsfunktionen wie Intel VT-d oder AMD unterstützt, sowie entsprechende BIOS- oder UEFI-Konfigurationen. Die CPU, der Chipsatz des Motherboards und die Firmware müssen alle kompatibel sein, und die GPU muss die Passthrough-Funktionalität unterstützen, die typischerweise bei Grafikkarten der Enterprise-Klasse wie der NVIDIA A100 oder AMD MI-Serie zu finden ist.
Darüber hinaus sollten die Systeme über ausreichend PCIe und Stromversorgung verfügen, um Full-Size-GPUs zu unterstützen. Für effiziente Passthrough-Konfigurationen in ordnungsgemäß verwalteten Rechenzentrumsumgebungen sind Serverplattformen erforderlich, die für GPU-Workloads mit hoher Dichte optimiert sind und in der Regel über PCIe fortschrittliche PCIe , eine robuste Kühlarchitektur sowie Passthrough-Unterstützung auf Firmware-Ebene verfügen.
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 anschließend den Hypervisor (z. B. KVM oder VMware ESXi) so konfiguriert, dass die GPU direkt einer virtuellen Maschine zugewiesen wird. Außerdem muss die GPU von den Host-Treibern getrennt und die entsprechenden GPU-Treiber in der Gast-VM installiert werden. - 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.