Dela via


Självstudie: Konfigurera, ansluta och verifiera en IoT Edge-modul för en GPU

Gäller för:Bockmarkering för IoT Edge 1.5 IoT Edge 1.5 Bockmarkering för IoT Edge 1.4 IoT Edge 1.4

Viktigt!

IoT Edge 1.5 LTS och IoT Edge 1.4 LTS stöds. IoT Edge 1.4 LTS upphör den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.

Den här självstudien visar hur du skapar en GPU-aktiverad virtuell dator (VM). Från den virtuella datorn ser du hur du kör en IoT Edge-enhet som allokerar arbete från en av dess moduler till din GPU.

Vi använder Azure-portalen, Azure Cloud Shell och den virtuella datorns kommandorad för att:

Förutsättningar

Skapa en GPU-optimerad virtuell dator

Om du vill skapa en GPU-optimerad virtuell dator (VM) är det viktigt att välja rätt storlek. Alla VM-storlekar rymmer inte GPU-bearbetning. Dessutom finns det olika VM-storlekar för olika arbetsbelastningar. Mer information finns i GPU-optimerade storlekar för virtuella datorer eller prova väljaren Virtuella datorer.

Nu ska vi skapa en virtuell IoT Edge-dator med Azure Resource Manager-mallen (ARM) i GitHub och sedan konfigurera den så att den är GPU-optimerad.

  1. Gå till mallen för distribution av virtuella IoT Edge-datorer i GitHub: Azure/iotedge-vm-deploy.

  2. Välj knappen Distribuera till Azure, som initierar skapandet av en anpassad virtuell dator åt dig i Azure-portalen.

  3. Fyll i fälten för anpassad distribution med dina Azure-autentiseringsuppgifter och resurser:

    Property Beskrivning eller exempelvärde
    Prenumeration Välj din Azure-kontoprenumeration.
    Resursgrupp Lägg till din Azure-resursgrupp.
    Region East US
    Virtuella GPU-datorer är inte tillgängliga i alla regioner.
    DNS-etikettprefix Skapa ett namn för den virtuella datorn.
    Användarnamn för administratör adminUser
    Du kan också skapa ett eget användarnamn.
    Enhetens anslutningssträng Kopiera din anslutningssträng från din IoT Edge-enhet och klistra sedan in här.
    Storlek på virtuell dator Standard_NV6
    Authentication type Välj antingen lösenord eller offentlig SSH-nyckel och skapa sedan ett lösenord eller nyckelparnamn om det behövs.

    Dricks

    Kontrollera vilka virtuella GPU-datorer som stöds i varje region: Produkter som är tillgängliga per region.

    Om du vill kontrollera vilken region din Azure-prenumeration tillåter kan du prova det här Azure-kommandot från Azure-portalen. In NStandard_N innebär att det är en GPU-aktiverad virtuell dator.

    az vm list-skus --location <YOUR-REGION> --size Standard_N --all --output table
    
  4. Välj knappen Granska + skapa längst ned och sedan knappen Skapa. Distributionen kan ta upp en minut att slutföra.

Installera NVIDIA-tillägget

Nu när vi har en GPU-optimerad virtuell dator ska vi installera NVIDIA-tillägget på den virtuella datorn med hjälp av Azure-portalen.

  1. Öppna den virtuella datorn i Azure-portalen och välj Tillägg + program på den vänstra menyn.

  2. Välj Lägg till och välj NVIDIA GPU Driver Extension i listan och välj sedan Nästa.

  3. Välj Granska + skapa och sedan Skapa. Distributionen kan ta upp till 30 minuter att slutföra.

  4. Bekräfta installationen i Azure-portalen genom att gå tillbaka till menyn Tillägg + program på den virtuella datorn. Det nya tillägget med namnet NvidiaGpuDriverLinux ska finnas i listan över tillägg och visa Etableringen lyckades under Status.

  5. Om du vill bekräfta installationen med Hjälp av Azure Cloud Shell kör du det här kommandot för att visa en lista över dina tillägg. <> Ersätt platshållarna med dina värden:

    az vm extension list --resource-group <YOUR-RESOURCE-GROUP> --vm-name <YOUR-VM-NAME> -o table
    
  6. Med en NVIDIA-modul använder vi NVIDIA System Management Interface-programmet, även kallat nvidia-smi.

    Installera paketet baserat på din version av Ubuntu från enheten nvidia-smi . I den här självstudien installerar nvidia-utils-515 vi för Ubuntu 20.04. Välj Y när du uppmanas att göra det i installationen.

    sudo apt install nvidia-utils-515
    

    Här är en lista över alla nvidia-smi versioner. Om du kör nvidia-smi utan att installera den först skrivs den här listan ut i konsolen.

    Skärmbild av alla

  7. Efter installationen kör du det här kommandot för att bekräfta att det är installerat:

    nvidia-smi
    

    En bekräftelsetabell visas, ungefär som i den här tabellen.

    Skärmbild av NVIDIA-drivrutinstabellen.

Kommentar

NVIDIA-tillägget är ett förenklat sätt att installera NVIDIA-drivrutinerna, men du kan behöva mer anpassning. Mer information om anpassade installationer på virtuella datorer i N-serien finns i Installera NVIDIA GPU-drivrutiner på virtuella datorer i N-serien som kör Linux.

Aktivera en modul med GPU-acceleration

