Nvidia ha anunciado la liberación del código fuente de su Run:ai Scheduler, incluyendo el componente clave KAI Scheduler. Esta iniciativa, anunciada por VentureBeat, busca fomentar la colaboración y la innovación dentro de la comunidad de desarrolladores de inteligencia artificial (IA). El KAI Scheduler, una solución de programación de unidades de procesamiento gráfico (GPU) nativa de Kubernetes, ahora está disponible bajo la licencia Apache 2.0, permitiendo a los desarrolladores acceder, modificar y distribuir el software libremente.
Nvidia Open Sources Run:ai Scheduler
La decisión de Nvidia de liberar el código fuente de Run:ai Scheduler, y en particular el KAI Scheduler, representa un paso significativo en su estrategia para fortalecer el ecosistema de IA. Según Dean Takahashi, escribiendo para VentureBeat, esta acción subraya el compromiso de Nvidia con el avance de la infraestructura de IA de código abierto y empresarial.
¿Qué es el KAI Scheduler?
El KAI Scheduler es una solución de programación de GPU diseñada para integrarse de manera nativa con Kubernetes, una plataforma de código abierto para automatizar el despliegue, la escalabilidad y la gestión de aplicaciones en contenedores. Originalmente desarrollado dentro de la plataforma Run:ai, recientemente adquirida por Nvidia, el KAI Scheduler ahora se ofrece a la comunidad bajo la licencia Apache 2.0.
Tal y como explican Ronen Dar y Ekin Karabulut de Nvidia en un post, el KAI Scheduler ofrece una serie de beneficios clave para los equipos de IT y Machine Learning (ML). El software también continua empaquetado y ofrecido como parte de la plataforma Nvidia Run:ai.
Beneficios del KAI Scheduler
La gestión de cargas de trabajo de IA en GPUs y CPUs presenta desafíos únicos que los programadores de recursos tradicionales a menudo no pueden abordar eficazmente. El KAI Scheduler fue desarrollado específicamente para superar estas limitaciones, ofreciendo soluciones para:
Gestión de demandas fluctuantes de GPU
Las cargas de trabajo de IA son dinámicas y pueden cambiar rápidamente. Por ejemplo, un ingeniero puede necesitar una sola GPU para tareas interactivas como la exploración de datos, y luego requerir varias GPUs para el entrenamiento distribuido o la ejecución de múltiples experimentos. Los programadores tradicionales a menudo tienen dificultades para adaptarse a esta variabilidad.
El KAI Scheduler aborda este problema recalculando continuamente los valores de "fair-share" y ajustando las cuotas y los límites en tiempo real. Este enfoque dinámico garantiza una asignación eficiente de las GPU sin la necesidad de intervención manual constante por parte de los administradores.
Reducción de tiempos de espera
Para los ingenieros de ML, el tiempo es un recurso valioso. El KAI Scheduler reduce los tiempos de espera mediante la combinación de la programación en grupo ("gang scheduling"), el uso compartido de GPU y un sistema de colas jerárquico. Esto permite a los usuarios enviar lotes de trabajos y tener la confianza de que se ejecutarán tan pronto como los recursos estén disponibles, respetando las prioridades y garantizando la equidad.
Para optimizar aún más el uso de los recursos, incluso ante la fluctuación de la demanda, el KAI Scheduler emplea dos estrategias eficaces tanto para las cargas de trabajo de GPU como de CPU:
- Bin-packing y consolidación: Maximiza la utilización de la capacidad de computación al combatir la fragmentación de los recursos, empaquetando tareas más pequeñas en GPUs y CPUs parcialmente utilizadas, y abordando la fragmentación de los nodos mediante la reasignación de tareas entre nodos.
- Spreading: Distribuye uniformemente las cargas de trabajo entre nodos o GPUs y CPUs para minimizar la carga por nodo y maximizar la disponibilidad de recursos por carga de trabajo.
Garantías de recursos o asignación de GPU
En clústeres compartidos, algunos investigadores aseguran más GPUs de las necesarias al principio del día para garantizar su disponibilidad durante todo el día. Esta práctica puede llevar a la subutilización de los recursos, incluso cuando otros equipos todavía tienen cuotas sin utilizar.
El KAI Scheduler aborda este problema haciendo cumplir las garantías de recursos. Asegura que los equipos de profesionales de la IA reciban sus GPUs asignadas, al tiempo que reasigna dinámicamente los recursos inactivos a otras cargas de trabajo. Este enfoque previene el acaparamiento de recursos y promueve la eficiencia general del clúster.
Conexión de herramientas y frameworks de IA
Conectar las cargas de trabajo de IA con diversos frameworks puede ser una tarea compleja. Tradicionalmente, los equipos se enfrentan a un laberinto de configuraciones manuales para vincular las cargas de trabajo con herramientas como Kubeflow, Ray, Argo y el Training Operator. Esta complejidad retrasa la creación de prototipos.
El KAI Scheduler simplifica este proceso al incluir un "podgrouper" integrado que detecta y se conecta automáticamente con estas herramientas y frameworks, reduciendo la complejidad de la configuración y acelerando el desarrollo.
Compromiso de Nvidia con la comunidad
La liberación del código fuente del KAI Scheduler es un claro ejemplo del compromiso de Nvidia con la comunidad de desarrolladores. Al abrir el código, Nvidia busca fomentar un ecosistema colaborativo donde los desarrolladores puedan contribuir, proporcionar retroalimentación e innovar en la infraestructura de IA.
Conclusión
La liberación del código fuente del Run:ai Scheduler, y en particular del KAI Scheduler, tiene el potencial de transformar la forma en que se gestionan las cargas de trabajo de IA. Al proporcionar una solución de programación de GPU flexible, eficiente y fácil de usar, Nvidia está empoderando a los desarrolladores para que construyan y desplieguen aplicaciones de IA más rápidamente y con mayor eficiencia. El impacto de esta iniciativa en la comunidad de IA será significativo, impulsando la innovación y fomentando un futuro más colaborativo para el desarrollo de la IA.