Compartir a través de


Implementación de un módulo de IoT habilitado para GPU en un dispositivo Azure Stack Edge Pro

SE APLICA A:Yes for Pro - GPU SKUAzure Stack Edge Pro: GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro R

Nota:

Se recomienda encarecidamente implementar la versión más reciente de IoT Edge en una máquina virtual Linux. IoT Edge administrado en Azure Stack Edge usa una versión anterior del entorno de ejecución de IoT Edge que no tiene las características y revisiones más recientes. Para obtener instrucciones, consulte Implementación de una máquina virtual Ubuntu. Para más información sobre otras distribuciones de Linux compatibles que pueden ejecutar IoT Edge, consulte Sistemas compatibles con Azure IoT Edge: motores de contenedor.

En este artículo se describe cómo implementar un módulo de IoT Edge habilitado para GPU en un dispositivo Azure Stack Edge Pro con GPU.

En este artículo aprenderá a:

  • Preparar Azure Stack Edge Pro para ejecutar un módulo GPU.
  • Descargar e instalar código de ejemplo desde un repositorio de Git
  • Compilar la solución y generar un manifiesto de implementación
  • Implementar la solución en un dispositivo Azure Stack Edge Pro.
  • Supervisar la salida del módulo

Información sobre el módulo de ejemplo

El módulo de ejemplo de GPU de este artículo incluye código de ejemplo de pruebas comparativas de PyTorch y TensorFlow entre CPU y GPU.

Requisitos previos

Antes de empezar, asegúrese de que tiene:

Obtener el código de ejemplo

  1. Vaya a Patrones de Azure Intelligent Edge en ejemplos de Azure. Clone o descargue el archivo .zip del código.

    Download zip file

    Extraiga los archivos del archivo .zip. También puede clonar los ejemplos.

    git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
    

Compilación e implementación del módulo

  1. Abra la carpeta GpuReferenceModules en Visual Studio Code.

    Open GPUReferenceModules in VS Code

  2. Abra el archivo deployment.template.json e identifique los parámetros a los que se hacen referencia para el registro de contenedor. En el siguiente archivo, se usan CONTAINER_REGISTRY_USERNAME, CONTAINER_REGISTRY_PASSWORD y CONTAINER_REGISTRY_NAME.

        {
      "$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. Cree un archivo nuevo. Rellene los valores de los parámetros del registro de contenedor (use los identificados en el paso anterior) de la manera siguiente:

    CONTAINER_REGISTRY_NAME=<YourContainerRegistryName>
    CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName>
    CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
    

    A continuación, se muestra un archivo de ejemplo .env:

    Create and save .env file

  4. Guarde el archivo como .env en la carpeta SampleSolution.

  5. Escriba el comando siguiente en el terminal integrado de Visual Studio Code para iniciar sesión en Docker.

    docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
    

    Vaya a la sección Claves de acceso del contenedor registro en Azure Portal. Copie y use el servidor de inicio de sesión, la contraseña y el nombre del registro.

    Access keys in your container registry

    Una vez que se proporcionan las credenciales, el inicio de sesión se realiza correctamente.

    Successful sign in

  6. Inserte la imagen en el registro de contenedor de Azure. En el explorador de Visual Studio Code, haga clic con el botón derecho en el archivo deployment.template.json y seleccione Build and Push IoT Edge solution (Compilar e insertar solución de IoT Edge).

    Build and push IoT Edge solution

    Si no se instalan las extensiones de Python y Python, se hará al compilar e insertar la solución. Sin embargo, se producirían tiempos de compilación más largos.

    Una vez completado este paso, verá el módulo en el registro de contenedor.

    Module in container registry

  7. Para crear un manifiesto de implementación, haga clic con el botón derecho en el archivo deployment.template.json y seleccione Generate IoT Edge Deployment Manifest (Generar manifiesto de implementación de IoT Edge).

    Generate IoT Edge deployment manifest

    La notificación informa de la ruta de acceso en la que se generó el manifiesto de implementación. El manifiesto es el archivo deployment.amd64.json generado en la carpeta config.

  8. Seleccione el archivo deployment.amd64.json en la carpeta config y, a continuación, elija Create Deployment for Single Device (Crear una implementación para un dispositivo individual). No utilice el archivo deployment.template.json.

    Create deployment for single device

    En la ventana Salida, debería ver un mensaje que indica que la implementación se realizó correctamente.

    Deployment succeeded in Output

Supervisión del módulo

  1. En la paleta de comandos de VS Code, ejecute Azure IoT Hub: Select IoT Hub.

  2. Elija la suscripción y la instancia de IoT Hub que contienen el dispositivo IoT Edge que desea configurar. En este caso, seleccione la suscripción que se ha usado para implementar el dispositivo Azure Stack Edge Pro y seleccione el dispositivo IoT Edge creado para el dispositivo Azure Stack Edge Pro. Esto sucede cuando se configura el proceso mediante Azure Portal en los pasos anteriores.

  3. En el explorador de Visual Studio Code, expanda la sección Azure IoT Hub. En Dispositivos, debería ver el dispositivo IoT Edge correspondiente a su dispositivo Azure Stack Edge Pro.

    1. Seleccione ese dispositivo, haga clic con el botón derecho en Iniciar la supervisión del punto de conexión de eventos integrado.

      Start monitoring

    2. Vaya a Dispositivos > Módulos; allí debería ver el módulo de GPU en ejecución.

      Module in IoT Hub

    3. El terminal de Visual Studio Code también debería mostrar los eventos de IoT Hub como salida de supervisión para el dispositivo Azure Stack Edge Pro.

      Monitoring output

      Puede ver que el tiempo necesario para ejecutar el mismo conjunto de operaciones (5000 iteraciones de transformación de forma) por GPU es mucho menor que el de la CPU.

Pasos siguientes