Distribuire un modulo Internet delle cose abilitate per la GPU nell'hub Azure StackDeploy a GPU enabled IoT module on Azure Stack Hub

Con un hub Azure Stack abilitato per GPU, è possibile distribuire moduli con utilizzo intensivo del processore a dispositivi Linux in esecuzione nel IoT Edge.With a GPU-enabled Azure Stack Hub, you can deploy processor-intensive modules to Linux devices running at the IoT Edge. Le dimensioni delle macchine virtuali ottimizzate per la GPU sono macchine virtuali specializzate disponibili con una o più GPU NVIDIA.GPU optimized VM sizes are specialized VMs available with single or multiple NVIDIA GPUs. Questo articolo illustra come usare macchine virtuali ottimizzate per la GPU per eseguire carichi di lavoro a elevato utilizzo di calcolo, a elevato utilizzo di grafica e di visualizzazione.In this article, learn to use GPU optimized VMs to run compute-intensive, graphics-intensive, and visualization workloads.

Prima di iniziare, è necessaria una sottoscrizione di Azure Active Directory (Azure AD) con accesso a Global Azure e Azure Stack Hub, un Container Registry di Azure (ACR) e un hub Internet.Before you start, you will need an Azure Active Directory (Azure AD) subscription with access to global Azure and Azure Stack Hub, an Azure Container Registry (ACR), and an IoT hub.

In questo articolo si apprenderà come:In this article, you:

  • Installare una VM Linux abilitata per GPU e installare i driver corretti.Install an GPU-enabled Linux VM and install the correct drivers.
  • Installare Docker e abilitare la GPU nel Runtime.Install Docker and enable the GPU in the runtime.
  • Connettere il dispositivo Internet delle cose all'hub Internet delle cose e installare dal Marketplace di Internet delle cose: Getting started with GPUs .Connect your IoT device to your iOT Hub and install from the iOT marketplace the model: Getting started with GPUs.
  • Installare e monitorare il dispositivo da un computer locale usando Azure Internet Explorer.Install and monitor your device from a local machine using Azure IoT explorer.
  • E, facoltativamente, installare e monitorare il dispositivo usando l'estensione Azure Internet in Visual Studio Code.And optionally, install and monitor your device using the Azure IoT extension in Visual Studio Code.

PrerequisitiPrerequisites

È necessario disporre delle risorse seguenti nell'istanza dell'hub Azure Stack, in Azure globale e nel computer di sviluppo locale.You'll need to have the following resources in place in your Azure Stack Hub instance, global Azure, and on your local development machine.

Hub Azure Stack e AzureAzure Stack Hub and Azure

  • Una sottoscrizione come utente che usa Azure Active Directory (Azure AD) in un sistema integrato di Azure Stack Hub con una GPU NVIDIA.A subscription as a user using Azure Active Directory (Azure AD) in an Azure Stack Hub Integrated System with an NVIDA GPU. I chip seguenti funzionano con l'hub Internet:The following chips work with iOT Hub:

    • NCv3NCv3
    • NCas_v4NCas_v4

    Per altre informazioni sulle GPU nell'hub Azure Stack, vedere VM GPU (Graphics Processing Unit) nell'hub Azure stack.For more information about GPUs on Azure Stack Hub, see Graphics processing unit (GPU) VM on Azure Stack Hub.

  • Una sottoscrizione di Azure globale.A global Azure subscription. Se non si ha una sottoscrizione di Azure globale, creare un account gratuito prima di iniziare.If you don't have a global Azure subscription, create a free account before you begin.

  • Un container Registry di Azure (ACR).An Azure Container Registry (ACR). Prendere nota del server di accesso di ACR, nome utente e password.Make a note of the ACR sign-in server, username, and password.

  • Un Hub di tutto il livello gratuito o standard in Azure globale.A free or standard-tier IoT hub in global Azure.

