Share via


Zelfstudie: Een IoT Edge-module configureren, verbinden en verifiëren voor een GPU

Van toepassing op:IoT Edge 1.5-vinkje IoT Edge 1.5 Vinkje voor IoT Edge 1.4 IoT Edge 1.4

Belangrijk

IoT Edge 1.5 LTS en IoT Edge 1.4 LTS worden ondersteund releases. IoT Edge 1.4 LTS eindigt op 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.

In deze zelfstudie leert u hoe u een virtuele machine met GPU (VM) bouwt. Vanaf de VIRTUELE machine ziet u hoe u een IoT Edge-apparaat uitvoert dat werk toewijst vanuit een van de modules aan uw GPU.

We gebruiken Azure Portal, De Azure Cloud Shell en de opdrachtregel van uw VM om:

  • Een VM met GPU bouwen die geschikt is
  • Installeer de NVIDIA-stuurprogramma-extensie op de VIRTUELE machine
  • Een module configureren op een IoT Edge-apparaat om werk toe te wijzen aan een GPU

Vereisten

Een voor GPU geoptimaliseerde virtuele machine maken

Als u een voor GPU geoptimaliseerde virtuele machine (VM) wilt maken, is het belangrijk om de juiste grootte te kiezen. Niet alle VM-grootten zijn geschikt voor GPU-verwerking. Daarnaast zijn er verschillende VM-grootten voor verschillende workloads. Zie de voor GPU geoptimaliseerde grootten van virtuele machines of probeer de selector voor virtuele machines voor meer informatie.

We gaan een IoT Edge-VM maken met de Arm-sjabloon (Azure Resource Manager) in GitHub en deze vervolgens configureren om te worden geoptimaliseerd voor GPU.

  1. Ga naar de ioT Edge VM-implementatiesjabloon in GitHub: Azure/iotedge-vm-deploy.

  2. Selecteer de knop Implementeren in Azure , waarmee u een aangepaste VIRTUELE machine maakt in Azure Portal.

  3. Vul de velden voor aangepaste implementatie in met uw Azure-referenties en -resources:

    Eigenschappen Beschrijving of voorbeeldwaarde
    Abonnement Kies uw Azure-accountabonnement.
    Resourcegroep Voeg uw Azure-resourcegroep toe.
    Regio East US
    GPU-VM's zijn niet beschikbaar in alle regio's.
    Voorvoegsel voor DNS-label Maak een naam voor uw virtuele machine.
    Gebruikersnaam van beheerder adminUser
    U kunt ook uw eigen gebruikersnaam maken.
    Apparaatverbindingsreeks Kopieer uw verbindingsreeks van uw IoT Edge-apparaat en plak deze hier.
    VM-grootte Standard_NV6
    Authentication type Kies een wachtwoord of een openbare SSH-sleutel en maak indien nodig een wachtwoord of sleutelpaarnaam.

    Tip

    Controleer in elke regio welke GPU-VM's worden ondersteund: producten die per regio beschikbaar zijn.

    Als u wilt controleren welke regio uw Azure-abonnement toestaat, probeert u deze Azure-opdracht vanuit Azure Portal. Standard_N Dit N betekent dat het een VM met GPU is.

    az vm list-skus --location <YOUR-REGION> --size Standard_N --all --output table
    
  4. Selecteer de knop Beoordelen en maken onderaan en vervolgens de knop Maken . Het kan één minuut duren voordat de implementatie is voltooid.

De NVIDIA-extensie installeren

