Los frameworks de aprendizaje automático modernos suelen usar la biblioteca de comunicación colectiva de NVIDIA (NCCL) para las primitivas de comunicación entre GPU.
La versión mejorada de NCCL de Google se llama NCCL/gIB y está disponible en las VMs A3 Ultra, A4 y A4X de Google Cloud. NCCL/gIB suele tener mejor rendimiento que NCCL upstream en la infraestructura de Google. Dado 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 mejor balanceo de cargas en las redes de Google, lo que genera una alta capacidad de procesamiento y una baja latencia de manera más constante durante las operaciones colectivas.
- Un complemento de sintonizador personalizado, que selecciona las mejores opciones de sintonización en las VMs de Google Cloud .
- El complemento del generador de perfiles de CoMMA proporciona métricas de rendimiento detalladas y datos de diagnóstico para tu carga de trabajo.
Arquitectura de NCCL/gIB
NCCL/gIB interactúa con tu framework de aprendizaje automático y las GPUs de NVIDIA en tus clústeres para optimizar el rendimiento y recopilar telemetría, como se muestra en este diagrama:

Beneficios de usar NCCL/gIB
Si bien es posible usar la biblioteca de comunicaciones colectivas de NVIDIA upstream en 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 upstream en el rendimiento de AllReduce. NCCL/gIB supera a NCCL upstream hasta en 12 veces en ciertos tamaños de mensajes.

Rendimiento de NCCL AllReduce con 32 nodos usando A3 Ultra (H200) sin tráfico en segundo plano.
Del mismo modo, 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.

Rendimiento de NCCL AllGather de 32 nodos con A3 Ultra (H200) en un tejido compartido con un fondo ruidoso.
Además, el complemento de CoMMA profiler 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.
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:
- Ejecuta pruebas de NCCL en VMs de Compute Engine
- Ejecuta NCCL en clústeres de GKE que usan la configuración predeterminada
- Ejecuta NCCL en clústeres personalizados de GKE que usan A4X
- Ejecuta NCCL en clústeres personalizados de GKE que usan A4 o A3 Ultra
- Ejecuta pruebas de NCCL en clústeres de Slurm
- Ejecuta pruebas de NCCL en Cluster Director
Para obtener información sobre cómo 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.