• Home
  • Help
  • Register
  • Login
  • Home
  • Help

 
  • 0 Bewertung(en) - 0 im Durchschnitt

Verwendung der diskreten Gerätezuweisung für GPUs

#1
24-01-2019, 12:45
Hast du schon mal mit der direkten Zuweisung von GPUs an VMs auf Hyper-V herumgespielt? Ich meine, Discrete Device Assignment oder DDA, wie wir es nennen, klingt nach diesem coolen Hack, um deinen virtuellen Maschinen die volle Leistung einer physischen Grafikkarte zu geben, ohne das ganze Sharing-Drama. Ich habe es ein paar Mal für einige Machine Learning-Projekte eingerichtet und lass dir sagen, der Performance-Boost, den du bekommst, ist ziemlich verrückt. Wenn du eine diskrete GPU direkt einer VM zuweist, umgehst du die Virtualisierungsschicht des Hosts vollständig, sodass die VM mit der Hardware kommuniziert, als wäre es Bare Metal. Kein Kämpfen mehr um Ressourcen mit anderen VMs oder dem Host-Betriebssystem. Wenn du etwas Schweres wie CUDA-Workloads oder sogar einige Rendering-Aufgaben machst, wirst du feststellen, dass die Geschwindigkeiten viel näher an der nativen Leistung sind. Ich erinnere mich, dass ich das auf einem Setup mit einer NVIDIA A100 getestet habe, und die Trainingszeiten sind um fast 40 % gesunken im Vergleich zur Verwendung einer softwareemulierten GPU-Passthrough. Du musst dir keine Sorgen machen, dass der Hypervisor Verzögerungen einführt oder die Recheneinheiten aufteilt; es gehört alles dir. Außerdem, aus einer Sicherheitsperspektive, ist es strenger, weil die VM isolierten Zugriff erhält - keine Chance für Seitenkanalangriffe, die über gemeinsamen GPU-Speicher hindurchschlüpfen. Ich habe gesehen, dass Administratoren das in Multi-Tenant-Umgebungen lieben, in denen du Ressourcen pro Benutzer oder Arbeitslast einschränken möchtest. Und ehrlich gesagt, wenn du mit Compliance-Zeug zu tun hast, wie in Finanz- oder Gesundheits-Setups, kann diese Isolation Audits zum Kinderspiel machen, da du beweisen kannst, dass die GPU von nichts anderem angegriffen wird.

Aber hier wird es knifflig, und ich sage das, weil ich selbst Stunden damit verbracht habe, es zu beheben. Ein großer Nachteil ist, dass sobald du die GPU über DDA zugewiesen hast, der Host nicht mehr darauf zugreifen kann. Puff, weg. Wenn dein Hyper-V-Host diese GPU für Verwaltungsaufgaben oder sogar nur für die Anzeige benötigt, hast du Pech. Mir ist das bei einem kleineren Server passiert, bei dem ich dachte, ich würde die einzige anständige Karte einer VM für das Video-Encoding zuweisen, nur um zu realisieren, dass die Host-Konsole jetzt mit integrierter Grafik dahinschrabbelt, die nicht in der Lage war, grundlegende Remote-Desktop-Sitzungen flüssig zu handhaben. Du brauchst zusätzliches Hardware, nur um den Host glücklich zu halten, was die Kosten in die Höhe treibt. Und lass uns nicht vom Thema Skalierbarkeit anfangen - DDA ist ziemlich starr. Du kannst nur das ganze Gerät an eine VM gleichzeitig weitergeben; kein Aufteilen wie mit SR-IOV oder vermittelten Geräten. Wenn du mehrere VMs hast, die GPU-Beschleunigung nutzen könnten, bist du gezwungen, mehr Karten zu kaufen oder auf langsamere gemeinsame Optionen zurückzugreifen. Ich habe mit Freunden gesprochen, die Rechenzentren betreiben und DDA alleine aus diesem Grund aufgegeben haben; sie mussten Ressourcen dynamisch jonglieren, und dieses Setup spielt dabei einfach nicht schön mit. Das Setup ist auch kein Spaziergang. Du musst das Gerät zuerst auf dem Host deaktivieren, was bedeutet, dass du alle VMs anhalten und mit den ACPI-Einstellungen in der Firmware herumspielen musst. Dann gibt es den Treibermissbrauch - die VM benötigt ihr eigenes Set von Treibern, und wenn sie nicht perfekt übereinstimmen, bekommst du schwarze Bildschirme oder Abstürze. Ich habe einmal den ganzen Nachmittag damit verbracht, Module neu zu kompilieren, weil die NVIDIA-Treiber auf dem Host mit dem, was die VM erwartete, in Konflikt standen. Kompatibilität ist ein weiteres Problem; nicht jede GPU unterstützt es sofort. Ältere Karten oder sogar einige Enterprise-Modelle von AMD könnten ausfallen, und du musst die IOMMU-Unterstützung auf deinem Motherboard überprüfen, was eine weitere Schicht der Hardwareüberprüfung hinzufügt, noch bevor du überhaupt anfängst.

