Distribuire un modulo IoT abilitato per GPU nell'hub di Azure Stack

Con un hub di Azure Stack abilitato per gpu, è possibile distribuire moduli a elevato utilizzo di processore nei dispositivi Linux in esecuzione nel IoT Edge. Le dimensioni delle macchine virtuali ottimizzate per la GPU sono macchine virtuali specializzate disponibili con gpu NVIDIA singole o multiple. Questo articolo illustra come usare macchine virtuali ottimizzate per GPU per eseguire carichi di lavoro di calcolo a elevato utilizzo di grafica e visualizzazione.

Prima di iniziare, è necessaria una sottoscrizione Microsoft Entra con accesso ad Azure globale e all'hub di Azure Stack, un Registro Azure Container (ACR) e un hub IoT.

In questo articolo si apprenderà come:

  • Installare una macchina virtuale Linux abilitata per gpu e installare i driver corretti.
  • Installare Docker e abilitare la GPU nel runtime.
  • Connettere il dispositivo IoT all'hub iOT e installare dal marketplace iOT il modello: Getting started with GPUs.
  • Installare e monitorare il dispositivo da un computer locale usando Azure IoT Explorer.
  • Facoltativamente, installare e monitorare il dispositivo usando l'estensione Azure IoT in Visual Studio Code.

Prerequisiti

Sarà necessario disporre delle risorse seguenti nell'istanza dell'hub di Azure Stack, in Azure globale e nel computer di sviluppo locale.

Hub di Azure Stack e Azure

Un computer di sviluppo

  • È possibile usare il proprio computer o una macchina virtuale, a seconda delle preferenze di sviluppo. Il computer di sviluppo dovrà supportare la virtualizzazione annidata. Questa funzionalità è necessaria per l'esecuzione di Docker, il motore del contenitore usato in questo articolo.

  • Il computer di sviluppo richiederà le risorse seguenti:

Registrare un dispositivo IoT Edge

Usare un dispositivo separato per ospitare il dispositivo IoT Edge. L'uso di un dispositivo separato fornirà una separazione tra il computer di sviluppo e IoT Edge dispositivo rispecchia in modo più accurato uno scenario di distribuzione.

Creare un dispositivo IoT Edge in Azure con una macchina virtuale Linux:

  1. Creare una macchina virtuale server Linux serie N nell'hub di Azure Stack. Durante l'installazione dei componenti per il server, si interagirà con il server tramite SSH. Per altre informazioni, vedere Usare una coppia di chiavi SSH con l'hub di Azure Stack.

  2. Creare e registrare un dispositivo IoT Edge

Preparare una macchina virtuale abilitata per la GPU

  1. Installare i driver GPU NVIDA nel server Linux serie N seguendo la procedura descritta nell'articolo Installare i driver GPU NVIDIA nelle macchine virtuali serie N che eseguono Linux.

    Nota

    Si userà la riga di comando bash per installare il software. Prendere nota dei comandi perché si useranno gli stessi comandi per installare i driver nel contenitore in esecuzione in Docker nella macchina virtuale abilitata per GPU

  2. Installare il runtime di IoT Edge più recente nel server Linux serie N nell'hub di Azure Stack. Per istruzioni, vedere Installare il runtime di Azure IoT Edge in sistemi Linux basati su Debian.

Installare Docker

Installare Docker nella macchina virtuale abilitata per LA GPU. Si eseguirà il modulo dal marketplace IoT Edge in un contenitore nella macchina virtuale.

È necessario installare Docker 19.02 o versione successiva. Il runtime Docker supporta ora le GPU NVIDIA. Per altre informazioni sulle GPU bout in Docker, vedere l'articolo nella documentazione di Docker, opzioni di runtime con memoria, CPU e GPU.

Installare Docker

I contenitori Docker possono essere eseguiti ovunque, in locale nel data center del cliente, in un provider di servizi esterno o nel cloud, in Azure. I contenitori di immagini Docker possono essere eseguiti in modo nativo in Linux e Windows. Tuttavia, le immagini Windows possono essere eseguite solo negli host Windows e le immagini Linux possono essere eseguite in host Linux e in host Windows (con una macchina virtuale Linux Hyper-V, per il momento), dove con host si intende una macchina virtuale o un server. Per altre informazioni, vedere Che cos'è Docker?.

  1. Connettersi al server Linux serie N usando il client SSH.

  2. Aggiornare l'indice e gli elenchi apt.

    sudo apt-get update
    
  3. Recuperare le nuove versioni dei pacchetti esistenti nel computer.

    sudo apt-get upgrade
    
  4. Installare le dipendenze necessarie per aggiungere il repository apt di Docker.

    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    
  5. Aggiungere la chiave GPG di Docker.

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  6. Aggiungere il repository apt di Docker.

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  7. Aggiornare l'indice e gli elenchi apt e installare Docker Community Edition.

    sudo apt-get update 
    sudo apt-get install docker-ce
    
  8. Verificare l'installazione controllando la versione di Docker.

    docker -v
    
  9. Esporre le risorse GPU disponibili in Docker.

    docker run -it --rm --gpus all ubuntu nvidia-smi
    

Ottenere l'elemento dal marketplace

Tornare alla portale di Azure e aggiungere il modello al dispositivo perimetrale usando il marketplace iOT. Selezionare Modulo marketplace dal menu. Getting started with GPUsCercare e seguire le istruzioni per aggiungere il modulo.

Per istruzioni, vedere Selezionare il dispositivo e aggiungere moduli

Abilitare il monitoraggio

  1. Scaricare Azure IoT Explorer e connettere l'applicazione al hub IoT.

  2. Selezionare il dispositivo IoT e passare a Telemetria dal menu di spostamento.

  3. Selezionare Avvia per avviare il monitoraggio dell'output dal IoT Edge Dispositivo.

un'installazione valida

Monitorare il modulo (facoltativo)

  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 nell'istanza dell'hub di Azure Stack e selezionare il dispositivo IoT Edge creato per l'hub di Azure Stack. 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 all'hub di Azure Stack.

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

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

    3. Il terminale di VS Code dovrebbe anche visualizzare gli eventi hub IoT come output di monitoraggio per l'hub di Azure Stack.

    un'installazione valida è

    È possibile notare che il tempo impiegato per eseguire lo stesso set di operazioni (5000 iterazioni della trasformazione della forma) da GPU è molto minore di quanto sia per la CPU.

Passaggi successivi