Un computer di sviluppoA development machine

  • È possibile usare il proprio computer o una macchina virtuale, a seconda delle preferenze di sviluppo.You can use your own computer or a virtual machine, depending on your development preferences. Il computer di sviluppo dovrà supportare la virtualizzazione nidificata.Your development machine will need to support nested virtualization. Questa funzionalità è necessaria per l'esecuzione di Docker, il motore di contenitori usato in questo articolo.This capability is necessary for running Docker, the container engine used in this article.

  • Il computer di sviluppo dovrà disporre delle risorse seguenti:Your development machine will need the following resources:

Registrare un dispositivo IoT EdgeRegister an IoT Edge device

Usare un dispositivo separato per ospitare il dispositivo IoT Edge.Use a separate device to host your IoT Edge device. L'uso di un dispositivo separato fornirà una separazione tra il computer di sviluppo e IoT Edge dispositivo riflette più accuratamente uno scenario di distribuzione.Using a separate device will provide a separation between your development machine and IoT Edge device more accurately mirrors a deployment scenario.

Creare un dispositivo IoT Edge in Azure con una VM Linux:Create an IoT Edge device in Azure with a Linux VM:

  1. Creare una VM Server Linux serie N nell'hub Azure stack.Create an N-series Linux server VM on Azure Stack Hub. Quando si installano i componenti per il server, si interagirà con il server tramite SSH.As you install components for your server, you'll interact with the server via SSH. Per altre informazioni, vedere usare una chiave pubblica SSH.For more information, see Use an SSH public key.

  2. Creare e registrare un dispositivo IoT EdgeCreate and register an IoT Edge Device

Preparare una VM abilitata per GPUPrepare a GPU-enabled VM

  1. Installare i driver GPU NVIDIA sul server Linux serie N seguendo la procedura descritta nell'articolo installare driver GPU NVIDIA in VM serie n che eseguono Linux.Install the NVIDA GPU Drivers on your N-series Linux server by following the steps in the article, Install NVIDIA GPU drivers on N-series VMs running Linux.

    Nota

    Usare la riga di comando bash per installare il software.You'll use the bash command line to install your software. Prendere nota dei comandi perché si useranno gli stessi comandi per installare i driver nel contenitore in esecuzione in Docker nella VM abilitata per GPUMake a note of the commands since you'll use the same commands to install the drivers on the container running in Docker on your GPU-enabled VM

  2. Installare la versione più recente di IoT Edge runtime sul server Linux serie N nell'hub Azure Stack.Install the latest IoT Edge runtime on your N-series Linux server in Azure Stack Hub. Per istruzioni, vedere installare il runtime di Azure IOT Edge nei sistemi Linux basati su DebianFor instructions, see Install the Azure IoT Edge runtime on Debian-based Linux systems

Installazione di DockerInstall Docker

Installare Docker nella VM abilitata per GPU.Install Docker on your GPU-enabled VM. Il modulo verrà eseguito da IoT Edge Marketplace in un contenitore nella macchina virtuale.You're going to run the module from the IoT Edge marketplace in a container on the VM.

È necessario installare Docker 19,02 o versione successiva.You must install Docker 19.02 or greater. Il runtime Docker supporta ora le GPU NVIDIA.The Docker runtime now supports the NVIDIA GPUs. Per altre informazioni sulle GPU di attacco in Docker, vedere l'articolo nella documentazione di Docker, Opzioni di runtime con memoria, CPU e GPU.To learn more bout GPUs in Docker, see the article in the Docker docs, Runtime options with Memory, CPUs, and GPUs.

Installazione di DockerInstall 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.Docker containers can run anywhere, on-premises in the customer datacenter, in an external service provider or in the cloud, on Azure. I contenitori di immagini Docker possono essere eseguiti in modo nativo in Linux e Windows.Docker image containers can run natively on Linux and 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.However, Windows images can run only on Windows hosts and Linux images can run on Linux hosts and Windows hosts (using a Hyper-V Linux VM, so far), where host means a server or a VM. Per altre informazioni, vedere che cos'è Docker?.For more information, see What is Docker?.

  1. Connettersi al server Linux serie N usando il client SSH.Connect to your N-series Linux server using your SSH client.

  2. Aggiornare l'indice e gli elenchi apt.Update the apt index and lists.

    sudo apt-get update
    
  3. Recuperare le nuove versioni dei pacchetti esistenti nel computer.Fetch the new versions of existing packages on the machine.

    sudo apt-get upgrade
    
  4. Installare le dipendenze necessarie per aggiungere il repository APT di Docker.Install dependencies required to add Docker's apt repository.

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

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

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  7. Aggiornare gli elenchi e gli indici apt e installare Docker Community Edition.Update apt index and lists, and install Docker Community Edition.

    sudo apt-get update 
    sudo apt-get install docker-ce
    
  8. Verificare l'installazione controllando la versione di Docker.Verify install by checking the Docker version.

    docker -v
    
  9. Esporre le risorse GPU disponibili in docker.Expose the available GPU resources in Docker.

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

