A decade of optimising the wrong number
Between roughly 2018 and 2022, a large body of work attacked attention's quadratic cost by reducing its arithmetic. Sparse attention patterns computing only some entries. Low-rank approximations. Kernel methods. Locality-sensitive hashing to attend only to likely-relevant positions.
Many of these reduced the operation count substantially, from quadratic to linear or near-linear, and were correct about the mathematics.
Most of them were not faster in wall-clock time. Some were slower than the dense implementation they replaced, at the sequence lengths people actually used.
That outcome was treated for a while as an engineering problem: the approximations needed better kernels, better libraries, more tuning. It was not. It was a diagnosis error.
The operations were never the bottleneck. A GPU running standard attention spends most of its time waiting on memory, and an algorithm that halves the arithmetic while leaving the memory traffic alone does not halve the runtime. It changes almost nothing.
FlashAttention's contribution was to measure the right quantity, and then to reduce it while computing attention exactly.

