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 Microsoft Entra 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 em sua 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 Microsoft Entra ID 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:
- Python 3.x
-
Pippara instalação dos pacotes Python. Isso foi instalado com a instalação do Python. Se você tiver o Pip instalado, convém atualizar para a versão mais recente. Você pode atualizar usando o pip, por si só. Digite:
pip install --upgrade pip
. - CLI 2.0 do Azure
- Git
- Docker
- Visual Studio Code
- Ferramentas de IoT do Microsoft Azure para Visual Studio Code
- Pacote de Extensão do Python para Visual Studio Code
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:
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.
Preparar uma VM habilitada para GPU
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
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?.
Conecte-se ao servidor Linux da série N usando seu cliente SSH.
Atualize o índice apt e as listas.
sudo apt-get update
Busque as novas versões dos pacotes existentes no computador.
sudo apt-get upgrade
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
Adicione a chave GPG do Docker.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Adicione o repositório apt do Docker.
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Atualize o índice e as listas do apt e instale o Docker Community Edition.
sudo apt-get update sudo apt-get install docker-ce
Verifique a instalação verificando a versão do Docker.
docker -v
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 GPUs
siga as instruções para adicionar o módulo.
Para obter instruções, consulte Selecionar dispositivo e adicionar módulos
Habilitar o monitoramento
Baixe o Azure IoT Explorer e conecte o aplicativo ao seu Hub IoT.
Selecione seu Dispositivo IoT e navegue até Telemetria no menu de navegação.
Selecione Iniciar para começar a monitorar a saída do dispositivo IoT Edge.
Monitorar o módulo (opcional)
Na paleta de comandos do VS Code, execute Hub IoT do Azure: selecionar Hub IoT.
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.
No VS Code explorer, expanda a seção Hub IoT do Azure. Em Dispositivos, você deverá ver o dispositivo IoT Edge correspondente ao Azure Stack Hub.
Selecione esse dispositivo, clique com o botão direito do mouse e selecione Iniciar Monitoramento de Ponto de Extremidade de Evento Interno.
Acesse Dispositivos > Módulos e você deverá ver o módulo GPU em execução.
O terminal do VS Code também deve mostrar os eventos Hub IoT como a saída de monitoramento para o Azure Stack Hub.
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
Saiba mais sobre a VM (máquina virtual) de GPU (unidade de processamento gráfico) no Azure Stack Hub
Saiba mais sobre o Azure Stack Hub, o Data Box Edge e a Borda Inteligente, O futuro da computação: nuvem inteligente e borda inteligente
Saiba mais sobre aplicativos de nuvem híbrida em Soluções de Nuvem Híbrida