Partager via


Déployer un module IoT compatible GPU sur un appareil Azure Stack Edge Pro avec GPU

S’APPLIQUE À :Yes for Pro - GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro R

Remarque

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 :

Obtenir l’exemple de code

  1. Accédez au Azure intelligent Edge Patterns dans les exemples Azure. Clonez ou téléchargez le fichier zip pour le code.

    Download zip file

    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

  1. Ouvrez le dossier GpuReferenceModules dans Visual Studio Code.

    Open GPUReferenceModules in VS Code

  2. 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"
                  }
                }
              }
            },
    
  3. 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 :

    Create and save .env file

  4. Enregistrez le fichier au format .env dans le dossier SampleSolution.

  5. 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.

    Access keys in your container registry

    Une fois les informations d’identification fournies, la connexion s’effectue correctement.

    Successful sign in

  6. 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.

    Build and push IoT Edge solution

    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.

    Module in container registry

  7. 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.

    Generate IoT Edge deployment manifest

    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 .

  8. 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.

    Create deployment for single device

    Dans la fenêtre Sortie, vous devriez voir un message indiquant que le déploiement a réussi.

    Deployment succeeded in Output

Surveiller le module

  1. Dans la palette de commandes VS Code, exécutez Azure IoT Hub: Select IoT Hub (Azure IoT Hub : Sélectionner l’IoT Hub).

  2. 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.

  3. 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.

    1. 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é.

      Start monitoring

    2. Accédez à Appareils > Modules. Vous devriez voir votre module GPU en cours d’exécution.

      Module in IoT Hub

    3. 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.

      Monitoring output

      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