Optimiza las redes de clústeres con SNCCL/gIB

Los frameworks de aprendizaje automático modernos suelen utilizar la biblioteca de comunicaciones colectivas de NVIDIA (NCCL) para las primitivas de comunicación de GPU a GPU.

La versión mejorada de NCCL de Google se llama NCCL/gIB y está disponible en las instancias A5X, A4X Max, A4X, A4 y A3 Ultra deGoogle Cloud. NCCL/gIB suele tener un mejor rendimiento que NCCL upstream en la infraestructura de Google. Debido a que el rendimiento de NCCL puede afectar el rendimiento general de la carga de trabajo, te recomendamos que uses NCCL/gIB.

NCCL/gIB contiene funciones y optimizaciones específicas de Google, como las siguientes:

  • El complemento de red gIB ofrece un balanceo de cargas mejorado en las redes de Google, lo que genera una alta capacidad de procesamiento y una baja latencia de forma más coherente durante las operaciones colectivas.
  • Un complemento de ajuste personalizado, que selecciona las mejores opciones de ajuste en las VMs de Google Cloud .
  • El complemento de generador de perfiles de CoMMA proporciona métricas de rendimiento detalladas y datos de diagnóstico para tu carga de trabajo.
  • El complemento env proporciona parámetros de configuración de variables específicos de la plataforma en las VMs de Google Cloud .

Arquitectura de NCCL/gIB

NCCL/gIB interactúa con tu framework de aprendizaje automático y las GPU de NVIDIA en tus clústeres para optimizar el rendimiento y recopilar datos de telemetría, como se muestra en este diagrama:

La carga de trabajo de AA se administra con un framework de AA que se conecta a las GPU de NVIDIA y a NCCL, mientras que NCCL se conecta a varias herramientas y complementos de Google.

Beneficios de usar NCCL/gIB

Aunque es posible usar la biblioteca de comunicaciones colectivas de NVIDIA upstream en las VMs de Google Cloud sin problemas de estabilidad, NCCL/gIB está mejor optimizada para Google Cloud , y la disparidad de rendimiento puede ser muy significativa para ciertos patrones de comunicación, incluso con los mismos parámetros de NCCL.

Por ejemplo, en el siguiente gráfico, se muestra una comparación de NCCL/gIB con NCCL ascendente en el rendimiento de AllReduce. NCCL/gIB supera a NCCL upstream hasta 12 veces en ciertos tamaños de mensajes.

Un gráfico que muestra que NCCL/gIB supera a NCCL upstream en las tareas de AllReduce.

Rendimiento de AllReduce de NCCL de 32 nodos con A3 Ultra (H200) sin tráfico en segundo plano.

De manera similar, en una comparación de NCCL/gIB con NCCL upstream en el rendimiento de AllGather con tráfico en segundo plano, NCCL/gIB supera a NCCL upstream en aproximadamente un 50% en tamaños de mensajes más grandes, como se muestra en este gráfico.

Gráfico que muestra que NCCL/gIB supera a NCCL upstream en las tareas de AllGather.

Rendimiento de AllGather de NCCL de 32 nodos con A3 Ultra (H200) en una estructura compartida con un fondo ruidoso.

Además, el complemento de generador de perfiles de CoMMA proporciona a Google telemetría personalizada mejorada, lo que nos permite brindarte una mejor asistencia en caso de que surja un problema a nivel de la carga de trabajo.

Instala NCCL/gIB

Antes de ejecutar las pruebas de NCCL, debes instalar NCCL/gIB en tu entorno de ejecución.

Usa NCCL/gIB

Para ejecutar pruebas de NCCL/gIB en tu clúster, elige la página de la siguiente lista que mejor se adapte a tus requisitos:

Para obtener instrucciones sobre cómo ejecutar NCCL/gIB en clústeres de GKE que usan A5X, comunícate con tu representante de Google Cloud .

Para aprender a abordar cualquier problema con tu clúster después de ejecutar las pruebas, consulta Recopila y comprende los registros de NCCL/gIB para solucionar problemas.