Nu we een voor GPU geoptimaliseerde VM hebben, gaan we de NVIDIA-extensie op de VM installeren met behulp van Azure Portal.

  1. Open uw VIRTUELE machine in Azure Portal en selecteer Extensies en toepassingen in het linkermenu.

  2. Selecteer Toevoegen en kies de EXTENSIE voor NVIDIA GPU-stuurprogramma's in de lijst en selecteer vervolgens Volgende.

  3. Kies Beoordelen en maken en vervolgens Maken. Het kan tot 30 minuten duren voordat de implementatie is voltooid.

  4. Als u de installatie in Azure Portal wilt bevestigen, gaat u terug naar het menu Extensies en toepassingen op uw VIRTUELE machine. De nieuwe extensie met de naam NvidiaGpuDriverLinux moet in de lijst met extensies staan en de inrichting wordt weergegeven onder Status.

  5. Voer deze opdracht uit om de installatie te bevestigen met behulp van Azure Cloud Shell om uw extensies weer te geven. Vervang de <> tijdelijke aanduidingen door uw waarden:

    az vm extension list --resource-group <YOUR-RESOURCE-GROUP> --vm-name <YOUR-VM-NAME> -o table
    
  6. Met een NVIDIA-module gebruiken we het NVIDIA System Management Interface-programma, ook wel bekend als nvidia-smi.

    Installeer het nvidia-smi pakket vanaf uw apparaat op basis van uw versie van Ubuntu. Voor deze zelfstudie installeren nvidia-utils-515 we ubuntu 20.04. Selecteer Y wanneer u hierom wordt gevraagd bij de installatie.

    sudo apt install nvidia-utils-515
    

    Hier volgt een lijst met alle nvidia-smi versies. Als u deze uitvoert nvidia-smi zonder deze eerst te installeren, wordt deze lijst afgedrukt in uw console.

    Schermopname van alle nvidia-smi-versies.

  7. Voer na de installatie deze opdracht uit om te bevestigen dat deze is geïnstalleerd:

    nvidia-smi
    

    Er wordt een bevestigingstabel weergegeven, vergelijkbaar met deze tabel.

    Schermopname van de NVIDIA-stuurprogrammatabel.

Notitie

De NVIDIA-extensie is een vereenvoudigde manier om de NVIDIA-stuurprogramma's te installeren, maar mogelijk hebt u meer aanpassing nodig. Zie NVIDIA GPU-stuurprogramma's installeren op vm's uit de N-serie waarop Linux wordt uitgevoerd voor meer informatie over aangepaste installaties op VM's uit de N-serie.

Een module met GPU-versnelling inschakelen

Er zijn verschillende manieren om een IoT Edge-module in te schakelen, zodat deze een GPU gebruikt voor verwerking. Een manier is om een bestaande IoT Edge-module op uw apparaat te configureren om gpu-versneld te worden. Een andere manier is om een vooraf geprefabriceerde containermodule te gebruiken, bijvoorbeeld een module van NVIDIA DIGITS die al is geoptimaliseerd voor GPU. Laten we eens kijken hoe beide manieren worden uitgevoerd.

GPU inschakelen in een bestaande module met DeviceRequests

Als u een bestaande module op uw IoT Edge-apparaat hebt, maakt het toevoegen van een configuratie met behulp DeviceRequestscreateOptions van het implementatiemanifest de module GPU geoptimaliseerd. Volg deze stappen om een bestaande module te configureren.

  1. Ga naar uw IoT Hub in Azure Portal en kies Apparaten in het menu Apparaatbeheer.

  2. Selecteer uw IoT Edge-apparaat om het te openen.

  3. Selecteer het tabblad Modules instellen bovenaan.

  4. Selecteer de module die u wilt inschakelen voor GPU-gebruik in de lijst met IoT Edge-modules .

  5. Er wordt een zijpaneel geopend en kies het tabblad Opties voor container maken .

  6. Kopieer deze HostConfig JSON-tekenreeks en plak deze in het vak Opties maken.

     {
         "HostConfig": {
             "DeviceRequests": 
             [
                 {
                     "Count": -1,
                     "Capabilities": [
                         [
                             "gpu"
                         ]
                     ]
                 }
             ]
         }
     }
    
  7. Selecteer Bijwerken.

  8. Selecteer Controleren + maken. Het nieuwe HostConfig object is nu zichtbaar in de settings module.

  9. Selecteer Maken.

  10. Voer deze opdracht uit op de VM om te bevestigen dat de nieuwe configuratie werkt:

    sudo docker inspect <YOUR-MODULE-NAME>
    

    U ziet nu de parameters die u hebt opgegeven DeviceRequests in de JSON-afdruk in de console.

Notitie

Als u de DeviceRequests parameter beter wilt begrijpen, bekijkt u de broncode: moby/host_config.go

Een GPU inschakelen in een vooraf geprefabriceerde NVIDIA-module

