Accélération GPU pour Azure IoT Edge pour Linux sur Windows

S’applique à :IoT Edge 1.4 checkmark IoT Edge 1.4

Important

IoT Edge 1.4 est la version prise en charge. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.

Les processeurs graphiques (GPU) sont un choix courant pour les calculs d’intelligence artificielle, car ils offrent des capacités de traitement parallèle et peuvent souvent exécuter l’inférence reposant sur la vision plus rapidement que les processeurs. Pour mieux prendre en charge les applications d’intelligence artificielle et de machine learning, Azure IoT Edge pour Linux sur Windows (EFLOW) peut exposer un processeur graphique (GPU) au module Linux de la machine virtuelle.

Azure IoT Edge pour Linux sur Windows prend en charge plusieurs technologies de relais GPU, notamment :

  • DDA (Discrete Device Assignment) : les cœurs GPU sont alloués à la machine virtuelle Linux ou à l’hôte.

  • GPU-PV (GPU-Paravirtualization) : le processeur graphique (GPU) est partagé entre la machine virtuelle Linux et l’hôte.

Vous devez sélectionner la méthode passthrough appropriée lors du déploiement pour qu’elle corresponde aux fonctionnalités prises en charge par le matériel GPU de votre appareil.

Important

Ces fonctionnalités peuvent inclure des composants développés et détenus par NVIDIA Corporation ou ses concédants. L’utilisation des composants est régie par le contrat de Licence Utilisateur Final se trouvant sur le site web de NVIDIA.

En utilisant les fonctionnalités d’accélération GPU, vous acceptez les termes du contrat de licence Utilisateur final NVIDIA.

Prérequis

Les fonctionnalités d’accélération GPU d’Azure IoT Edge pour Linux sur Windows prennent actuellement en charge un ensemble sélectionné de matériel GPU. De plus, l’utilisation de cette fonctionnalité peut nécessiter des versions spécifiques de Windows.

Les processeurs graphiques (GPU) pris en charge et les versions Windows requises sont listées ci-dessous :

GPU pris en charge Type de relais GPU Versions de Windows prises en charge
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)
iGPU Intel GPU-PV Windows 10/11 (Pro, Enterprise, IoT Enterprise)

Important

La prise en charge GPU-PV peut être limitée à certaines générations de processeurs ou d’architectures GPU, comme déterminé par le fournisseur du GPU. Pour plus d’informations, consultez la documentation du pilote iGPU d’Intel ou la documentation CUDA de NVIDIA pour WSL.

Les utilisateurs Windows Server 2019 doivent employer la build minimale 17763 avec toutes les mises à jour cumulatives actuelles installées.

Les utilisateurs de Windows 10 doivent utiliser la mise à jour de novembre 2021 build 19044.1620 ou ultérieure. Après l’installation, vous pouvez vérifier votre version de la build en exécutant winver à l’invite de commandes.

Le relais du GPU n’est pas pris en charge avec la virtualisation imbriquée, comme l’exécution d’EFLOW dans une machine virtuelle Windows.

Configuration et installation du système

Les sections suivantes contiennent des informations d’installation et de configuration en fonction de votre GPU.

GPU NVIDIA T4/A2

Pour les GPU T4/A2, Microsoft recommande d’installer un pilote d’atténuation des appareils que vous pouvez obtenir auprès du fournisseur de votre processeur graphique (GPU). Bien que facultative, l’installation d’un pilote d’atténuation peut améliorer la sécurité de votre déploiement. Pour plus d’informations, consultez Déployer des appareils graphiques à l’aide de la technologie DDA (Discrete Device Assignment).

Avertissement

L’activation du relais d’appareils matériels peut augmenter les risques liés à la sécurité. Microsoft vous recommande de recourir à un pilote d’atténuation des appareils du fournisseur de votre GPU, le cas échéant. Pour plus d’informations, consultez Déploiement d’appareils graphiques avec la technologie DDA (Discrete Device Assignment).

GPU NVIDIA GeForce/Quadro/RTX

Pour les GPU NVIDIA GeForce/Quadro/RTX, téléchargez et installez le pilote compatible NVIDIA CUDA pour le Sous-système Windows pour Linux (WSL) à utiliser avec vos workflows ML CUDA existants. Initialement développé pour WSL, les pilotes CUDA pour WSL sont également utilisés pour Azure IoT Edge pour Linux sur Windows.

Les utilisateurs de Windows 10 doivent également installer WSL, car certaines des bibliothèques sont partagées entre WSL et Azure IoT Edge pour Linux sur Windows.

iGPU Intel

Pour les iGPU Intel, téléchargez et installez le pilote graphique Intel avec prise en charge du GPU WSL.

Les utilisateurs de Windows 10 doivent également installer WSL, car certaines des bibliothèques sont partagées entre WSL et Azure IoT Edge pour Linux sur Windows.

Activer l’accélération GPU dans votre déploiement Azure IoT Edge Linux sur Windows

Une fois la configuration du système terminée, vous êtes prêt à créer votre déploiement d’Azure IoT Edge pour Linux sur Windows. Pendant ce processus, vous devez activer GPU dans le cadre du déploiement EFLOW.

Par exemple, les commandes suivantes créent une machine virtuelle compatible GPU avec un GPU NVIDIA A2 ou Intel Iris Xe Graphics carte.

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

Pour trouver le nom de votre GPU, vous pouvez exécuter la commande suivante ou rechercher des adaptateurs d’affichage dans Gestionnaire de périphériques.

(Get-WmiObject win32_VideoController).caption

Une fois l’installation terminée, vous êtes prêt à déployer et à exécuter des modules Linux avec accélération GPU par le biais d’Azure IoT Edge pour Linux sur Windows.

Configurer l’accélération GPU dans un déploiement Linux Azure IoT Edge existant sur Windows

L’attribution du GPU au moment du déploiement entraîne l’expérience la plus simple. Toutefois, pour activer ou désactiver le GPU après le déploiement, utilisez la commande « set-eflowvm ». Lorsque vous utilisez « set-eflowvm », le paramètre par défaut est utilisé pour n’importe quel argument non spécifié. Par exemple,

#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

Étapes suivantes

Prise en main des exemples

Visitez notre page d’exemples EFLOW pour découvrir plusieurs exemples GPU que vous pouvez essayer et utiliser. Ces exemples illustrent des scénarios courants de fabrication et de vente au détail tels que la détection des défauts, la sécurité des travailleurs et la gestion des stocks. Les exemples open source peuvent servir de modèle de solution pour créer votre propre application Machine Learning basée sur la vision.

En savoir plus sur nos partenaires

Plusieurs fournisseurs gpu ont fourni des guides utilisateur sur l’obtention de la plupart de leur matériel et de leurs logiciels avec EFLOW.

Remarque

Ce guide ne couvre pas les GPU basés sur DDA tels que NVIDIA T4 ou A2.

Plongez dans la technologie

Découvrez-en plus sur les technologies de relais GPU en consultant la documentation DDA et le billet de blog sur GPU-PV.