Compartir a través de


Aceleración de GPU en contenedores de Windows

En el caso de muchas cargas de trabajo en contenedores, los recursos de proceso de CPU proporcionan un rendimiento suficiente. Sin embargo, para una determinada clase de cargas de trabajo, la potencia de proceso con un gran paralelismo ofrecida por las GPU (unidades de procesamiento gráfico) puede acelerar las operaciones en órdenes de magnitud, lo que reduce el costo y mejora el rendimiento enormemente.

Las GPU ya son una herramienta común para muchas cargas de trabajo populares, desde la representación y simulación tradicionales hasta el entrenamiento y la inferencia de aprendizaje automático. Los contenedores de Windows admiten la aceleración de GPU para DirectX y todos los marcos de trabajo que se basan en él.

Nota

Esta característica está disponible en Docker Desktop, versión 2.1, y Docker Engine Enterprise, versión 19.03 o posterior.

Requisitos

Para que esta característica funcione, el entorno debe cumplir los siguientes requisitos:

  • El host de contenedor debe ejecutar Windows Server 2019 o Windows 10, versión 1809 o posterior.
  • La imagen base del contenedor debe ser mcr.microsoft.com/windows:1809 o posterior. Actualmente no se admiten las imágenes de contenedor de Windows Server Core y Nano Server.
  • El host de contenedor debe ejecutar Docker Engine 19.03 o una versión más reciente.
  • El host de contenedor debe tener una GPU que ejecute WDDM 2.5 o una versión más reciente.

Para comprobar la versión de WDDM de tus controladores de pantalla, ejecuta la herramienta de diagnóstico de DirectX (dxdiag.exe) en el host de contenedor. En la pestaña "Pantalla" de la herramienta, busque en la sección "Controladores" como se indica a continuación.

Screenshot of the Driver Model found in the Display tab.

Ejecución de un contenedor con aceleración de GPU

Para iniciar un contenedor con aceleración de GPU, ejecuta el siguiente comando:

docker run --isolation process --device class/5B45201D-F2F2-4F3B-85BB-30FF1F953599 mcr.microsoft.com/windows:1809

Importante

DirectX (y todos los marcos basados en él) son las únicas API que se pueden acelerar con una GPU en la actualidad. No se admiten marcos de terceros.

Compatibilidad con contenedores de Windows con aislamiento de Hyper-V

Actualmente no se admite la aceleración de GPU para cargas de trabajo en contenedores de Windows con aislamiento de Hyper-V.

Compatibilidad con contenedores de Linux con aislamiento de Hyper-V

Actualmente no se admite la aceleración de GPU para cargas de trabajo en contenedores de Linux con aislamiento de Hyper-V.

Información adicional

Para ver un ejemplo completo de una aplicación de DirectX en contenedores que aprovecha la aceleración de GPU, consulta el Ejemplo de contenedor de DirectX.