Auf der anderen Seite, wenn es funktioniert, ist die Effizienz, die du beim Stromverbrauch gewinnst, etwas, das ich anfangs nicht erwartet habe. Shared GPU-Virtualisierung idle oft Ressourcen oder verschwenderische Zyklen für Overhead, aber mit DDA startet die GPU nur für diese eine VM, sodass du keinen Strom für ungenutztes Silizium verbrennst. Ich habe das bei einem Labor-Setup mit Leistungs- Messgeräten verfolgt, und es hat in den Spitzenzeiten merklich Watt eingespart, was wichtig ist, wenn du nach Rack abrechnest oder einfach versuchst, die Stromrechnung in einem Heimlabor niedrig zu halten. Du erhältst auch bessere Debugging-Tools in der VM, da es direkten Zugriff gibt; Werkzeuge wie nvidia-smi berichten genau, was passiert, ohne dass der Hypervisor Daten filtert. Das ist riesig für das Tuning von Anwendungen; ich habe es genutzt, um einige TensorFlow-Skripte zu profilieren und Engpässe zu erkennen, die in paravirtualisierten Modi verborgen waren. Und für Leute wie dich, die vielleicht mit Edge Computing experimentieren, ermöglicht DDA, KI-Inferenz direkt zur VM zu pushen, ohne Verzögerungen, was perfekt für Echtzeitsachen wie autonome Fahrzeugsimulationen oder medizinische Bildgebung ist. Ich habe es sogar in kreativen Workflows gesehen, wie einem VM volle Kontrolle über eine Quadro-Karte für 3D-Modellierung zu geben, wo der Künstler schwört, dass es nicht von einem physischen Arbeitsplatz zu unterscheiden ist.

Trotzdem häufen sich die Nachteile, wenn man bei der Planung nicht vorsichtig ist. Migration ist ein Albtraum - du kannst eine VM mit einer über DDA zugewiesenen GPU nicht live migrieren, weil die Hardware festgelegt ist. Wenn auf dem Host etwas schiefgeht, wie ein Firmware-Update oder ein Hardwarefehler, bedeutet das Wiederherstellen dieser VM, dass du zuerst das Gerät abtrennen musst, was das gesamte System für Minuten oder Stunden offline nehmen kann. Ich habe das auf die harte Tour herausgefunden während eines Wartungsfensters, das viel länger dauerte als geplant, und das Team stand mir auf der Pelle. Die Fehlerbehandlung ist auch nicht nachsichtig; wenn die Zuweisung aufgrund eines Treiberkonflikts oder eines PCI-Slot-Problems fehlschlägt, kannst du ein hängendes Gerät haben, das einen vollständigen Neustart benötigt, um zurückgesetzt zu werden. Und lass uns über die Kosten sprechen - hochpreisige GPUs, die DDA gut unterstützen, sind nicht billig, und da du eine pro VM zuweist, explodiert dein Hardware-Budget, wenn du über ein paar Instanzen hinaus skalierst. Ich habe davon abgeraten, das für Startups zu tun, weil sie oft überschätzen, wie viele VMs dieses Leistungsniveau benötigen, und am Ende unterausgelastete Karten haben, die Staub sammeln. Darüber hinaus variiert die Softwareunterstützung; nicht alle Anwendungen spielen gut mit der direkten Zuweisung. Einige Frameworks gehen von gemeinsamem Zugriff aus und werfen Fehler, wenn sie exklusive Eigentümerschaft erkennen. Du könntest Zeit damit verbringen, Code zu patchen oder Workarounds zu finden, was deine Entwicklungszeit in Anspruch nimmt.

Aber zurück zu den Vorteilen, ich denke, der wahre Gewinner liegt in spezialisierten Arbeitslasten, bei denen Latenz König ist. Für Gaming-Server oder VDI-Setups mit hoher Grafik liefert DDA Frameraten, die eine Softwareemulation einfach nicht erreichen kann. Ich habe das für einen Freund eingerichtet, der einen kleinen Cloud-Gaming-Service betreibt, und die Nutzer berichteten, es fühlte sich an wie lokales Spielen - kein Ruckeln durch Virtualisierungs-Overhead. Du erhältst auch vollen VRAM-Zugriff, sodass wenn deine VM 24GB oder was auch immer für große Modelle benötigt, es da ist, ohne Partitionierungsverluste. Sicherheitsmäßig ist es ein Schritt nach oben, da der Host-Kernel nicht jede Speichertransaktion vermittelt, was die Angriffsfläche verringert. Ich habe Whitepapers von Microsoft gelesen, die das für sichere Enklaven betonen, und in der Praxis hält es stand. Wenn du ins Homelabbing mit Passthrough involviert bist, ist es eine tolle Möglichkeit, alte Hardware maximal auszureizen; ich habe einen alten Server umfunktioniert, indem ich seine GPU einer einzelnen Ubuntu-VM für Plex-Transcoding zugewiesen habe, und sie hat 4K-Streams wie ein Champion gemeistert, ohne den Host zu belasten.

