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:
- Python 3.x
-
Pip para instalar pacotes Python. Isto foi instalado com a instalação do Python. Se tiver o Pip instalado, poderá querer atualizar para a versão mais recente. Pode atualizar com o pip. Tipo:
pip install --upgrade pip
. - CLI 2.0 do Azure
- Git
- Docker
- Visual Studio Code
- Azure IoT Tools para Visual Studio Code
- Pacote de Extensões do Python para Visual Studio Code
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:
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.
Preparar uma VM ativada para GPU
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
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?.
Ligue-se ao servidor Linux da série N com o cliente SSH.
Atualize o índice e as listas apt.
sudo apt-get update
Obtenha 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 apt e instale o Docker Community Edition.
sudo apt-get update sudo apt-get install docker-ce
Verifique a instalação ao verificar 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 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 GPUs
Procure e siga as instruções para adicionar o módulo.
Para obter instruções, consulte Selecionar dispositivo e adicionar módulos
Ativar monitorização
Transfira o IoT Explorer do Azure e ligue a aplicação ao seu Hub IoT.
Selecione o seu Dispositivo IoT e navegue para Telemetria no menu de navegação.
Selecione Iniciar para iniciar a monitorização da saída a partir do Dispositivo IoT Edge.
Monitorizar o módulo (Opcional)
Na paleta de comandos do VS Code, execute o Hub IoT do Azure: Selecionar Hub IoT.
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.
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.
Selecione esse dispositivo, clique com o botão direito do rato e selecione Iniciar Monitorização do Ponto Final de Evento Incorporado.
Aceda a Módulos de Dispositivos > e 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 monitorização do Azure Stack Hub.
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
Saiba mais sobre a máquina virtual (VM) da Unidade de processamento de gráficos (GPU) no Azure Stack Hub
Saiba mais sobre o Azure Stack Hub, o Data Box Edge e o Intelligent Edge, O futuro da computação: cloud inteligente e edge inteligente
Saiba mais sobre aplicações na cloud híbridas, veja Soluções de Cloud Híbridas