Implantar um módulo IoT habilitado para GPU no dispositivo GPU Azure Stack Edge Pro
APLICA-SE A: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro R
Nota
É altamente recomendável implantar a versão mais recente do IoT Edge em uma VM Linux. O IoT Edge gerenciado no Azure Stack Edge usa uma versão mais antiga do tempo de execução do IoT Edge que não tem os recursos e patches mais recentes. Para obter instruções, consulte como implantar uma VM do Ubuntu. Para obter mais informações sobre outras distribuições Linux suportadas que podem executar o IoT Edge, consulte Sistemas suportados do Azure IoT Edge – Mecanismos de contêiner.
Este artigo descreve como implantar um módulo IoT Edge habilitado para GPU em seu dispositivo GPU Azure Stack Edge Pro.
Neste artigo, vai aprender a:
- 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.
- Crie 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 de exemplo de GPU neste artigo inclui o código de exemplo de benchmarking PyTorch e TensorFlow para CPU em relação à GPU.
Pré-requisitos
Antes de começar, certifique-se de que tem:
- Você tem acesso a um dispositivo Azure Stack Edge Pro de 1 nó habilitado para GPU. Este dispositivo está ativado com um recurso no Azure. Consulte Ativar o dispositivo.
- Você configurou a computação neste dispositivo. Siga as etapas em Tutorial: Configurar a computação em seu dispositivo Azure Stack Edge Pro.
- Um Registro de Contêiner do Azure (ACR). Vá para a folha Teclas de acesso e anote o servidor de login, o nome de usuário e a senha do ACR. Para obter mais informações, vá para Guia de 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:
- Azure CLI 2.0 ou posterior
- Docker CE. Poderá ter de criar uma conta para descarregar e instalar o software.
- Visual Studio Code
- Extensão Azure IoT Edge para o Visual Studio Code.
- Extensão Python para o Visual Studio Code
- Python 3
- Pip para instalar pacotes Python (normalmente incluído na sua instalação do Python)
Obter o código de exemplo
Vá para os exemplos de Padrões de Borda Inteligentes do Azure no Azure. Clone ou baixe o arquivo zip para código.
Extraia os arquivos do zip. Você também pode clonar as amostras.
git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
Criar e implantar módulo
Abra a pasta GpuReferenceModules no Visual Studio Code.
Abra o deployment.template.json e identifique os parâmetros aos quais ele faz referência para o registro do 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" } } } },
Crie um novo arquivo. Preencha os valores para os parâmetros do Registro do contêiner (use os identificados na etapa anterior) da seguinte maneira:
CONTAINER_REGISTRY_NAME=<YourContainerRegistryName> CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName> CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
Um arquivo .env de exemplo é mostrado abaixo:
Salve o arquivo como .env na pasta SampleSolution .
Para entrar no Docker, digite o seguinte comando no terminal integrado do Visual Studio Code.
docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
Vá para a seção Chaves de acesso do seu registro de contêiner no portal do Azure. Copie e utilize o nome de registo, a palavra-passe e o servidor de início de sessão.
Depois que as credenciais são fornecidas, o login é bem-sucedido.
Envie sua imagem para o registro de contêiner do Azure. No VS Code Explorer, selecione e clique com o botão direito do mouse no arquivo de deployment.template.json e, em seguida, selecione Criar e enviar solução IoT Edge.
Se Python e Python extension não estiverem instalados, eles serão instalados quando você compilar e enviar a solução. No entanto, isso resultaria em tempos de construção mais longos.
Quando esta etapa estiver concluída, você verá o módulo no registro do contêiner.
Para criar um manifesto de implantação, clique com o botão direito do mouse no deployment.template.json e 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
deployment.amd64.json
arquivo gerado na pasta config .Selecione o arquivo deployment.amd64.json na pasta config e escolha Create Deployment for Single Device (Criar implantação para um único dispositivo). Não utilize o ficheiro deployment.template.json .
Na janela Saída, você verá uma mensagem informando que a implantação foi bem-sucedida.
Monitorizar o módulo
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. 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 explorador do VS Code, expanda a seção Hub IoT do Azure. Em Dispositivos, você verá o dispositivo IoT Edge correspondente ao seu dispositivo Azure Stack Edge Pro.
Selecione esse dispositivo, clique com o botão direito do mouse e selecione Start Monitoring Built-in Event Endpoint.
Vá para Módulos de dispositivos > e você verá seu módulo de GPU em execução.
O terminal VS Code também deve mostrar os eventos do Hub IoT como a saída de monitoramento para seu dispositivo 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.
Passos Seguintes
- Saiba mais sobre como configurar a GPU para usar um módulo.