How throughput scales with prompt length

Prefill is timed to first logits, which is what a caller actually waits for. Every point is repeated and reported as median with the full range, because this GPU shares system memory and a single reading is not a measurement: large weight matrices measurably settle into residency over the first few passes.

All three matrix paths run on the same uploaded weights in the same session, with their repeats interleaved and the order rotated, so none inherits a residency state another paid for: matvec, the original kernel; tiled, the first attempt at batching it; and batched matvec, the default, which batches it without changing how any output is summed.

starting...