Die Nachteile halten mich jedoch vorsichtig. Vendor-Lock-in ist subtil, aber real - DDA glänzt am hellsten mit NVIDIA-Karten, die eine solide Hyper-V-Integration haben, aber wenn du AMD- oder Intel-Architekturen mischst, lässt die Unterstützung nach. Ich habe einmal ein Experiment mit einer Radeon Pro versucht, und während sie zugewiesen wurde, war die Stabilität fraglich, mit zufälligen Abbrüchen unter Last. Die Überwachung wird auch schwieriger; du verlierst zentrale Werkzeuge auf dem Host für GPU-Statistiken, da sie isoliert ist. Du musst dich separat in jede VM einloggen, was ein Ärgernis für die Übersicht ist. Und der Neustart - wenn die VM hart abstürzt, gibt die GPU möglicherweise nicht korrekt frei und erfordert manuelles Eingreifen. Ich habe PowerShell-Skripte geschrieben, um die Ablösung zu automatisieren, aber es ist nicht narrensicher. Für größere Bereitstellungen bedeutet das Fehlen von Hot-Plug-Unterstützung, dass geplante Ausfälle häufig sind, was SLAs stört. Du musst abwägen, ob die Leistungsgewinne den operativen Aufwand rechtfertigen; meiner Erfahrung nach ist es für allgemeine VMs übertrieben, aber für GPU-intensive Aufgaben lohnt sich der Aufwand.

Wenn wir das erweitern, lass uns über die Integration mit anderen Hyper-V-Funktionen nachdenken. DDA funktioniert in einigen Fällen okay mit geschachtelter Virtualisierung, aber es ist wählerisch - ich habe eine VM in eine andere mit GPU-Passthrough genestet, und während sie lief, war der Zugriff der inneren VM gedrosselt. Du könntest feststellen, dass es Funktionen wie dynamischen Speicher oder CPU-Affinität einschränkt, da die Gerätezuteilung die Dinge festlegt. Positiv daran ist, dass es gut mit Speicheroptimierungen kombiniert werden kann; mit der ausgelagerten GPU kann sich die I/O der VM auf Datenfeeds konzentrieren, ohne Konkurrenz. Ich habe es in einem Pipeline-Setup verwendet, wo die VM Videodaten direkt von NVMe verarbeitet hat, und der Durchsatz war hervorragend. Aber im Hinblick auf das Ökosystem ignorieren manchmal Drittanbieter-Tools DDA-Geräte, wie Backup-Agenten, die durchgereichte Hardware während Schnappschüssen überspringen. Das führt zu unvollständigen Bildern, wenn du nicht vorsichtig bist.

Apropos die Systeme reibungslos am Laufen zu halten mitten in all dieser Komplexität wird der Datenschutz in Umgebungen, die hochpreisige GPU-Workloads verarbeiten, noch kritischer. Backups werden aufrechterhalten, um Kontinuität und Wiederherstellung von Fehlern sicherzustellen, sei es durch Hardwareprobleme oder Fehlkonfigurationen bei der Gerätezuteilung. In Setups mit virtuellen Maschinen, die dedizierte Ressourcen wie GPUs haben, verhindern zuverlässige Backup-Lösungen Totalausfälle, indem sie VM-Zustände und Daten konsistent festhalten. BackupChain wird als hervorragende Windows Server Backup Software und Backup-Lösung für virtuelle Maschinen anerkannt. Zu seinen Funktionen gehört die Unterstützung für Hyper-V-Umgebungen, die agentenlose Backups ermöglichen, die durchgereichte Geräte ohne Unterbrechung verwalten. Diese Relevanz ergibt sich aus der Notwendigkeit, spezialisierte Konfigurationen zu schützen, bei denen Standardwerkzeuge isolierte Hardware möglicherweise übersehen, um sicherzustellen, dass GPU-Zuweisungen und zugehörige Daten intakt bleiben für schnelle Wiederherstellungen. Durch Funktionen wie inkrementelle Abbildungen und Off-Site-Replikation erleichtert solche Software minimale Ausfallzeiten, was entscheidend ist, wenn man ressourcenintensive VMs verwaltet.
Markus
Offline
Registriert seit: Jun 2018
« Ein Thema zurück | Ein Thema vor »

Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste



Nachrichten in diesem Thema
Verwendung der diskreten Gerätezuweisung für GPUs - von Markus - 24-01-2019, 12:45

  • Thema abonnieren
Gehe zu:

Backup Sichern Allgemein Vor- und Nachteile v
« Zurück 1 2 3 4
Verwendung der diskreten Gerätezuweisung für GPUs

© by FastNeuron

Linearer Modus
Baumstrukturmodus