Ottenere l'elemento dal MarketplaceGet the item from the marketplace

Tornare alla portale di Azure e aggiungere il modello al dispositivo perimetrale usando il Marketplace Internet delle cose.Return to the Azure portal and add the the model to your edge device using the iOT marketplace. Selezionare modulo Marketplace dal menu.Select Marketplace Module from the menu. Cercare e Getting started with GPUs seguire le istruzioni per aggiungere il modulo.And search for Getting started with GPUs, and follow the instructions to add the module.

Per istruzioni , vedere Selezionare un dispositivo e aggiungere moduliFor instructions see Select device and add modules

Abilitare il monitoraggioEnable monitoring

  1. Scaricare Azure Internet Explorere connettere l'applicazione all'hub Internet.Download Azure IoT explorer, and connect the application to your IoT Hub.

  2. Selezionare il dispositivo e passare alla telemetria dal menu di navigazione.Select your IoT Device and navigate to Telemetry from the navigation menu.

  3. Selezionare Start per avviare il monitoraggio dell'output dal dispositivo IOT Edge.Select Start to begin monitoring output from the IoT Edge Device.

un'installazione valida

Monitorare il modulo (facoltativo)Monitor the module (Optional)

  1. Nel riquadro comandi di VS Code eseguire Azure IoT Hub: Select IoT Hub (Hub IoT di Azure: Seleziona l'hub IoT).In the VS Code command palette, run Azure IoT Hub: Select IoT Hub.

  2. Scegliere la sottoscrizione e l'hub IoT che contiene il dispositivo IoT Edge che si vuole configurare.Choose the subscription and IoT hub that contain the IoT Edge device that you want to configure. In questo caso, selezionare la sottoscrizione usata per distribuire il dispositivo Azure Stack Edge e selezionare il dispositivo IoT Edge creato per il dispositivo Azure Stack Edge.In this case, select the subscription used to deploy the Azure Stack Edge device, and select the IoT Edge device created for your Azure Stack Edge device. Questo errore si verifica quando si configura il calcolo tramite il portale di Azure nei passaggi precedenti.This occurs when you configure compute via the Azure portal in the earlier steps.

  3. In Esplora VS Code espandere la sezione Hub Azure.In the VS Code explorer, expand the Azure IoT Hub section. In dispositivi dovrebbe essere visualizzato il dispositivo IOT Edge corrispondente al dispositivo Azure stack Edge.Under Devices, you should see the IoT Edge device corresponding to your Azure Stack Edge device.

    1. Selezionare il dispositivo, fare clic con il pulsante destro del mouse e scegliere Avvia monitoraggio endpoint evento predefinito.Select that device, right-click, and select Start Monitoring Built-in Event Endpoint.

    2. Passare a dispositivi > moduli e dovrebbe essere visualizzato il modulo GPU in esecuzione.Go to Devices > Modules and you should see your GPU module running.

    3. Il terminale VS Code dovrebbe anche visualizzare gli eventi dell'hub Internet come output di monitoraggio per il dispositivo Azure Stack Edge.The VS Code terminal should also show the IoT Hub events as the monitoring output for your Azure Stack Edge device.

    un'installazione valida è

    È possibile notare che il tempo impiegato per eseguire lo stesso set di operazioni (5000 iterazioni della trasformazione forma) dalla GPU è molto inferiore rispetto a quello per la CPU.You can see that the time taken to execute the same set of operations (5000 iterations of shape transformation) by GPU is lot lesser than it is for CPU.

Passaggi successiviNext Steps