Partilhar via


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

APLICA-SE A:Sim para Pro - GPU SKU Azure Stack Edge Pro - GPUSim para Pro 2 SKUAzure Stack Edge Pro 2Sim para Pro R SKUAzure 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:

Obter o código de exemplo

  1. Vá para os exemplos de Padrões de Borda Inteligentes do Azure no Azure. Clone ou baixe o arquivo zip para código.

    Baixar arquivo zip

    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

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

    Criar e salvar arquivo .env

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

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

    Chaves de acesso no registo do contentor

    Depois que as credenciais são fornecidas, o login é bem-sucedido.

    Início de sessão bem-sucedido

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

    Crie e envie por push a 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.

    Módulo no registo de contentores

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

    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 .

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

    Criar implementação para dispositivo único

    Na janela Saída, você verá uma mensagem informando que a implantação foi bem-sucedida.

    Implantação bem-sucedida na saída

Monitorizar o módulo

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

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

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

    1. Selecione esse dispositivo, clique com o botão direito do mouse e selecione Start Monitoring Built-in Event Endpoint.

      Comece a monitorar

    2. Vá para Módulos de dispositivos > e você verá seu módulo de GPU em execução.

      Módulo no Hub IoT

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

      Monitorização dos resultados

      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