The embarrassing fact about early diffusion LLMs
Diffusion language models are sold on speed: a fixed budget of parallel refinement rounds instead of one sequential pass per token. For a long time the open implementations were slower than autoregressive models of the same size.
This was not a coding failure. It follows from the paradigm, and understanding why is the whole of this lesson.
Autoregressive serving is fast because of an accounting trick most people never examine. Generating token appears to require attending over previous tokens, which would make total work quadratic. But under a causal mask, the keys and values of previous positions never change, because nothing later can influence them. So you compute each position's key and value once, store them, and each new token costs one incremental attention over cached state.
That is the KV cache, and it is the single optimisation that makes autoregressive inference economically viable. Roughly a decade of serving infrastructure, from paged memory management to prefix sharing, is built on top of it.
Diffusion language models cannot use it, at least not as written.

