Déployer un module IoT compatible GPU sur un appareil Azure Stack Edge Pro avec GPU
S’APPLIQUE À :Azure Stack Edge Pro – GPUAzure Stack Edge Pro 2Azure Stack Edge Pro R
Notes
Nous vous recommandons vivement de déployer la dernière version d’IoT Edge dans une machine virtuelle Linux. IoT Edge managé sur Azure Stack Edge utilise une version antérieure du runtime IoT Edge, qui ne possède pas les dernières fonctionnalités et derniers correctifs. Pour obtenir des instructions, découvrez comment Déployer une machine virtuelle Ubuntu. Pour plus d’informations sur les autres distributions Linux prises en charge qui peuvent exécuter IoT Edge, consultez Systèmes pris en charge pour Azure IoT Edge – Moteurs de conteneur.
Cet article explique comment déployer un module IoT Edge compatible GPU sur votre appareil Azure Stack Edge Pro avec GPU.
Dans cet article, vous apprendrez comment :
- Préparer Azure Stack Edge Pro pour exécuter un module GPU.
- télécharger et installer un exemple de code à partir d’un dépôt Git ;
- générer la solution et un manifeste de déploiement ;
- Déployer la solution sur un appareil Azure Stack Edge Pro.
- Supervisez la sortie du module.
À propos de l’exemple de module
L’exemple de module GPU mentionné dans cet article comprend un exemple de code d’évaluation PyTorch et TensorFlow pour comparer l’UC au GPU.
Prérequis
Avant de commencer, assurez-vous d’avoir :
- Vous avez accès à un appareil Azure Stack Edge Pro à 1 nœud compatible avec GPU. Cet appareil est activé avec une ressource dans Azure. Voir Activer l’appareil.
- Vous avez configuré le calcul sur cet appareil. Suivez les étapes décrites dans Tutoriel : Configurer le calcul sur votre appareil Azure Stack Edge Pro.
- Un ACR (Azure Container Registry). Accédez au panneau Clés d’accès et notez le serveur de connexion, le nom d’utilisateur et le mot de passe de l’ACR. Pour plus d’informations, consultez Démarrage rapide : Créer un registre de conteneurs privé à l’aide du portail Azure.
- Les ressources de développement suivantes sur un client Windows :
- Azure CLI 2.0 ou version ultérieure
- Docker CE. Vous devrez peut-être créer un compte pour télécharger et installer le logiciel.
- Visual Studio Code
- Extension Azure IoT Edge pour Visual Studio Code.
- Extension Python pour Visual Studio Code
- Python 3
- PIP pour l’installation des packages Python (en général inclus avec votre installation de Python)
Obtenir l’exemple de code
Accédez au Azure intelligent Edge Patterns dans les exemples Azure. Clonez ou téléchargez le fichier zip pour le code.
Extrayez les fichiers du zip. Vous pouvez également cloner les exemples.
git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
Créer et déployer un module
Ouvrez le dossier GpuReferenceModules dans Visual Studio Code.
Ouvrez le fichier deployment.template.json et identifiez les paramètres qu’il référence pour le registre de conteneurs. Dans le fichier suivant, les paramètres CONTAINER_REGISTRY_USERNAME, CONTAINER_REGISTRY_PASSWORD et CONTAINER_REGISTRY_NAME sont utilisés.
{ "$schema-template": "2.0.0", "modulesContent": { "$edgeAgent": { "properties.desired": { "schemaVersion": "1.0", "runtime": { "type": "docker", "settings": { "minDockerVersion": "v1.25", "loggingOptions": "", "registryCredentials": { "${CONTAINER_REGISTRY_NAME}":{ "username": "$CONTAINER_REGISTRY_USERNAME", "password": "$CONTAINER_REGISTRY_PASSWORD", "address": "${CONTAINER_REGISTRY_NAME}.azurecr.io" } } } },
Créez un fichier. Renseignez les valeurs de vos paramètres de registre de conteneurs (utilisez celles identifiées à l’étape précédente) comme suit :
CONTAINER_REGISTRY_NAME=<YourContainerRegistryName> CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName> CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
Un exemple de fichier .env figure ci-dessous :
Enregistrez le fichier au format .env dans le dossier SampleSolution.
Pour vous connecter à Docker, entrez la commande suivante dans le terminal intégré Visual Studio Code.
docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
Accédez à la section Clés d’accès de votre registre de conteneurs dans le portail Azure. Copiez et utilisez le nom, le mot de passe et le serveur de connexion du registre.
Une fois les informations d’identification fournies, la connexion s’effectue correctement.
Envoyez (push) votre image à votre registre de conteneurs Azure. Dans l’Explorateur VS Code, sélectionnez le fichier deployment.template.json et cliquez dessus avec le bouton droit, puis sélectionnez Générer et envoyer (push) la solution IoT Edge.
Si les extensions Python et Python ne sont pas installées, elles sont installées lorsque vous générez et envoyez (push) la solution. Toutefois, cela entraîne des temps de génération plus longs.
Une fois cette étape terminée, vous voyez le module dans votre registre de conteneurs.
Pour créer un manifeste de déploiement, cliquez avec le bouton droit sur le fichier deployment.template.json, puis sélectionnez Générer un manifeste de déploiement IoT Edge.
La notification vous informe du chemin d’accès dans lequel le manifeste de déploiement a été généré. Le manifeste est le fichier
deployment.amd64.json
généré dans le dossier config .Sélectionnez le fichier Deployment. amd64. JSON dans le dossier config, puis choisissez Créer un déploiement pour un seul appareil. N’utilisez pas le fichier deployment.template.json.
Dans la fenêtre Sortie, vous devriez voir un message indiquant que le déploiement a réussi.
Surveiller le module
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 utilisé pour déployer l’appareil Azure Stack Edge Pro, puis sélectionnez l’appareil IoT Edge créé pour votre appareil Azure Stack Edge Pro. 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 appareil Azure Stack Edge Pro.
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 également afficher les événements IoT Hub en tant que sortie de supervision pour votre appareil Azure Stack Edge Pro.
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
- Découvrez en détail comment configurer le GPU pour utiliser un module.