Análisis de tecnología de redes de clústeres de GPU: NVLink, InfiniBand, ROCE, DDC

Para lograr un buen rendimiento de entrenamiento, las redes GPU deben cumplir las siguientes condiciones:

1. Retraso de un extremo a otro: dado que la comunicación de GPU es frecuente, reducir la latencia general de la transferencia de datos entre nodos ayuda a acortar el tiempo general de entrenamiento.

2. Transmisión sin pérdidas: esto es fundamental para el entrenamiento de IA porque cualquier pérdida de gradientes o resultados intermedios hará que el entrenamiento vuelva al punto de control anterior almacenado en la memoria y se reinicie, lo que afectará gravemente el rendimiento del entrenamiento.

3. Mecanismo eficaz de control de la congestión de un extremo a otro: en una topología de árbol, la congestión transitoria es inevitable cuando varios nodos transmiten datos a un solo nodo. La congestión persistente aumentará la latencia de cola del sistema. Debido a la dependencia secuencial entre las GPU, incluso si la actualización del gradiente de una GPU se ve afectada por la latencia de la red, es posible que varias GPU dejen de funcionar. Un enlace lento es suficiente para reducir el rendimiento del entrenamiento.

Además de los factores anteriores, también es necesario considerar de manera integral el costo total del sistema, el consumo de energía y los costos de enfriamiento. Con base en estas premisas, exploraremos las diferentes opciones de diseño de arquitectura de GPU y sus pros y contras.

I. Sistema de conmutación NVLink

El conmutador NVLink que conecta 8 GPU en un servidor GPU también se puede utilizar para construir una red de conmutación que conecte servidores GPU. Nvidia demostró una topología que utiliza la arquitectura NVSwitch para conectar 32 nodos (o 256 GPU) en la conferencia Hot Chips de 2022. Dado que NVLink está diseñado específicamente para conectar GPU con enlaces punto a punto de alta velocidad, tiene mayor rendimiento y menores gastos generales que las redes tradicionales.

nvidia-nvswitch-topología-dos

El NVswitch de tercera generación está equipado con 64 puertos NVLink, que proporcionan hasta 12.8 Tbps de capacidad de conmutación, al tiempo que admite funciones de multidifusión y agregación de redes. La agregación de red puede recopilar todos los gradientes generados por las GPU en funcionamiento dentro de los NVswitches y enviar los gradientes actualizados a las GPU para la siguiente iteración. Esta característica ayuda a reducir la cantidad de transferencia de datos entre GPU durante el proceso de iteración del entrenamiento.

Según Nvidia, la arquitectura NVswitch es dos veces más rápida que la red de conmutación InfiniBand cuando se entrena el modelo GPT-3, lo que muestra un rendimiento impresionante. Sin embargo, vale la pena señalar que el ancho de banda de este conmutador es cuatro veces menor que el conmutador de 51.2 Tbps proporcionado por los proveedores de conmutadores de alta gama.

Si uno intenta utilizar NVswitches para construir un sistema a gran escala que contenga más de 1000 GPU, no solo será rentable sino que también puede estar limitado por el protocolo en sí, lo que le impedirá admitir sistemas a gran escala. Además, Nvidia no vende NVswitches por separado, lo que significa que si los centros de datos quieren expandir sus clústeres existentes mezclando y combinando GPU de diferentes proveedores, no podrán usar NVswitches, porque las GPU de otros proveedores no admiten estas interfaces. .

diagrama-nvidia-nvswitch

II. Red InfiniBand

InfiniBand (IB) es una tecnología que ha servido como alternativa de alta velocidad desde su lanzamiento en 1999, reemplazando efectivamente las tecnologías de bus PCI y PCI-X y ampliamente utilizada para conectar servidores, almacenamiento y redes. Aunque su gran visión inicial se redujo debido a factores económicos, InfiniBand todavía se ha aplicado ampliamente en campos como la informática de alto rendimiento, los clústeres de inteligencia artificial/aprendizaje automático y los centros de datos. Esto se atribuye principalmente a su excelente velocidad, baja latencia, transmisión sin pérdidas y acceso remoto directo a la memoria (RDMA) capacidades.

