Condividi tramite


Distribuire un modulo IoT abilitato per GPU nel dispositivo Azure Stack Edge Pro GPU

SI APPLICA A: Sì per SKU GPU ProAzure Stack Edge Pro - GPUSì per lo SKU Pro 2Azure Stack Edge Pro 2Sì per SKU R ProAzure Stack Edge Pro R

Nota

È consigliabile distribuire la versione più recente di IoT Edge in una macchina virtuale Linux. IoT Edge gestito in Azure Stack Edge usa una versione precedente del runtime di IoT Edge che non dispone delle funzionalità e delle patch più recenti. Per istruzioni, vedere Come distribuire una macchina virtuale Ubuntu. Per altre informazioni su altre distribuzioni Linux supportate che possono eseguire IoT Edge, vedere Sistemi supportati di Azure IoT Edge - Motori di contenitori.

Questo articolo descrive come distribuire un modulo IoT Edge abilitato per GPU nel dispositivo Azure Stack Edge Pro GPU.

In questo articolo vengono illustrate le operazioni seguenti:

  • Preparare Azure Stack Edge Pro per eseguire un modulo GPU.
  • Scaricare e installare il codice di esempio da un repository Git.
  • Compilare la soluzione e generare un manifesto della distribuzione.
  • Distribuire la soluzione nel dispositivo Azure Stack Edge Pro.
  • Monitorare l'output del modulo.

Informazioni sul modulo di esempio

Il modulo di esempio GPU in questo articolo include il codice di esempio PyTorch e TensorFlow per la CPU rispetto alla GPU.

Prerequisiti

Prima di iniziare, verifica di disporre di:

Scaricare il codice di esempio

  1. Passare a Modelli di rete perimetrale intelligente di Azure negli esempi di Azure. Clonare o scaricare il file ZIP per il codice.

    Scaricare il file zip

    Estrarre i file dal file ZIP. È anche possibile clonare gli esempi.

    git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
    

Compilare e distribuire il modulo

  1. Aprire la cartella GpuReferenceModules in Visual Studio Code.

    Aprire GPUReferenceModules in VS Code

  2. Aprire deployment.template.json e identificare i parametri a cui fa riferimento per il registro contenitori. Nel file seguente vengono usati CONTAINER_REGISTRY_USERNAME, CONTAINER_REGISTRY_PASSWORD e 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"
                  }
                }
              }
            },
    
  3. Creare un nuovo file. Compilare i valori per i parametri del registro contenitori (usare quelli identificati nel passaggio precedente) come indicato di seguito:

    CONTAINER_REGISTRY_NAME=<YourContainerRegistryName>
    CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName>
    CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
    

    Di seguito è riportato un esempio file con estensione env:

    Creare e salvare il file con estensione env

  4. Salvare il file con estensione env nella cartella SampleSolution.

  5. Per accedere a Docker, immettere il comando seguente nel terminale integrato di Visual Studio Code.

    docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
    

    Passare alla sezione Chiavi di accesso del registro contenitori nel portale di Azure. Copiare e usare il nome del Registro di sistema, la password e il server di accesso.

    Chiavi di accesso nel registro contenitori

    Dopo aver specificato le credenziali, l'accesso ha esito positivo.

    Accesso riuscito

  6. Eseguire il push dell'immagine nel registro Azure Container. In Esplora risorse di VS Code selezionare e fare clic con il pulsante destro del mouse sul file deployment.template.json e quindi selezionare Compilazione e push della soluzione IoT Edge.

    Build and Push IoT Edge Solution

    Se Python e la relativa estensione non sono installati, lo saranno durante la compilazione e il push della soluzione. Ciò comporta tuttavia tempi di compilazione più lunghi.

    Al termine di questo passaggio, il modulo viene visualizzato nel registro contenitori.

    Modulo nel registro contenitori

  7. Per creare un manifesto della distribuzione, fare clic con il pulsante destro del mouse su deployment.template.json e quindi selezionare Genera manifesto della distribuzione IoT Edge.

    Generate IoT Edge deployment manifest (Genera manifesto della distribuzione di IoT Edge)

    La notifica indica il percorso in cui è stato generato il manifesto della distribuzione. Il manifesto è il file deployment.amd64.json generato nella cartella config.

  8. Selezionare il file deployment.amd64.json nella cartella config e quindi scegliere Crea distribuzione per singolo dispositivo. Non usare il file deployment.template.json.

    Create Deployment for Single Device

    Nella finestra Output dovrebbe essere visualizzato un messaggio che indica che la distribuzione è riuscita.

    Distribuzione completata nell'output

Monitorare il modulo

  1. Nel riquadro comandi di VS Code eseguire Azure IoT Hub: Select IoT Hub (Hub IoT di Azure: Seleziona l'hub IoT).

  2. Scegliere la sottoscrizione e l'hub IoT che contiene il dispositivo IoT Edge che si vuole configurare. In questo caso, selezionare la sottoscrizione usata per distribuire il dispositivo Azure Stack Edge Pro e selezionare il dispositivo IoT Edge creato per il dispositivo Azure Stack Edge Pro. Ciò si verifica quando si configura il calcolo tramite il portale di Azure nei passaggi precedenti.

  3. Nello strumento di esplorazione di VS Code espandere la sezione Hub IoT di Azure. In Dispositivi dovrebbe essere visualizzato il dispositivo IoT Edge corrispondente al dispositivo Azure Stack Edge Pro.

    1. Selezionare il dispositivo, fare clic con il pulsante destro del mouse e selezionare Avvia monitoraggio endpoint eventi predefinito.

      Avviare il monitoraggio

    2. Passare a Dispositivi > Moduli per vedere il modulo GPU in esecuzione.

      Modulo nell'hub IoT

    3. Il terminale di VS Code dovrebbe anche mostrare gli eventi dell'hub IoT come output di monitoraggio per il dispositivo Azure Stack Edge Pro.

      Output di monitoraggio

      È possibile notare che il tempo impiegato per eseguire lo stesso set di operazioni (5000 iterazioni della trasformazione forma) da GPU è molto inferiore a quello della CPU.

Passaggi successivi