You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Child of #203. The #201 decode MMQ ships opt-in (SHARPI_BATCH_DECODE_MMQ=1): N=8 aggregate 248 -> 317 t/s, argmax-stable (same contract as the prefill MMQ and the SHARPI_BATCH_DECODE_GEMM toggle), with per-tensor fallback to the bit-exact WS path for Q6_K / rows<2048 / N<5.
Before flipping the default for batched serving (SHARPI_MAX_BATCH / ContinuousBatchingEngine users):
N=5-7 cells: the dispatch threshold N>=5 was set from N=2 (123 vs 139, loses), N=4 (wash), N=8 (+28%); the 5-7 range is interpolated, not measured. Bench those cells (SHARPI_BENCH_BATCH_N=5,6,7) and adjust the threshold if 5/6 are washes.
Quality soak: argmax-stable is a kernel-level contract; run a multi-sequence generation comparison (greedy, ~100+ tokens per seq, several prompts) MMQ=1 vs default and confirm token-level agreement or benign divergence only.
Decision: default-on for BatchForwardMulti only (single-user Forward is untouched either way), keeping SHARPI_BATCH_DECODE_MMQ=0 as the bit-exact kill-switch — or keep opt-in and document the knob in the server/CLI docs.
Child of #203. The #201 decode MMQ ships opt-in (
SHARPI_BATCH_DECODE_MMQ=1): N=8 aggregate 248 -> 317 t/s, argmax-stable (same contract as the prefill MMQ and theSHARPI_BATCH_DECODE_GEMMtoggle), with per-tensor fallback to the bit-exact WS path for Q6_K / rows<2048 / N<5.Before flipping the default for batched serving (
SHARPI_MAX_BATCH/ ContinuousBatchingEngine users):SHARPI_BENCH_BATCH_N=5,6,7) and adjust the threshold if 5/6 are washes.SHARPI_BATCH_DECODE_MMQ=0as the bit-exact kill-switch — or keep opt-in and document the knob in the server/CLI docs.🤖 Generated with Claude Code