Cómo Yandex implementó QoS en InfiniBand para clústeres de ML 🚦🧠

Yandex compartió su experiencia práctica sobre cómo aprendieron a priorizar el tráfico de ML en redes InfiniBand de clústeres GPU, para que las tareas importantes no se vean afectadas en velocidad debido a ejecuciones vecinas.

Puntos clave:

InfiniBand utiliza un Subnet Manager centralizado (OpenSM) que gestiona direccionamiento, enrutamiento y políticas de QoS mediante la combinación de Service Level (SL) y Virtual Lanes (VL).

QoS se construye así: el tráfico de diferentes tipos se "tiñe" en diferentes SL, que se mapean en VL con diferente prioridad y pesos; en el esquema de prueba, SL1 recibe el 80% del ancho de banda, SL0 el 20%.

En los clústeres YATI, varios entrenamientos de diferentes usuarios comparten una misma fábrica InfiniBand, por lo que sin QoS, los entrenamientos grandes y críticos se ven fácilmente "ahogados" por tareas paralelas.

En un clúster FatTree con HDR, inicialmente no vieron efecto hasta que crearon artificialmente sobresuscripción (desactivaron parte de los switches spine), tras lo cual el tráfico SL1 realmente comenzó a desplazar a SL0 bajo competencia.

En DragonFly+ es más complejo: allí el enrutamiento utiliza diferentes VL para la ruta directa y saltos +1/+3, para evitar credit loop deadlock en redes sin pérdidas, por lo que el mapeo SL→VL se convierte en parte del plano de control, y el número disponible de "colores" se reduce efectivamente.

Finalmente, Yandex convirtió QoS en un mecanismo de producto: el planificador de entrenamiento marca los entrenamientos grandes (según un umbral de GPU por clúster, configurable para cada clúster) como prioritarios, un agente en el host recolorea su tráfico a SL1, el resto va a SL0 — incluso si el usuario intentó asignar sus propios SL.

En el futuro, planean usar el mismo enfoque para separar entrenamiento e inferencia multihost, dando prioridad a la inferencia en tiempo real sobre la red.

QoS en InfiniBand no es solo "colas en el puerto", sino una estrecha vinculación con la topología y el motor de enrutamiento (especialmente en DragonFly+), de lo contrario se puede obtener fácilmente falta de efecto o riesgo de deadlocks.

#yandex #infiniband #qos #gpu #ml #mlops #networking #dragonflyplus #cloud #infrastructure