Distribuire un modulo IoT abilitato per GPU nel dispositivo Azure Stack Edge Pro GPU
SI APPLICA A: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure 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:
- Si ha accesso a un dispositivo Azure Stack Edge Pro a 1 nodo abilitato per GPU. Questo dispositivo viene attivato con una risorsa in Azure. Vedere Attivare il dispositivo.
- Il calcolo è stato configurato in questo dispositivo. Seguire la procedura descritta in Esercitazione: Configurare le risorse di calcolo nel dispositivo Azure Stack Edge Pro.
- Un'istanza di Registro Azure Container. Passare al pannello Chiavi di accesso e prendere nota del server di accesso del Registro Azure Container, del nome utente e della password. Per altre informazioni, vedere Guida introduttiva: Creare un registro contenitori privato usando il portale di Azure.
- Le risorse di sviluppo seguenti in un client Windows:
- Interfaccia della riga di comando di Azure 2.0 o versione successiva
- Docker CE. È possibile che sia necessario creare un account per scaricare e installare il software.
- Visual Studio Code
- Azure IoT Edge: estensione per Visual Studio Code.
- Estensione Python per Visual Studio Code
- Python 3
- Pip per l'installazione di pacchetti Python (generalmente incluso con l'installazione di Python)
Scaricare il codice di esempio
Passare a Modelli di rete perimetrale intelligente di Azure negli esempi di Azure. Clonare o scaricare il file ZIP per il codice.
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
Aprire la cartella GpuReferenceModules in Visual Studio Code.
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" } } } },
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:
Salvare il file con estensione env nella cartella SampleSolution.
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.
Dopo aver specificato le credenziali, l'accesso ha esito positivo.
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.
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.
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.
La notifica indica il percorso in cui è stato generato il manifesto della distribuzione. Il manifesto è il file
deployment.amd64.json
generato nella cartella config.Selezionare il file deployment.amd64.json nella cartella config e quindi scegliere Crea distribuzione per singolo dispositivo. Non usare il file deployment.template.json.
Nella finestra Output dovrebbe essere visualizzato un messaggio che indica che la distribuzione è riuscita.
Monitorare il modulo
Nel riquadro comandi di VS Code eseguire Azure IoT Hub: Select IoT Hub (Hub IoT di Azure: Seleziona l'hub IoT).
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.
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.
Selezionare il dispositivo, fare clic con il pulsante destro del mouse e selezionare Avvia monitoraggio endpoint eventi predefinito.
Passare a Dispositivi > Moduli per vedere il modulo GPU in esecuzione.
Il terminale di VS Code dovrebbe anche mostrare gli eventi dell'hub IoT come output di monitoraggio per il dispositivo Azure Stack Edge Pro.
È 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
- Altre informazioni su come Configurare la GPU per l'uso di un modulo.