We gaan een NVIDIA DIGITS-module toevoegen aan het IoT Edge-apparaat en vervolgens een GPU toewijzen aan de module door de omgevingsvariabelen in te stellen. Deze NVIDIA-module bevindt zich al in een Docker-container.

  1. Selecteer uw IoT Edge-apparaat in Azure Portal in het menu Apparaten van uw IoT Hub.

  2. Selecteer het tabblad Modules instellen bovenaan.

  3. Selecteer + Toevoegen onder de kop ioT Edge-modules en kies IoT Edge-module.

  4. Geef een naam op in het veld IoT Edge-modulenaam .

  5. Voeg onder het tabblad Module Instellingen het veld Afbeeldings-URI toenvidia/digits:6.0.

  6. Selecteer het tabblad Omgevingsvariabelen .

  7. Voeg de naam NVIDIA_VISIBLE_DEVICES van de omgevingsvariabele toe met de waarde 0. Met deze variabele bepaalt u welke GPU's zichtbaar zijn voor de containertoepassing die wordt uitgevoerd op het edge-apparaat. De NVIDIA_VISIBLE_DEVICES omgevingsvariabele kan worden ingesteld op een door komma's gescheiden lijst met apparaat-id's, die overeenkomen met de fysieke GPU's in het systeem. Als het systeem bijvoorbeeld twee GPU's bevat met apparaat-id's 0 en 1, kan de variabele worden ingesteld op 'NVIDIA_VISIBLE_DEVICES=0,1' om beide GPU's zichtbaar te maken voor de container. In dit artikel, omdat de VIRTUELE machine slechts één GPU heeft, gebruiken we de eerste (en slechts) één.

    Name Type Weergegeven als
    NVIDIA_VISIBLE_DEVICES Sms verzenden 0
  8. Selecteer Toevoegen.

  9. Selecteer Controleren + maken. De eigenschappen van het implementatiemanifest worden weergegeven.

  10. Selecteer Maken om de module te maken.

  11. Selecteer Vernieuwen om de modulelijst bij te werken. Het duurt enkele minuten voordat de module wordt uitgevoerd in de runtimestatus, dus blijf het apparaat vernieuwen.

  12. Voer vanaf uw apparaat deze opdracht uit om te bevestigen dat uw nieuwe NVIDIA-module bestaat en wordt uitgevoerd.

    iotedge list
    

    U ziet uw NVIDIA-module in een lijst met modules op uw IoT Edge-apparaat met de status running.

    Schermopname van het resultaat van de opdracht Iotedge List.

Notitie

Zie de documentatie voor Deep Learning Digits-cijfers voor meer informatie over de NVIDIA DIGITS-containermodule.

Resources opschonen

Als u wilt doorgaan met andere IoT Edge-zelfstudies, kunt u het apparaat gebruiken dat u voor deze zelfstudie hebt gemaakt. Anders kunt u de Azure-resources die u hebt gemaakt verwijderen om kosten te voorkomen.

Als u uw virtuele machine en IoT-hub in een nieuwe resourcegroep hebt gemaakt, kunt u die groep verwijderen, waardoor alle gekoppelde resources worden verwijderd. Controleer de inhoud van de resourcegroep zorgvuldig om te na te gaan of er niets is dat u wilt behouden. Als u de hele groep niet wilt verwijderen, kunt u in plaats daarvan afzonderlijke resources (virtuele machine, apparaat of GPU-module) verwijderen.

Belangrijk

Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt.

Gebruik de volgende opdracht om uw Azure-resourcegroep te verwijderen. Het kan enkele minuten duren voordat een resourcegroep is verwijderd.

az group delete --name <YOUR-RESOURCE-GROUP> --yes

U kunt controleren of de resourcegroep is verwijderd door de lijst met resourcegroepen te bekijken.

az group list

Volgende stappen

Dit artikel heeft u geholpen bij het instellen van uw virtuele machine en IoT Edge-apparaat om gpu-versneld te worden. Als u een toepassing met een vergelijkbare installatie wilt uitvoeren, probeert u het leertraject voor NVIDIA DeepStream-ontwikkeling met Microsoft Azure. In de learn-zelfstudie leert u hoe u geoptimaliseerde intelligente videotoepassingen ontwikkelt die meerdere video-, afbeeldings- en audiobronnen kunnen gebruiken.