La idea clave (Dao et al., 2022): la atención estándar materializa la matriz completa de atención N×N en la HBM (High Bandwidth Memory) de la GPU, lo cual es intensivo en memoria (cuadrático en la longitud de la secuencia) y lento (el ancho de banda de la HBM es el cuello de botella). Flash Attention nunca materializa esta matriz. En su lugar, calcula la atención en bloques, cargando pequeños segmentos de Q, K, V en la SRAM rápida on-chip, calculando resultados parciales y acumulándolos — una técnica llamada "tiling" o "fusión de kernels".
La atención estándar almacena la matriz de atención N×N, requiriendo O(N²) de memoria. Para un contexto de 128K con 128 cabezas de atención, eso son cientos de gigabytes. Flash Attention usa O(N) de memoria calculando el softmax de forma incremental y sin almacenar nunca la matriz completa. Esto es lo que hizo factibles las ventanas de contexto de 128K–1M en el hardware existente. FlashAttention-2 mejoró aún más el rendimiento al paralelizar mejor entre los bloques de hilos de la GPU.
Flash Attention ejemplifica un principio más amplio: en el hardware moderno, el cuello de botella suele ser el ancho de banda de memoria, no el cálculo. Las GPUs pueden realizar billones de operaciones por segundo pero solo pueden leer/escribir cientos de gigabytes por segundo desde la HBM. Los algoritmos que minimizan el tráfico de memoria (incluso a costa de cálculos adicionales) a menudo ganan. Este enfoque "consciente de E/S" está influyendo en cómo todo el campo piensa sobre el diseño de algoritmos para cargas de trabajo de IA.