OptiQ's wrapper rule: decode unfused (what one query gets in OptiQ's
wrapper); a window through the N-tiled fused port while the cache's own mask
is plain causal, and through the unfused port once the cache's own state
makes that mask an array (padded or unequal rows in a batched cache, the
sliding window bound in a rotating cache). The choice keys only on state the
cache owns, like the ring wrap or the delayed-quantization transition, never
on anything the caller passes. The composition of --kv-quant config (KV
scheme affine-layers, kernels: "tiled-causal"), which keeps OptiQ parity,
and of --fused-sdpa on (composedAffineKernels). Throws at construction
when the tiled port does not take these bits, group size and activation
dtype.
OptiQ's wrapper rule: decode unfused (what one query gets in OptiQ's wrapper); a window through the N-tiled fused port while the cache's own mask is plain causal, and through the unfused port once the cache's own state makes that mask an array (padded or unequal rows in a batched cache, the sliding window bound in a rotating cache). The choice keys only on state the cache owns, like the ring wrap or the delayed-quantization transition, never on anything the caller passes. The composition of
--kv-quant config(KV schemeaffine-layers,kernels: "tiled-causal"), which keeps OptiQ parity, and of--fused-sdpa on(composedAffineKernels). Throws at construction when the tiled port does not take these bits, group size and activationdtype.