← Últimos artículos
💻 computer science

High-Performance FP16 General Matrix Multiplication on NVIDIA Ada Lovelace via CUTLASS and WMMA: A Benchmark and Pipeline-Depth Analysis

Este artículo evalúa el rendimiento de GEMM en FP16 en la NVIDIA RTX 4060 de arquitectura Ada Lovelace a través de cuBLAS, CUTLASS e implementaciones personalizadas de WMMA, revelando que una profundidad de segmentación de tres con una geometría de tesela específica alcanza el 52,7% del rendimiento máximo, al tiempo que demuestra que la presión sobre la memoria compartida, en lugar de la profundidad de la segmentación, es el principal cuello de botella que limita una mayor optimización.

Autores originales: Lucas Lima Freitag

Publicado 2026-07-15
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Lucas Lima Freitag

Artículo original bajo licencia CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina que tienes una cocina superrápida (una GPU) con un equipo de chefs especializados llamados Tensor Cores. Estos chefs son increíblemente rápidos picando y mezclando ingredientes (multiplicación de matrices) para un banquete gigante (aprendizaje profundo). La cocina en la nueva estufa "Ada Lovelace" (una tarjeta gráfica RTX 4060) es teóricamente capaz de servir 60.55 TFLOPS (eso es 60.55 billones de operaciones matemáticas por segundo).

Pero aquí está el truco: el hecho de que los chefs puedan picar así de rápido no significa que lo estén haciendo. A menudo tienen que esperar a que los ingredientes sean entregados desde la despensa.

El Gran Experimento: Cómo mantener a los chefs ocupados

Los investigadores querían averiguar la mejor manera de organizar la cocina para que los chefs nunca dejen de picar. Probaron tres formas diferentes de dirigir la cocina:

  1. La Caja Negra (cuBLAS): Una receta preempaquetada y de código cerrado de NVIDIA que suele funcionar de maravilla, pero que no te permite retocar los detalles.
  2. El Plano Abierto (CUTLASS): Un kit de herramientas flexible y de código abierto que te permite construir tu propia disposición de cocina desde cero.
  3. El Enfoque DIY (WMMA): Una cocina construida a medida donde controlas cada uno de los movimientos de los chefs, pero es mucho más difícil de construir.

Configuraron un desafío de cocina masivo con ingredientes de tamaño 8192 × 8192 y probaron diferentes "profundidades de pipeline". Piensa en la profundidad del pipeline como el número de bandejas de ingredientes que la cocina mantiene listas.

  • Profundidad de Pipeline 2: Solo 2 bandejas listas.
  • Profundidad de Pipeline 3: 3 bandejas listas.
  • Profundidad de Pipeline 4: 4 bandejas listas.

La sabiduría común (y un modelo matemático simple) sugería que más bandejas = más velocidad. La lógica era: "Si tenemos más bandejas, los chefs nunca se quedarán sin ingredientes, por lo que trabajarán más rápido".

La Sorpresa: Más no siempre es mejor

Los investigadores midieron la velocidad y esto es lo que encontraron:

  • Profundidad 2: La cocina funcionó a 25.6 TFLOPS. Los chefs estaban esperando demasiado tiempo.
  • Profundidad 3: La cocina se aceleró hasta los 31.9 TFLOPS (que es el 52.7% del máximo teórico). ¡Este fue el punto ideal!
  • Profundidad 4: La cocina en realidad se ralentizó a 31.1 TFLOPS.

Este es el hallazgo principal: Añadir una cuarta bandeja no ayudó; empeoró las cosas. El modelo matemático simple predijo que la velocidad debería haber saltado a 35.4 TFLOPS, pero no fue así. El modelo estaba equivocado por un 13.8%.

¿Por qué el añadir una bandeja salió mal?

El artículo explica que la cocina tiene un espacio limitado. Cuando añadieron la 4ª bandeja (aumentando el uso de la "Memoria Compartida" a 96 KB), esto obligó a la cocina a reducir el número de equipos de cocina (threadblocks) que podían trabajar al mismo tiempo.

  • Con 3 bandejas, la cocina podía albergar 2 equipos de chefs en cada estufa.
  • Con 4 bandejas, la cocina solo podía albergar 1 equipo.

Incluso aunque el equipo único tenía más ingredientes, tenían que esperar más tiempo porque había menos equipos para intercambiar cuando uno se quedaba atascado. La cocina se volvió "abarrotada" de ingredientes pero "vacía" de trabajadores. Los investigadores midieron que la "ocupación" (cuántos equipos están trabajando) cayó, y los chefs tuvieron que usar más "registros" (sus libretas personales), lo que también los ralentizó.

Los Ganadores y Perdedores

  • El Ganador: El kit de herramientas CUTLASS con 3 bandejas y un tamaño de tile específico de 256 × 128. Alcanzó 31.9 TFLOPS. Esto fue tan bueno que de hecho superó a la "Caja Negra" estándar (cuBLAS) por un margen mínimo, casi imperceptible, del 1.3% (que los autores dicen que es probablemente ruido, pero demuestra que el plano abierto puede igualar al cerrado).
  • El Segundo Lugar DIY: El kernel personalizado WMMA (la cocina totalmente DIY) logró 25.1 TFLOPS en una prueba ligeramente más pequeña. Fue más lento porque no utilizó los trucos de "doble buffering" para superponer la entrega de ingredientes con la cocción.
  • El Perdedor: La idea de que "más profundidad de pipeline es siempre mejor". El artículo descarta explícitamente esto para este hardware específico.

¿Qué tan seguros están?

Los autores están muy seguros de estos números porque los midieron directamente en el hardware, ejecutando la prueba 10 veces y promediando los resultados. Incluso contrastaron sus cálculos con una herramienta integrada de NVIDIA (el profiler) y descubrieron que su código personalizado coincidía perfectamente con ella.

Sin embargo, admiten algunas cosas que no demostraron:

  • Solo probaron un tamaño específico de problema (8192). No saben si la regla de "3 bandejas es lo mejor" se mantiene para problemas más pequeños o de formas extrañas.
  • No pudieron probar profundidades de pipeline superiores a 4 porque la cocina simplemente se quedó sin espacio (memoria).
  • Tuvieron que realizar sus pruebas en Windows, donde un error del controlador impidió que compararan su código personalizado y el código estándar en la misma ejecución (aunque lo hicieron en ejecuciones separadas).

La Conclusión

Si estás intentando sacar el máximo provecho de una tarjeta gráfica de consumo como la RTX 4060 para tareas intensivas de matemáticas, no sigas añadiendo más buffers sin más. Existe una zona "Goldilocks" (ni muy fría ni muy caliente). En este caso, 3 etapas de preparación fueron perfectas. Ir a 4 etapas hizo que la cocina estuviera demasiado congestionada, ralentizando a todo el mundo.

Los investigadores han publicado todo su código como código abierto, para que cualquiera pueda intentar construir su propia cocina y ver si puede batir el récord de 31.9 TFLOPS. Sugieren que el trabajo futuro debería centrarse en diferentes tamaños de problemas y utilizar Linux para obtener datos aún más limpios, pero por ahora, han demostrado que 31.9 TFLOPS es el pico actual para esta configuración, y que 31.1 TFLOPS es lo que sucede cuando intentas ser demasiado codicioso con la memoria.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →