Condividi tramite


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

SI APPLICA A:Yes for Pro - GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure 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 agli esempi di Modelli di Edge intelligente di Azure in Azure. Clonare o scaricare il file ZIP per il codice.

    Download zip file

    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.

    Open 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_Uedizione Standard RNAME, 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 file con estensione env di esempio:

    Create and save .env file

  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.

    Access keys in your container registry

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

    Successful sign in

  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 scegliere Compila e push della soluzione IoT Edge.

    Build and push IoT Edge solution

    Se l'estensione Python e Python non sono installate, queste verranno installate 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.

    Module in container registry

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

    Generate IoT Edge deployment manifest

    La notifica informa il percorso in cui è stato generato il manifesto della distribuzione. Il manifesto è il deployment.amd64.json file 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.

    Deployment succeeded in 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 scegliere Avvia monitoraggio endpoint evento predefinito.

      Start monitoring

    2. Passare a Dispositivi > Moduli e dovrebbe essere visualizzato il modulo GPU in esecuzione.

      Module in IoT Hub

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

      Monitoring output

      È 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