Det finns olika sätt att aktivera en IoT Edge-modul så att den använder en GPU för bearbetning. Ett sätt är att konfigurera en befintlig IoT Edge-modul på enheten så att den blir GPU-accelererad. Ett annat sätt är att använda en prefabricerad containermodul, till exempel en modul från NVIDIA DIGITS som redan är GPU-optimerad. Nu ska vi se hur båda sätten går till.

Aktivera GPU i en befintlig modul med DeviceRequests

Om du har en befintlig modul på din IoT Edge-enhet blir modulen GPU-optimerad genom att lägga till en konfiguration som använder DeviceRequests i createOptions distributionsmanifestet. Följ de här stegen för att konfigurera en befintlig modul.

  1. Gå till din IoT Hub i Azure-portalen och välj Enhetermenyn Enhetshantering .

  2. Välj din IoT Edge-enhet för att öppna den.

  3. Välj fliken Ange moduler överst .

  4. Välj den modul som du vill aktivera för GPU-användning i listan IoT Edge-moduler .

  5. En sidopanel öppnas och väljer fliken Alternativ för att skapa container.

  6. Kopiera den här HostConfig JSON-strängen och klistra in den i rutan Skapa alternativ .

     {
         "HostConfig": {
             "DeviceRequests": 
             [
                 {
                     "Count": -1,
                     "Capabilities": [
                         [
                             "gpu"
                         ]
                     ]
                 }
             ]
         }
     }
    
  7. Välj Uppdatera.

  8. Välj Granska + skapa. Det nya HostConfig objektet visas nu i modulen settings .

  9. Välj Skapa.

  10. Bekräfta att den nya konfigurationen fungerar genom att köra det här kommandot på den virtuella datorn:

    sudo docker inspect <YOUR-MODULE-NAME>
    

    Du bör se de parametrar som du angav för DeviceRequests i JSON-utskriften i konsolen.

Kommentar

Om du vill förstå parametern DeviceRequests bättre kan du visa källkoden: moby/host_config.go

Aktivera en GPU i en prefabricerad NVIDIA-modul

Nu ska vi lägga till en NVIDIA DIGITS-modul till IoT Edge-enheten och sedan allokera en GPU till modulen genom att ange dess miljövariabler. Den här NVIDIA-modulen finns redan i en Docker-container.

  1. Välj din IoT Edge-enhet i Azure-portalen från IoT Hub-menyn Enheter .

  2. Välj fliken Ange moduler överst .

  3. Välj + Lägg till under rubriken IoT Edge-moduler och välj IoT Edge-modul.

  4. Ange ett namn i fältet IoT Edge-modulnamn .

  5. Under fliken Modul Inställningar lägger du till nvidia/digits:6.0 i fältet Bild-URI.

  6. Välj fliken Miljövariabler .

  7. Lägg till miljövariabelnamnet NVIDIA_VISIBLE_DEVICES med värdet 0. Den här variabeln styr vilka GPU:er som är synliga för det containerbaserade program som körs på gränsenheten. Miljövariabeln NVIDIA_VISIBLE_DEVICES kan ställas in på en kommaavgränsad lista över enhets-ID:n, som motsvarar de fysiska GPU:erna i systemet. Om det till exempel finns två GPU:er i systemet med enhets-ID:n 0 och 1 kan variabeln anges till "NVIDIA_VISIBLE_DEVICES=0,1" för att göra båda GPU:erna synliga för containern. I den här artikeln använder vi den första (och enda) en eftersom den virtuella datorn bara har en GPU.

    Namn Typ Värde
    NVIDIA_VISIBLE_DEVICES Text 0
  8. Markera Lägga till.

  9. Välj Granska + skapa. Egenskaperna för distributionsmanifestet visas.

  10. Välj Skapa för att skapa modulen.

  11. Välj Uppdatera för att uppdatera modullistan. Det tar några minuter för modulen att visa körningeni Körningsstatus, så fortsätt att uppdatera enheten.

  12. Från enheten kör du det här kommandot för att bekräfta att den nya NVIDIA-modulen finns och körs.

    iotedge list
    

    Du bör se NVIDIA-modulen i en lista över moduler på din IoT Edge-enhet med statusen running.

    Skärmbild av resultatet av kommandot

Kommentar

Mer information om containermodulen NVIDIA DIGITS finns i dokumentationen om djupinlärningssiffror.

Rensa resurser

Om du vill fortsätta med andra IoT Edge-självstudier kan du använda den enhet som du skapade för den här självstudien. Annars kan du ta bort de Azure-resurser som du skapade för att undvika avgifter.

Om du har skapat den virtuella datorn och IoT-hubben i en ny resursgrupp kan du ta bort den gruppen, vilket tar bort alla associerade resurser. Kontrollera att det inte finns något du vill behålla i innehållet i resursgruppen. Om du inte vill ta bort hela gruppen kan du ta bort enskilda resurser (virtuell dator, enhet eller GPU-modul) i stället.

Viktigt!

Att ta bort en resursgrupp kan inte ångras.

Använd följande kommando för att ta bort din Azure-resursgrupp. Det kan ta några minuter att ta bort en resursgrupp.

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

Du kan bekräfta att resursgruppen har tagits bort genom att visa listan över resursgrupper.

az group list

Nästa steg

Den här artikeln hjälpte dig att konfigurera den virtuella datorn och IoT Edge-enheten så att den blir GPU-accelererad. Om du vill köra ett program med en liknande konfiguration kan du prova utbildningsvägen för NVIDIA DeepStream-utveckling med Microsoft Azure. I learn-självstudien får du lära dig hur du utvecklar optimerade intelligenta videoprogram som kan använda flera video-, bild- och ljudkällor.