Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
IoT Edge 1.5
Importante
IoT Edge 1.5 LTS é a versão suportada. O IoT Edge 1.4 LTS atingiu o fim de vida útil a 12 de novembro de 2024. Se estiveres a usar uma versão anterior, vê Update IoT Edge.
Este tutorial mostra como criar uma máquina virtual (VM) habilitada para GPU. A partir da VM, executas um dispositivo IoT Edge que aloca trabalho de um dos seus módulos para a tua GPU.
Use o portal Azure, o Azure Cloud Shell e a linha de comandos da sua VM para:
- Crie uma VM compatível com GPU
- Instale a extensão do driver NVIDIA na VM
- Configure um módulo num dispositivo IoT Edge para alocar trabalho a uma GPU
Pré-requisitos
Azure conta - criar uma conta gratuita
Azure IoT Hub - criar um IoT Hub
dispositivo Azure IoT Edge
Se não tiver um dispositivo IoT Edge e quiser criar um rapidamente, execute o seguinte comando. Use o Azure Cloud Shell no portal do Azure. Crie um novo nome de dispositivo e substitua-o
<DEVICE-NAME>pelo<YOUR-IOT-HUB-NAME>nome do hub IoT.az iot hub device-identity create --device-id <YOUR-DEVICE-NAME> --edge-enabled --hub-name <YOUR-IOT-HUB-NAME>Para mais informações sobre como criar um dispositivo IoT Edge, consulte Quickstart: Implemente o seu primeiro módulo IoT Edge num dispositivo Linux virtual. Mais adiante neste artigo, irá adicionar um módulo NVIDIA ao seu dispositivo IoT Edge.
Criar uma máquina virtual otimizada para GPU
Para criar uma máquina virtual (VM) otimizada para GPU, escolha o tamanho certo. Nem todos os tamanhos de VM suportam processamento de GPU e tamanhos de VM diferentes funcionam melhor para cargas de trabalho diferentes. Para obter mais informações, consulte Tamanhos de máquinas virtuais otimizados para GPU ou tente o seletor de máquinas virtuais.
Cria uma VM IoT Edge com o template Azure Resource Manager (ARM) no GitHub, depois configura-a para ser otimizada para GPU.
Vai ao modelo de implementação de VM IoT Edge em GitHub em Azure/iotedge-vm-deploy.
Selecione o botão Deploy to Azure para começar a criar uma VM personalizada no portal Azure.
Introduza as suas credenciais de Azure e informações de recursos nos campos Custom deployment:
Property Descrição ou valor da amostra Subscrição Escolha a subscrição da sua conta Azure. Grupo de recursos Adicione o seu grupo de recursos Azure. Região East US
As VMs GPU não estão disponíveis em todas as regiões.Prefixo de Etiqueta DNS Crie um nome para sua VM. Nome de Utilizador de Administrador adminUser
Ou crie seu próprio nome de usuário.Cadeia de Ligação de Dispositivo Copie a sua connection string do seu dispositivo IoT Edge e depois cole aqui. Tamanho da VM Standard_NV6Tipo de autenticação Escolha a palavra-passe ou a Chave Pública SSH e, em seguida, crie uma palavra-passe ou um nome de par de chaves, se necessário. Gorjeta
Verifique quais VMs de GPU são suportadas em cada região: Produtos disponíveis por região.
Para verificar qual a região que a sua subscrição de Azure permite, experimente este comando Azure no portal Azure. O
NinStandard_Nsignifica que é uma VM habilitada para GPU.az vm list-skus --location <YOUR-REGION> --size Standard_N --all --output tableSelecione o botão Rever + criar na parte inferior e, em seguida, selecione o botão Criar . A implantação pode levar até um minuto.
Instale a extensão NVIDIA
Agora que tens uma VM otimizada para GPU, instala a extensão NVIDIA na VM usando o portal Azure.
Abra a sua VM no portal Azure e selecione Extensões + aplicações no menu esquerdo.
Selecione Adicionar e escolha a extensão de driver de GPU NVIDIA na lista e, em seguida, selecione Avançar.
Escolha Rever + criar e, em seguida, Criar. A implantação pode levar até 30 minutos para ser concluída.
Para confirmar a instalação no portal Azure, volte ao menu Extensões + aplicações na sua VM. A nova extensão nomeada
NvidiaGpuDriverLinuxdeve estar na sua lista de extensões e mostrar Provisionamento bem-sucedido em Status.Para confirmar a instalação usando o Azure Cloud Shell, execute este comando para listar as suas extensões. Substitua os
<>marcadores de posição pelas suas próprias configurações.az vm extension list --resource-group <YOUR-RESOURCE-GROUP> --vm-name <YOUR-VM-NAME> -o tableCom um módulo NVIDIA, usaremos o programa NVIDIA System Management Interface, também conhecido como
nvidia-smi.A partir do seu dispositivo, instale o
nvidia-smipacote com base na sua versão do Ubuntu. Por exemplo, no Ubuntu 22.04, instalenvidia-utils-535. SelecioneYquando solicitado na instalação.sudo apt install nvidia-utils-535Aqui está uma lista de todas as
nvidia-smiversões. Se você executarnvidia-smisem instalá-lo primeiro, essa lista será impressa no console.
Após a instalação, execute este comando para confirmar que está instalado:
nvidia-smiÉ apresentada uma tabela de confirmação, semelhante a esta tabela.
Nota
A extensão NVIDIA é uma maneira simplificada de instalar os drivers NVIDIA, mas você pode precisar de mais personalização. Para obter mais informações sobre instalações personalizadas em VMs da série N, consulte Instalar drivers de GPU NVIDIA em VMs da série N executando Linux.
Ativar um módulo com aceleração de GPU
Existem diferentes formas de ativar um módulo IoT Edge para que utilize uma GPU para o processamento. Uma forma é configurar um módulo IoT Edge existente no seu dispositivo para ser acelerado por GPU. Outra forma é usar um módulo contentor pré-fabricado que já esteja otimizado para GPU. Vamos ver como ambas as maneiras são realizadas.
Habilitar GPU em um módulo existente usando DeviceRequests
Se tiver um módulo existente no seu dispositivo IoT Edge, adicionar uma configuração usando DeviceRequests em createOptions do manifesto de implementação torna o módulo otimizado para GPU. Siga estas etapas para configurar um módulo existente.
Vai ao teu IoT Hub no portal Azure e escolhe Dispositivos no menu Gestão de dispositivos.
Selecione o seu dispositivo IoT Edge para o abrir.
Selecione o separador Definir módulos no topo.
Seleciona o módulo que queres ativar para uso da GPU na lista IoT Edge Módulos.
Um painel lateral se abre, escolha a guia Opções de criação de contentor.
Copie esta
HostConfigcadeia de caracteres JSON e cole na caixa Criar opções .{ "HostConfig": { "DeviceRequests": [ { "Count": -1, "Capabilities": [ [ "gpu" ] ] } ] } }Selecione Atualizar.
Selecione Verificar + criar. O novo
HostConfigobjeto agora está visível nosettingsseu módulo.Selecione Criar.
Para confirmar se a nova configuração funciona, execute este comando na sua VM:
sudo docker inspect <YOUR-MODULE-NAME>Você deve ver os parâmetros que especificou para
DeviceRequestsna impressão JSON no console.
Nota
Para entender melhor o DeviceRequests parâmetro, veja o código-fonte: moby/host_config.go
Ativar uma GPU em um módulo NVIDIA pré-fabricado
Vamos adicionar um módulo container NVIDIA CUDA ao dispositivo IoT Edge e depois alocar uma GPU ao módulo definindo as suas variáveis de ambiente. Este módulo NVIDIA já está em um contêiner Docker.
Selecione o seu dispositivo IoT Edge no portal Azure a partir do menu Dispositivos do seu IoT Hub.
Selecione o separador Definir módulos no topo.
Selecione + Add no cabeçalho dos módulos IoT Edge e escolha IoT Edge Module.
Forneça um nome no campo IoT Edge Nome do Módulo.
Na guia Configurações do Módulo, adicione
nvidia/cuda:12.6.3-base-ubuntu22.04ao campo URI da Imagem.Selecione a guia Variáveis de Ambiente.
Adicione o nome
NVIDIA_VISIBLE_DEVICESda variável de ambiente com o valor0. Essa variável controla quais GPUs são visíveis para o aplicativo em contêiner em execução no dispositivo de borda. ANVIDIA_VISIBLE_DEVICESvariável de ambiente pode ser definida como uma lista separada por vírgulas de IDs de dispositivo, que correspondem às GPUs físicas no sistema. Por exemplo, se houver duas GPUs no sistema com IDs de dispositivo 0 e 1, a variável pode ser definida como "NVIDIA_VISIBLE_DEVICES=0,1" para tornar ambas as GPUs visíveis para o contêiner. Neste artigo, como a VM tem apenas uma GPU, usaremos a primeira (e única).Nome Tipo valor NVIDIA_VISIBLE_DEVICES Texto 0 Selecione Adicionar.
Selecione Verificar + criar. As propriedades do manifesto de implantação são exibidas.
Selecione Criar para criar o módulo.
Selecione Atualizar para atualizar sua lista de módulos. O módulo leva alguns minutos para indicar que está a executar no estado de runtime, portanto, continue a atualizar o dispositivo.
A partir do seu dispositivo, execute este comando para confirmar que o seu novo módulo NVIDIA existe e está em execução.
iotedge listDeves ver o teu módulo NVIDIA numa lista de módulos no teu dispositivo IoT Edge com o estado de
running.
Nota
Para mais informações sobre contentores NVIDIA otimizados para GPU, consulte o Catálogo NVIDIA GPU Cloud (NGC).
Limpar recursos
Se quiseres continuar com outros tutoriais de IoT Edge, podes usar o dispositivo que criaste para este tutorial. Caso contrário, pode eliminar os recursos do Azure que criou para evitar cobranças.
Se você criou sua máquina virtual e o hub IoT em um novo grupo de recursos, poderá excluir esse grupo, o que exclui todos os recursos associados. Verifique novamente o conteúdo do grupo de recursos para certificar-se de que não há nada que você queira manter. Se não quiser excluir todo o grupo, você pode excluir recursos individuais (máquina virtual, dispositivo ou módulo de GPU).
Importante
A eliminação de um grupo de recursos é irreversível.
Use o comando seguinte para remover o seu grupo de recursos Azure. Pode levar alguns minutos para excluir um grupo de recursos.
az group delete --name <YOUR-RESOURCE-GROUP> --yes
Você pode confirmar que o grupo de recursos foi removido exibindo a lista de grupos de recursos.
az group list
Próximos passos
Este artigo ajudou-o a configurar a sua máquina virtual e dispositivo IoT Edge para serem acelerados por GPU. Para correr uma aplicação com uma configuração semelhante, experimente o caminho de aprendizagem para o desenvolvimento NVIDIA DeepStream com Microsoft Azure. O tutorial Learn mostra como desenvolver aplicativos de vídeo inteligentes otimizados que podem consumir várias fontes de vídeo, imagem e áudio.