Compartilhar via


Implantar um módulo IoT habilitado para GPU no dispositivo Azure Stack Edge Pro GPU

APLICA-SE A: Sim para Pro – SKU de GPUAzure Stack Edge Pro - GPUSim, ao SKU do Pro 2Azure Stack Edge Pro 2Sim, ao SKU do Pro RAzure 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:

Obter o código de exemplo

  1. Acesse os Padrões de Borda Inteligente do Azure nos exemplos do Azure. Clone ou baixe o arquivo zip para código.

    Baixar o arquivo zip

    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

  1. Abra a pasta GpuReferenceModules no Visual Studio Code.

    Abrir GPUReferenceModules no VS Code

  2. 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"
                  }
                }
              }
            },
    
  3. 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:

    Criar e salvar o arquivo. env

  4. Salve o arquivo como .env na pasta SampleSolution.

  5. 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.

    Chaves de acesso no registro de contêiner

    Depois que as credenciais são fornecidas, a entrada é realizada com sucesso.

    Entrada bem-sucedida

  6. 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.

    Compilar a solução do IoT Edge e efetuar push dela

    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.

    Módulo no registro de contêiner

  7. 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.

    Gerar um 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.

  8. 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.

    Criar implantação para dispositivo único

    Na janela Saída, você deverá ver uma mensagem implantada com êxito.

    Implantação bem-sucedida na Saída

Monitorar o módulo

  1. Na paleta de comandos do VS Code, execute Hub IoT do Azure: selecionar Hub IoT.

  2. 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.

  3. 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.

    1. Selecione o dispositivo, clique com o botão direito do mouse e selecione Iniciar Monitoramento de Ponto de Extremidade de Evento Interno.

      Começar a monitorar

    2. Acesse Dispositivos > Módulos e você deverá ver o módulo GPU em execução.

      Módulo no Hub IoT

    3. 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.

      Monitorando a saída

      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