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

Gilt für: Häkchen für IoT Edge 1.5 IoT Edge 1.5 IoT Edge 1.4 Häkchen IoT Edge 1.4

Wichtig

IoT Edge 1.5 LTS und IoT Edge 1.4 LTS sind unterstützte Releases. Das Ende der Lebensdauer von IoT Edge 1.4 LTS wird am 12. November 2024 erreicht. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.

GPUs sind eine beliebte Wahl für Berechnungen im Rahmen der künstlichen Intelligenz, da sie über parallele Verarbeitungsfunktionen verfügen und die Ausführung von auf maschinellem Sehen basierenden Rückschlussvorgängen häufig schneller als mit CPUs ist. Zur besseren Unterstützung von KI- und Machine Learning-Anwendungen kann mit Azure IoT Edge für Linux unter Windows (EFLOW) eine GPU für das Linux-Modul des virtuellen Computers verfügbar gemacht werden.

Azure IoT Edge für Linux unter Windows unterstützt mehrere GPU-Passthrough-Technologien, z. B.:

  • 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 von der NVIDIA Corporation oder ihren Lizenzgebern entwickelt wurden bzw. sich in deren Besitz befinden. Die Verwendung der Komponenten unterliegt den Lizenzbedingungen von NVIDIA, die auf der NVIDIA-Website angegeben sind.

Indem Sie die Features für die GPU-Beschleunigung verwenden, akzeptieren Sie die Lizenzbedingungen von NVIDIA und stimmen ihnen zu.

Voraussetzungen

Für die Features für die GPU-Beschleunigung von Azure IoT Edge für Linux unter Windows wird derzeit nur speziell ausgewählte GPU-Hardware unterstützt. Außerdem kann die Nutzung dieses Features bestimmte Windows-Versionen erfordern.

Hier sind die unterstützten GPUs und die erforderlichen Windows-Versionen angegeben:

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 sein, die vom GPU-Anbieter bestimmt werden. 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 mit Installation aller aktuellen kumulativen Updates verwenden.

Windows 10-Benutzer müssen mindestens Build 19044.1620 aus dem Update vom November 2021 verwenden. Nach der Installation können Sie Ihre Buildversion überprüfen, indem Sie winver an der Eingabeaufforderung ausführen.

GPU-Passthrough wird nicht mit geschachtelter Virtualisierung unterstützt, z. B. Ausführen von EFLOW auf einem virtuellen Windows-Computer.

Systemsetup und -installation

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

NVIDIA T4-/A2-GPUs

Für T4-/A2GPUs empfiehlt Microsoft die Installation eines Treibers für die Risikominderung des Geräts, den Sie beim Anbieter Ihrer GPU erhalten. Die Installation eines Treibers für die Risikominderung des Geräts ist zwar optional, aber Sie können damit ggf. die Sicherheit Ihrer Bereitstellung erhöhen. Weitere Informationen finden Sie unter Bereitstellen von Grafikgeräten mit Discrete Device Assignment.

Warnung

Das Aktivieren von Hardwaregeräte-Passthrough kann zu einem erhöhten Sicherheitsrisiko führen. Microsoft empfiehlt zur Risikominderung die Installation eines Gerätetreibers, den Sie vom Anbieter Ihrer GPU erhalten. 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 das Windows-Subsystem für Linux (WSL) herunter, und installieren Sie ihn, um ihn für Ihre vorhandenen CUDA-ML-Workflows zu nutzen. Die „CUDA for WSL“-Treiber wurden ursprünglich für WSL entwickelt, aber sie werden auch für Azure IoT Edge für Linux unter Windows eingesetzt.

Außerdem müssen Windows 10-Benutzer WSL installieren, weil einige der Bibliotheken zwischen WSL und Azure IoT Edge für Linux unter 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.

Außerdem müssen Windows 10-Benutzer WSL installieren, weil einige der Bibliotheken zwischen WSL und Azure IoT Edge für Linux unter Windows gemeinsam genutzt werden.

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

Sobald die Systemeinrichtung abgeschlossen ist, können Sie Ihre Bereitstellung von Azure IoT Edge für Linux unter Windows erstellen. Bei diesem Prozess müssen Sie die GPU im Rahmen der EFLOW-Bereitstellung aktivieren.

Beispielsweise erstellen Sie mit den folgenden Befehlen eine GPU-fähige VM mit einer NVIDIA A2-GPU oder 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 Ihrer GPU zu ermitteln, können Sie den folgenden Befehl ausführen oder im Geräte-Manager nach Anzeigeadaptern suchen.

(Get-WmiObject win32_VideoController).caption

Nach Abschluss der Installation sind Sie bereit, die Linux-Module mit GPU-Beschleunigung über Azure IoT Edge für Linux unter Windows bereitzustellen und auszuführen.

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

Das Zuweisen der GPU zur Bereitstellungszeit stellt die einfachste Möglichkeit dar. Verwenden Sie jedoch den Befehl „set-eflowvm“, um die GPU nach der Bereitstellung zu aktivieren oder zu deaktivieren. Bei Verwendung von „set-eflowvm“ wird für alle nicht angegebenen Argumente der Standardparameter verwendet. 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, otherwise they will be 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, otherwise the GPU will be 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

Erste Schritte mit Beispielen

Auf der Seite mit EFLOW-Beispielen finden Sie mehrere GPU-Beispiele, die Sie ausprobieren und verwenden können. Diese Beispiele veranschaulichen allgemeine Produktions- und Einzelhandelsszenarien wie Fehlererkennung, Arbeitssicherheit und Bestandsverwaltung. Open-Source-Beispiele können als Lösungsvorlage dienen, mit denen Sie eigene Vision-basierte Machine Learning-Anwendung erstellen können.

Erfahren Sie mehr von unseren Partnern.

Mehrere GPU-Anbieter bieten Benutzerleitfäden für den Großteil ihrer Hardware und Software mit EFLOW an.

Hinweis

In diesem Leitfaden werden keine DDA-basierten GPUs wie NVIDIA T4 oder A2 behandelt.

Ausführliche Informationen zur Technologie

Weitere Informationen zu GPU-Passthrough-Technologien finden Sie in der DDA-Dokumentation und im GPU-PV-Blogbeitrag.