Implantar um módulo IoT habilitado para GPU no dispositivo Azure Stack Edge Pro GPU
APLICA-SE A: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro R
Observação
É altamente recomendável implantar a versão mais recente do IoT Edge em uma VM do Linux. O IoT Edge gerenciado no Azure Stack Edge usa uma versão mais antiga do runtime do IoT Edge que não tem os recursos e patches mais recentes. Para obter instruções, veja como implantar uma VM do Ubuntu. Para obter mais informações sobre outras distribuições do Linux com suporte que podem executar o IoT Edge, consulte Sistemas com suporte do Azure IoT Edge – Mecanismos de contêiner.
Este artigo descreve como implantar um módulo do IoT Edge habilitado para GPU em seu dispositivo de GPU do Azure Stack Edge Pro.
Neste artigo, você aprenderá como:
- Prepare o Azure Stack Edge Pro para executar um módulo de GPU.
- Baixe e instale o código de exemplo de um repositório Git.
- Compile a solução e gere um manifesto de implantação.
- Implante a solução no dispositivo Azure Stack Edge Pro.
- Monitore a saída do módulo.
Sobre o módulo de exemplo
O módulo exemplo de GPU neste artigo inclui o exemplo de código do parâmetro de comparação PyTorch e TensorFlow para CPU em relação à GPU.
Pré-requisitos
Antes de começar, verifique se você tem:
- Você tem acesso a um dispositivo Azure Stack Edge Pro de 1 nó habilitado para GPU. Esse dispositivo foi ativado com um recurso no Azure. Confira Ativar o dispositivo.
- Você configurou a computação nesse dispositivo. Siga as etapas em Tutorial: configurar a computação em seu dispositivo Azure Stack Edge Pro.
- Um ACR (Registro de Contêiner do Azure). Acesse a folha Chaves de acesso e anote o servidor de logon do ACR, o nome de usuário e a senha. Para obter mais informações, acesse Início Rápido: criar um registro de contêiner privado usando o portal do Azure.
- Os seguintes recursos de desenvolvimento em um cliente Windows:
- CLI do Azure 2.0 ou posterior
- CE do Docker. Talvez você precise criar uma conta para baixar e instalar o software.
- Visual Studio Code
- Extensão Azure IoT Edge para Visual Studio Code.
- Extensão do Python para Visual Studio Code
- Python 3
- Pip para instalar os pacotes do Python (normalmente incluídos com a instalação do Python)
Obter o código de exemplo
Acesse os Padrões de Borda Inteligente do Azure nos exemplos do Azure. Clone ou baixe o arquivo zip para código.
Extraia os arquivos do zip. Também é possível clonar as amostras.
git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
Criar e implantar o módulo
Abra a pasta GpuReferenceModules no Visual Studio Code.
Abra o deployment.template.json e identifique os parâmetros referenciados para o registro de contêiner. No arquivo a seguir, CONTAINER_REGISTRY_USERNAME, CONTAINER_REGISTRY_PASSWORD e CONTAINER_REGISTRY_NAME são usados.
{ "$schema-template": "2.0.0", "modulesContent": { "$edgeAgent": { "properties.desired": { "schemaVersion": "1.0", "runtime": { "type": "docker", "settings": { "minDockerVersion": "v1.25", "loggingOptions": "", "registryCredentials": { "${CONTAINER_REGISTRY_NAME}":{ "username": "$CONTAINER_REGISTRY_USERNAME", "password": "$CONTAINER_REGISTRY_PASSWORD", "address": "${CONTAINER_REGISTRY_NAME}.azurecr.io" } } } },
Criar um novo arquivo. Preencha os valores dos parâmetros do registro de contêiner (use os identificados na etapa anterior) da seguinte maneira:
CONTAINER_REGISTRY_NAME=<YourContainerRegistryName> CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName> CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
Abaixo é mostrado um exemplo de arquivo .env:
Salve o arquivo como .env na pasta SampleSolution.
Para entrar no Docker, insira o comando a seguir no terminal integrado do Visual Studio Code.
docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
Acesse a seção Chaves de acesso do registro de contêiner no portal do Azure. Copie e use o nome de registro, a senha e o servidor de logon.
Depois que as credenciais são fornecidas, a entrada é realizada com sucesso.
Efetuar push da imagem ao registro de contêiner do Azure. No VS Code Explorer, selecione e clique com o botão direito do mouse no arquivo deployment.template.json e, em seguida, selecione Criar e Efetuar Push da solução IoT Edge.
Se a extensão Python e Python não estiver instalada, elas serão instaladas quando você compilar e enviar a solução por push. No entanto, isso resultaria em tempos de compilação mais longos.
Depois que essa etapa for concluída, você verá o módulo no registro de contêiner.
Para criar um manifesto de implantação, clique com o botão direito do mouse em deployment.template.json e, em seguida, selecione Gerar Manifesto de Implantação do IoT Edge.
A notificação informa o caminho no qual o manifesto de implantação foi gerado. O manifesto é o arquivo
deployment.amd64.json
gerado na pasta configuração.Selecione o arquivo deployment.amd64.json na pasta configuração e escolha Criar Implantação para um Único dispositivo. Não use o arquivo deployment.template.json.
Na janela Saída, você deverá ver uma mensagem implantada com êxito.
Monitorar o módulo
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 usada para implantar o dispositivo Azure Stack Edge Pro e selecione o dispositivo IoT Edge criado para seu dispositivo Azure Stack Edge Pro. 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ê deve ver o dispositivo IoT Edge correspondente ao dispositivo do Azure Stack Edge Pro.
Selecione o 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 de VS Code também deve mostrar os eventos do Hub IoT como a saída de monitoramento para seu dispositivo do Azure Stack Edge Pro.
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 como configurar a GPU para usar um módulo.