Accelerazione della GPU per Azure IoT Edge per Linux in Windows

Si applica a: Segno di spunta IoT Edge 1.5 IoT Edge 1.5 Segno di spunta IoT Edge 1.4 IoT Edge 1.4

Importante

IoT Edge 1.5 LTS e IoT Edge 1.4 LTS sono versioni supportate. IoT Edge 1.4 LTS raggiungerà la fine del servizio il 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.

Le GPU sono una scelta comune per i calcoli di intelligenza artificiale, perché offrono funzionalità di elaborazione parallele e spesso possono eseguire inferenze basate su visione più velocemente rispetto alle CPU. Per supportare meglio l'intelligenza artificiale e le applicazioni di Machine Learning, Azure IoT Edge per Linux in Windows (EFLOW) può esporre una GPU al modulo Linux della macchina virtuale.

Azure IoT Edge per Linux in Windows supporta diverse tecnologie pass-through GPU, tra cui:

  • Assegnazione diretta di dispositivi: i core GPU vengono allocati alla macchina virtuale Linux o all'host.

  • GPU-Paravirtualization (GPU-PV): la GPU viene condivisa tra la macchina virtuale Linux e l'host.

È necessario selezionare il metodo pass-through appropriato durante la distribuzione in modo che corrisponda alle funzionalità supportate dell'hardware GPU del dispositivo.

Importante

Queste funzionalità possono includere componenti sviluppati e di proprietà di NVIDIA Corporation o dei suoi licenze. L'uso dei componenti è disciplinato dal Contratto di licenza per l'utente finale NVIDIA disponibile nel sito Web NVIDIA.

Usando le funzionalità di accelerazione GPU, si accettano e si accettano le condizioni del contratto di licenza per l'utente finale NVIDIA.

Prerequisiti

Le funzionalità di accelerazione GPU di Azure IoT Edge per Linux in Windows supportano attualmente un set selezionato di hardware GPU. Inoltre, l'uso di questa funzionalità potrebbe richiedere versioni specifiche di Windows.

Le GPU supportate e le versioni di Windows necessarie sono elencate di seguito:

GPU supportate Tipo pass-through GPU Versioni supportate di Windows
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)

Importante

Il supporto GPU-PV può essere limitato a determinate generazioni di processori o architetture GPU, come determinato dal fornitore della GPU. Per altre informazioni, vedere la documentazione del driver iGPU di Intel o la documentazione CUDA di NVIDIA per WSL.

Gli utenti di Windows Server 2019 devono usare la build minima 17763 con tutti gli aggiornamenti cumulativi correnti installati.

Gli utenti di Windows 10 devono usare l'aggiornamento di novembre 2021 build 19044.1620 o versione successiva. Dopo l'installazione, è possibile verificare la versione di compilazione eseguendo winver nel prompt dei comandi.

Il pass-through GPU non è supportato con la virtualizzazione annidata, ad esempio l'esecuzione di EFLOW in una macchina virtuale Windows.

Configurazione e installazione di sistema

Le sezioni seguenti contengono informazioni di installazione e installazione, in base alla GPU.

NVIDIA T4/A2 GPUs

Per le GPU T4/A2, Microsoft consiglia di installare un driver di mitigazione dei dispositivi dal fornitore della GPU. Anche se facoltativo, l'installazione di un driver di mitigazione può migliorare la sicurezza della distribuzione. Per altre informazioni, vedere Distribuire dispositivi grafici usando l'assegnazione diretta dei dispositivi.

Avviso

L'abilitazione del pass-through del dispositivo hardware può aumentare i rischi per la sicurezza. Microsoft consiglia un driver di mitigazione dei dispositivi dal fornitore della GPU, se applicabile. Per altre informazioni, vedere Distribuire dispositivi grafici usando l'assegnazione di dispositivi discreti.

NVIDIA GeForce/Quadro/RTX GPUs

Per le GPU NVIDIA GeForce/Quadro/RTX, scaricare e installare il driver abilitato per NVIDIA CUDA per sottosistema Windows per Linux (WSL) da usare con i flussi di lavoro CUDA ML esistenti. Originariamente sviluppato per WSL, il CUDA per i driver WSL viene usato anche per Azure IoT Edge per Linux in Windows.

Gli utenti di Windows 10 devono anche installare WSL perché alcune delle librerie sono condivise tra WSL e Azure IoT Edge per Linux in Windows.

Intel iGPU

Per Intel iGPU, scaricare e installare Intel Graphics Driver con supporto GPU WSL.

Gli utenti di Windows 10 devono anche installare WSL perché alcune delle librerie sono condivise tra WSL e Azure IoT Edge per Linux in Windows.

Abilitare l'accelerazione GPU nella distribuzione di Azure IoT Edge Linux in Windows

Al termine dell'installazione del sistema, è possibile creare la distribuzione di Azure IoT Edge per Linux in Windows. Durante questo processo, è necessario abilitare la GPU come parte della distribuzione EFLOW.

Ad esempio, i comandi seguenti creano una macchina virtuale abilitata per la GPU con una GPU NVIDIA A2 o una scheda grafica Intel Iris Xe.

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

Per trovare il nome della GPU, è possibile eseguire il comando seguente o cercare Schede di visualizzazione in Gestione dispositivi.

(Get-WmiObject win32_VideoController).caption

Al termine dell'installazione, è possibile distribuire ed eseguire moduli Linux con accelerazione GPU tramite Azure IoT Edge per Linux in Windows.

Configurare l'accelerazione GPU in una distribuzione esistente di Azure IoT Edge Linux in Windows

L'assegnazione della GPU in fase di distribuzione comporterà l'esperienza più semplice. Tuttavia, per abilitare o disabilitare la GPU dopo la distribuzione, usare il comando 'set-eflowvm'. Quando si usa "set-eflowvm" il parametro predefinito verrà usato per qualsiasi argomento non specificato. ad esempio:

#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

Passaggi successivi

Introduzione agli esempi

Visitare la pagina degli esempi di EFLOW per scoprire diversi esempi di GPU che è possibile provare e usare. Questi esempi illustrano scenari comuni di produzione e vendita al dettaglio, ad esempio il rilevamento dei difetti, la sicurezza dei lavoratori e la gestione dell'inventario. Gli esempi open source possono fungere da modello di soluzione per la creazione di un'applicazione di Machine Learning basata su visione personalizzata.

Scopri di più dai nostri partner

Diversi fornitori di GPU hanno fornito guide utente per ottenere il massimo dal loro hardware e software con EFLOW.

Nota

Questa guida non tratta le GPU basate su DDA, ad esempio NVIDIA T4 o A2.

Approfondimenti sulla tecnologia

Per altre informazioni sulle tecnologie pass-through GPU, vedere la documentazione di DDA e il post di blog GPU-PV.