Nvidia aborda el acero de la unidad de procesamiento de gráficos

NVIDIA ha hecho su Kai Scheduler, una herramienta de programación de la Unidad de Procesamiento de Gráficos Nativos de Kubernetes (GPU), disponible como código abierto bajo la licencia Apache 2.0.

Kai Scheduler, que forma parte de la plataforma Nvidia Run: AI, está diseñado para administrar cargas de trabajo de inteligencia artificial (IA) en GPU y unidades de procesamiento central (CPU). Según Nvidia, Kai puede gestionar las demandas de GPU fluctuantes y los tiempos de espera reducidos para el acceso al cálculo. También ofrece garantías de recursos o asignación de GPU.

El repositorio de GitHub para Kai Scheduler dijo que admite todo el ciclo de vida de IA, desde trabajos pequeños e interactivos que requieren recursos mínimos para una gran capacitación e inferencia, todo en el mismo clúster. NVIDIA dijo que garantiza una asignación óptima de recursos al tiempo que mantiene la equidad de los recursos entre las diferentes aplicaciones que requieren acceso a las GPU.

La herramienta permite a los administradores de clústeres de Kubernetes asignar dinámicamente recursos de GPU a cargas de trabajo, y pueden ejecutarse junto con otros programadores instalados en un clúster Kubernetes.

“Es posible que solo necesite una GPU para el trabajo interactivo (por ejemplo, para la exploración de datos) y luego, de repente, requiere varias GPU para capacitación distribuida o múltiples experimentos”, escribió Ronen Dar, vicepresidente de sistemas de software en Nvidia, y Ekin Karabulut, científico de datos de Nvidia, en una publicación de blog. “Los programadores tradicionales luchan con tal variabilidad”.

Dijeron que el planificador de KAI recalcula continuamente los valores de compartir justo y ajusta las cuotas y los límites en tiempo real, coincidiendo automáticamente con las demandas de carga de trabajo actuales. Según DAR y Karabulut, este enfoque dinámico ayuda a garantizar una asignación eficiente de GPU sin una intervención manual constante de los administradores.

También dijeron que para los ingenieros de aprendizaje automático, el planificador reduce los tiempos de espera al combinar lo que llaman “programación de pandillas”, intercambio de GPU y un sistema de colas jerárquico que permite a los usuarios enviar lotes de trabajos. Los trabajos se lanzan tan pronto como los recursos están disponibles y alinean con prioridades y equidad, Dar y Karabulut escribieron.

Para optimizar la demanda fluctuante de recursos de GPU y CPU, DAR y Karabulut dijeron que Kai Scheduler usa lo que NVIDIA llama Bin Packing and Consolidation. Dijeron que esto maximiza la utilización de cálculos al combatir la fragmentación de los recursos y logra empacando tareas más pequeñas en GPU y CPU parcialmente utilizadas.

DAR y Karabulut dijeron que también aborda la fragmentación de nodos reasignando tareas entre nodos. La otra técnica utilizada en Kai Scheduler es difundir cargas de trabajo en nodos o GPU y CPU para minimizar la carga por nodo y maximizar la disponibilidad de recursos por carga de trabajo.

En una práctica adicional, Nvidia dijo que el planificador de Kai también maneja cuándo se implementan grupos compartidos. Según Dar y Karabulut, algunos investigadores aseguran más GPU de lo necesario temprano en el día para garantizar la disponibilidad en todo momento. Esta práctica, dijeron, puede conducir a recursos subutilizados, incluso cuando otros equipos aún tienen cuotas no utilizadas.

Nvidia dijo que Kai Scheduler aborda esto al hacer cumplir las garantías de recursos. “Este enfoque evita el acero de recursos y promueve la eficiencia general del clúster”, agregaron Dar y Karabulut.

Kai Scheduler proporciona lo que NVIDIA llama un podgrouper incorporado que detecta y se conecta automáticamente con herramientas y marcos como Kubeflow, Ray, Argo y el operador de capacitación, que dijo reduce la complejidad de la configuración y ayuda a acelerar el desarrollo.

Exit mobile version