ICML 2026 · AdaSplash‑2

Attention that decides
what to ignore.

An interactive tour from α‑entmax — sparse, differentiable attention that sends irrelevant tokens to exactly zero — to AdaSplash‑2, the kernel that finally makes it as fast as FlashAttention.

Start the tour Paper & code
scroll
See it in 3D

α‑entmax is a projection onto the simplex.

An attention distribution over three keys is a point on the probability simplex — the triangle of nonnegative weights that sum to one. α‑entmax turns raw scores into that point by projecting them onto the triangle under a regularizer whose strength is the entropy, set by α. Slide α and watch the whole cloud move: high entropy keeps points in the dense interior; low entropy drives them onto the edges (one key zeroed) and corners (two keys zeroed). Drag the triangle to rotate.

1.50
1.0 · softmax (interior)2.0 · sparsemax (edges & corners)
64
dense (interior)
sparse (boundary)

Grey points are score vectors in 3‑D space (the x, y, z axes are shown); each line projects one onto its α‑entmax image on the triangle ( 3 = interior, 2 = edge, 1 = corner). Raise α and the landing points slide to the boundary. Drag to rotate in 3‑D; add or remove sampled points. The bar charts below are one such projection at a time.

The problem with softmax

Softmax can never say “zero”.

Softmax gives every token a positive weight. Over a long context, that mass spreads thin across hundreds of irrelevant tokens — a dilution known as dispersion. Drag the context length and watch the peak weight collapse.

32
signal weight
entropy (nats)

The largest attention weight shrinks like O(1/n)‑ish as context grows — the signal drowns in a sea of tiny‑but‑nonzero contributions.

The idea

α‑entmax: one knob from dense to sparse.

α‑entmax replaces softmax with a family indexed by a single parameter α. At α = 1 it is softmax (dense). Push α up and the smallest weights snap to exact zero — the model chooses its own support, differently for every query.

1.50
1.0 · softmax1.5 · entmax‑1.52.0 · sparsemax
tokens kept
sent to zero

The threshold is set so the weights sum to one. The positive part is what clips everything below threshold to a hard zero.

How the zeros happen

It’s a threshold on the scores.

Read the closed form geometrically: raise a waterline across the (scaled) scores. Everything above the line survives and is renormalized; everything below is zero. α controls both the waterline and the curvature above it.

Softmax gets τ for free — it’s just . For α‑entmax there is no closed form: τ is the root of the equation below. That single fact is the whole efficiency story.

1.50
threshold τ*
above the line
The bottleneck & the fix

Every step, every head: solve f(τ)=0.

Because τ needs root‑finding, α‑entmax attention historically could not keep up with optimized softmax kernels. AdaSplash and AdaSplash‑2 attack exactly this inner loop. Step through the three generations on the same curve.

0
iterations used
|f(τ)| error

Naïve

Bisection halves a wide bracket. Safe, but many passes over the scores — tens of iterations for tight tolerance.

AdaSplash · ICML 2025

A hybrid Halley–bisection solver: second‑order steps when safe, bisection as a guardrail. ~7× fewer iterations, plus Triton kernels that skip zero blocks.

AdaSplash‑2 · 2026

A coarse histogram of scores, built on‑chip in SRAM, gives a provable bracket on τ*. The solver then lands in 1–2 steps.

AdaSplash‑2 · the key idea

A histogram that brackets τ* for free.

As FlashAttention streams score tiles through fast SRAM, AdaSplash‑2 also drops each score into a coarse histogram. Counting how many scores exceed each bin edge turns into a lower and upper bound on τ* — a tight bracket handed to the solver before a single Newton step. Change the resolution and watch the bracket tighten.

16
bracket width
steps to τ*

More bins ⇒ a tighter provable bracket ⇒ fewer solver iterations — all without materializing the dense score matrix.

AdaSplash · the backward pass

The gradient is sparse, too.

A fast forward pass is only half the battle — training also needs the backward pass. Here α‑entmax gives a second gift: its Jacobian is sparse. The derivative of the weights with respect to the scores vanishes off the support, so gradients only ever flow through the tokens that survived.

1.50
Jacobian nonzeros
backward work saved

AdaSplash splits the backward into two kernels — one for , one for — and reuses the forward support to skip null blocks, so gradients are computed only over the nonzeros. At long context, ~3% of entries can carry ~96% of the attention, so this is most of the cost.

The α‑entmax Jacobian is nonzero only on the support × support block (teal). Push α up: the block — and the backward cost, which scales with it — shrinks with the support.

Turning zeros into speed

Whole blocks vanish — so skip them.

Sparsity is only useful if the hardware exploits it. When an entire 64×64 tile of the attention matrix is zero, AdaSplash‑2 never loads or computes it. Raise α and watch the causal attention map dissolve into skippable blocks — then read off the speedup.

1.50
blocks skipped
work remaining

Runtime vs. sparsity

Relative speed vs. FlashAttention‑2 (forward+backward), following Fig. 1 of the paper.

FlashAttention‑2 is flat — it can’t use sparsity. AdaSplash‑2 crosses at moderate sparsity and pulls away, roughly in the high‑sparsity regime typical of long context.

AdaSplash‑2 · the skip‑list

Pack the skip‑list into bits.

Knowing which blocks are zero only helps if checking is cheap. AdaSplash‑2 records the nonzero blocks in a binary mask and bit‑packs it — 32 column‑blocks per int32, a 32× smaller footprint. The kernel then walks only the set bits with a hardware find‑next‑set instruction, jumping straight over runs of zeros, in both the forward and the backward pass.

70%
blocks visited
zeros skipped

Each cell is one tile pair; teal = nonzero (compute it), dark = zero (skip it), and the digit below is its bit. Press play: find‑next‑set lands only on the teal blocks, hopping over the zeros — so traversal cost scales with the number of nonzeros, not the sequence length.

Why bother

Match softmax short, beat it long.

Trained with exact α‑entmax attention, 1B models match softmax on short context and pull sharply ahead as it grows. All numbers below are from the paper — 1B models trained to 32K, with α‑entmax paired with the NAPE positional scheme.

RULER at 32K — the hardest length

Where softmax collapses to near‑zero, sparsity holds.

Softmax (RoPE) Softmax (NAPE) α‑entmax (NAPE)

HELMET in‑context learning

Average accuracy — and it keeps climbing with context.

Softmax (RoPE) Softmax (NAPE) α‑entmax (NAPE)

RULER average by context length — α‑entmax wins at every length

Model4K8K16K32K
Softmax (RoPE)51.445.337.727.3
Softmax (NAPE)48.146.443.336.8
α‑entmax (NAPE)54.749.945.439.4

The through‑line: α‑entmax gives attention a principled “off” switch; AdaSplash‑2 makes that switch cost almost nothing. Adaptive sparsity stops being a research luxury and becomes a default you can afford.

Come say hi at ICML

AdaSplash‑2

Faster Differentiable Sparse Attention.

Nuno M. T. Gonçalves* · Hugo Pitorro* · Vlad Niculae · Edoardo M. Ponti · Lei Li · André F. T. Martins · Marcos V. Treviso

More α‑entmax toys from the same lab: