Repository navigation
SuperSLM 1.10.0
SuperSLM 1.10.0
Released 2026-09-30.
SuperSLM 1.10.0 is a CPU speed release. Every output is bit-identical to 1.9.0: the same tokens,
the same save blobs, and the same axis digest on every tier and compiler. There is no change to the
C ABI, to any status or SslmGpuStatus ordinal, or to the save format, and no model artifact needs
reconversion. The GPU path is unchanged.
What changed
All of the speed-ups below apply only on the AVX2 and AVX-512 tiers. The scalar and SSE2 tiers run
the 1.9.0 code. Each fast path has a guard that admits only inputs where it is provably exact;
everything else takes the 1.9.0 code unchanged.
-
Tiled prefill GEMM. A prefill GEMM of 8 or more tokens runs a register-tiled kernel over
weights packed per call, instead of one dot product per output cell. At 128 tokens, one layer of
batched prefill runs about 1.5–1.6x faster (engine level, on a cloud host). On a Zen 2 desktop
(AVX2), one measured operator (the 1.5B model's gate/up GEMM at 32 rows) runs 2.59x faster.
Decode and prefills under 8 tokens are unchanged. -
Hardware SHA-256 for the load-time integrity hash. When the CPU has the x86 SHA extensions,
the hash runs on them. On a Zen 2 desktop, hashing the 510 MB Qwen2.5-0.5B model takes 0.31 s
instead of 3.25 s. The digests are unchanged, and the portable hash remains the fallback. -
Attention and per-row sites, one row at a time:
- The sigmoid, residual-landing and norm sites use 256-entry per-row tables on rows of 512 or
more. - Probability-times-value runs on 16-bit multiply-add.
- The requantization funnel runs in 64-bit integer lanes (
RequantRowWide). - The softmax row has a guarded fast path.
- On QK-norm models (the Qwen3 path), the Q31 attention score is computed for all of a query
head's keys in one call (QkQ31ScoreRow). On a Zen 2 desktop that costs 0.59 ms per token
instead of 10.26 ms at 128 tokens, and 3.63 ms instead of 94.07 ms at 1,024 tokens.
At Qwen2.5-0.5B depth (engine level, cloud host, AVX2), these save about 4.3 / 7.2 / 11.0 ms per
prompt token at 128 / 512 / 1,024 tokens, and about 7.8 ms per decode token at context 300.
CHANGELOG.mdgives the per-step figures. - The sigmoid, residual-landing and norm sites use 256-entry per-row tables on rows of 512 or
These are engine figures, not end-to-end figures for any consumer. How much faster a game gets
depends on how it drives prefill: a consumer that prefills one token per call gets the attention
and per-row savings but not the tiled GEMM's.
MSVC and clang-cl
On MSVC and clang-cl builds, the AVX-512 tier keeps the 1.9.0 code for the tiled GEMM and for the
attention and per-row sites until those paths have executed on such a build. Two switches turn
them on: SUPERSLM_TILED_AVX512_MSVC=1 and SUPERSLM_SITES_AVX512_MSVC=1. The AVX2 tier runs the
new code on every compiler.
Internal declarations
Five internal C++ declarations join the installed headers:
SitesKernel,SelectSitesKernelandDispatchSitesKernelinmatmul.h;RequantRowWideinintmath.h;QkQ31ScoreRowinforward_sites.h.
They follow the pattern those headers already use (GemmPath, RequantTokenCodeWide,
QkQ31ScoreForTier). None of them is exported, and none is part of the C API.
Compatibility and required action
None. Every C ABI verb, struct, status ordinal and save format is unchanged. A blob saved by 1.10.0
is the same SSB5 blob 1.9.0 writes, and the two releases read each other's blobs. The FP-free
scan now accepts the three SHA-256 instructions (sha256rnds2, sha256msg1 and sha256msg2),
which are integer-only. The SHA-1 instructions stay rejected.
Verification
- Bit-identity:
- The axis digest's GLOBAL hash is identical on all ten Linux legs: auto, plus forced scalar,
SSE2, AVX2 and AVX-512, each on GCC 13.3 and Clang 18.1. - Each slice's golden pins are generated from the v1.9.0 tag.
- Save blobs and decoded tokens match 1.9.0 in each slice's blob protocol.
- The axis digest's GLOBAL hash is identical on all ten Linux legs: auto, plus forced scalar,
- GitHub CI: green on the merged head
1cfe368, 78 of 78 checks. The forced AVX-512 suite ran
on a runner that has AVX-512: 121,375 checks, 0 failures, with the AVX-512 kernels confirmed
active. - Code reviews on a Zen 2 desktop (Windows, MSVC) of the tiled GEMM, the SHA-256 path and the
attention and per-row sites: no bugs found. The review's two findings on the attention sites
are fixed in this release. - Release machine (Zen 2 desktop, Windows, MSVC 19.33, RTX 2080 SUPER; AVX2, no AVX-512), at
e4d263e:- CMake Release with the GPU on, built fresh:
superslm_tests131,772 checks, 0 failures,
including the tiled GEMM cells (247 checks) and the attention and per-row site cells (91,714
checks). build.batruns to completion: every gate passes, including its ownsuperslm_testsstep
(126,934 checks, 0 failures) and the ABI header inventory.- The release gate's tests (
tools/test_t2704_release_gate.py) pass, 4 of 4, after its two
compiled diagnostics were rebuilt frome4d263eand re-pinned.CMakeLists.txtchanged in
this release, and the gate counts that as a changed build input. The commits aftere4d263e
change only that pin and this note.
- CMake Release with the GPU on, built fresh:
Files changed
src/matmul.cpp,include/superslm/matmul.h: the tiled GEMM, prob·V and the sites kernel
selection.src/sha256.cpp,include/superslm/sha256.h: the hardware SHA-256 path.src/intmath.cpp,src/forward/forward_sites.cpp,src/forward/checked_chain_funnel.cpp,
include/superslm/intmath.h,include/superslm/forward_sites.h: the attention and per-row sites.include/superslm/gpu_layer_loop_guards.def: line citations moved withforward_sites.cpp
(comments only).src/bad_alloc_wrap.h: the tiled path's packing-buffer allocation.tests/ci/check_fp_free_scan.py: the three SHA-256 instructions.tools/ci/branch_coverage_floors.json: thesrc/matmul.cppandsrc/intmath.cppfloors are
pinned from a CI run on a runner without AVX-512, where the AVX-512 bodies cannot execute.CMakeLists.txt,tests/install-consumer/CMakeLists.txt,README.md,CHANGELOG.mdand this
note: version 1.10.0.tests/data/t2704_release_manifest.json,tools/test_t2704_release_gate.py: the release gate's
compiled diagnostics, re-pinned toe4d263e.