Repository navigation
Conversation
|
Independent sm_75 data point (single RTX 2080 Ti 22GB, CUDA 13.0, arch 75, IQ3_XXS, MTP spec=4; One observation you may want to check: with your scores kernel active alone (the other two off), Speed on this card at short context is neutral, consistent with your stage numbers: |
|
The arithmetic matches |
|
Thanks — good catch to flag it, and the pattern is interesting. We re-checked the diff on our side: What you measured — scores-alone and recurrence-alone giving character-identical output, both Three things that would pin it down, if you have the rig handy:
Speed neutral on your card is expected — the win is in the 32K-context window structure, as your |
…'s queries (bit-identical; STRATA_SCORES_MULTI=0 = old grid)
…decode captured or not, prefill's pooled16); no box-specific note (review)
8537692 to
7206157
Compare
|
Fixed and pushed (rebased on 0.1.28): the comment now names every caller that takes the multi kernel (the On the one-token question (@Adamyno): we re-ran it on 0.1.28 + #186/#187/#188, single RTX 3090, IQ3_S, with |
|
Released in 0.1.29: with your comment follow-up; byte-identical on all four quants. Merged under your name (cherry-picked, so GitHub doesn't show it as merged). Thank you! |
…iko1221#197), faster prompt kernels (Niko1221#187, Niko1221#188, Niko1221#207), correctness fixes (Niko1221#154); setup requires it
…iko1221#197), faster prompt kernels (Niko1221#187, Niko1221#188, Niko1221#207), correctness fixes (Niko1221#154); setup requires it
…iko1221#197), faster prompt kernels (Niko1221#187, Niko1221#188, Niko1221#207), correctness fixes (Niko1221#154); setup requires it Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0154bwiad8gY7wRehCXy27pN
Summary
In a captured decode window
qsa_block_scoreslaunched a (max_blocks / 8) x nq grid (~24,600 mostly idle blocks perlayer) and re-read every pooled key block once per query. New kernel: a fixed grid strides over the key blocks, reads
each once and scores it for all of the window's queries (up to 8); per (block, query) the same arithmetic in the same
order as
block_scores_kernel. Used only when no active-block count is given (the captured decode window).One commit on top of 0.1.27 (a790805); all four of my current branches were compile-tested together on 0.1.27.
Measured
Measured on 2x RTX 3090, IQ3_S, with the engine this was developed in (0.1.24 + the dual-GPU work): at 32K context the
"scores+topk" stage 1.02 -> 0.90 ms per window; verify window 20.28 -> 20.04 ms.
Correctness
Bit-identical scores.
Switch
STRATA_SCORES_MULTI=0= the old grid.