infinibanda

El protocolo InfiniBand (IB) tiene como objetivo lograr un diseño eficiente y liviano, evitando efectivamente los gastos generales comunes en los protocolos Ethernet. Admite comunicación basada en canales y basada en memoria y puede manejar de manera eficiente varios escenarios de transferencia de datos.

Al utilizar un control de flujo basado en crédito entre dispositivos de envío/recepción, IB logra una transmisión sin pérdidas (a nivel de cola o canal virtual). Este control de flujo salto a salto garantiza que no se produzca ninguna pérdida de datos debido al desbordamiento del búfer. Además, también admite notificaciones de congestión entre puntos finales (similar a ECN en la pila de protocolos TCP/IP). IB brinda una excelente calidad de servicio, permitiendo priorizar ciertos tipos de tráfico para reducir la latencia y evitar la pérdida de paquetes.

Cabe mencionar que todos los conmutadores IB admiten el protocolo RDMA, que permite transferir datos directamente desde la memoria de una GPU a la memoria de otra GPU, sin la intervención del sistema operativo de la CPU. Este modo de transferencia directa mejora el rendimiento y reduce significativamente la latencia de un extremo a otro.

Sin embargo, a pesar de sus muchas ventajas, el sistema de conmutación InfiniBand no es tan popular como el sistema de conmutación Ethernet. Esto se debe a que el sistema de conmutación InfiniBand es relativamente difícil de configurar, mantener y escalar. El InfiniBand El plano de control suele estar controlado de forma centralizada por un único administrador de subred. Aunque puede funcionar bien en clústeres pequeños, su escalabilidad puede convertirse en un desafío para redes con 32K o más GPU. Además, la red IB también requiere hardware especializado, como adaptadores de canal de host y cables InfiniBand, lo que hace que su expansión cueste más que la red Ethernet.

NVIDIA LinkX

Actualmente, Nvidia es el único proveedor que ofrece conmutadores IB de alta gama para clústeres de GPU HPC y AI. Por ejemplo, OpenAI utilizó 10,000 GPU Nvidia A100 y una red de conmutación IB para entrenar su modelo GPT-3 en la nube de Microsoft Azure. Meta creó recientemente un clúster con GPU de 16K, que utiliza servidores GPU Nvidia A100 y conmutadores Quantum-2 IB (Nvidia lanzó una nueva plataforma de red InfiniBand en la conferencia GTC 2021, con 25.6 Tbps de capacidad de conmutación y puertos de 400 Gbps). Este clúster se utiliza para entrenar sus modelos de inteligencia artificial generativa, incluido LLaMA. Vale la pena señalar que cuando se conectan más de 10,000 GPU, el cambio entre GPU dentro del servidor lo realizan los NVswitches dentro del servidor, mientras que la red IB/Ethernet es responsable de conectar los servidores.

Para hacer frente a la demanda de capacitación para parámetros más grandes, los proveedores de servicios en la nube a gran escala están buscando construir clústeres de GPU con GPU de 32K o incluso 64K. A esta escala, puede tener más sentido económico utilizar redes Ethernet. Esto se debe a que Ethernet ha formado un ecosistema sólido entre muchos proveedores de silicio/sistemas y módulos ópticos, y apunta a estándares abiertos, logrando la interoperabilidad entre proveedores.

Ethernet sin pérdidas RoCE

Ethernet se utiliza ampliamente en diversas aplicaciones, desde centros de datos hasta redes troncales, con velocidades que van desde 1 Gbps a 800 Gbps, e incluso se espera que alcance los 1.6 Tbps en el futuro. En comparación con Infiniband, Ethernet tiene una ventaja en la velocidad del puerto de interconexión y la capacidad total del conmutador. Además, los conmutadores Ethernet son relativamente más baratos, con un menor costo por unidad de ancho de banda, gracias a la feroz competencia entre los proveedores de chips de red de alta gama, lo que los lleva a integrar más ancho de banda en los ASIC, reduciendo así el costo por gigabit.

