GPU-acceleration för Azure IoT Edge för Linux på Windows

Gäller för:IoT Edge 1.4 checkmark IoT Edge 1.4

Viktigt!

IoT Edge 1.4 är den version som stöds. Om du har en tidigare version läser du Uppdatera IoT Edge.

GPU:er är ett populärt val för beräkningar av artificiell intelligens, eftersom de erbjuder parallella bearbetningsfunktioner och ofta kan köra visionsbaserad inferens snabbare än processorer. För att bättre stödja program för artificiell intelligens och maskininlärning kan Azure IoT Edge för Linux i Windows (EFLOW) exponera en GPU för den virtuella datorns Linux-modul.

Azure IoT Edge för Linux i Windows har stöd för flera GPU-tekniker för genomströmning, bland annat:

  • Direkt enhetstilldelning (DDA) – GPU-kärnor allokeras antingen till den virtuella Linux-datorn eller värden.

  • GPU-Paravirtualization (GPU-PV) – GPU:n delas mellan den virtuella Linux-datorn och värden.

Du måste välja lämplig genomströmningsmetod under distributionen för att matcha de funktioner som stöds i enhetens GPU-maskinvara.

Viktigt!

Dessa funktioner kan omfatta komponenter som utvecklats och ägs av NVIDIA Corporation eller dess licensgivare. Användningen av komponenterna styrs av NVIDIA-licensavtalet för slutanvändare som finns på NVIDIA:s webbplats.

Genom att använda GPU-accelerationsfunktioner accepterar och godkänner du villkoren i NVIDIA-licensavtalet för slutanvändare.

Förutsättningar

GPU-accelerationsfunktionerna i Azure IoT Edge för Linux i Windows stöder för närvarande en utvald uppsättning GPU-maskinvara. Dessutom kan användning av den här funktionen kräva specifika versioner av Windows.

De GPU:er som stöds och nödvändiga Windows-versioner visas nedan:

GPU:er som stöds GPU-genomströmningstyp Windows-versioner som stöds
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)

Viktigt!

GPU-PV-stöd kan begränsas till vissa generationer av processorer eller GPU-arkitekturer som bestäms av GPU-leverantören. Mer information finns i Dokumentation om Intels iGPU-drivrutin eller NVIDIA:s CUDA for WSL-dokumentation.

Windows Server 2019-användare måste använda lägsta version 17763 med alla aktuella kumulativa uppdateringar installerade.

Windows 10-användare måste använda uppdateringsversionen för november 2021 19044.1620 eller senare. Efter installationen kan du verifiera versionsversionen genom att köra winver den i kommandotolken.

GPU-genomströmning stöds inte med kapslad virtualisering, till exempel att köra EFLOW på en virtuell Windows-dator.

Systemkonfiguration och installation

Följande avsnitt innehåller konfigurations- och installationsinformation, enligt din GPU.

NVIDIA T4/A2 GPU:er

För T4/A2 GPU:er rekommenderar Microsoft att du installerar en enhetsreduceringsdrivrutin från GPU:ns leverantör. Även om det är valfritt kan installation av en åtgärdsdrivrutin förbättra säkerheten för distributionen. Mer information finns i Distribuera grafikenheter med direkt enhetstilldelning.

Varning

Aktivering av genomströmning av maskinvaruenheter kan öka säkerhetsriskerna. Microsoft rekommenderar en enhetsreduceringsdrivrutin från GPU:ns leverantör när det är tillämpligt. Mer information finns i Distribuera grafikenheter med diskret enhetstilldelning.

NVIDIA GeForce/Quadro/RTX GPU:er

För NVIDIA GeForce/Quadro/RTX GPU:er laddar du ned och installerar DEN NVIDIA CUDA-aktiverade drivrutinen för Windows-undersystem för Linux (WSL) som ska användas med dina befintliga CUDA ML-arbetsflöden. CUDA for WSL-drivrutinerna utvecklades ursprungligen för WSL och används också för Azure IoT Edge för Linux i Windows.

Windows 10-användare måste också installera WSL eftersom vissa bibliotek delas mellan WSL och Azure IoT Edge för Linux i Windows.

Intel iGPUs

För Intel iGPUs laddar du ned och installerar Intel-grafikdrivrutinen med stöd för WSL GPU.

Windows 10-användare måste också installera WSL eftersom vissa bibliotek delas mellan WSL och Azure IoT Edge för Linux i Windows.

Aktivera GPU-acceleration i din Azure IoT Edge Linux i Windows-distribution

När systemkonfigurationen är klar är du redo att skapa distributionen av Azure IoT Edge för Linux i Windows. Under den här processen måste du aktivera GPU som en del av EFLOW-distributionen.

Följande kommandon skapar till exempel en GPU-aktiverad virtuell dator med antingen ett NVIDIA A2 GPU- eller Intel Iris Xe-grafikkort.

#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"

Om du vill hitta namnet på din GPU kan du köra följande kommando eller leta efter bildskärmskort i Enhetshanteraren.

(Get-WmiObject win32_VideoController).caption

När installationen är klar är du redo att distribuera och köra GPU-accelererade Linux-moduler via Azure IoT Edge för Linux i Windows.

Konfigurera GPU-acceleration i en befintlig Azure IoT Edge Linux i Windows-distribution

Om du tilldelar GPU:n vid distributionstillfället blir det enklast. Om du vill aktivera eller inaktivera GPU:n efter distributionen använder du kommandot set-eflowvm. När du använder set-eflowvm används standardparametern för alla argument som inte har angetts. Exempel:

#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ästa steg

Kom igång med exempel

Besök vår EFLOW-exempelsida för att identifiera flera GPU-exempel som du kan prova och använda. De här exemplen illustrerar vanliga tillverknings- och detaljhandelsscenarier som defektidentifiering, arbetarsäkerhet och lagerhantering. Exempel med öppen källkod kan fungera som en lösningsmall för att skapa ett eget visionsbaserat maskininlärningsprogram.

Lär dig mer från våra partner

Flera GPU-leverantörer har tillhandahållit användarguider för att få ut mesta möjliga av sin maskinvara och programvara med EFLOW.

Kommentar

Den här guiden omfattar inte DDA-baserade GPU:er som NVIDIA T4 eller A2.

Gå in på tekniken

Läs mer om GPU-teknik för genomströmning genom att gå till DDA-dokumentationen och blogginlägget GPU-PV.