Implementar um módulo IoT ativado para GPU no Azure Stack Hub

Com um Azure Stack Hub compatível com GPU, pode implementar módulos de processador intensivo em dispositivos Linux em execução no IoT Edge. Os tamanhos de VM otimizados para GPU são VMs especializadas disponíveis com GPUs NVIDIA individuais ou múltiplas. Neste artigo, saiba como utilizar VMs otimizadas para GPU para executar cargas de trabalho de computação intensiva, gráficos e visualização.

Antes de começar, precisará de uma subscrição Microsoft Entra com acesso ao Azure global e ao Azure Stack Hub, um Azure Container Registry (ACR) e um hub IoT.

Neste artigo, irá:

  • Instale uma VM do Linux ativada para GPU e instale os controladores corretos.
  • Instale o Docker e ative a GPU no runtime.
  • Ligue o seu dispositivo IoT ao hub iOT e instale a partir do marketplace iOT o modelo: Getting started with GPUs.
  • Instale e monitorize o seu dispositivo a partir de um computador local com o Explorador de IoT do Azure.
  • Opcionalmente, instale e monitorize o seu dispositivo com a extensão do Azure IoT no Visual Studio Code.

Pré-requisitos

Terá de ter os seguintes recursos implementados na instância do Azure Stack Hub, no Azure global e no computador de desenvolvimento local.

Azure Stack Hub e Azure

  • Uma subscrição como utilizador com Microsoft Entra ID num Sistema Integrado do Azure Stack Hub com uma GPU NVIDA. Os seguintes chips funcionam com o Hub iOT:

    • NCv3
    • NCas_v4

    Para obter mais informações sobre GPUs no Azure Stack Hub, veja VM da Unidade de processamento gráfico (GPU) no Azure Stack Hub.

  • Uma subscrição global do Azure. Se não tiver uma subscrição global do Azure, crie uma conta gratuita antes de começar.

  • Um Azure Container Registry (ACR). Anote o servidor de início de sessão do ACR, o nome de utilizador e a palavra-passe.

  • Um hub IoT gratuito ou standard no Azure global.

Uma máquina de desenvolvimento

  • Pode utilizar o seu próprio computador ou uma máquina virtual, consoante as suas preferências de desenvolvimento. A máquina de desenvolvimento terá de suportar a virtualização aninhada. Esta capacidade é necessária para executar o Docker, o motor de contentor utilizado neste artigo.

  • O computador de desenvolvimento precisará dos seguintes recursos:

Registar um dispositivo do IoT Edge

Utilize um dispositivo separado para alojar o seu dispositivo IoT Edge. A utilização de um dispositivo separado proporcionará uma separação entre o computador de desenvolvimento e IoT Edge dispositivo reflete com maior precisão um cenário de implementação.

Crie um dispositivo IoT Edge no Azure com uma VM do Linux:

  1. Crie uma VM do servidor Linux da série N no Azure Stack Hub. À medida que instala componentes para o seu servidor, irá interagir com o servidor através de SSH. Para obter mais informações, veja Utilizar um par de chaves SSH com o Azure Stack Hub.

  2. Criar e registar um Dispositivo IoT Edge

Preparar uma VM ativada para GPU

  1. Instale os Controladores de GPU NVIDA no servidor Linux da série N ao seguir os passos descritos no artigo Instalar controladores de GPU NVIDIA em VMs da série N com o Linux.

    Nota

    Irá utilizar a linha de comandos bash para instalar o software. Tome nota dos comandos, uma vez que irá utilizar os mesmos comandos para instalar os controladores no contentor em execução no Docker na VM ativada para GPU

  2. Instale o runtime de IoT Edge mais recente no servidor Linux da série N no Azure Stack Hub. Para obter instruções, veja Install the Azure IoT Edge runtime on Debian-based Linux systems (Instalar o runtime do Azure IoT Edge em sistemas Linux baseados em Debian)

Instalar o Docker

Instale o Docker na VM ativada para GPU. Vai executar o módulo a partir do IoT Edge marketplace num contentor na VM.

Tem de instalar o Docker 19.02 ou superior. O runtime do Docker suporta agora as GPUs NVIDIA. Para saber mais sobre GPUs no Docker, veja o artigo nos documentos do Docker, opções de Runtime com Memória, CPUs e GPUs.

Instalar o Docker

Os contentores do Docker podem ser executados em qualquer lugar, no local, no datacenter do cliente, num fornecedor de serviços externos ou na cloud, no Azure. Os contentores de imagens do Docker podem ser executados nativamente no Linux e no Windows. No entanto, as imagens do Windows só podem ser executadas em anfitriões Windows e as imagens do Linux podem ser executadas em anfitriões Linux e anfitriões do Windows (com uma VM do Linux Hyper-V, até agora), em que o anfitrião significa um servidor ou uma VM. Para obter mais informações, consulte O que é o Docker?.

  1. Ligue-se ao servidor Linux da série N com o cliente SSH.

  2. Atualize o índice e as listas apt.

    sudo apt-get update
    
  3. Obtenha as novas versões dos pacotes existentes no computador.

    sudo apt-get upgrade
    
  4. Instale as dependências necessárias para adicionar o repositório apt do Docker.

    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    
  5. Adicione a chave GPG do Docker.

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  6. Adicione o repositório apt do Docker.

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  7. Atualize o índice e as listas apt e instale o Docker Community Edition.

    sudo apt-get update 
    sudo apt-get install docker-ce
    
  8. Verifique a instalação ao verificar a versão do Docker.

    docker -v
    
  9. Exponha os recursos de GPU disponíveis no Docker.

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

Obter o item a partir do marketplace

Regresse à portal do Azure e adicione o modelo ao seu dispositivo edge com o marketplace iOT. Selecione Módulo do Marketplace no menu. Getting started with GPUsProcure e siga as instruções para adicionar o módulo.

Para obter instruções, consulte Selecionar dispositivo e adicionar módulos

Ativar monitorização

  1. Transfira o IoT Explorer do Azure e ligue a aplicação ao seu Hub IoT.

  2. Selecione o seu Dispositivo IoT e navegue para Telemetria no menu de navegação.

  3. Selecione Iniciar para iniciar a monitorização da saída a partir do Dispositivo IoT Edge.

uma instalação válida

Monitorizar o módulo (Opcional)

  1. Na paleta de comandos do VS Code, execute o Hub IoT do Azure: Selecionar Hub IoT.

  2. Escolha a subscrição e o hub IoT que contém o dispositivo do IoT Edge que pretende configurar. Neste caso, selecione a subscrição na instância do Azure Stack Hub e selecione o dispositivo IoT Edge criado para o Azure Stack Hub. Isto ocorre quando configura a computação através da portal do Azure nos passos anteriores.

  3. No explorador do VS Code, expanda a secção Hub IoT do Azure. Em Dispositivos, deverá ver o dispositivo IoT Edge correspondente ao Azure Stack Hub.

    1. Selecione esse dispositivo, clique com o botão direito do rato e selecione Iniciar Monitorização do Ponto Final de Evento Incorporado.

    2. Aceda a Módulos de Dispositivos > e deverá ver o módulo GPU em execução.

    3. O terminal do VS Code também deve mostrar os eventos Hub IoT como a saída de monitorização do Azure Stack Hub.

    uma instalação válida é

    Pode ver que o tempo necessário para executar o mesmo conjunto de operações (5000 iterações de transformação de formas) por GPU é muito menor do que para a CPU.

Passos Seguintes