chip conmutador ethernet

Los principales proveedores de ASIC de conmutador Ethernet de alta gama pueden proporcionar hasta 51.2 Tbps de capacidad de conmutador, equipados con puertos de 800 Gbps, lo que supone el doble de rendimiento de Quantum-2 (una nueva plataforma de red InfiniBand lanzada en NVIDIA GTC 2021, con 25.6 Tbps de capacidad del switch y puertos de 400Gbps). Esto significa que si se duplica el rendimiento del conmutador, la cantidad de conmutadores necesarios para construir una red GPU se puede reducir a la mitad.

Ethernet también puede proporcionar un servicio de transmisión sin pérdidas, mediante control de flujo prioritario (PFC). PFC admite ocho clases de servicio, cada una de las cuales puede controlarse el flujo y algunas pueden designarse como clases sin pérdidas. Al procesar y pasar a través de conmutadores, el tráfico sin pérdidas tiene mayor prioridad que el tráfico con pérdidas. En caso de congestión de la red, los conmutadores o NIC pueden administrar dispositivos ascendentes mediante el control de flujo, en lugar de simplemente descartar paquetes.

Además, Ethernet también admite RDMA (acceso remoto directo a memoria) a través de RoCEv2 (RDMA sobre Ethernet convergente), donde las tramas RDMA se encapsulan en IP/UDP. Cuando los paquetes RoCEv2 llegan al adaptador de red (NIC) en el servidor GPU, la NIC puede transferir directamente los datos RDMA a la memoria de la GPU, sin intervención de la CPU. Mientras tanto, se pueden implementar potentes esquemas de control de congestión de extremo a extremo, como DCQCN, para reducir la congestión de extremo a extremo y la pérdida de paquetes de RDMA. En términos de equilibrio de carga, los protocolos de enrutamiento como BGP utilizan el enrutamiento multiruta de igual costo (ECMP) para distribuir paquetes en múltiples rutas con el mismo "costo" para el destino. Cuando los paquetes llegan a un conmutador que tiene múltiples rutas de igual costo hasta el destino, el conmutador utiliza una función hash para decidir la ruta de los paquetes. Sin embargo, el hash no siempre es perfecto y puede provocar que algunos enlaces se carguen de manera desigual, lo que provoca congestión en la red.

Aplicación RDMA

En términos de equilibrio de carga, los protocolos de enrutamiento como BGP utilizan el enrutamiento de múltiples rutas de igual costo (ECMP) para distribuir paquetes a través de múltiples rutas con el mismo “costo”. Cuando un paquete llega a un conmutador que tiene múltiples rutas de igual costo hasta el destino, el conmutador utiliza una función hash para decidir qué ruta enviar el paquete. Sin embargo, el hash no siempre es perfecto y puede provocar que algunos enlaces se carguen de manera desigual, lo que provoca congestión en la red.

Para resolver este problema, se pueden adoptar algunas estrategias, como reservar un ligero exceso de ancho de banda o implementar un equilibrio de carga adaptativo, que permite al conmutador enrutar nuevos paquetes de flujo a otros puertos cuando una ruta está congestionada. Muchos conmutadores ya admiten esta función. Además, el equilibrio de carga a nivel de paquetes de RoCEv2 puede distribuir paquetes uniformemente entre todos los enlaces disponibles para mantener el equilibrio de los enlaces. Pero esto puede hacer que los paquetes lleguen al destino desordenados y requiere que la tarjeta de red admita el procesamiento de estos datos desordenados en la capa de transporte RoCE, para garantizar que la GPU reciba los datos en orden. Esto requiere soporte de hardware adicional de la tarjeta de red y el conmutador Ethernet.

Además, los conmutadores Ethernet ROCE de algunos proveedores también pueden agregar los gradientes de las GPU dentro del conmutador, lo que ayuda a reducir el tráfico entre GPU durante el proceso de capacitación, como los conmutadores Ethernet de gama alta de NVIDIA.

