Nunchux AI ha lanzado VC-Attention, un núcleo de atención de bits bajos sin entrenamiento creado para transformadores de difusión de vídeo (DiT). Se enfoca en 2 problemas a la vez: error de cuantificación de valores y una etapa softmax lenta.
Por qué la atención es el cuello de botella del vídeo
Los Video DiT aplanan un clip en una secuencia de tokens espaciotemporales y ejecutan una atención total en cada capa. Un clip Wan2.2-14B de 720p de 5 segundos abarca aproximadamente 70.000 tokens. En el RTX 5090, la atención ocupa más del 64% del tiempo de generación. El equipo de investigación afirma que la atención es aproximadamente dos tercios de cada paso de eliminación de ruido del MiniMax-H3 en un solo B200.
Los núcleos tensoriales de bits bajos aceleran los 2 productos de matriz, QK y PV. Quedan 2 obstáculos. Primero, los métodos anteriores como SageAttention2 suavizan las consultas y claves. Después del suavizado y la rotación de QK, el término de valor representa el 82% del error de salida en Wan2.2. En segundo lugar, el softmax entre los productos todavía se ejecuta en FP32. En B200 y H200, ese exponencial y su elenco del FP8 se convierten en la etapa más larga del proceso.
V-Smooth: fijación de valores atípicos
Los valores atípicos se encuentran en unos pocos tokens y sus canales cambian a través de cabezas, capas y pasos. Una rotación de Hadamard preserva las normas simbólicas, por lo que no las elimina. Girar V cambia el error de valor en solo un 0,2%.
V-Smooth toma una ruta diferente:
Grupo: un k-means en línea agrupa tokens de valor por lote y cabeza. Las claves y los valores se permutan juntos, por lo que la producción de atención no causal no cambia. Degradación: cada bloque de hardware de 128 tokens resta su media. Solo se cuantifica el residual, utilizando E4M3 por canal a 8 bits o NVFP4 a 4 bits. Restaurar: la media se vuelve a agregar utilizando la suma de filas en línea que softmax ya mantiene. No se necesita una segunda pasada ni un búfer adicional.
Con un promedio de más de 100 cabezas Wan2.2, la media del bloque elimina el 8% de la energía del bloque en orden secuencial. Elimina el 12% bajo el cubo estático de DeltaQuant y el 36% después de la clasificación. Cada media cuesta 0,125 bits por elemento de valor.
La agrupación se ejecuta solo en el primer 25 % de los pasos de eliminación de ruido. La permutación se reutiliza en 4 pasos adyacentes. En promedio sobre el cronograma completo, la agrupación cuesta entre el 3 y el 4% del tiempo de atención.
ExpCast-FP8: Eliminación del cuello de botella de Softmax
Un byte E4M3 ya está cerca de un logaritmo del valor que almacena. Leído como un número entero, equivale aproximadamente a 8 log2(v) + 56. Entonces ExpCast-FP8 escribe el byte directamente desde la puntuación del dominio de registro con 1 suma múltiple fusionada. La constante β = -0,35 centra el error sobrante y no se ajusta ninguna constante por modelo.
La ruta directa escribe el mismo byte que la ruta de exponente y luego conversión del FP32 en el 79,6 % de cada duplicación. En otros lugares aterriza a 1 código de distancia. El documento demuestra una variación total por fila limitada al 3,64%, más cualquier cola de subflujo. En 204,8.000 filas de atención Wan2.2, el promedio medido es del 1,6%. ExpCast-FP8 se aplica sólo al kernel de 8 bits, ya que NVFP4 no tiene un único mapa de registro a código afín.
La fusión CuTe/CUDA escrita a mano de la cadena de preprocesamiento corta 1 llamada V-Smooth de 42,2 ms a 4,8 ms en B200.