Una cadena es tan fuerte como su eslabón más débil, y su infraestructura de IA/ML es tan rápida como su componente más lento. Si entrena modelos de aprendizaje automático con GPU, entonces su eslabón débil puede ser su solución de almacenamiento. El resultado es lo que yo llamo el "problema de la GPU hambrienta". El problema de la GPU hambrienta ocurre cuando su red o su solución de almacenamiento no pueden entregar datos de entrenamiento a su lógica de entrenamiento lo suficientemente rápido como para utilizar completamente sus GPU. Los síntomas son bastante obvios. Si está monitoreando sus GPU, notará que nunca llegan a estar cerca de ser utilizadas por completo. Si ha instrumentado su código de entrenamiento, notará que el tiempo total de entrenamiento está dominado por IO.
Desafortunadamente, hay malas noticias para quienes luchan con este problema. Veamos algunos avances que se están logrando con las GPU para comprender cómo este problema solo empeorará en los próximos años.
Las GPU son cada vez más rápidas. No sólo está mejorando el rendimiento bruto, sino que también aumentan la memoria y el ancho de banda. Echemos un vistazo a estas tres características de las GPU más recientes de Nvidia:
GPU | ACTUACIÓN | MEMORIA | ANCHO DE BANDA DE MEMORIA |
---|---|---|---|
A100 | 624 TFLOPS | 40GB | 1.555 GB/s |
H100 | 1.979 TFLOPS | 80GB | 3,35 TB/s |
H200 | 1.979 TFLOPS | 141GB | 4,8 TB/s |
La tabla anterior utiliza las estadísticas que se alinean con una solución de socket PCIe (Peripheral Component Interconnect Express) para el A100 y la solución de socket SXM (Server PCI Express Module) para el H100 y el H200. Las estadísticas de SXM no existen para el A100. Con respecto al rendimiento, se utiliza la estadística de núcleo tensor de coma flotante 16 para la comparación.
Vale la pena destacar algunas observaciones sobre las estadísticas anteriores. En primer lugar, el H100 y el H200 tienen el mismo rendimiento (1.979 TFLOPS), que es 3,17 veces mayor que el A100. El H100 tiene el doble de memoria que el A100 y el ancho de banda de la memoria aumentó en una cantidad similar - lo cual tiene sentido, de lo contrario, la GPU se moriría de hambre. El H200 puede manejar la friolera de 141 GB de memoria y su ancho de banda de memoria también aumentó proporcionalmente con respecto a las otras GPU.
Veamos cada una de estas estadísticas con más detalle y analicemos lo que significa para el aprendizaje automático.
Rendimiento : un teraflop (TFLOP) equivale a un billón (10^12) de operaciones de punto flotante por segundo. Es un 1 seguido de 12 ceros (1.000.000.000.000). Es difícil equiparar los TFLOP con la demanda de IO en gigabytes, ya que las operaciones de punto flotante que ocurren durante el entrenamiento del modelo involucran matemáticas tensoriales simples, así como primeras derivadas contra la función de pérdida (también conocida como gradientes). Sin embargo, son posibles comparaciones relativas. Al observar las estadísticas anteriores, vemos que el H100 y el H200, que funcionan a 1979 TFLOPS, son 3 veces más rápidos, lo que potencialmente consume datos 3 veces más rápido si todo lo demás puede seguir el ritmo.
Memoria GPU : también conocida como RAM de vídeo o RAM de gráficos. La memoria de la GPU está separada de la memoria principal del sistema (RAM) y está diseñada específicamente para manejar las tareas intensivas de procesamiento gráfico realizadas por la tarjeta gráfica. La memoria de la GPU determina el tamaño del lote al entrenar modelos. En el pasado, el tamaño del lote se reducía al mover la lógica de entrenamiento de una CPU a una GPU. Sin embargo, a medida que la memoria de la GPU alcance a la memoria de la CPU en términos de capacidad, el tamaño del lote utilizado para el entrenamiento de la GPU aumentará. Cuando el rendimiento y la capacidad de la memoria aumentan al mismo tiempo, el resultado son solicitudes más grandes en las que cada gigabyte de datos de entrenamiento se procesa más rápido.
Ancho de banda de memoria : piense en el ancho de banda de la memoria de la GPU como la "autopista" que conecta la memoria y los núcleos de cálculo. Determina cuántos datos se pueden transferir por unidad de tiempo. Así como una carretera más ancha permite que pasen más automóviles en un período de tiempo determinado, un mayor ancho de banda de memoria permite mover más datos entre la memoria y la GPU. Como puedes ver, los diseñadores de estas GPU aumentaron el ancho de banda de la memoria para cada nueva versión de manera proporcional a la memoria; por lo tanto, el bus de datos interno del chip no será el cuello de botella.
En agosto de 2023, Nvidia
Si bien todas las especificaciones del Grace Hopper Superchip representan una mejora con respecto a los chips anteriores, la innovación más importante para los ingenieros de AI/ML es su memoria unificada. Grace Hopper le da a la GPU acceso completo a la memoria de la CPU. Esto es importante porque, en el pasado, los ingenieros que deseaban utilizar GPU para entrenamiento tenían que primero extraer datos a la memoria del sistema y luego, desde allí, mover los datos a la memoria de la GPU. Grace Hopper elimina la necesidad de utilizar la memoria de la CPU como búfer de rebote para enviar datos a la GPU.
La simple comparación de algunas estadísticas clave de GPU, así como las capacidades de Grace Hopper, debe asustar un poco a cualquiera responsable de actualizar las GPU y asegurarse de que todo lo demás pueda mantenerse al día. Es absolutamente necesario que una solución de almacenamiento proporcione datos a un ritmo más rápido para mantenerse al día con estas mejoras de GPU. Veamos una solución común al problema de la GPU hambrienta.
Existe una solución común y obvia a este problema que no requiere que las organizaciones reemplacen o actualicen su solución de almacenamiento existente. Puede mantener intacta su solución de almacenamiento existente para poder aprovechar todas las características empresariales que su organización requiere. Lo más probable es que esta solución de almacenamiento sea un lago de datos que contenga todos los datos no estructurados de su organización; por lo tanto, puede ser bastante grande y el costo total de propiedad es una consideración. También tiene muchas funciones habilitadas para redundancia, confiabilidad y seguridad, todas las cuales impactan el rendimiento.
Sin embargo, lo que se puede hacer es configurar una solución de almacenamiento que esté en el mismo centro de datos que su infraestructura informática; lo ideal sería que estuviera en el mismo clúster que su informática. Asegúrese de tener una red de alta velocidad con los mejores dispositivos de almacenamiento disponibles. A partir de ahí, copie solo los datos necesarios para el entrenamiento de ML.
Amazon anunció recientemente
La solución común que describí anteriormente requería que AWS personalizara su solución de almacenamiento S3 ofreciendo depósitos especiales a un costo mayor. Además, algunas organizaciones (que no son clientes de MinIO) están comprando soluciones de almacenamiento especializadas que hacen las cosas simples que describí anteriormente. Desafortunadamente, esto añade complejidad a una infraestructura existente, ya que se necesita un nuevo producto para resolver un problema relativamente simple.
La ironía de todo esto es que los clientes de MinIO siempre han tenido esta opción. Puede hacer exactamente lo que describí anteriormente con una nueva instalación de MinIO en una red de alta velocidad con unidades NVMe. MinIO es una solución de almacenamiento definida por software: el mismo producto se ejecuta en bare metal o en el clúster de su elección utilizando una variedad de dispositivos de almacenamiento. Si su Data Lake corporativo usa MinIO en bare metal con HDD y funciona bien para todos sus datos que no son ML, entonces no hay razón para reemplazarlo. Sin embargo, si los conjuntos de datos utilizados para ML requieren IO más rápido porque estás usando GPU, entonces considera el enfoque que describí en esta publicación. Asegúrese de hacer una copia de sus datos de ML para usar en su instancia de alta velocidad de MinIO; siempre debe existir una copia dorada en una instalación reforzada de MinIO. Esto le permitirá desactivar funciones como la replicación y el cifrado en su instancia de alta velocidad de MinIO, aumentando aún más el rendimiento. Copiar datos es fácil usando MinIO
MinIO es capaz de ofrecer el rendimiento necesario para alimentar sus hambrientas GPU: una
Descargar
También aparece aquí .