Implantar um módulo IoT habilitado para GPU no Azure Stack Hub

Com um Azure Stack Hub habilitado para GPU, você pode implantar módulos com uso intensivo de processador 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 simples ou múltiplas. Neste artigo, aprenda a usar VMs otimizadas para GPU para executar cargas de trabalho de computação intensiva, com uso intensivo de gráficos e visualização.

Antes de começar, você precisará de uma assinatura do Azure Active Directory (Azure AD) com acesso ao Azure global e ao Azure Stack Hub, um ACR (Registro de Contêiner do Azure) e um hub IoT.

Neste artigo você:

  • Instale uma VM linux habilitada para GPU e instale os drivers corretos.
  • Instale o Docker e habilite a GPU no runtime.
  • Conecte seu dispositivo IoT ao Hub iOT e instale no marketplace iOT o modelo: Getting started with GPUs.
  • Instale e monitore seu dispositivo de um computador local usando o Azure IoT Explorer.
  • E, opcionalmente, instale e monitore seu dispositivo usando a extensão de IoT do Azure no Visual Studio Code.

Pré-requisitos

Você precisará ter os seguintes recursos em vigor na instância do Azure Stack Hub, no Azure global e no computador de desenvolvimento local.

Azure Stack Hub e Azure

  • Uma assinatura como usuário usando o Azure Active Directory (Azure AD) em um Sistema Integrado do Azure Stack Hub com uma GPU NVIDA. Os chips a seguir funcionam com o Hub iOT:

    • NCv3
    • NCas_v4

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

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

  • Um ACR (Registro de Contêiner do Azure). Anote o servidor de entrada, o nome de usuário e a senha do ACR.

  • Um hub IoT gratuito ou de camada padrão no Azure global.

Um computador de desenvolvimento

  • É possível usar seu próprio computador ou uma máquina virtual, dependendo de suas preferências de desenvolvimento. Seu computador de desenvolvimento precisará dar suporte à virtualização aninhada. Essa funcionalidade é necessária para executar o Docker, o mecanismo de contêiner usado neste artigo.

  • Seu computador de desenvolvimento precisará dos seguintes recursos:

Registrar um dispositivo IoT Edge

Use um dispositivo separado para hospedar seu dispositivo IoT Edge. O uso de um dispositivo separado fornecerá uma separação entre seu computador de desenvolvimento e IoT Edge dispositivo espelha com mais precisão um cenário de implantação.

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

  1. Crie uma VM do servidor Linux da série N no Azure Stack Hub. Ao instalar componentes para o servidor, você interagirá com o servidor por meio do SSH. Para obter mais informações, consulte Usar um par de chaves SSH com o Azure Stack Hub.

  2. Criar e registrar um dispositivo IoT Edge

Preparar uma VM habilitada para GPU

  1. Instale os Drivers de GPU NVIDA em seu servidor Linux da série N seguindo as etapas no artigo Instalar drivers de GPU NVIDIA em VMs da série N que executam o Linux.

    Observação

    Você usará a linha de comando bash para instalar seu software. Anote os comandos, pois você usará os mesmos comandos para instalar os drivers no contêiner em execução no Docker em sua VM habilitada 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, consulte Instalar o runtime do Azure IoT Edge em sistemas Linux baseados em Debian

Instalar o Docker

Instale o Docker em sua VM habilitada para GPU. Você executará o módulo no marketplace IoT Edge em um contêiner na VM.

Você deve instalar o Docker 19.02 ou superior. O runtime do Docker agora dá suporte às GPUs NVIDIA. Para saber mais sobre GPUs no Docker, consulte o artigo nos documentos do Docker, opções de runtime com Memória, CPUs e GPUs.

Instalar o Docker

Contêineres do Docker podem executar em qualquer lugar, localmente no datacenter do cliente, em um provedor de serviços externo ou na nuvem, no Azure. Os contêineres de imagem do Docker podem ser executados nativamente no Linux e no Windows. No entanto, imagens do Windows podem executar somente em hosts do Windows e imagens do Linux podem executar em hosts do Linux e hosts do Windows (usando uma VM do Linux do Hyper-V, até o momento), em que o host significa um servidor ou uma VM. Para obter mais informações, consulte O que é o Docker?.

  1. Conecte-se ao servidor Linux da série N usando seu cliente SSH.

  2. Atualize o índice apt e as listas.

    sudo apt-get update
    
  3. Busque 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 do apt e instale o Docker Community Edition.

    sudo apt-get update 
    sudo apt-get install docker-ce
    
  8. Verifique a instalação verificando 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 do marketplace

Retorne ao portal do Azure e adicione o modelo ao dispositivo de borda usando o marketplace iOT. Selecione Módulo do Marketplace no menu. Pesquise e Getting started with GPUssiga as instruções para adicionar o módulo.

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

Habilitar o monitoramento

  1. Baixe o Azure IoT Explorer e conecte o aplicativo ao seu Hub IoT.

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

  3. Selecione Iniciar para começar a monitorar a saída do dispositivo IoT Edge.

uma instalação válida

Monitorar o módulo (opcional)

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

  2. Escolha a assinatura e o hub IoT que contêm o dispositivo do IoT Edge que você deseja configurar. Nesse caso, selecione a assinatura na instância do Azure Stack Hub e selecione o dispositivo IoT Edge criado para o Azure Stack Hub. Isso ocorre quando você configura a computação por meio do portal do Azure nas etapas anteriores.

  3. No VS Code explorer, expanda a seção Hub IoT do Azure. Em Dispositivos, você deve ver o dispositivo IoT Edge correspondente ao Azure Stack Hub.

    1. Selecione esse dispositivo, clique com o botão direito do mouse e selecione Iniciar Monitoramento de Ponto de Extremidade de Evento Interno.

    2. Acesse Dispositivos > Módulos e você 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 monitoramento para o Azure Stack Hub.

    uma instalação válida é

    Você pode ver que o tempo necessário para executar o mesmo conjunto de operações (5000 iterações de transformação de forma) pela GPU é muito menor do que para a CPU.

Próximas etapas