GPU-Beschleunigung für Azure IoT Edge für Linux auf Windows

Gilt für:IoT Edge 1,5 Häkchen IoT Edge 1,5

Wichtig

IoT Edge 1.5 LTS ist die unterstützte Version. IoT Edge 1.4 LTS erreichte am 12. November 2024 das Ende des Lebens. Wenn Sie eine frühere Version verwenden, lesen Sie Update IoT Edge.

GPUs sind eine beliebte Wahl für Künstliche Intelligenz-Berechnungen, da sie parallele Verarbeitungsfunktionen bieten und oft sehbasiertes Inferencing schneller als CPUs ausführen. Um künstliche Intelligenz und Machine Learning-Anwendungen zu unterstützen, macht Azure IoT Edge für Linux auf Windows (EFLOW) eine GPU für das Linux-Modul des virtuellen Computers verfügbar.

Azure IoT Edge für Linux auf Windows unterstützt verschiedene GPU-Passthrough-Technologien, darunter:

  • Direkte Gerätezuweisung (Direct Device Assignment, DDA): GPU-Kerne werden entweder dem virtuellen Linux-Computer oder dem Host zugeordnet.

  • GPU-Paravirtualisierung (GPU-PV): Die GPU wird vom virtuellen Linux-Computer und vom Host gemeinsam genutzt.

Sie müssen während der Bereitstellung die entsprechende Passthrough-Methode auswählen, damit sie den unterstützten Funktionen der GPU-Hardware Ihres Geräts entspricht.

Wichtig

Diese Features können Komponenten enthalten, die im Besitz der NVIDIA Corporation oder ihrer Lizenzgeber sind. Die Verwendung der Komponenten unterliegt den Lizenzbedingungen von NVIDIA, die auf der NVIDIA-Website angegeben sind.

Durch die Verwendung von GPU-Beschleunigungsfeatures akzeptieren und stimmen Sie den Bedingungen des NVIDIA End-User-Lizenzvertrags zu.

Voraussetzungen

Die GPU-Beschleunigungsfunktionen von Azure IoT Edge für Linux auf Windows unterstützen derzeit eine ausgewählte Gruppe von GPU-Hardware. Außerdem kann die Verwendung dieses Features bestimmte Versionen von Windows erfordern.

Die unterstützten GPUs und die erforderlichen Windows Versionen sind:

Unterstützte GPUs GPU-Passthrough-Typ Unterstützte Windows Versionen
NVIDIA T4, A2 DDA Windows Server 2019
Windows Server 2022
Windows 10/11 (Pro, Enterprise, IoT Enterprise)
NVIDIA GeForce, Quadro, RTX GPU-PV Windows 10/11 (Pro, Enterprise, IoT Enterprise)
Intel iGPU GPU-PV Windows 10/11 (Pro, Enterprise, IoT Enterprise)

Wichtig

GPU-PV Unterstützung kann auf bestimmte Generationen von Prozessoren oder GPU-Architekturen beschränkt werden, wie vom GPU-Anbieter bestimmt. Weitere Informationen finden Sie in der Dokumentation zum iGPU-Treiber von Intel oder in der Dokumentation zu CUDA für WSL von NVIDIA.

Windows Server 2019 Benutzer müssen mindestens Build 17763 verwenden, wobei alle aktuellen kumulativen Updates installiert sind.

Windows 10 Benutzer müssen das Update November 2021 Build 19044.1620 oder höher verwenden. Überprüfen Sie nach der Installation Ihre Buildversion, indem Sie winver an der Eingabeaufforderung ausführen.

GPU-Passthrough wird nicht mit geschachtelter Virtualisierung unterstützt, z. B. das Ausführen von EFLOW in einer virtuellen Windows-Maschine.

Systemsetup und -installation

Die folgenden Abschnitte enthalten Setup- und Installationsinformationen für verschiedene GPUs.

NVIDIA T4-/A2-GPUs

Für T4/A2 GPUs empfiehlt Microsoft die Installation eines Mitigation-Treibers von Ihrem GPU-Anbieter. Obwohl es optional ist, kann die Installation eines Mitigation-Treibers die Sicherheit Ihrer Installation verbessern. Weitere Informationen finden Sie unter Bereitstellen von Grafikgeräten mit direkter Gerätezuweisung.

Warnung

Durch das Aktivieren der Passthrough für Hardwaregeräte können Sicherheitsrisiken erhöht werden. Microsoft empfiehlt einen Schutztreiber Ihres GPU-Herstellers, wenn verfügbar. Weitere Informationen finden Sie unter Bereitstellen von Grafikgeräten mit Discrete Device Assignment.

NVIDIA GeForce-/Quadro-/RTX-GPUs

