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

Con una instancia de Azure Stack Hub habilitada para GPU, puede implementar módulos de uso intensivo del procesador en dispositivos Linux que se ejecutan en IoT Edge. Los tamaños de VM optimizados para GPU son VM especializadas con GPU sencilla o múltiple de NVIDIA. En este artículo, aprenderá a usar VM optimizadas para GPU para ejecutar cargas de trabajo de visualización con un uso intensivo de procesos y gráficos.

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

En este artículo:

  • Instale una VM Linux habilitada para GPU y los controladores correctos.
  • Instale Docker y habilite la GPU en el entorno en tiempo de ejecución.
  • Conecte el dispositivo IoT a IoT Hub e instale desde el marketplace de IoT el modelo Getting started with GPUs.
  • Instale y supervise el dispositivo desde una máquina local con Azure IoT Explorer.
  • Opcionalmente, puede instalar y supervisar el dispositivo con la extensión de Azure IoT en Visual Studio Code.

Prerrequisitos

Necesitará disponer de los siguientes recursos en la instancia de Azure Stack Hub, en el entorno global de Azure y en la máquina de desarrollo local.

Azure Stack Hub y Azure

  • Una suscripción como usuario que usa Microsoft Entra id. en un sistema integrado de Azure Stack Hub con una GPU NVIDA. Los siguientes chips funcionan con IoT Hub:

    • NCv3
    • NCas_v4

    Para obtener más información sobre las GPU en Azure Stack Hub, consulte VM de la unidad de procesamiento de gráficos (GPU) en Azure Stack Hub.

  • Una suscripción de Azure global. Si no tiene una suscripción global a Azure, cree una cuenta gratuita antes de empezar.

  • Una instancia de Azure Container Registry (ACR). Anote el servidor de inicio de sesión en ACR, el nombre de usuario y la contraseña.

  • Un centro de IoT de nivel estándar o gratis en el entorno global de Azure.

Una máquina de desarrollo

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

  • El equipo 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 que refleja de manera más precisa un escenario de implementación.

Cree un dispositivo IoT Edge en Azure con una VM Linux:

  1. Cree una VM de servidor Linux de la serie N en Azure Stack Hub. Al instalar los componentes para el servidor, interactuará con el servidor mediante SSH. Para más información, consulte Uso de una clave pública SSH.

  2. Crear y registrar un dispositivo IoT Edge

Preparar una VM habilitada para GPU

  1. Instale los controladores de GPU de NVIDIA en el servidor de Linux de la serie N siguiendo los pasos descritos en el artículo Instalación de controladores de GPU NVIDIA en VM 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 para instalar los controladores en el contenedor que se ejecuta en Docker en la VM habilitada para GPU.

  2. Instale el entorno en tiempo 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.

Instalar Docker

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

Debe instalar Docker 19.02 o superior. Ahora, el entorno en tiempo de ejecución de Docker es compatible con las GPU de NVIDIA. Para obtener más información acerca de las GPU de Docker, consulte el artículo de la documentación de Docker Opciones en tiempo de ejecución de memoria, CPU y GPU.

Instalar Docker

Los contenedores de Docker se pueden ejecutar en cualquier lugar, a nivel local en el centro de datos de cliente, en un proveedor de servicios externo o en la nube, en Azure. Los contenedores de imagen de Docker se pueden ejecutar de forma nativa en Linux y Windows. Sin embargo, las imágenes de Windows solo pueden ejecutarse en hosts de Windows y las imágenes de Linux pueden ejecutarse en hosts de Linux y hosts de Windows (con una máquina virtual Linux de Hyper-V, hasta el momento), 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 de 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 las listas y el índice de apt e instale Docker Community Edition.

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

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

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

Obtención del artículo del marketplace

Vuelva a Azure Portal y agregue el modelo al dispositivo perimetral mediante el marketplace de IoT. Seleccione Módulo de Marketplace en el menú. Busque Getting started with GPUs y siga las instrucciones para agregar el módulo.

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

Habilitar 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 desde el menú de navegación.

  3. Seleccione Iniciar para iniciar la supervisión de 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: 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 en su instancia de Azure Stack Hub y seleccione el dispositivo de IoT Edge que se creó para esta instancia. 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 de IoT Edge correspondiente a su instancia de Azure Stack Hub.

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

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

    3. El terminal de Visual Studio Code también debería mostrar los eventos de IoT Hub como salida de supervisión para la instancia 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 forma) por GPU es mucho menor que el de la CPU.

Pasos siguientes