En los grandes modelos de mezcla de expertos, las GPU gastan enormes recursos no sólo en cálculos, sino también en enviar tokens entre expertos en diferentes chips.
Después de optimizar las matemáticas a través de MXFP8, fue la transferencia de datos la que se convirtió en el principal cuello de botella. En algunas cargas, tomó más de la mitad del tiempo de un paso de entrenamiento.
Mezcla de gatitos
combina todo el bucle en un kernel CUDA:
- enviar tokens a los expertos adecuados;
- cálculos;
- recopilación de resultados;
- sincronización entre GPU.
La transferencia de tokens se produce en paralelo con los cálculos.
Otro cambio importante: el modelo pasó de
empujar
a
tirar
: cada chip toma las fichas que necesita. se rindió
29 % más de rendimiento utilizable de NVLink
y redujo los retrasos de espera en aproximadamente
5,8 veces
.
Resultados del cursor en GB300 NVL72:
- hasta
2,37 veces más rápido
en MXFP8 adelante;
- hasta
1,78 veces más rápido
en MXFP8 al revés;
- en 512 el rendimiento de GPU aumentó de
760,9 a 1070,2 tokens/s en GPU
;
- el aumento general de la productividad en la producción fue de aproximadamente
41%
.
La aceleración no se logró gracias a las nuevas tarjetas de video, sino gracias a un programa de flujo de datos más inteligente.
A una escala de cientos de GPU, un buen núcleo puede resultar más rentable que otro conjunto de equipos.
El proyecto está publicado bajo la licencia Apache 2.0.