OptionaloffsetArr?: MlxArrayOptionalrestoreValues?: (output: MlxArray) => MlxArrayOptionalvRotated?: booleanTurboQuant deferred-V: values are still in the rotated (FWHT)
domain — every consumer must un-rotate its attention OUTPUT
(tq.unrotateValues) after sdpa. Attention is linear in V, so the
result is the same decode, just transformed once per query row
instead of once per cached token.
Fetched KV handed from a donor layer to its sharers (and to the speculative drafter). Owned by forwardLayers for the pass.
offsetArris an owned pre-write position snapshot. Donor and sharing attention layers keep it until the fetched KV is released, even if the cache advances or replaces its borrowed row-position array.