Laden Sie für NVIDIA GeForce/Quadro/RTX GPUs den NVIDIA CUDA-fähigen Treiber für Windows Subsystem for Linux (WSL) herunter, um sie mit Ihren vorhandenen CUDA ML-Workflows zu verwenden. Ursprünglich für WSL entwickelt, werden die CUDA für WSL-Treiber auch mit Azure IoT Edge für Linux auf Windows verwendet.

Windows 10 Benutzer müssen auch WSL installieren da einige Bibliotheken zwischen WSL und Azure IoT Edge für Linux auf Windows gemeinsam genutzt werden.

Intel iGPUs

Laden Sie für Intel iGPUs den Intel-Grafiktreiber mit WSL-GPU-Unterstützung herunter, und installieren Sie ihn.

Windows 10 Benutzer müssen auch WSL installieren da einige Bibliotheken zwischen WSL und Azure IoT Edge für Linux auf Windows gemeinsam genutzt werden.

Aktivieren der GPU-Beschleunigung in Ihrer Azure IoT Edge-Bereitstellung für Linux unter Windows

Beginnen Sie nach Abschluss des Systemsetups mit der Erstellung Ihrer Bereitstellung von Azure IoT Edge für Linux auf Windows. Aktivieren Sie während dieses Prozesses die GPU-Unterstützung als Teil der EFLOW-Bereitstellung.

Beispielsweise erstellen diese Befehle einen GPU-fähigen virtuellen Computer mit einer NVIDIA A2-GPU oder einer Intel Iris Xe-Grafikkarte.

#Deploys EFLOW with NVIDIA A2 assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType DirectDeviceAssignment -gpuCount 1 -gpuName "NVIDIA A2"

#Deploys EFLOW with Intel(R) Iris(R) Xe Graphics assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType ParaVirtualization -gpuCount 1 -gpuName "Intel(R) Iris(R) Xe Graphics"

Um den Namen der GPU zu finden, führen Sie den folgenden Befehl aus, oder suchen Sie im Geräte-Manager nach Anzeigegeräten.

(Get-WmiObject win32_VideoController).caption

Nachdem Sie die Installation abgeschlossen haben, stellen Sie GPU-beschleunigte Linux-Module über Azure IoT Edge für Linux auf Windows bereit und führen sie aus.

Konfigurieren der GPU-Beschleunigung in einer vorhandenen Bereitstellung von Azure IoT Edge für Linux unter Windows

Weisen Sie für die einfachste Erfahrung die GPU zur Bereitstellungszeit zu. Verwenden Sie den set-eflowvm Befehl, um die GPU nach der Bereitstellung zu aktivieren oder zu deaktivieren. Bei Verwendung set-eflowvmwird der Standardparameter für jedes Argument verwendet, das Sie nicht angeben. Beispiel:

# Deploys EFLOW without a GPU assigned to the EFLOW VM
Deploy-Eflow -cpuCount 4 -memoryInMB 16384

# Assigns NVIDIA A2 GPU to the existing deployment (cpu and memory must still be specified, or they're set to the default values)
Set-EflowVM -cpuCount 4 -memoryInMB 16384 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1

# Reduces the cpuCount and memory (GPU must still be specified, or the GPU is removed)
Set-EflowVM -cpuCount 2 -memoryInMB 4096 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1

# Removes NVIDIA A2 GPU from the existing deployment
Set-EflowVM -cpuCount 2 -memoryInMB 4096

Nächste Schritte

  • Probieren Sie GPU-Samples aus den EFLOW-Beispielen. Diese Beispiele zeigen allgemeine Produktions- und Einzelhandelsszenarien wie Fehlererkennung, Arbeitssicherheit und Bestandsverwaltung. Diese Open-Source-Beispiele können eine Lösungsvorlage sein, um Ihre eigene visionbasierte Machine Learning-Anwendung zu erstellen.

  • Erfahren Sie mehr über GPU-Passthroughtechnologien in der DDA-Dokumentation und GPU-PV Blogbeitrag.

Mehrere GPU-Anbieter bieten Benutzerhandbücher für die optimale Nutzung ihrer Hardware und Software mit EFLOW:

  • Erfahren Sie, wie Sie Intel OpenVINO™-Anwendungen auf EFLOW ausführen, indem Sie dem Handbuch von Intel zu iGPU mit Azure IoT Edge für Linux auf Windows (EFLOW) & OpenVINO™ Toolkit folgen.
  • Informationen zu den ersten Schritten bei der Bereitstellung von CUDA-beschleunigten Anwendungen in EFLOW finden Sie im EFLOW-Benutzerleitfaden von NVIDIA für GeForce-/Quadro-/RTX-GPUs. In diesem Handbuch werden DDA-basierte GPUs wie NVIDIA T4 oder A2 nicht behandelt.