Distribuera en GPU-aktiverad IoT-modul på Azure Stack Edge Pro GPU-enhet
GÄLLER FÖR: Azure Stack Edge Pro – GPU
Azure Stack Edge Pro 2
Azure 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:
- Du har åtkomst till en GPU-aktiverad Azure Stack Edge Pro-enhet med 1 nod. Enheten aktiveras med en resurs i Azure. Se Aktivera enheten.
- Du har konfigurerat beräkning på den här enheten. Följ stegen i Självstudie: Konfigurera beräkning på din Azure Stack Edge Pro-enhet.
- Ett Azure Container Registry (ACR). Gå till bladet Åtkomstnycklar och anteckna ACR-inloggningsservern, användarnamnet och lösenordet. Mer information finns i Snabbstart: Skapa ett privat containerregister med hjälp av Azure Portal.
- Följande utvecklingsresurser på en Windows-klient:
- Azure CLI 2.0 eller senare
- Docker CE. Du kan behöva skapa ett konto för att ladda ned och installera programvaran.
- Visual Studio Code
- Azure IoT Edge-tillägg för Visual Studio Code.
- Python-tillägg för Visual Studio Code
- Python 3
- Pip för att installera Python-paket (ingår vanligtvis i python-installationen)
Hämta exempelkoden
Gå till Azure Intelligent Edge-mönster i Azure-exempel. Klona eller ladda ned zip-filen för kod.
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
Öppna mappen GpuReferenceModules i Visual Studio Code.
Ö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" } } } },
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:
Spara filen som .env i mappen SampleSolution .
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.
När autentiseringsuppgifterna har angetts lyckas inloggningen.
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).
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.
Om du vill skapa ett distributionsmanifest högerklickar du på deployment.template.json och väljer sedan 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 .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 .
I fönstret Utdata bör du se ett meddelande om att distributionen lyckades.
Övervaka modulen
I kommandopaletten i VS Code kör du Azure IoT Hub: Select IoT Hub (Azure IoT Hub: Välj IoT Hub).
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.
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.
Välj den enheten, högerklicka och välj Starta övervakning inbyggd händelseslutpunkt.
Gå till Enhetsmoduler > så bör du se att GPU-modulen körs.
VS Code-terminalen bör också visa IoT Hub-händelserna som övervakningsutdata för din Azure Stack Edge Pro-enhet.
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
- Läs mer om hur du konfigurerar GPU för att använda en modul.