Aceleración de GPU en Azure IoT Edge para Linux en Windows
Se aplica a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS son versiones compatibles. IoT Edge 1.4 LTS finaliza el ciclo de vida el 12 de noviembre de 2024. Si está usando una versión anterior, consulte Actualización de IoT Edge.
Las GPU son una opción popular para los cálculos de inteligencia artificial, ya que ofrecen funcionalidades de procesamiento paralelo y a menudo pueden ejecutar inferencias basadas en la visión más rápido que las CPU. Para admitir mejor la inteligencia artificial y las aplicaciones de aprendizaje automático, Azure IoT Edge para Linux en Windows (EFLOW) puede exponer una GPU al módulo de Linux de la máquina virtual.
Azure IoT Edge para Linux en Windows admite varias tecnologías de paso a través de GPU, como las siguientes:
Asignación directa de dispositivos (DDA): los núcleos de GPU se asignan a la máquina virtual Linux o al host.
Paravirtualización de GPU (GPU-PV): la GPU se comparte entre la máquina virtual Linux y el host.
Debe seleccionar el método de acceso directo adecuado durante la implementación para que coincida con las funcionalidades admitidas del hardware de GPU del dispositivo.
Importante
Estas características pueden incluir componentes desarrollados y propiedad de NVIDIA Corporation o sus emisores de licencias. El uso de los componentes se rige por el contrato de licencia para el usuario final de NVIDIA que se encuentra en el sitio web de NVIDIA.
Al usar las características de aceleración de GPU, acepta y está de acuerdo con los términos del contrato de licencia del usuario final de NVIDIA.
Requisitos previos
Las características de aceleración de GPU de Azure IoT Edge para Linux en Windows admiten actualmente un conjunto selecto de hardware de GPU. Además, el uso de esta característica puede requerir versiones específicas de Windows.
A continuación se enumeran las GPU admitidas y las versiones de Windows necesarias:
GPU admitidas | Tipo de tránsito de GPU | Versiones compatibles de Windows |
---|---|---|
NVIDIA T4, A2 | DDA | Windows Server 2019 Windows Server 2022 Windows 10/11 (Pro, Enterprise, IoT Enterprise) |
NVIDIA GeForce, Quadro, RTX | GPU-PV | Windows 10/11 (Pro, Enterprise, IoT Enterprise) |
Intel iGPU | GPU-PV | Windows 10/11 (Pro, Enterprise, IoT Enterprise) |
Importante
La compatibilidad con GPU-PV puede limitarse a determinadas generaciones de procesadores o arquitecturas de GPU según lo determine el proveedor de GPU. Para obtener más información, consulte la documentación del controlador iGPU de Intel o CUDA de NVIDIA para WSL.
Windows Server 2019: los usuarios deben usar la compilación mínima 17763 con todas las actualizaciones acumulativas actuales instaladas.
Los usuarios de Windows 10 deben usar la actualización de noviembre de 2021 la compilación 19044.1620 o posterior. Después de la instalación, puede comprobar el número de versión si ejecuta winver
en el símbolo del sistema.
El paso directo de GPU no se admite con la virtualización anidada, como la ejecución de EFLOW en una máquina virtual Windows.
Configuración e instalación del sistema
Las secciones siguientes contienen información de configuración e instalación, según la GPU.
GPU NVIDIA T4/A2
Para las GPU T4/A2, Microsoft recomienda instalar un controlador de mitigación de dispositivos del proveedor de GPU. Aunque es opcional, la instalación de un controlador de mitigación puede mejorar la seguridad de la implementación. Para obtener más información, vea Implementación de dispositivos gráficos mediante la asignación directa de dispositivos.
Advertencia
La habilitación del acceso directo de dispositivos de hardware puede aumentar los riesgos de seguridad. Microsoft recomienda usar un controlador de mitigación de dispositivos del proveedor de GPU, si procede. Para obtener más información, vea Implementación de dispositivos gráficos mediante la asignación discreta de dispositivos.
GPUs NVIDIA GeForce/Quadro/RTX
Para las GPU GeForce/Quadro/RTX, descargue e instale el controlador habilitado para NVIDIA CUDA para Subsistema de Windows para Linux (WSL) a fin de usarlo con los flujos de trabajo de ML CUDA existentes. Desarrollado originalmente para WSL, los controladores CUDA para WSL también se usan para Azure IoT Edge para Linux en Windows.
Los usuarios de Windows 10 también deben instalar WSL porque algunas de las bibliotecas se comparten entre WSL y Azure IoT Edge para Linux en Windows.
Intel iGPU
En el caso de las Intel iGP, descargue e instale el controlador de gráficos de Intel con compatibilidad con GPU de WSL.
Los usuarios de Windows 10 también deben instalar WSL porque algunas de las bibliotecas se comparten entre WSL y Azure IoT Edge para Linux en Windows.
Habilitación de la aceleración de GPU en la implementación de Linux en Windows de Azure IoT Edge
Una vez completada la configuración del sistema, está listo para crear la implementación de Azure IoT Edge para Linux en Windows. Durante este proceso, debe habilitar GPU como parte de la implementación de EFLOW.
Por ejemplo, los siguientes comandos crean una máquina virtual habilitada para GPU con una GPU NVIDIA A2 o una tarjeta gráfica Intel Iris Xe.
#Deploys EFLOW with NVIDIA A2 assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType DirectDeviceAssignment -gpuCount 1 -gpuName "NVIDIA A2"
#Deploys EFLOW with Intel(R) Iris(R) Xe Graphics assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType ParaVirtualization -gpuCount 1 -gpuName "Intel(R) Iris(R) Xe Graphics"
Para buscar el nombre de la GPU, puede ejecutar el siguiente comando o buscar adaptadores de pantalla en el Administrador de dispositivos.
(Get-WmiObject win32_VideoController).caption
Una vez se ha completado la instalación, está listo para implementar y ejecutar módulos de Linux con aceleración de GPU por medio de Azure IoT Edge para Linux en Windows.
Configuración de la aceleración de GPU en una implementación existente de Azure IoT Edge Linux en Windows
La asignación de la GPU en el momento de la implementación dará lugar a la experiencia más sencilla. Sin embargo, para habilitar o deshabilitar la GPU después de la implementación, use el comando "set-eflowvm". Al usar "set-eflowvm", se usará el parámetro predeterminado para cualquier argumento no especificado. Por ejemplo,
#Deploys EFLOW without a GPU assigned to the EFLOW VM
Deploy-Eflow -cpuCount 4 -memoryInMB 16384
#Assigns NVIDIA A2 GPU to the existing deployment (cpu and memory must still be specified, otherwise they will be set to the default values)
Set-EflowVM -cpuCount 4 -memoryInMB 16384 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1
#Reduces the cpuCount and memory (GPU must still be specified, otherwise the GPU will be removed)
Set-EflowVM -cpuCount 2 -memoryInMB 4096 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1
#Removes NVIDIA A2 GPU from the existing deployment
Set-EflowVM -cpuCount 2 -memoryInMB 4096
Pasos siguientes
Empezar con muestras
Visite nuestra Página de muestras de EFLOW para descubrir varias muestras de GPU que puede probar y usar. Estas muestras ilustran escenarios comunes de fabricación y venta minorista, como la detección de defectos, la seguridad de los trabajadores y la administración del inventario. Las muestras de código abierto pueden servir como plantilla de solución para crear su propia aplicación de aprendizaje automático basada en visión.
Obtener más información sobre nuestros asociados
Varios proveedores de GPU han proporcionado guías de usuario para obtener la mayor parte de su hardware y software con EFLOW.
- Obtenga información sobre cómo ejecutar aplicaciones Intel OpenVINO™ en EFLOW siguiendo la guía de Intel sobre iGPU con Azure IoT Edge para Linux en Windows (EFLOW) y el kit de herramientas de OpenVINO™ y las implementaciones de referencia.
- Empiece a implementar aplicaciones aceleradas por CUDA en EFLOW siguiendo la Guía de usuario de EFLOW de NVIDIA para GPU de GeForce/Quadro/RTX.
Nota:
En esta guía no se tratan las GPU basadas en DDA, como NVIDIA T4 o A2.
Profundizar en la tecnología
Para obtener más información sobre las tecnologías de acceso directo de GPU, visite la documentación de DDA y la entrada de blog de GPU-PV.