En resumen, los conmutadores Ethernet y las tarjetas de red de alta gama tienen un potente control de congestión, equilibrio de carga y compatibilidad con RDMA, y pueden escalar a diseños más grandes que los conmutadores IB. Algunos proveedores de servicios en la nube y empresas de clústeres a gran escala han comenzado a utilizar redes GPU basadas en Ethernet para conectar más de 32 XNUMX GPU.

Red DDC completamente programada

Recientemente, varios proveedores de chips de conmutadores/enrutadores anunciaron el lanzamiento de chips que admiten Fabric o AI Fabric completamente programado. Esta red completamente programada se ha aplicado a muchos diseños de chasis modulares durante más de una década, incluidos los enrutadores de la serie PTX de Juniper, que utilizan una red de cola de salida virtual (VOQ).

En la arquitectura VOQ, los paquetes se almacenan en buffer solo una vez en el conmutador de hoja de entrada y se almacenan en colas correspondientes al conmutador de hoja de salida/puerto WAN/cola de salida final. Estas colas se denominan colas de salida virtuales (VOQ) en el conmutador de entrada. Por lo tanto, cada conmutador de hoja de entrada proporciona espacio de búfer para cada cola de salida en todo el sistema. El tamaño de este buffer suele ser suficiente para acomodar los paquetes de cada VOQ cuando encuentran congestión en 40-70 microsegundos. Cuando la cantidad de datos en un VOQ es pequeña, se guarda en el búfer del chip; cuando la cola comienza a crecer, los datos se transfieren al búfer profundo en la memoria externa.

Cuando un VOQ en un conmutador de hoja de entrada acumula varios paquetes, envía una solicitud al conmutador de salida, solicitando transmitir estos paquetes en la red. Estas solicitudes se envían a través de la red al conmutador de hoja de salida.

El programador en el conmutador de hoja de salida aprueba estas solicitudes basándose en una estricta jerarquía de programación y el espacio disponible en su búfer de salida poco profundo. La tasa de estas aprobaciones está limitada para evitar una suscripción excesiva de los enlaces de conmutación (más allá del rango de aceptación del búfer de cola).

Una vez que la aprobación llega al conmutador de hoja de entrada, envía el conjunto de paquetes aprobados a la salida y los transmite a través de todos los enlaces ascendentes disponibles.

Los paquetes enviados a un VOQ específico se pueden distribuir uniformemente entre todos los enlaces de salida disponibles, para lograr un equilibrio de carga perfecto. Esto puede hacer que los paquetes se reordenen. Sin embargo, el conmutador de salida tiene una función lógica que puede reordenar estos paquetes en secuencia y luego transmitirlos a los nodos de GPU.

Dado que el programador de salida controla los datos aprobados antes de que ingresen al conmutador, evitando el uso excesivo del ancho de banda del enlace, elimina el 99% de los problemas de congestión causados ​​por la infusión en el plano de datos de Ethernet (cuando varios puertos intentan enviar tráfico a un único puerto de salida). ) y elimina el bloqueo de cabecera de línea (bloqueo HOL). Cabe señalar que en esta arquitectura los datos (incluidas las solicitudes y aprobaciones) todavía se transmiten a través de Ethernet.

El bloqueo HOL se refiere al fenómeno en la transmisión de red, donde el primer paquete de una serie de paquetes encuentra un obstáculo, lo que hace que todos los paquetes siguientes se bloqueen y no puedan continuar la transmisión, incluso si el puerto de salida de los siguientes paquetes está inactivo. Este fenómeno afecta gravemente la eficiencia y el rendimiento de transmisión de la red.

Algunas arquitecturas, como las series Express de Juniper y Jericho de Broadcom, implementan colas de salida virtuales (VOQ) a través de su plano de datos celular patentado.

