Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 suscripción de usuario utilizando Microsoft Entra ID en un Sistema Integrado de Azure Stack Hub con una GPU NVIDIA. Los siguientes chips funcionan con iOT Hub:
- NCv3
- NCas_v4
Para más información sobre las GPU en Azure Stack Hub, consulte Máquina virtual de la unidad de procesamiento de gráficos (GPU) en Azure Stack Hub.
Una suscripción global de Azure. Si no tiene una suscripción global de Azure, cree una cuenta gratuita antes de empezar.
Un registro de contenedores de Azure (ACR). Anote el servidor de inicio de sesión de ACR, el nombre de usuario y la contraseña.
Un centro de IoT de nivel estándar o gratuito en Azure global.
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:
- Python 3.x
-
Pip para instalar paquetes de Python. Esto ha sido instalado con tu instalación de Python. Si tiene Pip instalado, es posible que desee actualizar a la versión más reciente. Puede actualizar directamente usando pip. Escriba:
pip install --upgrade pip. - CLI de Azure 2.0
- Git
- Docker
- Visual Studio Code
- Herramientas de Azure IoT para Visual Studio Code
- Paquete de extensiones de Python para Visual Studio Code
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:
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.
Preparación de una máquina virtual habilitada para GPU
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.
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?.
Conéctese al servidor Linux de la serie N mediante el cliente SSH.
Actualice el índice y las listas apt.
sudo apt-get updateCapture las nuevas versiones de los paquetes existentes en la máquina.
sudo apt-get upgradeInstale las dependencias necesarias para agregar el repositorio apt de Docker.
sudo apt-get install apt-transport-https ca-certificates curl software-properties-commonAgregue la clave GPG de Docker.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -Agregue el repositorio apt de Docker.
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"Actualice el índice y las listas de apt e instale Docker Community Edition.
sudo apt-get update sudo apt-get install docker-ceCompruebe la instalación comprobando la versión de Docker.
docker -vExponga 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
Descargue Azure IoT Explorer y conecte la aplicación a IoT Hub.
Seleccione el dispositivo IoT y vaya a Telemetría en el menú de navegación.
Seleccione Iniciar para empezar a supervisar la salida desde el dispositivo IoT Edge.
Supervisión del módulo (opcional)
En la paleta de comandos de VS Code, ejecute Azure IoT Hub: Seleccione IoT Hub.
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.
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.
Seleccione ese dispositivo, haga clic con el botón derecho y seleccione Iniciar supervisión del punto de conexión de eventos integrado.
Vaya a Módulos de dispositivos > y debería ver que el módulo de GPU se está ejecutando.
El terminal de VS Code también debe mostrar los eventos de IoT Hub como salida de supervisión de Azure Stack Hub.
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
Más información sobre la máquina virtual (VM) de unidad de procesamiento de gráficos (GPU) en Azure Stack Hub
Más información sobre Azure Stack Hub, Data Box Edge y Intelligent Edge, El futuro de la informática: nube inteligente e inteligencia perimetral
Más información sobre las aplicaciones en la nube híbrida, consulte Soluciones en la nube híbrida.