Repository navigation
Conversation
Bitwise (gr_bench checksums unchanged): the down reduce folded into the sliced down kernel (the last slice of a row block reduces, STRATA_GR_FUSED_REDUCE), the up kernel at 4 columns a block (STRATA_GR_UP_MORE_COLS) reading the lo values the reduce computed once (STRATA_GR_LO_READY). Another fp32 summation order (sums equal to ~1e-7, output quality-checked): the norm folded into the down kernel (STRATA_GR_NORM_FOLD) and the up projection one row a lane (STRATA_GR_UP_V5). All Alchemist defaults with env switches. gr_bench 1 / 4 / 6 tokens: 88 / 123 / 151 -> 62 / 83 / 100 us. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… (STRATA_GR_DOWN_COLS, Alchemist default); gr_bench GR_BENCH_LAYERS 40 slices instead of 80: half the partials for the row block's last slice to reduce, every lane's weights loaded before the staging. gr_bench (48 layers' weights from VRAM, GR_BENCH_LAYERS=48), 2 / 4 / 6 tokens: 68.8 / 83.4 / 100.5 -> 62.9 / 78.4 / 95.3 us; engine 8K GPU wait 37.2-37.7 -> 35.9-36.1 ms/round (3 pairs). 512 columns spill (slower). Another fp32 order than the 128-column kernel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Added
🤖 Generated with Claude Code |
|
Thanks for the pull request. We're resetting the tracker for 0.2.0-beta. There are more than 1,300 open issues and pull requests, too many for us to review properly, so we're closing everything that isn't being worked on right now. Closed here does not mean rejected. To reopen it takes about two minutes:
The rules are in CONTRIBUTING.md. |
Title
sycl/A770: faster hyper-connection read on Arc A-series (gr_bench 88 / 123 / 151 -> 62 / 83 / 100 us at 1 / 4 / 6 tokens)
Summary
fused_gr_read_multion Alchemist, thegr_more_groupspath. This is the decode window's per-layer hc read, run twice per layer, and it sits on the stepped window's critical path. There are five changes, each with an env switch and each the default on Alchemist only. Every other device runs the same kernels as before.Three are bit-identical (
gr_benchchecksums unchanged):STRATA_GR_FUSED_REDUCE). That is one launch fewer.STRATA_GR_UP_MORE_COLS).lovalues the fused reduce computed once, instead of every block recomputing them (STRATA_GR_LO_READY).Two change the fp32 summation order. The output sums agree to about 1e-7 relative, and the output was quality-checked:
STRATA_GR_NORM_FOLD). The slices stage the pending-updated residual ×w_normunscaled, together with its sums of squares. The reduce then applies each stream'srsto that stream's partial dots. This removes the norm launch and thexnwrite and re-read.STRATA_GR_UP_V5). The old kernel re-read all oflofrom local memory for every row and every token, about 160 KB per block, and was local-memory bound on the A770. Now all lanes read the samelovalue at once, as a broadcast.STRATA_GR_NORM_FOLD=0 STRATA_GR_UP_V5=0gives back the old bits exactly.What changed
sycl/src/kernels/cuda/fused_gr.dp.cpp:gr_down_sliced_kernelgains theFUSED/NFepilogues.gr_up_v5_kernel.launch_gr_down_more/launch_gr_up_morechoose between them.gr_fused_reduce,gr_norm_fold,gr_up_more_cols,gr_lo_ready,gr_up_v5.Extra Notes
Arc A770 16 GB, xe, compute runtime 26.05, oneAPI 2026.1.
gr_bench, in µs:Decode (Coder IQ1_M,
--resident-experts, spec 4):Not tested: A750 / A580, i915, Windows.
🤖 Generated with Claude Code