NVIDIA Docker te permitirá ejecutar aplicaciones con la GPU en contenedores virtuales

Los contenedores de Docker hasta ahora han sido utilizados para poder ejecutar diferentes aplicaciones basadas en la CPU principal, de esta forma, podremos tener en un mismo servidor múltiples contenedores aislados y ejecutando diferentes aplicaciones. NVIDIA Docker nos permitirá utilizar la potencia de las GPU para realizar este trabajo.
Antes de NVIDIA Docker, si alguien necesitaba utilizar las GPU de NVIDIA para acelerar los cálculos del software, no podía utilizar Docker porque no soportaban GPU de manera nativa. Para conseguir hacer funcionar una GPU de NVIDIA en un contenedor de Docker, era necesario contar con la instalación del driver de NVIDIA tanto en la máquina física real como en los contenedores virtuales, y posteriormente enlazar los dispositivos. Además, debía ser exactamente la misma versión de driver tanto en la máquina física como en los contenedores virtuales.
Otra limitación muy importante que existía era que estas imágenes Docker no se podían compartir y construir en otro ordenador distinto, ya que era necesario contar con la misma gráfica y los mismos drivers, algo que con Docker basado en CPU sí permitía.
NVIDIA Docker
Para poder funcionar con todas las características de Docker al tener GPU de NVIDIA, la solución es la de tener imágenes con el driver de NVIDIA. de tal forma que cuando se inicie el contenedor virtual, también se monte automáticamente todo lo necesario para funcionar.
Los beneficios de tener aplicaciones que se ejecutan en la GPU en un contendor son por ejemplo que se pueden reproducir fácilmente en otros ordenadores, el despliegue es rápido y fácil, sin tener que instalar drivers específicos ni dependencias, ya viene todo instalado en el propio contendor Docker. Otras características son que podremos hacer funcionar estas imágenes en entornos heterogéneos de driver y tarjeta gráfica, simplemente es necesario tener instalado en la máquina real el driver de NVIDIA. Por último, las aplicaciones estarán tan aisladas como en el Docker de siempre.
Los requisitos de NVIDIA Docker es que nuestro sistema operativo Linux debe estar basado en arquitectura x64 y tener un Kernel superior a la versión 3.10, además es necesario tener una versión de Docker 1.9 o superior y tener una GPU NVIDIA con arquitectura Fermi (2.1) o superior. Por último, debemos utilizar los drivers de NVIDIA 340.29 o superior.
Os recomendamos visitar el proyecto de NVIDIA Docker en GitHub, además también podréis acceder a su completa Wiki donde encontraréis toda la información sobre NVIDIA Docker.