Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
IoT Edge 1.5
Important
IoT Edge 1.5 LTS est la version prise en charge. IoT Edge 1.4 LTS est en fin de vie depuis le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.
Ce tutoriel vous montre comment créer une machine virtuelle avec GPU. À partir de la machine virtuelle, vous exécutez un appareil IoT Edge qui alloue le travail de l’un de ses modules à votre GPU.
Utilisez le portail Azure, Azure Cloud Shell et la ligne de commande de votre machine virtuelle pour :
- Créer une machine virtuelle compatible GPU
- Installer l’extension de pilote NVIDIA sur la machine virtuelle
- Configurer un module sur un appareil IoT Edge pour allouer du travail à un GPU
Prérequis
Compte Azure - Créer un compte gratuit
Azure IoT Hub - Créer un IoT Hub
Azure IoT Edge
Si vous n’avez pas d’appareil IoT Edge et que vous souhaitez en créer rapidement un, exécutez la commande suivante. Utilisez Azure Cloud Shell dans le portail Azure. Créez un nom d’appareil pour
<DEVICE-NAME>et remplacez-le<YOUR-IOT-HUB-NAME>par votre nom IoT Hub.az iot hub device-identity create --device-id <YOUR-DEVICE-NAME> --edge-enabled --hub-name <YOUR-IOT-HUB-NAME>Pour plus d’informations sur la création d’un appareil IoT Edge, consultez Démarrage rapide : Déployer votre premier module IoT Edge sur un appareil Linux virtuel. Plus loin dans cet article, vous allez ajouter un module NVIDIA à votre appareil IoT Edge.
Créer une machine virtuelle optimisée pour le GPU
Pour créer une machine virtuelle optimisée par GPU, choisissez la taille appropriée. Toutes les tailles de machine virtuelle ne prennent pas en charge le traitement GPU, et différentes tailles de machine virtuelle fonctionnent mieux pour différentes charges de travail. Pour plus d’informations, consultez Tailles de machines virtuelles optimisées par GPU ou essayez le Sélecteur de machines virtuelles.
Créez une machine virtuelle IoT Edge avec le modèle Azure Resource Manager (ARM) dans GitHub, puis configurez-la pour qu’elle soit optimisée par GPU.
Accédez au modèle de déploiement de machine virtuelle IoT Edge dans GitHub sur Azure/iotedge-vm-deploy.
Sélectionnez le bouton Déployer sur Azure pour commencer à créer une machine virtuelle personnalisée dans le portail Azure.
Entrez vos informations d’identification Azure et vos informations de ressource dans les champs de déploiement personnalisé :
Propriété Description ou exemple de valeur Abonnement Choisissez l’abonnement de votre compte Azure. groupe de ressources Ajoutez votre groupe de ressources Azure. Région East US
Les machines virtuelles avec GPU ne sont pas disponibles dans toutes les régions.Préfixe d’étiquette DNS Créez un nom pour votre machine virtuelle. Nom d’utilisateur d’administrateur adminUser
Ou créez votre propre nom d’utilisateur.Chaîne de connexion de l’appareil Copiez votre chaîne de connexion à partir de votre appareil IoT Edge, puis collez-la ici. Taille de la machine virtuelle Standard_NV6Type d'authentification Choisissez un mot de passe ou une clé publique SSH, puis créez un nom de paire de mots de passe ou de clé si nécessaire. Conseil
Vérifiez quelles machines virtuelles GPU sont prises en charge dans chaque région : Produits disponibles par région.
Pour vérifier la région que votre abonnement Azure autorise, essayez cette commande Azure dans le portail Azure. Le
NdansStandard_Nsignifie qu’il s’agit d’une machine virtuelle compatible GPU.az vm list-skus --location <YOUR-REGION> --size Standard_N --all --output tableSélectionnez le bouton Vérifier + créer en bas, puis sélectionnez le bouton Créer . Le déploiement peut prendre jusqu’à une minute.
Installer l’extension NVIDIA
Maintenant que vous disposez d’une machine virtuelle optimisée par GPU, installez l’extension NVIDIA sur la machine virtuelle à l’aide du portail Azure.
Ouvrez votre machine virtuelle dans le portail Azure, puis sélectionnez Extensions + applications dans le menu de gauche.
Sélectionnez Ajouter et choisissez Extension de pilote GPU NVIDIA dans la liste, puis sélectionnez Suivant.
Choisissez Vérifier + créer, puis Créer. Le déploiement peut prendre jusqu’à 30 minutes.
Pour confirmer l’installation dans le portail Azure, revenez au menu Extensions + applications de votre machine virtuelle. La nouvelle extension nommée
NvidiaGpuDriverLinuxdevrait figurer dans votre liste d’extensions et afficher Approvisionnement réussi sous État.Pour confirmer l’installation à l’aide d’Azure Cloud Shell, exécutez cette commande pour répertorier vos extensions. Remplacez les espaces réservés
<>par vos valeurs :az vm extension list --resource-group <YOUR-RESOURCE-GROUP> --vm-name <YOUR-VM-NAME> -o tableAvec un module NVIDIA, nous allons utiliser le programme NVIDIA System Management Interface, également appelé
nvidia-smi.À partir de votre appareil, installez le package
nvidia-smien fonction de votre version d’Ubuntu. Pour ce tutoriel, nous allons installernvidia-utils-515pour Ubuntu 20.04. SélectionnezYquand vous y êtes invité.sudo apt install nvidia-utils-515Voici une liste de toutes les versions de
nvidia-smi. Si vous l’exécuteznvidia-smisans l’installer en premier, cette liste s’imprime dans votre console.
Après l’installation, exécutez cette commande pour confirmer son installation :
nvidia-smiUn tableau de confirmation s’affiche, similaire à ce tableau.
Remarque
L’extension NVIDIA est un moyen simplifié d’installer les pilotes NVIDIA, mais vous aurez peut-être besoin d’une personnalisation supplémentaire. Pour plus d’informations sur les installations personnalisées sur des machines virtuelles de série N, consultez Installer les pilotes GPU NVIDIA sur les machines virtuelles série N exécutant Linux.
Activer un module avec accélération GPU
Il existe différentes façons d’activer un module IoT Edge afin qu’il utilise un GPU pour le traitement. L’une des méthodes consiste à configurer un module IoT Edge existant sur votre appareil pour qu’il soit accéléré par GPU. Une autre méthode consiste à utiliser un module de conteneur préfabriqué, par exemple un module à partir de NVIDIA DIGITS qui est déjà optimisé par GPU. Voyons comment les deux méthodes fonctionnent.
Activer le GPU dans un module existant à l’aide de DeviceRequests
Si vous disposez d’un module existant sur votre appareil IoT Edge, l’ajout d’une configuration à l’aide de DeviceRequests dans les createOptions du manifeste de déploiement rend le module optimisé par GPU. Suivez ces étapes pour configurer un module existant.
Accédez à votre IoT Hub dans le portail Azure, puis, dans le menu Gestion des appareils, choisissez Appareils.
Sélectionnez votre appareil IoT Edge pour l’ouvrir.
Sélectionnez l’onglet Définir les modules en haut.
Sélectionnez le module que vous souhaitez activer pour l’utilisation du GPU dans la liste Modules IoT Edge.
Un panneau latéral s’ouvre, choisissez l’onglet Options de création de conteneur.
Copiez cette chaîne JSON
HostConfiget collez-la dans la zone Options de création.{ "HostConfig": { "DeviceRequests": [ { "Count": -1, "Capabilities": [ [ "gpu" ] ] } ] } }Sélectionnez Update.
Sélectionnez Revoir + créer. Le nouvel objet
HostConfigest désormais visible dans le modulesettings.Sélectionnez Create (Créer).
Pour confirmer que la nouvelle configuration fonctionne, exécutez cette commande dans votre machine virtuelle :
sudo docker inspect <YOUR-MODULE-NAME>Vous devez voir les paramètres que vous avez spécifiés pour
DeviceRequestsdans l’impression JSON dans la console.
Remarque
Pour mieux comprendre le paramètre DeviceRequests, affichez le code source : moby/host_config.go
Activer un GPU dans un module NVIDIA préfabriqué
Ajoutons un module NVIDIA DIGITS à l’appareil IoT Edge, puis allouons un GPU au module en définissant ses variables d’environnement. Ce module NVIDIA se trouve déjà dans un conteneur Docker.
Dans le portail Azure, dans le menu IoT Edge de votre IoT Hub, sélectionnez votre appareil IoT Edge.
Sélectionnez l’onglet Définir les modules en haut.
Sous le titre des modules IoT Edge, sélectionnez + Ajouter, puis choisissez Module IoT Edge.
Indiquez un nom dans le champ Nom du module IoT Edge.
Sous l’onglet Paramètres du module, ajoutez
nvidia/digits:6.0au champ URI d’image.Sélectionnez l’onglet variables d’environnement.
Ajoutez le nom de la variable d’environnement
NVIDIA_VISIBLE_DEVICESavec la valeur0. Cette variable contrôle les GPU visibles par l’application conteneurisée s’exécutant sur l’appareil edge. La variable d’environnementNVIDIA_VISIBLE_DEVICESpeut être définie sur une liste séparée par des virgules d’ID d’appareil, qui correspondent aux GPU physiques dans le système. Par exemple, s’il existe deux GPU dans le système avec les ID d’appareil 0 et 1, la variable peut être définie sur « NVIDIA_VISIBLE_DEVICES=0,1 » pour rendre les deux GPU visibles pour le conteneur. Dans cet article, étant donné que la machine virtuelle n’a qu’un seul GPU, nous allons utiliser le premier (et le seul) un.Nom Type Valeur NVIDIA_VISIBLE_DEVICES Texte 0 Sélectionnez Ajouter.
Sélectionnez Revoir + créer. Les propriétés de votre manifeste de déploiement s’affichent.
Sélectionnez Créer pour créer le module.
Sélectionnez Actualiser pour mettre à jour votre liste de modules. Le module prend quelques minutes pour s'afficher en cours d'exécution dans le statut d'exécution, alors continuez à actualiser l'appareil.
À partir de votre appareil, exécutez cette commande pour confirmer que votre nouveau module NVIDIA existe et s’exécute.
iotedge listVous devriez voir votre module NVIDIA dans une liste de modules sur votre appareil IoT Edge avec l’état
running.
Remarque
Pour plus d’informations sur le module conteneur NVIDIA DIGITS, consultez la documentation Deep Learning Digits.
Nettoyer les ressources
Si vous souhaitez continuer avec d’autres tutoriels IoT Edge, vous pouvez utiliser l’appareil que vous avez créé pour celui-ci. Sinon, vous pouvez supprimer les ressources Azure que vous avez créées dans cet article pour éviter les frais.
Si vous avez créé votre machine virtuelle et ioT Hub dans un nouveau groupe de ressources, vous pouvez supprimer ce groupe, ce qui supprime toutes les ressources associées. Vérifiez le contenu du groupe de ressources pour être certain que vous ne voulez rien en conserver. Si vous ne voulez pas supprimer le groupe entier, vous pouvez supprimer des ressources individuelles (machine virtuelle, appareil ou module GPU) à la place.
Important
La suppression d’un groupe de ressources est irréversible.
Utilisez la commande suivante pour supprimer votre groupe de ressources Azure. La suppression d’un groupe de ressources peut prendre plusieurs minutes.
az group delete --name <YOUR-RESOURCE-GROUP> --yes
Vous pouvez vérifier que le groupe de ressources est supprimé en consultant la liste des groupes de ressources.
az group list
Étapes suivantes
Cet article vous a aidé à configurer votre machine virtuelle et votre appareil IoT Edge pour qu’il soit accéléré par GPU. Pour exécuter une application avec une configuration similaire, essayez le parcours d’apprentissage pour le Développement NVIDIA DeepStream avec Microsoft Azure. Le tutoriel Learn vous montre comment développer des applications vidéo intelligentes optimisées qui peuvent consommer plusieurs sources vidéo, image et audio.