TerslerThe little junk rig that could

Benchmarks

All numbers come from the files in bench/data/ and are recomputed on every site build.

#lean_bench (quality)

158 generated items (72 math, 42 logic, 44 code) at three difficulty levels, seed 1, temperature 1.0, top_p 0.95, top_k 20, thinking on, one request at a time. The overall score is the mean over the three categories of the level-balanced accuracy. One seed at temperature 1.0 means roughly ±10–15 points per category.

0255075100Qwen3.8 27B Q6_K (Tersler), Math: 97%97Ornith 1.5 35B-A3B Q4_K_M (Tersler), Math: 93%93Qwen3.8 Flash-Next IQ3_S (moppel (RTX 5060 Ti)), Math: 99%99Qwen3.8 Flash-Next IQ3_S (Tersler), Math: 100%100MathQwen3.8 27B Q6_K (Tersler), Logic: 90%90Ornith 1.5 35B-A3B Q4_K_M (Tersler), Logic: 88%88Qwen3.8 Flash-Next IQ3_S (moppel (RTX 5060 Ti)), Logic: 93%93Qwen3.8 Flash-Next IQ3_S (Tersler), Logic: 98%98LogicQwen3.8 27B Q6_K (Tersler), Code: 77%77Ornith 1.5 35B-A3B Q4_K_M (Tersler), Code: 93%93Qwen3.8 Flash-Next IQ3_S (moppel (RTX 5060 Ti)), Code: 98%98Qwen3.8 Flash-Next IQ3_S (Tersler), Code: 98%98CodeQwen3.8 27B Q6_K (Tersler), Overall: 88%88Ornith 1.5 35B-A3B Q4_K_M (Tersler), Overall: 92%92Qwen3.8 Flash-Next IQ3_S (moppel (RTX 5060 Ti)), Overall: 96%96Qwen3.8 Flash-Next IQ3_S (Tersler), Overall: 98%98Overall
Qwen3.8 27B Q6_K (Tersler)Ornith 1.5 35B-A3B Q4_K_M (Tersler)Qwen3.8 Flash-Next IQ3_S (moppel (RTX 5060 Ti))Qwen3.8 Flash-Next IQ3_S (Tersler)
Model and setupMathLogicCodeCut offTimeOverall
Qwen3.8 Flash-Next IQ3_S
Tersler, Strata (qr0n P100 build), RAM at 2 channels, 32k cap
100.0%97.6%97.7%05.8 h0.983
Qwen3.8 Flash-Next IQ3_S
moppel (RTX 5060 Ti), Strata, 32k cap
98.6%92.9%97.7%03.9 h0.962
Qwen3.8 Flash-Next IQ3_S
moppel (RTX 5060 Ti), Strata, 16k cap
98.6%90.5%97.7%13.9 h0.954
Ornith 1.5 35B-A3B Q4_K_M
Tersler, llama.cpp, q8_0 KV, 32k cap
93.1%88.1%93.2%103.1 h0.916
Qwen3.8 27B Q6_K
Tersler, llama.cpp, q4_0 KV, 32k cap
97.2%90.5%77.3%124.9 h0.878
Qwen3.8 27B Q6_K
Tersler, llama.cpp, q4_0 KV, 16k cap
94.4%88.1%63.6%223.7 h0.821

Cut off = the answer hit the token cap before it finished; it counts as wrong. Time is wall time on one machine, so it is not comparable between Tersler and moppel.

Per task family (32k cap)
FamilyQwen3.8 27B Q6_KOrnith 1.5 35B-A3B Q4_K_MQwen3.8 Flash-Next IQ3_SQwen3.8 Flash-Next IQ3_S
code/output11/1211/1212/1211/12
code/synthesis23/32 (8 cut)30/32 (1 cut)31/3232/32
logic/knights_knaves6/66/66/66/6
logic/model_count6/66/66/66/6
logic/ordering6/66/66/66/6
logic/shortest_path6/66/66/66/6
logic/sudoku6/65/6 (1 cut)4/66/6
logic/water_jugs2/6 (4 cut)2/6 (4 cut)5/65/6
logic/zebra6/66/66/66/6
math/dice6/66/66/66/6
math/digit_count6/66/65/66/6
math/diophantine6/66/66/66/6
math/divisors6/66/66/66/6
math/lattice_paths6/66/66/66/6
math/lattice_polygon4/65/66/66/6
math/linear_system6/64/6 (2 cut)6/66/6
math/modpow6/66/66/66/6
math/recurrence6/64/6 (2 cut)6/66/6
math/urn6/66/66/66/6
math/vieta6/66/66/66/6
math/word_problem6/66/66/66/6