En este método, el conmutador hoja divide los paquetes en segmentos de tamaño fijo y los distribuye uniformemente entre todos los enlaces de salida disponibles. En comparación con la distribución uniforme a nivel de paquete, esto puede mejorar la utilización del enlace, porque es difícil utilizar completamente todos los enlaces con una combinación de paquetes grandes y pequeños. Al reenviar segmentos, también evitamos otro retraso de almacenamiento/reenvío en el enlace de salida (interfaz Ethernet de salida). En el plano de datos del segmento, los conmutadores principales utilizados para reenviar segmentos se reemplazan por conmutadores personalizados, que pueden realizar el reenvío de segmentos de manera eficiente. Estos conmutadores de plano de datos de segmento son superiores a los conmutadores Ethernet en términos de consumo de energía y latencia porque no necesitan soportar la sobrecarga de la conmutación L2. Por lo tanto, el plano de datos basado en segmentos no sólo puede mejorar la utilización del enlace sino también reducir el retraso general del plano de datos VOQ.

Mecanismo de reenvío basado en células VOQ+

Existen algunas limitaciones de la arquitectura VOQ:

El puerto de entrada de cada conmutador hoja debe tener un búfer razonable para almacenar paquetes para todos los VOQ en el sistema durante la congestión. El tamaño del búfer es proporcional a la cantidad de GPU y la cantidad de colas de prioridad por GPU. Una escala de GPU mayor conduce directamente a una mayor demanda de búfer de entrada.

El búfer de la cola de salida debe tener suficiente espacio para cubrir el retraso de ida y vuelta a través del plano de datos, para evitar que estos búfer se agoten durante el protocolo de enlace de aprobación de solicitud. En clústeres de GPU más grandes, que utilizan un plano de datos de 3 niveles, este retraso de ida y vuelta puede aumentar debido a la latencia del cable y la presencia de conmutadores adicionales. Supongamos que el búfer de la cola de salida no está ajustado adecuadamente para adaptarse al aumento del retraso de ida y vuelta. En ese caso, el enlace de salida no podrá alcanzar el 100% de utilización, lo que reducirá el rendimiento del sistema.

Aunque el sistema VOQ reduce la latencia de cola causada por el bloqueo de la cabecera de línea mediante la programación de salida, la latencia mínima de un paquete aumenta con un retraso adicional de ida y vuelta, porque el conmutador de hoja de entrada tiene que realizar un protocolo de enlace de aprobación de solicitud antes. transmitiendo el paquete.

A pesar de estas limitaciones, el VOQ (tejido) completamente programado tiene un rendimiento significativamente mejor en la reducción de la latencia de cola que el tráfico Ethernet típico. Si la utilización del enlace aumenta a más del 90% al aumentar el búfer, puede valer la pena invertir en la sobrecarga adicional que genera la expansión de la escala de la GPU.

Además, la dependencia del proveedor es un problema al que se enfrenta VOQ (tejido). Debido a que cada proveedor utiliza su protocolo propietario, mezclar y combinar conmutadores en el mismo tejido es muy difícil.

Resumen: aplicación de las principales tecnologías de redes de clústeres de GPU

El sistema de conmutación NVLink proporciona una solución eficaz para la intercomunicación de GPU, pero la escala de GPU admitida es relativamente limitada y se aplica principalmente a la comunicación de GPU dentro del servidor y a la transmisión de datos a pequeña escala entre nodos del servidor. La red InfiniBand, como red RDMA nativa, funciona de manera excelente en entornos libres de congestión y de baja latencia. Sin embargo, debido a su arquitectura relativamente cerrada y su alto costo, es más adecuado para clientes pequeños y medianos que exigen conexiones por cable.

ROCE Ethernet sin pérdidas, que se basa en el ecosistema Ethernet maduro, el costo de red más bajo y la velocidad de iteración del ancho de banda más rápida, muestra una mayor aplicabilidad en el escenario de clústeres de GPU de entrenamiento a mediana y gran escala.

En cuanto a la red totalmente programada DDC, combina las tecnologías de conmutación de celdas y cola de salida virtual (VOQ), por lo que tiene una ventaja significativa a la hora de resolver el problema de congestión de Ethernet. Como tecnología emergente, la industria aún se encuentra en la etapa de investigación para evaluar su potencial a largo plazo y sus perspectivas de aplicación.

Deja un comentario

Ir al Inicio