Een IoT-module met GPU implementeren op een GPU-apparaat met Azure Stack Edge Pro
VAN TOEPASSING OP: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro R
Notitie
We raden u ten zeerste aan de nieuwste IoT Edge-versie te implementeren op een Virtuele Linux-machine. De beheerde IoT Edge in Azure Stack Edge maakt gebruik van een oudere versie van IoT Edge-runtime die niet beschikt over de nieuwste functies en patches. Zie voor instructies hoe u een Ubuntu-VM implementeert. Zie Voor meer informatie over andere ondersteunde Linux-distributies die IoT Edge kunnen uitvoeren, azure IoT Edge ondersteunde systemen : containerengines.
In dit artikel wordt beschreven hoe u een IoT Edge-module met GPU implementeert op uw Azure Stack Edge Pro GPU-apparaat.
In dit artikel leert u het volgende:
- Bereid Azure Stack Edge Pro voor om een GPU-module uit te voeren.
- Download en installeer voorbeeldcode vanuit een Git-opslagplaats.
- Bouw de oplossing en genereer een implementatiemanifest.
- Implementeer de oplossing op een Azure Stack Edge Pro-apparaat.
- Bewaak de module-uitvoer.
Over voorbeeldmodule
De GPU-voorbeeldmodule in dit artikel bevat PyTorch- en TensorFlow-voorbeeldcode voor CPU tegen GPU.
Vereisten
Zorg ervoor dat u voordat u begint de volgende zaken paraat hebt:
- U hebt toegang tot een Azure Stack Edge Pro-apparaat met 1 knooppunt met GPU. Dit apparaat wordt geactiveerd met een resource in Azure. Zie Het apparaat activeren.
- U hebt rekenkracht geconfigureerd op dit apparaat. Volg de stappen in zelfstudie: Rekenkracht configureren op uw Azure Stack Edge Pro-apparaat.
- Een Azure Container Registry (ACR). Ga naar de blade Toegangssleutels en noteer de ACR-aanmeldingsserver, gebruikersnaam en wachtwoord. Ga naar Quickstart: Een privécontainerregister maken met behulp van Azure Portal voor meer informatie.
- De volgende ontwikkelbronnen op een Windows-client:
- Azure CLI 2.0 of hoger
- Docker CE. Mogelijk moet u een account maken om de software te downloaden en te installeren.
- Visual Studio Code
- Azure IoT Edge-extensie voor Visual Studio Code.
- Python-extensie voor Visual Studio Code
- Python 3
- Pip voor het installeren van Python-pakketten (meestal opgenomen in uw Python-installatie)
De voorbeeldcode halen
Ga naar de Azure Intelligent Edge-patronen in Azure-voorbeelden. Kloon of download het zip-bestand voor code.
Pak de bestanden uit het zip-bestand. U kunt de voorbeelden ook klonen.
git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
Module bouwen en implementeren
Open de map GpuReferenceModules in Visual Studio Code.
Open de deployment.template.json en identificeer de parameters die naar het containerregister verwijzen. In het volgende bestand worden CONTAINER_REGISTRY_USERNAME, CONTAINER_REGISTRY_PASSWORD en CONTAINER_REGISTRY_NAME gebruikt.
{ "$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" } } } },
Maak een nieuw bestand. Vul de waarden voor de parameters van het containerregister in (gebruik de waarden die in de vorige stap zijn geïdentificeerd) als volgt:
CONTAINER_REGISTRY_NAME=<YourContainerRegistryName> CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName> CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
Hieronder ziet u een voorbeeld van een .env-bestand :
Sla het bestand op als .env in de map SampleSolution .
Als u zich wilt aanmelden bij Docker, voert u de volgende opdracht in de geïntegreerde Visual Studio Code-terminal in.
docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
Ga naar de sectie Toegangssleutels van uw containerregister in Azure Portal. Kopieer en gebruik de registernaam, het wachtwoord en de aanmeldingsserver.
Nadat de referenties zijn opgegeven, slaagt het aanmelden.
Push uw installatiekopieën naar uw Azure-containerregister. Selecteer en klik in VS Code Explorer met de rechtermuisknop op het deployment.template.json-bestand en selecteer vervolgens De IoT Edge-oplossing bouwen en pushen.
Als de Python- en Python-extensie niet zijn geïnstalleerd, worden deze geïnstalleerd wanneer u de oplossing bouwt en pusht. Dit zou echter leiden tot langere buildtijden.
Zodra deze stap is voltooid, ziet u de module in het containerregister.
Als u een implementatiemanifest wilt maken, klikt u met de rechtermuisknop op de deployment.template.json en selecteert u Vervolgens IoT Edge-implementatiemanifest genereren.
De melding informeert u over het pad waarop het distributiemanifest is gegenereerd. Het manifest is het
deployment.amd64.json
bestand dat wordt gegenereerd in de configuratiemap .Selecteer het bestand deployment.amd64.json in de configuratiemap en kies Implementatie voor één apparaat maken. Gebruik het deployment.template.json bestand niet.
In het uitvoervenster ziet u een bericht dat de implementatie is geslaagd.
De module bewaken
Voer in het opdrachtenpalet van VS Code de opdracht Azure IoT Hub: Select IoT Hub uit.
Kies het abonnement en de IoT-hub met het IoT Edge-apparaat dat u wilt configureren. Selecteer in dit geval het abonnement dat wordt gebruikt om het Azure Stack Edge Pro-apparaat te implementeren en selecteer het IoT Edge-apparaat dat is gemaakt voor uw Azure Stack Edge Pro-apparaat. Dit gebeurt wanneer u rekenkracht configureert via Azure Portal in de eerdere stappen.
Vouw in VS Code Explorer de sectie Azure IoT Hub uit. Onder Apparaten ziet u het IoT Edge-apparaat dat overeenkomt met uw Azure Stack Edge Pro-apparaat.
Selecteer dat apparaat, klik met de rechtermuisknop en selecteer Bewaking van ingebouwd gebeurteniseindpunt starten.
Ga naar Apparatenmodules > en u ziet dat uw GPU-module wordt uitgevoerd.
In de VS Code-terminal moeten ook de IoT Hub-gebeurtenissen worden weergegeven als de bewakingsuitvoer voor uw Azure Stack Edge Pro-apparaat.
U kunt zien dat de tijd die nodig is om dezelfde set bewerkingen (5000 iteraties van shapetransformaties) door GPU uit te voeren veel kleiner is dan voor CPU.
Volgende stappen
- Meer informatie over het configureren van GPU voor het gebruik van een module.