Compartir a través de


Implementación de un módulo ioT habilitado para GPU en Azure Stack Hub

Con una instancia de Azure Stack Hub habilitada para GPU, puede implementar módulos intensivos de procesador en dispositivos Linux que se ejecutan en IoT Edge. Los tamaños de máquina virtual optimizados para GPU son máquinas virtuales especializadas disponibles con GPU de NVIDIA únicas o múltiples. En este artículo, aprenderá a usar máquinas virtuales optimizadas para GPU para ejecutar cargas de trabajo de visualización, gráficos y proceso intensivo.

Antes de empezar, necesitará una suscripción de Microsoft Entra con acceso a Azure global y Azure Stack Hub, azure Container Registry (ACR) y un centro de IoT.

En este artículo, usted:

  • Instale una máquina virtual Linux habilitada para GPU e instale los controladores correctos.
  • Instale Docker y habilite la GPU en tiempo de ejecución.
  • Conecte su dispositivo IoT a su IoT Hub e instale desde el IoT Marketplace el siguiente modelo: Getting started with GPUs.
  • Instale y supervise el dispositivo desde una máquina local mediante Azure IoT Explorer.
  • Y, opcionalmente, instale y supervise el dispositivo mediante la extensión de Azure IoT en Visual Studio Code.

Prerrequisitos

Deberá tener los siguientes recursos en su instancia de Azure Stack Hub, Azure global y en la máquina de desarrollo local.

Azure Stack Hub y Azure

Una máquina de desarrollo

  • Puede usar su propio equipo o una máquina virtual, en función de sus preferencias de desarrollo. La máquina de desarrollo deberá admitir la virtualización anidada. Esta funcionalidad es necesaria para ejecutar Docker, el motor de contenedor que se usa en este artículo.

  • La máquina de desarrollo necesitará los siguientes recursos:

Registro de un dispositivo de IoT Edge

Use un dispositivo independiente para hospedar el dispositivo IoT Edge. El uso de un dispositivo independiente proporcionará una separación entre la máquina de desarrollo y el dispositivo IoT Edge refleja con más precisión un escenario de implementación.

Cree un dispositivo IoT Edge en Azure con una máquina virtual Linux:

  1. Cree una máquina virtual de servidor Linux de la serie N en Azure Stack Hub. A medida que instala componentes para el servidor, interactuará con el servidor a través de SSH. Para más información, consulte Uso de un par de claves SSH con Azure Stack Hub.

  2. Creación y registro de un dispositivo IoT Edge

Preparación de una máquina virtual habilitada para GPU

  1. Instale los controladores de GPU NVIDA en el servidor Linux de la serie N siguiendo los pasos descritos en el artículo Instalación de controladores de GPU nvidia en máquinas virtuales de la serie N que ejecutan Linux.

    Nota:

    Usará la línea de comandos de Bash para instalar el software. Tome nota de los comandos, ya que usará los mismos comandos para instalar los controladores en el contenedor que se ejecuta en Docker en la máquina virtual habilitada para GPU.

  2. Instale el entorno de ejecución de IoT Edge más reciente en el servidor Linux de la serie N en Azure Stack Hub. Para obtener instrucciones, consulte Instalación del entorno de ejecución de Azure IoT Edge en sistemas Linux basados en Debian.

Instalación de Docker

Instale Docker en la máquina virtual habilitada para GPU. Va a ejecutar el módulo desde el marketplace de IoT Edge en un contenedor de la máquina virtual.

Debe instalar Docker 19.02 o posterior. El entorno de ejecución de Docker ahora admite las GPU nvidia. Para obtener más información sobre las GPU en Docker, consulte el artículo en la documentación de Docker, Opciones de tiempo de ejecución con memoria, CPU y GPU.

Instalación de Docker

Los contenedores de Docker se pueden ejecutar en cualquier lugar, local en el centro de datos del cliente, en un proveedor de servicios externo o en la nube, en Azure. Los contenedores de imágenes de Docker se pueden ejecutar de forma nativa en Linux y Windows. Sin embargo, las imágenes de Windows solo se pueden ejecutar en hosts de Windows e imágenes de Linux pueden ejecutarse en hosts de Linux y hosts de Windows (mediante una máquina virtual Linux de Hyper-V, hasta ahora), donde host significa un servidor o una máquina virtual. Para obtener más información, consulte ¿Qué es Docker?.

  1. Conéctese al servidor Linux de la serie N mediante el cliente SSH.

  2. Actualice el índice y las listas apt.

    sudo apt-get update
    
  3. Capture las nuevas versiones de los paquetes existentes en la máquina.

    sudo apt-get upgrade
    
  4. Instale las dependencias necesarias para agregar el repositorio apt de Docker.

    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    
  5. Agregue la clave GPG de Docker.

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  6. Agregue el repositorio apt de Docker.

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  7. Actualice el índice y las listas de apt e instale Docker Community Edition.

    sudo apt-get update 
    sudo apt-get install docker-ce
    
  8. Compruebe la instalación comprobando la versión de Docker.

    docker -v
    
  9. Exponga los recursos de GPU disponibles en Docker.

    docker run -it --rm --gpus all ubuntu nvidia-smi
    

Obten el artículo del marketplace

Vuelva al portal de Azure y agregue el modelo a su dispositivo de borde usando el marketplace de IoT. Seleccione Módulo de Marketplace en el menú. Y busque Getting started with GPUsy siga las instrucciones para agregar el módulo.

Para obtener instrucciones, consulte Selección del dispositivo y adición de módulos.

Habilitación de la supervisión

  1. Descargue Azure IoT Explorer y conecte la aplicación a IoT Hub.

  2. Seleccione el dispositivo IoT y vaya a Telemetría en el menú de navegación.

  3. Seleccione Iniciar para empezar a supervisar la salida desde el dispositivo IoT Edge.

una instalación válida

Supervisión del módulo (opcional)

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

  2. Elija la suscripción y el centro de IoT que contienen el dispositivo IoT Edge que desea configurar. En este caso, seleccione la suscripción en la instancia de Azure Stack Hub y seleccione el dispositivo IoT Edge creado para Azure Stack Hub. Esto ocurre cuando se configura el proceso a través de Azure Portal en los pasos anteriores.

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

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

    2. Vaya a Módulos de dispositivos > y debería ver que el módulo de GPU se está ejecutando.

    3. El terminal de VS Code también debe mostrar los eventos de IoT Hub como salida de supervisión de Azure Stack Hub.

    una instalación válida es

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

Pasos siguientes