Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
221 commits
Select commit Hold shift + click to select a range
2e4c95e
serve: a llama.cpp engine behind the same boundary (--engine llama)
Sep 29, 2026
43cd6bd
setup: an Intel Arc path (no CUDA), and the run script starts llama-s…
Sep 29, 2026
8e1354b
docs/INTEL.md: --port and --host, learned the hard way (8080 is open-…
Sep 29, 2026
5665315
README: the Intel Arc port and the rig it was tested on, up top
Sep 29, 2026
bcfcf40
gitignore: start-llama.sh, generated by setup on the Intel path
Sep 29, 2026
34cae9e
docs/INTEL.md: how much context fits on a 32 GB card, measured
Sep 29, 2026
0741381
docs: 128k context proven on the B70 - a 105k-token prompt read at 42…
Sep 29, 2026
7021c80
sycl: the CUDA engine migrated to SYCL - builds with oneAPI, 19 of 22…
Sep 29, 2026
35b58f9
sycl: first light - the SYCL engine generates correct text on the Arc…
Sep 29, 2026
8c789e6
sycl: ~13 tok/s steady state, coherent 64-token output; window timing…
Sep 29, 2026
3600536
sycl: AOT build (bmg-g31) - 15.2 tok/s decode, 28.8 tok/s prompt, fir…
Sep 29, 2026
21c3f48
sycl: multi-entry expert dots - the resident-expert kernels 2.3x fast…
Sep 29, 2026
36aa5bc
sycl: fused multi-token router for 256 experts (was 512-only); 16.95 …
Sep 30, 2026
c382f84
sycl: clean exit, per-kernel profiling, Q6_K unpack hoisted; measured…
Sep 30, 2026
6e02add
sycl: long prompts - 693 tok/s at 2k tokens; the streaming source is …
Sep 30, 2026
20e5b1a
sycl: Q6_K 16-byte-load kernel (wide projections only), mmvq bench co…
Sep 30, 2026
8303db2
docs: like-for-like against llama.cpp on the same prompt - prompt 560…
Sep 30, 2026
511ae75
docs: 45.3 tok/s decode with the base model's MTP draft layer (87% ac…
Sep 30, 2026
52fb638
docs: 42.7 tok/s decode at the 2,185-token context with MTP (prompt 4…
Sep 30, 2026
6a7c357
Merge remote-tracking branch 'origin/main' into b70
Sep 30, 2026
c3bb85b
sycl: refresh the port for upstream 0.1.25-0.1.27 (re-migration merge…
Sep 30, 2026
b7d88b9
docs: INTEL.md - the merged port's numbers on the B70 (46.5 / 38.3 to…
Sep 30, 2026
bf804a1
sycl: the speed round - warm-up captures, commit/draft overlap, vecto…
Sep 30, 2026
3249953
sycl: iq4_nl dequant as runs of 8 (0.024 -> 0.017 ms per expert), hos…
Sep 30, 2026
cbb4728
sycl: PLE rows - a 64-deep read queue and a short first prompt chunk …
Sep 30, 2026
66699fb
docs: INTEL.md - the 80,000-token prompt: the VRAM plan trap, expert …
Sep 30, 2026
51a9249
docs: INTEL.md - 80k tokens at 1,065 tok/s with 12 staging threads; t…
Sep 30, 2026
35a147f
Merge remote-tracking branch 'origin/main' into b70
Sep 30, 2026
e3e97c9
sycl: refresh for upstream 0.1.28-0.1.29, fix the streamed-expert pro…
Sep 30, 2026
fc8a4de
sycl: lend cache slots to the prompt path above a 32K context - 80,00…
Sep 30, 2026
80be39e
sycl: XMX prompt attention v2 (1.5x v1, k8v4 parity complete), long-c…
Sep 30, 2026
7f9a502
sycl: STRATA_DUMP_SEL (the prompt path's selected cells); INTEL.md - …
Sep 30, 2026
4fa86aa
sycl: serve the port - strata-sycl.sh runs the engine in the oneAPI i…
Sep 30, 2026
b40bf7b
setup: Strata's SYCL engine on Intel cards when it is built; sycl: cl…
Sep 30, 2026
a574bff
setup/docs: KV streaming for the SYCL engine from 64K - 256K context …
Sep 30, 2026
1f79044
sycl: pinned host mirror for experts missing from VRAM, read by the d…
Sep 30, 2026
8aca6c8
sycl: SIMD16 variants of the decode mmvq kernels (opt-in STRATA_MMVQ_…
Oct 1, 2026
38a979d
sycl: aligned loads for the Q6_K decode kernel (decode 45 -> 54 tok/s…
Oct 1, 2026
882764d
sycl: decode 54 -> 62.6 tok/s: parallel resident plan, untiled GR dow…
Oct 1, 2026
d119113
sycl: wide Q8_0/IQ4_NL decode kernels, aligned Q6_K activation loads …
Oct 1, 2026
dcf251c
sycl: GR down projection sliced by columns (decode 65.5 -> 70.6 tok/s)
Oct 1, 2026
0800340
serve: log each request's client; SYCL wrapper without the image's he…
Oct 1, 2026
288d57b
docs/INTEL.md: current numbers up front (SYCL port 70.8 tok/s decode,…
Oct 1, 2026
20a2ccf
sycl: IQ4_NL expert dots with the codebook in registers and aligned l…
Oct 1, 2026
89e4de4
docs/INTEL.md: planned item 9, the original IQ2_XS with the expert ov…
Oct 1, 2026
03c034e
sycl: GR norm per (token, stream), aligned loads in the IQ3_XXS/IQ3_S…
Oct 1, 2026
381373c
docs/INTEL.md: re-measured on the current build, long contexts included
Oct 1, 2026
6e6ca04
docs/INTEL.md: k8v4 long-context rows and the API figure on the curre…
Oct 1, 2026
d9ebe6e
docs/INTEL.md: the original Qwen3.8-Flash-Next IQ2_XS runs on the B70…
Oct 1, 2026
717e7e8
serve: Intel Arc readings in the Monitor tab; a model menu for hosts …
Oct 1, 2026
f6c30c0
Merge upstream main (engine 0.1.31) into b70
Oct 1, 2026
8bbefac
PR hygiene: licenses for the vendored code, a generic Intel GPU sampl…
Oct 1, 2026
4951fd0
sycl: refresh the port to upstream 0.1.31
Oct 1, 2026
3ed36e0
docs/INTEL.md: lanes per row of the expert kernels measured per verif…
Oct 1, 2026
46b366b
sycl: parity tests wait like cudaMemcpy; drain the refill ring in lon…
Oct 1, 2026
33706a3
Merge upstream main (0.1.32) into b70; Intel code kept out of shared …
Oct 1, 2026
35809f8
sycl: port upstream 0.1.32 (re-migration 3-way merge)
Oct 1, 2026
bf8e11d
sycl: fix the prompt-slot borrow hang (stager event wait under L0 v2)…
Oct 2, 2026
a7ef65f
Merge upstream main (0.1.33) into b70
Oct 2, 2026
26f8056
sycl: port upstream 0.1.33 (re-migration of its six engine files)
Oct 2, 2026
3ee292a
sycl: read streamed experts from the right shard; fix IQ2_XS products…
Oct 2, 2026
57bd713
sycl: pipeline the expert cache's profile fill (model load 3-4x faster)
Oct 2, 2026
e5c2836
Merge upstream main (0.1.35) into b70
Oct 2, 2026
41ad902
sycl: port upstream 0.1.35 (re-migration of its changed engine files)
Oct 2, 2026
88c3ace
sycl: port open upstream PRs #385 #463 #453 #374 #363 #407 #413 onto …
Oct 2, 2026
4ba35fd
sycl: OpenAI logprobs on /v1/chat/completions (engine LP lines + serv…
Oct 2, 2026
ba707d8
Several conversations at once: batch slots, pipelined layer split, pe…
blange48 Oct 2, 2026
c67052c
server: a client that stops reading early keeps the engine in step
blange48 Oct 3, 2026
e11166b
Conversation parking with --layer-split
crazyaimachine Oct 3, 2026
220ccbb
Tests and docs: parking with a layer split, tools/parking_test.py, a …
blange48 Oct 3, 2026
f67bf51
Parking with a layer split: the draft ring once, every stage's K/V re…
blange48 Oct 3, 2026
2cb4bde
serve: restart a dead engine for real - wait for the old process, ret…
JeanP00l Oct 3, 2026
d86dcb7
serve: restart() keeps 0.1.38's close() (PR #637 follow-up)
Niko1221 Oct 3, 2026
e50592b
serve: a malformed "tools" value is a 400, not a dropped connection (…
Niko1221 Oct 3, 2026
f4a2f0a
File tier: decide unbuffered reads from the expert bytes it reads, ag…
Niko1221 Oct 3, 2026
4f3973a
serve: read the /load and /unload body before replying (#630)
CC-David-CC Oct 3, 2026
7c77eae
Load the native head and the logits before the expert arena; name the…
Niko1221 Oct 3, 2026
ca8125c
setup: running it again keeps the run config's keys it does not write…
Niko1221 Oct 3, 2026
e50f266
layer split: with explicit split points each GPU loads only its own l…
JeanP00l Oct 3, 2026
efec569
layer split trim: CUDA0 keeps every layer's router with --mmap-expert…
Niko1221 Oct 3, 2026
e30dd85
STRATA_ARENA_MMAP=1: the expert arena as a read-only mapped file (Lin…
JeanP00l Oct 3, 2026
3982ec7
layer_split: check it before the start, accept a JSON list, say the f…
Niko1221 Oct 3, 2026
247b5a1
adaptive swaps: gather the pin spans only when they are pinned (PR #6…
Niko1221 Oct 3, 2026
fe49e22
setup: --no-browser / "open_browser": false keeps the chat page from …
Niko1221 Oct 3, 2026
e90fbb4
make_profile: --reorder so a trace can rank ahead of a complete base
yannickloth Oct 3, 2026
537588f
Parking with a layer split: the draft ring with the last stage, on it…
blange48 Oct 3, 2026
f12b99f
setup: --vision-tokens N, the most image tokens a picture becomes (#625)
Niko1221 Oct 3, 2026
0e9814a
setup: recommend P-cores + half the E-cores as CPU expert workers on …
Niko1221 Oct 3, 2026
19de7f4
q8_1 activations: keep the block's fp16 scale and sum finite (#606)
Niko1221 Oct 3, 2026
3903aab
serve: end a reply that repeats one token 256 times in a row (#606)
Niko1221 Oct 3, 2026
0cc4e86
setup: --draft-vocab fr - the English/code subset plus the tokens of …
Niko1221 Oct 3, 2026
0129f22
setup: a calibration on Linux HIP names the AMD card and is reused fo…
Niko1221 Oct 3, 2026
e43d072
serve: a literal <think> / </think> in a message is encoded as text (…
Niko1221 Oct 3, 2026
71d41cd
--ple-io direct on a rotational disk: warn at start, setup keeps the …
Niko1221 Oct 3, 2026
e1e3aa9
docs: AMD_HIP.md - a calibration run by hand on Linux HIP is kept for…
Niko1221 Oct 3, 2026
d533fe9
The expert arena checks the host RAM before it is allocated; the RAM …
Niko1221 Oct 3, 2026
bb7c91b
setup: STRATA_NVCC picks the CUDA toolkit; CUDA_HOME is looked at; gl…
Niko1221 Oct 3, 2026
12c099b
layer split trim: on by default in the HIP builds, opt-in on CUDA (PR…
Niko1221 Oct 3, 2026
0f8cbeb
STRATA_ARENA_MMAP: write experts.bin only when the drive has room (PR…
Niko1221 Oct 3, 2026
61479a8
serve + engine: opt-in "effort_position": "end" keeps the cached conv…
Niko1221 Oct 3, 2026
c129c4c
Windows Pascal/Volta source build: link the shared CUDA runtime only …
Niko1221 Oct 3, 2026
2bc2dc1
docs: the layer split's per-card dense weights (PR #639), STRATA_AREN…
Niko1221 Oct 3, 2026
553f37b
Hit rate: say the PCIe share beside it (#588)
Niko1221 Oct 3, 2026
587bb07
Document the decode window profiler (STRATA_VERIFY_PROFILE + STRATA_D…
Niko1221 Oct 3, 2026
0890960
web: a Conversation cache card in the Monitor tab (#596)
Niko1221 Oct 3, 2026
0e17d1b
SECURITY.md: how to report privately, and what the server exposes (#544)
Niko1221 Oct 3, 2026
312f116
Docs: the five reading errors #604 found (the sixth, the n-gram table…
Niko1221 Oct 3, 2026
4e8d036
web: a Model settings view for documented run config keys (#564)
Niko1221 Oct 3, 2026
0ad8f70
serve: the OpenAI Responses API, POST /v1/responses (#451)
Niko1221 Oct 3, 2026
f0489c9
web: the Model settings card's Save is the primary button (#564)
Niko1221 Oct 3, 2026
e809f7f
setup: Unsloth's UD-IQ4_XS as an experimental choice (#621)
Niko1221 Oct 3, 2026
f17d0ea
File tier: the #577 re-check's log line on Windows only (the unbuffer…
Niko1221 Oct 3, 2026
4f691be
strata_mcp: UD-IQ4_XS in the built-in model table, as in setup.py (#621)
Niko1221 Oct 3, 2026
c062690
docs, setup help: --draft-vocab fr and its measured acceptance (#597)
Niko1221 Oct 3, 2026
a481806
serve tests: the long fixture answer alternates two tokens (one repea…
Niko1221 Oct 3, 2026
d595a2b
Hot VRAM resize, opt-in: a segmented expert cache, VRAM <reserve>, PO…
Niko1221 Oct 3, 2026
2b47285
setup: recommend the hybrid worker count only with more E-cores than …
Niko1221 Oct 3, 2026
d5469a9
verify: opt-in handshake trace for the gfx1030 timeouts, HIP A/B swit…
Niko1221 Oct 3, 2026
645a579
prefill: step diagnosis and a HIP host-DMA switch for the gfx1201 pro…
Niko1221 Oct 3, 2026
1807086
tools: conversation_restore_speed.py, decode after a conversation-cac…
Niko1221 Oct 3, 2026
138ce43
serve: a checkpoint that fails on the GPU sync says the GPU stopped r…
Niko1221 Oct 3, 2026
bdd5f50
Merge branch 'f-139-eng' into f-139-rel
Niko1221 Oct 3, 2026
4fc8876
Merge branch 'f-139-ux' into f-139-rel
Niko1221 Oct 3, 2026
ece2e5f
Merge branch 'f-139-resp' into f-139-rel
Niko1221 Oct 3, 2026
6491760
Merge branch 'f-139-prs' into f-139-rel
Niko1221 Oct 3, 2026
0d5387f
Merge branch 'f-139-big' into f-139-rel
Niko1221 Oct 3, 2026
13f70a3
layer split trim: opt-in on HIP too (STRATA_STAGE_TRIM=1, PR #639)
Niko1221 Oct 3, 2026
cff608c
Engine 0.1.39: the #577 file-tier regression fixed, the OpenAI Respon…
Niko1221 Oct 3, 2026
bd400f7
Layer split comment: KV streaming and images do run across a split
blange48 Oct 3, 2026
a3277e3
Merge upstream main (0.1.38) into b70
Oct 3, 2026
daf3b7e
sycl: port upstream 0.1.38
Oct 3, 2026
cce52db
qsa_select: the top-k past the register kernel's reach on 1,024 threa…
asp345 Oct 2, 2026
5bd5eec
Added gfx1031 experimental support
matthewjt Oct 2, 2026
78bb6dc
forgot one spot to add in setup.py
matthewjt Oct 2, 2026
357723a
setup: gfx1031 (RX 6700 XT) wording and a test (PR #524 follow-up)
Niko1221 Oct 3, 2026
f2fb7c1
sm_75: run the prompt path's BF16 products on the FP16 tensor cores
rafatxf Oct 3, 2026
3f81bce
BF16 tensor-core path: default on for all of compute capability 7.x (…
rafatxf Oct 3, 2026
dd0ce1e
iq_avx2: build the IQ2 sign table without a variable shift
demetree Oct 1, 2026
ab8729e
setup: --backend sycl, the Intel Arc engine (experimental, built from…
Niko1221 Oct 3, 2026
cfd3b72
perf(cuda,decode): zero-doorbell verify graph, sub-warp expert packin…
stuchapin909 Oct 3, 2026
055122c
fix(cuda,decode): resolve sm_120 IQ3_S generic-pointer fault and rest…
stuchapin909 Oct 3, 2026
016ea2e
iq_avx2: the IQ2 sign table at compile time (no static constructor in…
Niko1221 Oct 3, 2026
e82947f
native experts: gate the AVX2 multi-token kernels on cpu_avx2_ok() (#…
demetree Oct 3, 2026
ff6f9f1
prefill gemm below sm_80: Volta on the FP16 path by default, Turing o…
Niko1221 Oct 3, 2026
06a90a2
qsa_prompt_attn: tensor-core kernel for Volta (sm_70, mma.m8n8k4)
Oct 2, 2026
7d6482a
docs: NVIDIA_V100.md and the measurements of the Volta prompt attention
Oct 3, 2026
f23ea57
bench: distribution check of the Volta prompt attention (teacher-forc…
Oct 3, 2026
b078be0
docs: point the BF16 note at #540 (the BF16-via-FP16 PR #593 was clos…
Oct 3, 2026
b30e815
native experts without AVX2: Q2_0 layers on ggml-cpu, every AVX2 kern…
4EverBuilder Oct 3, 2026
800ca98
Volta prompt attention and the Pascal BF16 path: compiled into the ex…
Niko1221 Oct 3, 2026
5398213
cmake: STRATA_ENABLE_SYCL, the experimental Intel Arc engine (sycl/, …
Niko1221 Oct 3, 2026
fd95405
perf(qsa): cut the attention kernel's shuffles and q shared-memory tr…
sskver Oct 2, 2026
5fa9e7f
perf(volta): address review - keep BF16X2 remainder GEMMs on cuBLAS, …
sskver Oct 2, 2026
e3978eb
Merge PR #559 (blange48, crazyaimachine): batch slots, pipelined laye…
Niko1221 Oct 3, 2026
8fb3c91
QSA attention: PR #540's kernel below sm_75 in the experimental build…
Niko1221 Oct 3, 2026
1a3ee38
router lookahead: an AVX1 dot and a plain fallback for CPUs without A…
rwkeyes Oct 3, 2026
96ccd2a
sycl: the stream-all prompt walk by default when the VRAM holds >90% …
Oct 3, 2026
2f78b4d
Merge PR #423 (maxfridbe): Intel Arc SYCL port of the engine, experim…
Niko1221 Oct 3, 2026
4d79aea
hip: AMD gfx906 (Instinct MI50 / MI60, Radeon VII; wave64) as an opt-…
JeanP00l Oct 3, 2026
8534ee1
docs: gfx906 (Instinct MI50 / MI60, Radeon VII) build, kernels and me…
JeanP00l Oct 3, 2026
5c544dd
gfx906: K-quant/Q5_1/Q8_0 experts take the CUDA layout; gr_down K-spl…
JeanP00l Oct 3, 2026
ccc09c2
gfx906: route the verify window's tokens in one BF16 projection + one…
JeanP00l Oct 3, 2026
f0b3d17
docs: gfx906 verify-window routing in the kernel table
JeanP00l Oct 3, 2026
ce1e9b2
fused_gr: the gfx906 fast norm/up launches only in the gfx906 build (…
JeanP00l Oct 3, 2026
4d20d25
core: optimize remote expert helper decode
zhedang Oct 3, 2026
44bd7ad
refill: improve multi-GPU processing
hash13 Oct 3, 2026
e0c175b
gfx906 build (PR #638 follow-up): mrope.hpp's HIP include only in the…
Niko1221 Oct 3, 2026
73fcc76
hip: add experimental gfx1012 support and legacy BLAS compatibility
CC-David-CC Oct 2, 2026
a62c1cd
hip: preserve Q2_0 signed zero on gfx1012 with legacy HIP
CC-David-CC Oct 1, 2026
912f535
hip: retain native wave synchronization on HIP 7
CC-David-CC Oct 1, 2026
fa8dd5c
bench: community report, 2x AMD Instinct MI50 (gfx906), Coder IQ1_M, …
JeanP00l Oct 3, 2026
fc60278
prefill: a layer split's idle card streams a share of a one-chunk pro…
anon Oct 3, 2026
6d51272
pinned: back the Linux expert arena with transparent huge pages
anon Oct 3, 2026
dd24a55
iq: gather the AVX2 codebook from the grid table (STRATA_IQ256_GATHER)
yannickloth Oct 3, 2026
3a64d02
iq_avx2: STRATA_IQ256_GATHER=0 keeps the scalar grid assembly (parse …
Niko1221 Oct 3, 2026
1f57034
older CPUs (experimental): STRATA_ISA_FLOOR=avx|none, and setup compi…
Niko1221 Oct 3, 2026
9576724
setup: older NVIDIA GPUs through a second, experimental CUDA 12 engin…
Niko1221 Oct 3, 2026
870ebe9
router_dot_parity: the router lookahead's AVX2 and AVX1 dots against …
Niko1221 Oct 3, 2026
a43e080
docs: Older GPUs (experimental) - the support matrix, the CUDA 12 eng…
Niko1221 Oct 3, 2026
58eee0a
setup: the offer to share a model across two cards checks the model's…
Niko1221 Oct 3, 2026
5047172
sycl: port 0.1.39 (re-migration with dpct 2025.3, 3-way merge per doc…
Niko1221 Oct 3, 2026
84876f7
sycl: stage_room reads the free VRAM (a layer split's later GPUs had …
tmking01 Oct 3, 2026
7ba023e
sycl: strata-sycl.sh passes ONEAPI_DEVICE_SELECTOR into the container
Niko1221 Oct 3, 2026
deee447
#646 on 0.1.39b: the layer split and the CPU path as before, the resi…
Niko1221 Oct 3, 2026
ca1a7c0
setup: --backend sycl tests; Windows points at Linux (setup_intel rea…
Niko1221 Oct 3, 2026
f945515
#646: the single-matrix mmvq does not stage the IQ grids (10-20% slow…
Niko1221 Oct 3, 2026
031ff94
prefill gemm: STRATA_BF16_TC=2, a test mode that runs the FP16 path o…
Niko1221 Oct 3, 2026
da3e9a1
docs/INTEL_ARC.md: the experimental Intel Arc engine - what you need,…
Niko1221 Oct 3, 2026
552da41
gfx906 build on 0.1.39: the segmented expert cache (#533) is CUDA-onl…
Niko1221 Oct 3, 2026
2fbbfa2
#465 engine: batch slots for one GPU - warn instead of refuse, window…
Niko1221 Oct 3, 2026
bebfca9
#465 server: "parallel": N, slots in /metrics, one status per request…
Niko1221 Oct 3, 2026
4795f98
#465 setup: --parallel N, and the count it recommends for the card
Niko1221 Oct 3, 2026
ec35cf0
cpu: preserve full thread affinity on Windows and Linux (#626)
Yasei-no-otoko Oct 3, 2026
9564c73
#465 tools: batch_interleave_test.py (a prompt read beside decoding s…
Niko1221 Oct 3, 2026
ab86bb4
docs: Older CPUs (experimental) - what setup does on a CPU without AV…
Niko1221 Oct 4, 2026
9556298
#465 a request left alone in a slot goes back to the solo path; docs:…
Niko1221 Oct 4, 2026
831a90f
#465 engine: INFO slot_cache=0|1 beside batch_slots (the server sends…
Niko1221 Oct 4, 2026
895a77b
prefill: the streamed ring is a byte budget, so a native pack sets it…
Oct 3, 2026
cef263f
#465 docs: the final build's RTX 5070 numbers; the turn-checkpoint ex…
Niko1221 Oct 4, 2026
0b651f8
#465 serve/test_parallel: the first request decodes long enough to ov…
Niko1221 Oct 4, 2026
1a56d71
#465 setup: recommend "parallel" only where the experts mostly fit in…
Niko1221 Oct 4, 2026
8c968a5
#583 on 0.1.39b: the ring's byte budget and the loan's corrected coun…
Niko1221 Oct 4, 2026
a93c2ac
serve (auto): the chunk and the ring are one budget, and the ring is …
Oct 3, 2026
06586e3
docs: STRATA_RING_BYTES=1 (#583, opt-in) with its RTX 5070 numbers an…
Niko1221 Oct 4, 2026
f166564
hip_compat: cudaFuncAttributePreferredSharedMemoryCarveout (#646's fu…
Niko1221 Oct 4, 2026
63d8f90
setup: --remote-expert-opt recommended for 2+ GPU configs (#578)
Niko1221 Oct 4, 2026
5423a69
#583 default on (owner): STRATA_RING_BYTES=0 opts out; DETAILS.md wit…
Niko1221 Oct 4, 2026
bc0fc49
setup: the CUDA 12 engine's driver floor per OS (Windows 527.41 -> 52…
Niko1221 Oct 4, 2026
5f19911
#583: the byte-budget ring only where it gains; short prompts keep 0.…
Niko1221 Oct 4, 2026
c6275a7
Merge branch 'f-139b-cpu' into f-139-rel
Niko1221 Oct 4, 2026
baed889
Merge branch 'f-139b-old' into f-139-rel
Niko1221 Oct 4, 2026
8e08550
Merge branch 'f-139b-arc' into f-139-rel
Niko1221 Oct 4, 2026
cb97e6c
Merge branch 'f-139b-spd' into f-139-rel
Niko1221 Oct 4, 2026
1189218
Merge branch 'f-139b-par' into f-139-rel
Niko1221 Oct 4, 2026
8b36fa0
docs: README refined + six translations
Niko1221 Oct 4, 2026
c2d1f19
setup: Unsloth's UD-IQ4_XS is a regular choice (no longer experimenta…
Niko1221 Oct 4, 2026
6f32ec0
setup: a tip (not a change) for images on a 12 GB card: --vram-reserv…
Niko1221 Oct 4, 2026
3727c6b
Merge upstream Strata v0.1.39 into Lanes sync branch
rhgo1749 Oct 4, 2026
d51d7e9
docs: record validated upstream 0.1.39 sync candidate
rhgo1749 Oct 5, 2026
7908df1
docs: record 0.1.39 topology crossover evidence
rhgo1749 Oct 5, 2026
1a454ca
docs: add M2 layer-split crossover evidence
rhgo1749 Oct 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,22 @@ td.log
/strata-*.json
/strata-*.log
/build-strata.bat
/build-strata-cuda12.bat
/build-cuda12/
/.strata-mcp/

# image encoder (setup.py --vision): build output and the generated build script
build-vision*/
build-vision.bat
build-vision-cuda12.bat

# setup.py outputs (engine, downloads) and release builds
/engine/
/engine-cuda12/
/build-release*/
/dist/
*.done
/third_party/*.zip

/.ccache/
/.rocm-win/
185 changes: 176 additions & 9 deletions CMakeLists.txt

Large diffs are not rendered by default.

221 changes: 221 additions & 0 deletions README.de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
<h1 align="center">Strata</h1>

[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja.md) · **Deutsch** · [Français](README.fr.md) · [Español](README.es.md) · [Português](README.pt-BR.md)

<p align="center"><b>Ein KI-Modell mit 125 Milliarden Parametern auf deinem eigenen Gaming-PC</b><br>
NVIDIA- oder AMD-Grafikkarte (ab 12 GB) · Windows oder Linux · kostenlos und Open Source</p>

<p align="center"><a href="https://github.com/Niko1221/Strata/releases/download/v0.1.10/Pagoda.mp4"><img src="docs/media/pagoda-preview.webp" width="720" alt="Ein Voxel-Pagodengarten, den das Modell in Strata geschrieben hat, läuft im Browser"></a><br>
<sub>Ein Voxel-Pagodengarten aus einem einzigen Prompt, auf einer RTX 5070 mit Strata (IQ3_S, 128K Kontext) ·
<a href="https://github.com/Niko1221/Strata/releases/download/v0.1.10/Pagoda.mp4">ganzes Video (49 s)</a></sub></p>

Strata lässt **[Qwen3.8-Flash-Next](https://huggingface.co/Qwen/Qwen3.8-Flash-Next)** auf einem normalen PC laufen.
Das ist ein großes, kluges KI-Modell, das sonst meist einen Server braucht. Es chattet, schreibt Code, versteht
Bilder und arbeitet mit deinen Apps und Coding-Agents zusammen. Nichts verlässt deinen PC.

## Wie schnell ist es?

Wir haben es auf zwei ganz normalen Gaming-PCs gemessen. Ein Token ist etwa ¾ eines Wortes.

- **Schreibt Antworten:** wie schnell die Antwort in einem kurzen Chat erscheint. 60 Tokens pro Sekunde sind
schneller, als du lesen kannst.
- **Liest deinen Prompt:** wie schnell es aufnimmt, was du schickst (hier ein Dokument, Code oder Chatverlauf mit
32K Tokens).

<table>
<tr><th>NVIDIA: RTX 5070 (12 GB), Ryzen 5 7600, 64 GB RAM</th><th>AMD: RX 9070 XT (16 GB), Ryzen 9 3900X, 47 GB RAM</th></tr>
<tr><td>

| Größe | Schreibt Antworten | Liest deinen Prompt |
| --- | ---: | ---: |
| **Q2_0** | 94 Tokens/s | 2,650 Tokens/s |
| **IQ2_XS** | 79 Tokens/s | 2,090 Tokens/s |
| **IQ3_XXS** | 62 Tokens/s | 1,750 Tokens/s |
| **IQ3_S** | 53 Tokens/s | 1,620 Tokens/s |
| **Coder** | 55 Tokens/s | 2,180 Tokens/s |

</td><td>

| Größe | Schreibt Antworten | Liest deinen Prompt |
| --- | ---: | ---: |
| **Q2_0** | 60 Tokens/s | 1,160 Tokens/s |
| **IQ2_XS** | 52 Tokens/s | 1,110 Tokens/s |
| **Coder** | 44 Tokens/s | 1,420 Tokens/s |

</td></tr>
</table>

NVIDIA: Q2_0 mit Engine 0.1.36, die anderen Zeilen mit 0.1.26 (4K Antworten, 32K Prompts). Die vollständigen
Tabellen stehen in [DETAILS.md](docs/DETAILS.md#speed-measured). Eine Karte mit mehr VRAM ist schneller: Eine
RTX 3090 (24 GB) sollte etwa 100-140 Tokens pro Sekunde schreiben. Lange Chats und andere Karten:
[Tempo jedes Modells](docs/MODELS.md#how-fast-is-each-size), [Ergebnisse aus der Community](docs/COMMUNITY_BENCHMARKS.md).

<p align="center"><a href="https://buymeacoffee.com/strataengine"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" height="50"></a><br>
<sub>Strata ist kostenlos. Wenn es auf deinem PC gut läuft, hält ein Kaffee die Arbeit daran am Laufen.</sub></p>

## Was du brauchst

| | |
| --- | --- |
| **Grafikkarte** | **NVIDIA** GeForce RTX 20, 30, 40 oder 50 Serie, oder **AMD** Radeon RX 7900 XT / XTX, RX 7800 XT / 7700 XT, RX 9060 XT, RX 9070 / 9070 XT, Radeon AI PRO R9700 oder RX 6800 / 6900 Serie. Sie braucht **12 GB VRAM oder mehr**. |
| **RAM** | 32 GB oder mehr. Dein RAM entscheidet, [welches Modell](#welches-modell-soll-ich-nehmen) passt. Mit 64 GB laufen alle Größen. |
| **Festplatte** | Etwa 80 GB frei. Nimm wenn möglich eine SSD: Der erste Start geht dann viel schneller. |
| **System** | Windows 10 / 11 oder Linux und ein aktueller Grafiktreiber von NVIDIA oder AMD. |

Alles andere richtet der Installer ein. Zwei oder drei Karten können sich das Modell teilen ([Multi-GPU](docs/MULTI_GPU.md)).

Experimentell, von Community-Mitgliedern auf ihren eigenen Rechnern geschrieben und getestet:

- **Ältere Grafikkarten** (Tesla P40 / V100, GTX 10, Radeon VII / MI50, RX 6700 XT, RX 5500 XT): [Ältere GPUs](docs/OLDER_GPUS.md).
- **Intel Arc**, unter Linux aus dem Quellcode gebaut: [Intel Arc](docs/INTEL_ARC.md).
- **Ältere Prozessoren ohne AVX2**: Sie funktionieren, aber langsam. [Ältere CPUs](docs/INSTALL.md#older-cpus-experimental).

Die vollständige Liste: [docs/INSTALL.md](docs/INSTALL.md#what-you-need).

## Installieren

### Lass deine KI es einrichten

Nutzt du einen KI-Coding-Assistenten (Claude Code, Cursor, Codex, GitHub Copilot, ...)? Füge dort diesen Text ein:

```text
Set up Strata on this PC for me: https://github.com/Niko1221/Strata - follow docs/AI_SETUP.md in that repository.
```

Er prüft deine Grafikkarte, deinen RAM und deine Festplatte und wählt das passende Modell. Dann installiert und
startet er es und sagt dir, wie du deine Apps verbindest. KI-Tools können Strata auch über seinen
[MCP-Server](docs/MCP_SERVER.md) installieren, starten und stoppen.

### Oder mach es selbst

[Lade Strata herunter](https://github.com/Niko1221/Strata/archive/refs/heads/main.zip) und entpacke es (oder nutze
`git clone`). **Windows:** Doppelklick auf **`START-HERE.bat`**. **Linux:** Führe im Strata-Ordner **`./setup.sh`** aus.

Die Schritte sind für NVIDIA und AMD gleich. Der Installer erkennt deine Karte und richtet die passende Engine
dafür ein. Er stellt dir ein paar Fragen:

- welches Modell und welche Größe,
- wie viel Kontext (wie viel Text sich das Modell merkt),
- ob es Bilder lesen soll.

Drück jedes Mal Enter, um die empfohlene Antwort zu nehmen. Dann lädt er das Modell herunter (etwa 70 GB) und
startet es. Bricht der Download ab, starte ihn einfach neu: Er macht dort weiter, wo er aufgehört hat. Dein Browser
öffnet die Strata-App unter `http://127.0.0.1:8080`.

> **Während das Modell startet, kann dein PC 1-3 Minuten langsam sein oder nicht reagieren** (beim ersten Mal am
> längsten). Strata lädt 35-55 GB in deinen RAM und reserviert einen Teil davon für die Grafikkarte. Das ist normal.
> Warte und schließ das Fenster nicht. Im Fenster siehst du, was Strata gerade tut.

**Beim nächsten Mal** startest du wieder `START-HERE.bat` (oder `./setup.sh`). Es startet sofort und lädt nichts
doppelt herunter. Schließ das Fenster, um das Modell zu stoppen. `UPDATE.bat` (`./update.sh`) aktualisiert Strata,
ohne es zu starten. Updates, Docker, mehrere Karten, wo die Dateien landen und alle Optionen:
[docs/INSTALL.md](docs/INSTALL.md).

## Welches Modell soll ich nehmen?

Der Installer empfiehlt eins passend zu deinem RAM. Dasselbe Modell gibt es in mehreren Größen, mehr oder weniger
stark komprimiert. Kleinere Größen sind schneller. Größere sind etwas klüger.

| Dein RAM | Nimm | Warum |
| --- | --- | --- |
| **32 GB** | **Coder** | passt in 32 GB und ist für Code gemacht (mit einer 24-GB-Karte laufen auch Q2_0 und IQ2_XS) |
| **48 GB** | **IQ2_XS** (oder Q2_0, das schnellste) | die größeren Größen passen nicht |
| **64 GB** | **IQ2_XS** (empfohlen) oder IQ3_XXS / IQ3_S | alle Größen passen; IQ3_S ist das beste und das langsamste |
| **96 GB oder mehr** | **IQ3_S** oder Unsloths UD-IQ4_XS (~4 Bit) | Platz für die größten Größen, auch wenn alles andere offen ist |

- **[Coder](docs/MODELS.md#coder):** eine Version für Code, bei der die Hälfte der Experten entfernt wurde. Sie
erreicht 91 % des SWE-bench-Verified-Werts des vollen Modells (von ihren Autoren gemessen) und passt in 32 GB RAM.
Außerhalb von Code ist sie schwächer, auch bei chinesischem und anderem CJK-Text (#438). Nimm dafür Q2_0, IQ2_XS
oder IQ3_S, die alle Experten behalten.
- **[Swift 1.5](docs/MODELS.md#swift-15):** ein Fine-Tune, das viel kürzer nachdenkt, bevor es antwortet. Du
bekommst die Antwort früher, bei etwa gleicher Qualität.
- **[Unsloth UD-IQ4_XS](docs/MODELS.md#unsloth-ud-iq4_xs):** die ~4-Bit-Version von Unsloth, in der Qualität
zwischen IQ3_S und UD-Q4_K_XL. 94 GB Download. Mit weniger als ~80 GB RAM liest Strata einen Teil davon während
der Antwort von der SSD, dort ist es also langsamer (eine NVMe-SSD hilft).
- **[Unsloth UD-Q4_K_XL](docs/MODELS.md#unsloth-ud-q4_k_xl-experimental)** (experimentell): am nächsten am vollen
Modell. Aber Strata liest das meiste davon während der Antwort von der SSD, deshalb schreibt es auf einem PC mit
64 GB nur 7-8.5 Tokens/s.
- **[OrcaRouter's Uncensored IQ3_XXS](docs/MODELS.md#orcarouter-uncensored-iq3_xxs):** Das richtest du von Hand
ein. Es steht nicht im Menü des Installers.

Größen, Downloads und was wohin passt: [docs/MODELS.md](docs/MODELS.md). Um später ein weiteres Modell
hinzuzufügen, starte `SETUP.bat` (Linux: `./setup.sh --setup`).

## So benutzt du es

<p align="center"><img src="docs/media/runpagoda.png" width="900" alt="Der Monitor-Tab der Strata-App neben einem Coding-Agent"><br>
<sub>Der <b>Monitor</b> der Strata-App (links), während ein Coding-Agent den Pagodengarten aus dem Video schreibt (rechts)</sub></p>

- **Im Browser:** Öffne `http://127.0.0.1:8080`. Dort gibt es **Chat**, einen Live-**Monitor** für das Modell und
deine GPU/CPU/RAM und **About** mit den Einstellungen und Adressen.
- **Deine Apps und Coding-Agents:** Füge einen „OpenAI-kompatiblen“ Anbieter mit der Basis-URL
**`http://127.0.0.1:8080/v1`** hinzu. Jeder API-Key und jeder Modellname funktioniert.
- Apps, die die API von Anthropic nutzen: `http://127.0.0.1:8080/v1/messages` (Claude Code:
`ANTHROPIC_BASE_URL=http://127.0.0.1:8080`).
- Codex CLI und andere Apps, die die OpenAI Responses API nutzen: `/v1/responses`
([Einrichtung](docs/DETAILS.md#the-responses-api-and-codex-cli)).
- **Nachdenken:** Wähle **aus, niedrig, mittel oder hoch** im Chat-Menü oder unter „Reasoning Effort“ in deiner
App. Aus ist am schnellsten. Hoch ist am besten für schwierige Fragen.
- **Bilder:** Antworte im Setup mit Ja auf „Images?“. Klick dann im Chat auf **Picture** oder hänge Bilder in deiner
App an. AMD-Karten lesen Bilder unter Linux über den Prozessor; unter Windows geht das noch nicht.
- **Vom Handy oder einem anderen PC:** `START-HERE.bat --setup --host 0.0.0.0 --api-key <secret>`. Setz immer einen
Key.
- **Eine Anfrage nach der anderen:** Standardmäßig beantwortet Strata eine Anfrage, die anderen warten. Um mehrere
gleichzeitig zu beantworten, setz `"parallel": 2` ([BATCHING.md](docs/BATCHING.md)). Auf einer 12-GB-Karte wird
dadurch jede Antwort langsamer.
- **Lange Prompts:** Strata liest die erste Nachricht eines Chats komplett, etwa 1 Minute pro 30,000 Tokens.
Folgenachrichten starten in Sekunden.

Mehr: [wo deine Chats gespeichert werden](docs/INSTALL.md#where-things-are-stored), [die API](docs/DETAILS.md#using-it).

## Etwas ist schiefgelaufen?

- **Mein PC ist beim ersten Start von Strata eingefroren.** Das ist normal, während das Modell lädt. Warte und
schließ das Fenster nicht. Nach 10 Minuten immer noch eingefroren? Starte den PC neu, schließ andere Programme und
versuch es noch einmal, oder nimm eine kleinere Größe.
- **Es hat beim Herunterladen oder Installieren aufgehört.** Starte `START-HERE.bat` (oder `./setup.sh`) noch
einmal. Es macht dort weiter, wo es aufgehört hat.
- **Es ist sehr langsam und die Festplattenlampe blinkt ständig, oder es meldet „the engine stopped
unexpectedly“.** Dein PC hat nicht genug freien RAM. Schließ andere Programme (Browser brauchen viel) oder nimm
eine kleinere Größe (Q2_0 oder IQ2_XS).
- **Es meldet, dass Port 8080 schon belegt ist.** Strata läuft bereits. Such nach seinem Fenster.

Weitere Probleme und ihre Lösungen: [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md). Kommst du nicht weiter?
Öffne ein [Issue](https://github.com/Niko1221/Strata/issues) und hänge `strata-<model>.log` aus dem Strata-Ordner
an. Du hast ein Sicherheitsproblem gefunden? Melde es vertraulich: [SECURITY.md](SECURITY.md).

## Wie funktioniert es?

Modelle wie dieses laufen normalerweise auf Servern mit Hunderten Gigabyte Grafikspeicher. Deine Grafikkarte hat
12-24 GB. Strata bringt das Modell trotzdem unter, indem es **die Arbeit auf deinen ganzen PC verteilt**. Stell dir
eine Küche vor: Was du ständig brauchst, bleibt auf der Arbeitsfläche, der Rest wartet in der Vorratskammer.

<p align="center"><img src="docs/media/how-it-works.svg" width="860" alt="Die 24,576 Experten des Modells: die meistgenutzten auf der Grafikkarte, alle im RAM, eine Nachschlagetabelle auf der SSD"></p>

- **Das Modell ist ein Team aus 24,576 kleinen Spezialisten („Experten“).** Jedes Wort braucht nur 10 davon.
- **Deine Grafikkarte** hält die paar tausend Experten, die am häufigsten gebraucht werden. **Dein RAM** hält alle,
und **dein Prozessor** rechnet gleichzeitig am Rest. **Deine SSD** hält eine große Nachschlagetabelle.

<p align="center"><img src="docs/media/guess-and-check.svg" width="860" alt="Ein kleiner Helfer rät die nächsten Wörter; das große Modell prüft alle auf einmal und behält die richtigen"></p>

- **Raten, dann prüfen:** Ein kleiner Helfer rät die nächsten paar Wörter. Das große Modell prüft sie alle auf
einmal. Du bekommst dieselbe Antwort, nur 1.6-1.8x schneller.
- **Lange Texte werden in großen Stücken gelesen** (bis zu 8,192 Tokens auf einmal), mit über 1,000 Tokens pro
Sekunde.

Die längere Erklärung: [docs/HOW_IT_WORKS.md](docs/HOW_IT_WORKS.md). Jeder Teil und seine Zahlen:
[die Details](docs/DETAILS.md#how-it-works) und das [Paper](docs/paper/Strata-Paper.pdf).

## Danksagung und Lizenz

Das Modell ist [Qwen3.8-Flash-Next](https://huggingface.co/Qwen/Qwen3.8-Flash-Next) vom Qwen-Team. Komprimiert
wurde es von [ISTA-DASLab](https://huggingface.co/ISTA-DASLab/Qwen3.8-Flash-Next-GSQ-RCO-GGUF), UkisAI (Swift 1.5)
und Unsloth. Strata nutzt Teile von [llama.cpp / ggml](https://github.com/ggml-org/llama.cpp). Alle Danksagungen:
[docs/HOW_IT_WORKS.md](docs/HOW_IT_WORKS.md#credits). Strata ist Open Source unter der [MIT-Lizenz](LICENSE). Ein
paar Teile und alle Modelle haben eigene Lizenzen ([welche](docs/HOW_IT_WORKS.md#license)).

## Strata unterstützen

Strata ist kostenlos und Open Source. Wenn es dir nützt, kannst du die Entwicklung unterstützen:

<p align="center"><a href="https://buymeacoffee.com/strataengine"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" height="50"></a></p>
Loading
Loading