Optimización del rendimiento de GPU en entornos Kubernetes mediante consolidación de cargas de trabajo

La optimización del rendimiento de la infraestructura de inteligencia artificial se logra al consolidar las cargas de trabajo de GPU infrautilizadas. En entornos de producción con Kubernetes, suelen existir ineficiencias debido a la discrepancia entre los requisitos de los modelos y el tamaño de las GPU.

Modelos ligeros de reconocimiento automático de voz (ASR) o de texto a voz (TTS) pueden requerir solo 10 GB de VRAM, pero ocupan una GPU completa en implementaciones estándar. Esto provoca que recursos computacionales costosos permanezcan subutilizados.

Soluciones para la fragmentación de recursos de GPU

Resolver esta situación no solo implica reducir costos, sino también optimizar la densidad del clúster para atender a más usuarios concurrentes con el mismo hardware de alta calidad. Esta guía proporciona estrategias para implementar y evaluar la partición de GPU, específicamente utilizando NVIDIA Multi-Instance GPU (MIG) y el uso de tiempo de ejecución compartido.

A través de un pipeline de voz AI de grado de producción, se muestra cómo combinar modelos para maximizar el retorno de la inversión en infraestructura, manteniendo una fiabilidad superior al 99% y garantizando latencias estrictas.

Estrategias de partición en arquitectura

Se evaluaron dos estrategias principales para la partición de GPU soportadas por el NVIDIA GPU Operator. La primera es la partición basada en software, que incluye el tiempo de ejecución compartido y el servicio de múltiples procesos de NVIDIA (MPS).

Partición basada en software

El tiempo de ejecución compartido permite que múltiples procesos de NVIDIA CUDA compartan una GPU mediante la intercalación de la ejecución. Esto funciona de manera similar a un programador de CPU, donde el contexto A se ejecuta, se pausa y luego se ejecuta el contexto B.

  • Mecanismo: Programación a nivel de software a través del controlador CUDA.
  • Ventajas: Maximiza la utilización, permitiendo que si un pod está inactivo, otro pueda usar el 100% de los núcleos de cómputo de la GPU.
  • Desventajas: No hay aislamiento de hardware; un desbordamiento de memoria (OOM) en un pod puede afectar el contexto de ejecución compartido.

NVIDIA MPS ofrece un enfoque alternativo que permite que múltiples procesos compartan recursos de GPU de manera concurrente con una arquitectura cliente-servidor.

MIG: Enfoque de hardware para la partición

MIG particiona físicamente la GPU en instancias separadas, cada una con su propia memoria dedicada y multiprocesadores de streaming. Para el sistema operativo y Kubernetes, estas parecen ser dispositivos PCI separados.

Ilustración de un hombre mayor con auriculares y chaqueta