Dela via


Distribuera en GPU-aktiverad IoT-modul på Azure Stack Edge Pro GPU-enhet

GÄLLER FÖR:Ja för Pro – GPU SKU Azure Stack Edge Pro – GPUJa för Pro 2 SKUAzure Stack Edge Pro 2Ja för Pro R SKUAzure Stack Edge Pro R

Kommentar

Vi rekommenderar starkt att du distribuerar den senaste IoT Edge-versionen på en virtuell Linux-dator. Den hanterade IoT Edge på Azure Stack Edge använder en äldre version av IoT Edge-körningen som inte har de senaste funktionerna och korrigeringarna. Anvisningar finns i Distribuera en virtuell Ubuntu-dator. Mer information om andra Linux-distributioner som stöds som kan köra IoT Edge finns i System som stöds av Azure IoT Edge – Containermotorer.

Den här artikeln beskriver hur du distribuerar en GPU-aktiverad IoT Edge-modul på din Azure Stack Edge Pro GPU-enhet.

I den här artikeln kan du se hur du:

  • Förbered Azure Stack Edge Pro för att köra en GPU-modul.
  • Ladda ned och installera exempelkod från en Git-lagringsplats.
  • Skapa lösningen och generera ett distributionsmanifest.
  • Distribuera lösningen till Azure Stack Edge Pro-enheten.
  • Övervaka modulens utdata.

Om exempelmodul

GPU-exempelmodulen i den här artikeln innehåller exempelkoden PyTorch och TensorFlow benchmarking för CPU mot GPU.

Förutsättningar

Innan du kan börja bör du kontrollera att du har:

Hämta exempelkoden

  1. Gå till Azure Intelligent Edge-mönster i Azure-exempel. Klona eller ladda ned zip-filen för kod.

    Ladda ned zip-fil

    Extrahera filerna från zip-filen. Du kan också klona exemplen.

    git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
    

Skapa och distribuera modul

  1. Öppna mappen GpuReferenceModules i Visual Studio Code.

    Öppna GPUReferenceModules i VS Code

  2. Öppna deployment.template.json och identifiera de parametrar som den refererar till för containerregistret. I följande fil används CONTAINER_REGISTRY_USERNAME, CONTAINER_REGISTRY_PASSWORD och CONTAINER_REGISTRY_NAME.

        {
      "$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. Skapa en ny fil. Fyll i värdena för dina containerregisterparametrar (använd de som identifierades i det tidigare steget) på följande sätt:

    CONTAINER_REGISTRY_NAME=<YourContainerRegistryName>
    CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName>
    CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
    

    En .env-exempelfil visas nedan:

    Skapa och spara .env-fil

  4. Spara filen som .env i mappen SampleSolution .

  5. Om du vill logga in på Docker anger du följande kommando i den integrerade Terminalen i Visual Studio Code.

    docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
    

    Gå till avsnittet Åtkomstnycklar i containerregistret i Azure Portal. Kopiera och använd registernamn, lösenord och inloggningsserver.

    Åtkomstnycklar i containerregistret

    När autentiseringsuppgifterna har angetts lyckas inloggningen.

    Lyckad inloggning

  6. Skicka avbildningen till azure-containerregistret. I VS Code Explorer väljer du och högerklickar på filen deployment.template.json och väljer sedan Build and Push IoT Edge solution (Skapa och push-lösning för IoT Edge).

    Skapa och push-överföra IoT Edge-lösning

    Om Python- och Python-tillägget inte installeras installeras dessa när du skapar och push-överför lösningen. Detta skulle dock resultera i längre byggtider.

    När det här steget är klart visas modulen i containerregistret.

    Modul i containerregistret

  7. Om du vill skapa ett distributionsmanifest högerklickar du på deployment.template.json och väljer sedan Generera IoT Edge-distributionsmanifest.

    Generera IoT Edge-distributionsmanifest

    Meddelandet informerar dig om den sökväg där distributionsmanifestet genererades. Manifestet är filen deployment.amd64.json som genereras i mappen config .

  8. Välj filen deployment.amd64.json i mappen config och välj sedan Skapa distribution för enskild enhet. Använd inte filen deployment.template.json .

    Skapa distribution för en enskild enhet

    I fönstret Utdata bör du se ett meddelande om att distributionen lyckades.

    Distributionen lyckades i utdata

Övervaka modulen

  1. I kommandopaletten i VS Code kör du Azure IoT Hub: Select IoT Hub (Azure IoT Hub: Välj IoT Hub).

  2. Välj den prenumeration och IoT-hubb som innehåller den IoT Edge-enhet som du vill konfigurera. I det här fallet väljer du den prenumeration som används för att distribuera Azure Stack Edge Pro-enheten och väljer den IoT Edge-enhet som skapats för din Azure Stack Edge Pro-enhet. Detta inträffar när du konfigurerar beräkning via Azure Portal i de tidigare stegen.

  3. I VS Code-utforskaren expanderar du avsnittet Azure IoT Hub. Under Enheter bör du se den IoT Edge-enhet som motsvarar din Azure Stack Edge Pro-enhet.

    1. Välj den enheten, högerklicka och välj Starta övervakning inbyggd händelseslutpunkt.

      Starta övervakning

    2. Gå till Enhetsmoduler > så bör du se att GPU-modulen körs.

      Modul i IoT Hub

    3. VS Code-terminalen bör också visa IoT Hub-händelserna som övervakningsutdata för din Azure Stack Edge Pro-enhet.

      Övervaka utdata

      Du kan se att den tid det tar att köra samma uppsättning åtgärder (5 000 iterationer av formomvandling) av GPU:n är mycket mindre än för CPU.

Nästa steg