Your model got smarter.

But suddenly it got slower.

Why does increasing context length explode compute?

Because attention is O(n²).

And that becomes the real bottleneck in modern LLMs.

Core Idea

Attention compares every token with every other token.

That is powerful.

But it is expensive.

Efficient Attention methods try to answer one question:

How do we keep useful context while reducing cost?

This matters because long-context LLMs are useless if they are too slow or too expensive.

The Key Structure

Full Attention cost:

Attention Cost = O(n²)

Meaning:

n tokens → n × n comparisons

Example:

1,000 tokens → 1M comparisons

10,000 tokens → 100M comparisons

10× longer input → 100× more work

That is the bottleneck.

More compactly:

Attention = full connectivity + quadratic cost

Efficient Attention = reduce connections or optimize computation

Pseudo-code View

Full attention:

for i in tokens:
    for j in tokens:
        score[i][j] = dot(Q[i], K[j])
Enter fullscreen mode Exit fullscreen mode

Efficient attention idea:

restrict or optimize comparisons

for i in tokens:
    for j in selected_tokens:
        score[i][j] = dot(Q[i], K[j])
Enter fullscreen mode Exit fullscreen mode

Or:

compute same attention
but optimize memory access
Enter fullscreen mode Exit fullscreen mode

Two strategies:

Concrete Example

Imagine reading a 10,000-token document.

Full Attention:

Every word looks at every other word.

That is like comparing every sentence to every sentence.

Local Attention:

Each word looks only at nearby words.

Like reading paragraph by paragraph.

Sparse Attention:

Each word looks at selected words.

Like focusing on keywords and headings.

FlashAttention:

Still reads everything.

But does it efficiently by avoiding unnecessary memory movement.

Different methods.

Same goal:

Reduce cost without losing important context.

Full Attention vs Efficient Attention

Full Attention:

Efficient Attention:

The key difference:

Full = maximum connectivity

Efficient = selective or optimized connectivity

Local Attention

Local Attention limits attention to a window.

Example:

Each token attends to last 128 tokens.

Cost becomes:

O(n × window)

Instead of O(n²)

This works because:

Nearby context often matters most.

But limitation:

Long-range dependencies can be missed.

Sparse Attention

Sparse Attention generalizes Local Attention.

Instead of full connections:

Use structured patterns.

Examples:

This reduces cost while keeping some long-range connections.

But trade-off:

Too sparse → lose important relationships

So many models mix:

full attention + sparse attention layers

FlashAttention

FlashAttention does NOT change attention logic.

It changes how attention is computed.

Problem:

Attention is often memory-bound.

GPU spends time moving data, not computing.

FlashAttention solution:

Instead of:

store full attention matrix → read again

It does:

compute on-the-fly → minimize memory movement

Key idea:

Optimize IO, not just math

Naive vs Optimized View

Naive view:

Attention cost = math operations

Optimized view:

Attention cost = math + memory movement

Naive:

compute QK^T
store matrix
apply softmax
Enter fullscreen mode Exit fullscreen mode

Optimized (FlashAttention):

compute in chunks
avoid large memory writes
reuse data efficiently
Enter fullscreen mode Exit fullscreen mode

This is why FlashAttention speeds up real systems.

Not by changing theory.

But by fixing hardware inefficiency.

Why This Matters (Again)

Early:

Attention made Transformers powerful.

Now:

Attention limits how far they can scale.

If you cannot optimize attention:

Efficient attention enables:

Important Conditions and Limits

Local Attention:

Sparse Attention:

FlashAttention:

Also:

Even optimized attention still grows with sequence length.

There is no free lunch.

Only better trade-offs.

Takeaway

Attention is the core of Transformers.

But it is also the bottleneck.

Full Attention = powerful but expensive

Efficient Attention = scalable but selective or optimized

The shortest version:

Efficient Attention = reduce connections OR optimize memory access

If you understand that, you understand why modern LLM engineering focuses so much on attention optimization.

Discussion

When working with long-context models, which matters more to you?

Accuracy from full attention or efficiency from optimized attention?

Originally published at zeromathai.com
Original article: https://zeromathai.com/en/efficient-attention-flashattention-sparse-en/

GitHub Resources
AI diagrams, study notes, and visual guides:
https://github.com/zeromathai/zeromathai-ai