Déployer un module IoT compatible GPU sur Azure Stack Hub
Azure Stack Hub compatible GPU vous permet de déployer des modules nécessitant d’importantes ressources processeur sur des appareils Linux s’exécutant sur IoT Edge. Les tailles de machine virtuelle au GPU optimisé sont des machines virtuelles spécialisées disponibles avec des GPU NVIDIA uniques ou multiples. Dans cet article, découvrez comment utiliser des machines virtuelles au GPU optimisé pour exécuter des charges de travail intensives en termes de calcul, de graphiques et de visualisation.
Avant de commencer, vous aurez besoin d’un abonnement Microsoft Entra avec accès à azure global et à Azure Stack Hub, à un Azure Container Registry (ACR) et à un hub IoT.
Dans cet article, vous découvrirez comment :
- Installer une machine virtuelle Linux compatible GPU et les pilotes appropriés.
- Installer Docker et activer le GPU dans le runtime.
- Connecter votre appareil IoT à votre instance IoT Hub et, à partir de la place de marché IoT, installer le modèle :
Getting started with GPUs
. - Installer et surveiller votre appareil depuis un ordinateur local à l’aide de l’explorateur Azure IoT.
- Installer et surveiller votre appareil à l’aide de l’extension Azure IoT dans Visual Studio Code.
Prérequis
Vous devrez disposer des ressources suivantes dans votre instance Azure Stack Hub, Azure global et sur votre ordinateur de développement local.
Azure Stack Hub et Azure
Un abonnement en tant qu’utilisateur utilisant Microsoft Entra ID dans un système intégré Azure Stack Hub avec un GPU NVIDA. Les puces suivantes fonctionnent avec IoT Hub :
- NCv3
- NCas_v4
Pour plus d’informations sur les GPU sur Azure Stack Hub, consultez Machine virtuelle de processeur graphique (GPU) sur Azure Stack Hub.
Un abonnement Azure global. Si vous n’avez pas d’abonnement Azure global, créez un compte gratuit avant de commencer.
Un ACR (Azure Container Registry). Notez le serveur de connexion ACR, le nom d’utilisateur et le mot de passe.
Un hub IoT de niveau gratuit ou standard dans Azure global.
Un ordinateur de développement
Vous pouvez utiliser votre propre ordinateur ou une machine virtuelle, selon vos préférences de développement. Votre ordinateur de développement doit prendre en charge la virtualisation imbriquée. Cette fonctionnalité est requise pour l’exécution de Docker, le moteur de conteneur utilisé dans cet article.
Votre ordinateur de développement devra disposer des ressources suivantes :
- Python 3.x
-
Pip pour l’installation des packages Python. Ces ressources sont installées lors de l’installation de Python. Si Pip est installé, vous souhaiterez peut-être procéder à une mise à niveau vers la dernière version. Pour ce faire, vous pouvez utiliser pip. Entrez :
pip install --upgrade pip
. - Azure CLI 2.0
- Git
- Docker
- Visual Studio Code
- Azure IoT Tools pour Visual Studio Code.
- Pack d’extension Python pour Visual Studio Code
Enregistrer un appareil IoT Edge
Utilisez un autre appareil pour héberger votre appareil IoT Edge. L’utilisation d’un appareil distinct permet de séparer votre ordinateur de développement et l’appareil IoT Edge afin de refléter plus précisément un scénario de déploiement.
Créer un appareil IoT Edge dans Azure avec une machine virtuelle Linux :
Créez une machine virtuelle serveur Linux de série N sur Azure Stack Hub. Lorsque vous installez des composants pour votre serveur, vous interagissez avec le serveur via SSH. Pour plus d’informations, consultez Utilisation d’une paire de clés SSH avec Azure Stack Hub.
Préparer une machine virtuelle compatible GPU
Installez les pilotes GPU NVIDA sur votre serveur Linux de série N en suivant les étapes décrites dans l’article Installer les pilotes GPU NVIDIA sur les machines virtuelles de série N exécutant Linux.
Remarque
Vous utiliserez la ligne de commande bash pour installer votre logiciel. Notez les commandes car vous utiliserez les mêmes commandes pour installer les pilotes sur le conteneur s’exécutant dans Docker sur votre machine virtuelle compatible GPU.
Installez le dernier runtime IoT Edge sur votre serveur Linux de série N dans Azure Stack Hub. Pour obtenir des instructions, consultez Installer le runtime Azure IoT Edge sur des systèmes Linux Debian.
Installer Docker
Installez Docker sur votre machine virtuelle compatible GPU. Vous exécuterez le module à partir de la Place de marché IoT Edge dans un conteneur sur la machine virtuelle.
Vous devez installer Docker 19.02 ou une version ultérieure. Le runtime Docker prend désormais en charge les GPU NVIDIA. Pour en savoir plus sur les GPU dans Docker, consultez l’article Options de runtime avec mémoire, UC et GPU de la documentation Docker.
Installer Docker
Les conteneurs Docker peuvent s’exécuter n’importe où, en local dans le centre de données client, dans un fournisseur de services externe ou dans le cloud, sur Azure. Les conteneurs d’images Docker peuvent s’exécuter en mode natif sur Linux et Windows. Toutefois, les images Windows peuvent s’exécuter uniquement sur des hôtes Windows et les images Linux peuvent s’exécuter sur des hôtes Linux et des hôtes Windows (à l’aide d’une machine virtuelle Linux Hyper-V, jusqu’à présent), où le terme « hôte » désigne un serveur ou une machine virtuelle. Pour plus d’informations, consultez Qu’est-ce que Docker ?.
Connectez-vous à votre serveur Linux de série N à l’aide de votre client SSH.
Mettez à jour l’index et les listes apt.
sudo apt-get update
Récupérez les nouvelles versions des packages existants sur la machine.
sudo apt-get upgrade
Installez les dépendances requises pour ajouter le référentiel apt Docker.
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
Ajoutez la clé GPG Docker.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Ajoutez le référentiel apt Docker.
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Mettez à jour l’index et les listes apt, puis installez Docker Community Edition.
sudo apt-get update sudo apt-get install docker-ce
Vérifiez l’installation en examinant la version Docker.
docker -v
Exposez les ressources GPU disponibles dans Docker.
docker run -it --rm --gpus all ubuntu nvidia-smi
Accéder à l'élément à partir de la Place de marché
Revenez au portail Azure et ajoutez le modèle à votre périphérique à l’aide de la Place de marché IoT. Sélectionnez Module de la Place de marché dans le menu. Recherchez Getting started with GPUs
et suivez les instructions pour ajouter le module.
Pour obtenir des instructions, consultez Sélectionner un appareil et ajouter des modules.
Activer la supervision
Téléchargez l’explorateur Azure IoT et connectez l’application à votre instance IoT Hub.
Sélectionnez votre appareil IoT et accédez à Télémétrie dans le menu de navigation.
Sélectionnez Démarrer pour surveiller la sortie de l’appareil IoT Edge.
Surveiller la sortie du module (facultatif)
Dans la palette de commandes VS Code, exécutez Azure IoT Hub: Select IoT Hub (Azure IoT Hub : Sélectionner l’IoT Hub).
Choisissez l’abonnement et l’IoT Hub qui contiennent l’appareil IoT Edge que vous souhaitez configurer. Dans ce cas, sélectionnez l’abonnement dans votre instance Azure Stack Hub, puis sélectionnez l’appareil IoT Edge créé pour votre Azure Stack Hub. Cela se produit lorsque vous avez configuré le calcul via le portail Azure dans les étapes précédentes.
Dans l’Explorateur VS Code, développez la section Appareils Azure IoT Hub. Sous Appareils, vous devez voir l’appareil IoT Edge correspondant à votre Azure Stack Hub.
Sélectionnez cet appareil, cliquez dessus avec le bouton droit, puis sélectionnez Démarrer la supervision du point de terminaison d’événement intégré.
Accédez à Appareils > Modules. Vous devriez voir votre module GPU en cours d’exécution.
Le terminal VS Code doit aussi afficher les événements IoT Hub en tant que sortie de supervision pour votre Azure Stack Hub.
Vous pouvez voir que le temps nécessaire pour exécuter le même ensemble d’opérations (5 000 itérations de transformation de forme) par GPU est sensiblement inférieur à celui dont a besoin un processeur.
Étapes suivantes
En savoir plus sur la Machine virtuelle du processeur graphique (GPU) sur Azure Stack Hub
En savoir plus sur Azure Stack Hub, Data Box Edge et la périphérie intelligente, L’avenir de l’informatique : cloud intelligent et périphérie intelligente
En savoir plus sur les applications de cloud hybride, voir Solutions de cloud hybride