Figure: the lossless/lossy boundary expressed formally. Read of t is the set of blocks attention reads at step t, and x sub b of t is 1 when block b is resident in HBM at t. The lossless correctness constraint is x sub b of t equals 1 for all b in Read of t, for all t, and it is hard. A constraint table lists six constraints: correctness, capacity, link, sustainability, hiding and QoS. Under lossless, correctness is hard and never relaxed; under lossy, correctness is the one constraint relaxed, permitting b in Read of t with x sub b of t equal to 0 and substituting an approximation. The other five constraints are identical in both columns. A second panel contrasts dense with sparse attention over three sequences of fourteen blocks each: under dense attention every block of every sequence in the decode set is in Read of t, so which blocks is not the question, and when, how far ahead, and at whose expense are the live questions instead. Under sparse attention Read of t is a strict subset, and the which-blocks question becomes live again.

Figure 7.2 · Analytical model

The lossless/lossy boundary, formally: one constraint, and only one

Not a taxonomy of techniques — a single line in the optimisation problem. Everything else in the model is shared.

One constraint separates them

Let Read(t) be the set of blocks attention reads at step t, and x_b(t) ∈ {0,1} record whether block b is resident in HBM at t. Then the whole of the lossless/lossy distinction is one line.

LOSSLESS:  x_b(t) = 1  for all b ∈ Read(t), for all t   (hard)
CONSTRAINTLOSSLESSLOSSYCORRECTNESSx_b(t) = 1 ∀ b ∈ Read(t), ∀tHARDnever relaxedRELAXEDexactly this one constraintCAPACITYΣ_b M_b · x_b(t) ≤ C_HBMsamesameLINKΣ_b M_b · (p_b(t)+d_b(t)) / Δt ≤ B_tier(t)samesameSUSTAINABILITYΣ_{i ∈ decode set} R_KV,i ≤ B_tiersamesameHIDINGT_transfer(chunk) ≤ T_compute(prev) + slacksamesameQoSTTFT_j ≤ τ_j , ITL_j ≤ ι_j ∀ tenants jsamesameEverything below the first row is common to both. Lossy methods differ in exactly one place.

Lossy methods relax exactly that one constraint.Token eviction, sparse retrieval and approximate reconstruction all operate by permitting b ∈ Read(t) with x_b(t) = 0, substituting an approximation for the block that is not there. Everything else in the model — capacity, link, sustainability, hiding, QoS — is common to both. That is why the two are separate layers with separate obligations: a lossy method owes an accuracy budget, and a lossless one does not.

Why “which blocks?” is the wrong question under dense attention

Dense attentionRead(t) = the whole context of every sequence in the decode setseq 1seq 2seq 3filled = in Read(t)Sparse attentionRead(t) is a strict subset — and only then is the selection question liveseq 1seq 2seq 3filled = in Read(t)
Dense — every block of every active sequence is read every stepSparse — Read(t) is a strict subset

Under dense attention, the live questions are three, and none of them is “which”.When does the block have to be resident? How far ahead must the transfer start? At whose expense does it occupy HBM — which other sequence in the decode set gives up residency for it? Since Read(t) is the entire context of every sequence in the decode set, selection has nothing left to choose.

Sparsity puts “which” back on the table.The moment attention becomes sparse, Read(t) is a strict subset of the context and the selection question is live again — which is precisely the SELECT stage of the control plane, and precisely why it is a separate stage rather than a term inside an eviction score.

Analytical model — data/formal_core.md §3.2 and §3.3