#Decode speed (tersler-bench)

tersler-bench sends every prompts/*.txt to a private llama-server and appends the medians to /opt/tersler/bench/results.csv.

Keep prompts unchanged between runs, or results stop being comparable. Add a new file instead of editing one.

Run (2026)BuildPowertg puzzletg doctg codepp docDraft acceptNote
11-06 21:52d90ec36a3150 W54.553.656.0240.54first bring-up; pp is wrong (prompt cache hit)
11-06 22:22d90ec36a3150 W54.557.256.94120.56first bring-up on d90ec36a3
11-06 22:44790a3eaa1150 W54.155.851.74150.53pin moved to 790a3eaa1
11-06 23:2383a7f0839150 W54.053.954.44340.55fork head candidate, not pinned
11-07 15:51790a3eaa1150 W58.759.557.34060.60baseline after fan control
11-07 16:06790a3eaa1125 W51.753.248.13610.56power limit 125 W test (not adopted)
11-07 21:19790a3eaa1150 W50.251.045.94060.47LLAMA_SPEC_SAMPLE_TEMP=0 test (reverted)

tg = decode tok/s, pp = prompt processing tok/s (~5k-token document). Model: Qwen3.8 27B UD-Q6_K with MTP speculative decoding, both cards with -sm tensor. Medians of 3 runs, 512 tokens, thinking on.

#Prefill and decode (speed test)

From scripts/speed-test.py: cold prompts (nothing cached), thinking off, up to 512 tokens, timed on the client. Prefill = prompt tokens / time to first token. Two runs per size.

Engine and setupPrompt tokensPrefill tok/sDecode tok/s
Strata (qr0n P100 build), Flash-Next IQ3_S, RAM at 2 channels44—55.7 / 64.5
Strata (qr0n P100 build), Flash-Next IQ3_S, RAM at 2 channels8,446331 / 34941.8 / 50.0
Strata (qr0n P100 build), Flash-Next IQ3_S, RAM at 2 channels32,001359 / 35545.5 / 46.8

#Multi-session tests

From scripts/concurrency-test.py; background in the research log.

Parallel requests

Server configParallelTotal tok/sPer request tok/sDraft accept
production: 1 slot, MTP, 262k context138.851.00.50
4 slots, unified KV, MTP, 262k (OOM before 4 parallel)137.749.50.50
4 slots, unified KV, MTP, 262k (OOM before 4 parallel)242.125.7 · 24.60.45
4 slots, unified KV, no MTP, 262k136.848.00.47
4 slots, unified KV, no MTP, 262k240.825.4 · 23.60.42
1 slot, no MTP, 131k125.730.5—
1 slot, no MTP, 131k227.630.2 · 30.6—
4 slots, unified KV, MTP, 131k135.746.50.46
4 slots, unified KV, MTP, 131k241.524.3 · 24.70.43
4 slots, unified KV, MTP, 131k422.86.5 · 6.5 · 6.8 · 6.50.45
4 slots, unified KV, no MTP, 131k125.530.3—
4 slots, unified KV, no MTP, 131k240.923.9 · 23.9—
4 slots, unified KV, no MTP, 131k451.017.4 · 17.4 · 17.4 · 17.4—
Strata (qr0n P100 build), Flash-Next IQ3_S, 131k128.945.40.55
Strata (qr0n P100 build), Flash-Next IQ3_S, 131k234.646.9 · 46.00.58

Swarm: root agent + 3 subagents sharing a 29k-token system prompt

prompt_n = tokens the server had to process; cached = tokens reused from the cache.

Server configroot, turn 1subagent 1subagent 2subagent 3root, turn 2
pinned build, 4 slots76.8 s
31,541 new
0 cached
195.8 s
30 new
28,914 cached
195.9 s
28,944 new
0 cached
196.0 s
28,944 new
0 cached
13.1 s
2,653 new
28,914 cached
with server-prompt-cache-keep.patch, first version76.9 s
31,541 new
0 cached
196.4 s
30 new
28,914 cached
196.5 s
28,944 new
0 cached
196.5 s
28,944 new
0 cached
13.3 s
2,653 new
28,914 cached
with server-prompt-cache-keep.patch (final)78.1 s
31,541 new
0 cached
8.5 s
30 new
28,914 cached
8.5 s
30 new
28,914 cached
8.5 s
30 new
28,914 cached
16.3 s
2,653 new
28,914 cached
Strata (qr0n P100 build), Flash-Next IQ3_S, 131k91.4 s
31,541 new
0 cached
1.5 s
30 new
28,914 cached
3.9 s
30 new
28,914 cached
2.7 s
30 new
28,914 cached
9.9 s
2,653 new
28,914 cached

Replay: prompt reuse in an agent loop

a) cold ~26k-token prompt, b) one more turn appended, c) a tool output edited in the middle, d) the same system prompt in another slot (a subagent).

Server configa) coldb) turn appendedc) middle editedd) other slot, same prefix
production: 1 slot, MTP, 262k context64.2 s
25,866 new
0 cached
5.0 s
1,171 new
25,862 cached
18.2 s
6,596 new
17,958 cached
0.9 s
20 new
17,958 cached
4 slots, unified KV, MTP, 131k70.3 s
25,866 new
0 cached
5.0 s
1,171 new
25,862 cached
18.9 s
6,596 new
17,958 cached
46.0 s
17,978 new
0 cached
pinned build, 4 slots66.4 s
25,866 new
0 cached
4.6 s
1,171 new
25,862 cached
18.3 s
6,596 new
17,958 cached
44.7 s
17,978 new
0 cached
with server-prompt-cache-keep.patch, first version66.4 s
25,866 new
0 cached
4.6 s
1,171 new
25,862 cached
18.3 s
6,596 new
17,958 cached
44.8 s
17,978 new
0 cached
with server-prompt-cache-keep.patch (final)65.9 s
25,866 new
0 cached
5.8 s
1,171 new
25,862 cached
19.7 s
6,596 new
17,958 cached
4.6 s
20 new
17,958 cached
Strata (qr0n P100 build), Flash-Next IQ3_S, 131k75.6 s
25,880 new
0 cached
5.5 s
1,174 new
25,873 cached
19.7 s
6,596 new
17,972 cached
1.0 s
20 new
17,972 cached

#Tool calling

From scripts/tool-test.py: short conversations with tool definitions, thinking on, each case three times. The money case is a rent total with late fees (expected 801.69 EUR), with a calculator tool offered.

CaseStrata, Flash-Next IQ3_S
weather3/3
no tool3/3
pick tool3/3
args3/3
parallel3/3
use result3/3
error recovery3/3
money3/3

#Thermals (load tests)

From tersler-loadtest: sustained decode with 4096-token answers. The P100 slows down at 82 °C and shuts down at 85 °C. The fan follows the hotter card.

2026-11-06 21:56

30456075900 min4 min8 min12 min16 min20 min82 °C slowdownGPU 0 °CGPU 1 °C
GPU 0 °CGPU 1 °C

2026-11-07 15:53

30456075900 min2 min5 min7 min10 min12 min82 °C slowdownGPU 0 °CGPU 1 °C
GPU 0 °CGPU 1 °C

2026-11-07 16:08

30456075900 min2 min5 min7 min10 min12 min82 °C slowdownGPU 0 °CGPU 1 °C
GPU 0 °CGPU 1 °C
RunLengthMax temp (GPU 0 / 1)Avg powerMax fan
2026-11-06 21:5620 min55 / 63 °C142 / 139 W—
2026-11-07 15:5312 min66 / 75 °C141 / 139 W2486 rpm
2026-11-07 16:0812 min64 / 74 °C120 / 117 W2142 rpm

#Raw data