Delen via


Een IoT-module met GPU implementeren op een GPU-apparaat met Azure Stack Edge Pro

VAN TOEPASSING OP:Ja voor Pro - GPU-SKU Azure Stack Edge Pro - GPUJa voor Pro 2 SKUAzure Stack Edge Pro 2Ja voor Pro R SKUAzure 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:

De voorbeeldcode halen

  1. Ga naar de Azure Intelligent Edge-patronen in Azure-voorbeelden. Kloon of download het zip-bestand voor code.

    Zip-bestand downloaden

    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

  1. Open de map GpuReferenceModules in Visual Studio Code.

    GPUReferenceModules openen in VS Code

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

    .env-bestand maken en opslaan

  4. Sla het bestand op als .env in de map SampleSolution .

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

    Toegangssleutels in uw containerregister

    Nadat de referenties zijn opgegeven, slaagt het aanmelden.

    Geslaagde aanmelding

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

    IoT Edge-oplossingen 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.

    Module in containerregister

  7. Als u een implementatiemanifest wilt maken, klikt u met de rechtermuisknop op de deployment.template.json en selecteert u Vervolgens IoT Edge-implementatiemanifest genereren.

    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 .

  8. Selecteer het bestand deployment.amd64.json in de configuratiemap en kies Implementatie voor één apparaat maken. Gebruik het deployment.template.json bestand niet.

    Implementatie voor één apparaat maken

    In het uitvoervenster ziet u een bericht dat de implementatie is geslaagd.

    Implementatie geslaagd in uitvoer

De module bewaken

  1. Voer in het opdrachtenpalet van VS Code de opdracht Azure IoT Hub: Select IoT Hub uit.

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

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

    1. Selecteer dat apparaat, klik met de rechtermuisknop en selecteer Bewaking van ingebouwd gebeurteniseindpunt starten.

      Bewaking starten

    2. Ga naar Apparatenmodules > en u ziet dat uw GPU-module wordt uitgevoerd.

      Module in IoT Hub

    3. In de VS Code-terminal moeten ook de IoT Hub-gebeurtenissen worden weergegeven als de bewakingsuitvoer voor uw Azure Stack Edge Pro-apparaat.

      Uitvoer bewaken

      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