Repository navigation
Conversation
|
Independent sm_75 data point (same rig as my #187 note: RTX 2080 Ti 22GB, CUDA 13.0, arch 75, Your pipelined recurrence is output-identical to #187's state end-to-end (character-identical Speed on this card: neutral at 1,495 + 1024 (47.8-49.8 vs main 49.3-50.8 tok/s) and at |
|
Same order as upstream, line for line. Queued for the exactness gate in 0.1.29. Could you drop the CB=16 variant unless it wins somewhere? |
|
Thanks — same observation as on #187, and the same conclusion applies from our side: the switch gates Since the recurrence is prefill-side and the scores kernel on #187 is decode-side, "both single-PR
Neutral speed at short context is expected — the recurrence win is inside the 32K-context window |
…(bit-identical; STRATA_GDN_PIPELINE=0 = old kernel)
…TRATA_GDN_CB) dropped, one kernel on upstream's split (review)
f3c4779 to
6cb0ff6
Compare
|
Dropped and pushed (rebased on 0.1.28): CB=16 measured neutral here, so Byte check on 0.1.28 (single RTX 3090, #152 trio + no-stream-k): pipeline on vs off → identical on all three gate |
|
Released in 0.1.29: with your follow-up (one kernel, the CB=16 variant dropped); the prompt path's residual dumps are byte-identical. 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
The port Niko mentioned when closing #108 ("your software-pipelined loads in the recurrence go further than ours
(-29 % vs our -17 %)"):
gdn_rec_cols_kernelwith the next token's q/k rows, v, gate and beta loaded into registerswhile the current token computes. Templated on columns per block (32 = upstream's split; 16 available via
STRATA_GDN_CB=16, measured neutral).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): recurrence time
-29 % vs -17 % for the column split alone (as quoted in #108); prompt speed at 32K within a percent or two overall.
Correctness
The same arithmetic in the same order: bit-identical.
Switch
STRATA_GDN_PIPELINE=0= upstream's kernel.