Home / 128 GB

128 GB · 1× DGX Spark (GB10)

howtospark recipe: KAT-Coder V2.5-Dev (vLLM, 1 GB10 box)

1x NVIDIA DGX Spark class box (GB10, 'kevin'), 128 GB unified memory, standing GPU clock cap 2200 MHz (the default application clock of the GB10 is 2418 MHz; the cap is the standing setting on these boxes and the run used it). The model needs about 21.9 GB of NVFP4 weights; the box also runs two small standing services (they were idle-checked before the run).

NVFP4 build with grafted MTP head and recipe (howtospark 'kat-coder-2-5-nvfp4')sakamakismileHugging Face
vLLM 0.24.0 (torch 2.11.0+cu130), FLASHINFER_CUTLASS NVFP4 MoE, MTP speculative k=2 (howtospark recipe)commit recipe howtospark kat-coder-v2-5-nvfp4 (Oct 25, 2026)1 GPUmeasured 2026-10-26independent check passedCompare with another run
Rank in 128 GB
5of 9
Overall score
65.0/ 100
Speed
35.0/ 35
Quality
20.5/ 25
Browser check
4.3/ 5
My rating
5.3/ 35

Overall score as of 26 Oct 2026. Scores are relative to the best run in the class today; a better model later moves older runs down.

How the overall score is calculated
PartThis runBest in classRelativeWeightPoints
Speed, one requestdecode 64.6 tok/sbest 64.6 tok/s100.0 %17.5 %17.5
Speed, 8 at oncetotal 130.1 tok/sbest 130.1 tok/s100.0 %17.5 %17.5
Qualitymean of 7 tests: 58.1 %best mean 70.8 %82.1 %25 %20.5
Browser check8.5 of 1085.0 %5 %4.3
My rating1.5 of 1015.0 %35 %5.3
Overall100 %65.0

The seven quality tests: MMLU-Pro 57.3 · GPQA 37.9 · IFEval 77.5 · LiveCodeBench 35.0 · long text 8K 80.0 · long text 32K 62.5 · GPQA 30 with thinking 56.7.

The speed part is half the decode speed with one request and half the total speed with 8 requests at once, each relative to the best run of this class; a run without a total for 8 requests at once gets the better of its decode speed alone and the mix with its highest measured total. Quality is relative to the best run of this class, the browser check and my rating are out of 10. The parts are rounded one by one. sparkDash, the memory test and speculative-decoding numbers are not part of it. How the score is made, and the assumption behind it.

Build test

What it builds as an agent

Task: Voxel world (3D scene, one HTML file). One attempt, no help. Counted: the final file counts.

The exact promptcopy it and try it yourself↓

This is the task prompt word for word, as we handed it to the agent harness. The harness adds its own system prompt and tools, and some harnesses add short context notes of their own. A run that goes past 90 minutes also gets a short “finish now” message, as the prompt says. To try it yourself, give it to your own coding agent: it needs a shell and a working folder.

Prompt: Voxel world (3D scene, one HTML file)
Design and create the most impressive, creative, elaborate and detailed
voxel art world you are capable of. The theme and style are ENTIRELY your
choice — pick whatever world you can execute best and push it as far as
you can: scale, variety, detail, color, animation, atmosphere, life.
Surprise me.

Hard requirements:
- Everything ends up in ONE single self-contained HTML file (game.html in
  the current working directory) that opens and runs directly in Chrome.
  Use WebGL and whatever libraries you like, but embed everything —
  no internet access at view time, no external files.
- The scene must present itself: include an automatic slow cinematic
  camera tour (orbiting the world, occasionally zooming in on highlights)
  that starts on load, plus mouse controls (orbit/zoom) for manual viewing.
- All user-facing text (UI, HUD, titles, descriptions, hints) must be in
  ENGLISH, regardless of the language of any project files you encounter.

When finished, verify your HTML actually loads and renders without
console errors, then state DONE with the absolute path of game.html.
Do not ask questions.

How you work (same for every model):
- You work alone in the folder /work (this is the current working directory). Nobody will answer questions. Aim to finish in about 60 minutes. After 90 minutes you will get a message to finish; then you have at most 30 more minutes. Hard stop after 120 minutes.
- Tools on this machine: shell, files, python3 with numpy and Pillow, ffmpeg, node, and `shot.sh game.html` (opens the page in a headless browser, saves a screenshot and prints console errors). There is no internet and no access to other machines.
- Keep a working /work/game.html at all times. If you are stopped, the last version that loaded without errors counts.
- JavaScript libraries available offline in the test browser, through an import map with these exact URLs: "three": "https://cdn.jsdelivr.net/npm/three@0.170.0/build/three.module.js", "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.170.0/examples/jsm/", "simplex-noise": "https://cdn.jsdelivr.net/npm/simplex-noise@4.0.3/dist/esm/simplex-noise.js", "@tweenjs/tween.js": "https://cdn.jsdelivr.net/npm/@tweenjs/tween.js@25.0.0/dist/tween.esm.js", "cannon-es": "https://cdn.jsdelivr.net/npm/cannon-es@0.20.0/dist/cannon-es.js". No other external resources.
- After the scene is built, set `window.scene` to the Three.js scene (if you use Three.js) and `window.ready = true`.
Browser check
8.5/ 10
My rating
1.5/ 10
Time
9.5min
Tokens
20,632
Harness
OpenCode 1.19.3
Screen recording of the page this run built, made in Chrome after the run. The page files are unchanged. Still image

Play it yourself

Open full screen

AI-generated The page this setup built, running live in your browser: click into it and use the controls it shows itself (usually drag to look around, scroll to zoom). It needs WebGL and can be slow on a weak graphics card.

The browser check

  • page loads without page error1 / 1
  • window.ready === true within 30 s1 / 1
  • no console errors (whole session)1 / 1
  • frame is not blank1 / 1
  • frame rate in software GL (rAF over 5 s)0.5 / 1
  • world: scene size 0.5 (parts >= 80 or >= 20000 triangles; canvas fallback), visible text English if any 0.51 / 1
  • automatic camera tour: the view changes on its own in two successive ~5 s windows (1 each)1 / 2
  • animation in the world (nodes / instances / particles moving besides the camera)1 / 1
  • OrbitControls: drag and wheel change the picture beyond the animation baseline1 / 1

Measured 2026-10-26. Raw files: check · run info · command · final choice · contract · sampling · screenshot · clip.mp4 · web.mp4.

The run's own headless check browser, which renders the page the model built, used up to 1352 % CPU. The load monitor counted it as another process. Browser check 8.5 out of 10: the page loads without a page error (ready after 0.01 s), has no console errors, is not blank and shows a world; the lost points are half a point on the frame rate (software rendering, no GPU) and one point on the automatic camera tour. The agent (OpenCode 1.19.3) ran 9 minutes 29 seconds, one try, no help, and stopped on its own, long before the 'finish now' mark at 90 minutes; its answer used 20,632 tokens. 5 versions of the page were seen on the way, 2 loaded without errors; the last clean one counts (index.html, sha256 1ab2ede0..., 5 snapshots). My rating of the world it built: 1.5 of 10 (rated in the browser, 27 Oct 2026). KAT-Coder is a coding model by Kwaipilot; this showcase does not measure its strength, and the page says so.

Exact command we measured withfor reproducing↓

You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.

Build test (run show-r4)
run_showcase.sh --harness opencode --task VX --upstream http://127.0.0.1:45595/v1 --model kat-coder --sampling-file $HOME/quality2-runs/kat-2610b/sampling-show.json --out $RUN/kat-2610b-show-r4/show --limit-s 7200 --inject-after-s 5400 --poll-s 20 --ctx 262144
Speed v2

How fast it runs

Decode
64.6tok/s
Decode, code
64.6tok/s
Decode, prose
64.6tok/s
500 words
≈ 11.4s
Prefill at 8K
7548.4tok/s
First token at 2K
0.3s
MeasurementResult
Decode64.6 tok/s
Words per second43.8 words/s
Characters per second308.8 chars/s
Decode, code prompt64.6 tok/s
Decode, prose prompt64.6 tok/s
Spread of the decode runs (CV)4.6 %
Spread of the code runs (CV)1.6 %
Spread of the prose runs (CV)4.6 %
Decode, window 163.4 tok/s
Prefill at 2K6650.3 tok/s
Prefill at 8K7548.4 tok/s
Prefill at 32K6269.5 tok/s
Time to first token at 2K0.3 s
Time to first token at 8K1.1 s
Time to first token at 32K5.2 s
Draft acceptance rate56.1 %
Mean accepted length2.1 tokens
1 request at once (total)62.4 tok/s
2 at once (total)105.5 tok/s
4 at once (total)131.6 tok/s
8 at once (total)130.1 tok/s
1 request at once (per request)62.4 tok/s
2 at once (per request)53.5 tok/s
4 at once (per request)33.3 tok/s
8 at once (per request)23.4 tok/s
Server slots (from the recipe)4 slots
Long answer, wall time541.5 s

Method: code+prose; 2 run(s) each; 512 tokens; 1 warm-up(s); median; requests at once: C1,C2,C4,C8 at once; 2 rounds each; 512 tokens per request; prose prompt; total = all tokens / wall time, per request = tokens / end-to-end time; median over the rounds. Measured 2026-10-26. Raw files: speed result · speed contract · log · long answer.

Requests at once: the server has 4 slots (from the author's recipe). C8 exceeds the slots: the extra requests wait in the queue, and they were measured anyway. The speed test ran with the author's setup: the howtospark recipe 'kat-coder-2-5-nvfp4' (recipe line: 'No patches, no custom flags'), vLLM 0.24.0 (torch 2.11.0+cu130), NVFP4 MoE via FLASHINFER_CUTLASS, MTP speculative decoding k=2 with a grafted Qwen3.6-35B-A3B MTP head (unsloth file @1c3f884b), context 262,144 tokens (recipe --max-model-len), KV pool 6 GiB (274,528 positions), 4 slots (--max-num-seqs 4), exactly as the recipe specifies. Two host fixes were needed to get it running, named openly: python3.12-dev headers are not in the recipe's requirements (fetched without sudo, no system change) and the FlashInfer JIT compiler started one process per core and hit a global out-of-memory (limited to MAX_JOBS=5; no vLLM flag changed). Setup from zero to the first answer: 27 minutes, 9 of them lost to that compiler OOM. The headline 64.57 tok/s is the median of the code prompt (64.57) and the prose prompt (64.57), two runs each (spread 1.6 % and 4.6 %), one warm-up excluded, seed 42, thinking off, no prompt cache. Drafts were accepted at a rate of 56.1 % (2.12 tokens per round). First token: 0.31 s at 2K, 1.09 s at 8K, 5.23 s at 32K prompt; prefill 6,270 tok/s at 32K. At the same time: 62.4 / 105.5 / 131.6 / 130.1 tok/s total at 1 / 2 / 4 / 8 requests. Eight requests share the recipe's 4 slots, so the total stops rising and each of the 8 gets 23.4 tok/s. This is the fastest single-Spark decode we have measured so far (next best in the class: 56.15 tok/s, Qwen3.8-Flash-Next EXL3 3.05 bpw, 25 Oct 2026).

Exact command we measured withfor reproducing↓

You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.

Speed v2 (run speed-r0)
python3 speed2.py --base-url http://127.0.0.1:35895/v1 --label kat-2610b-speed-r0 --prompts $BENCH/repos/rigmark-v2/prompts-v2.json --output $RUN/kat-2610b-speed-r0/kat-2610b-speed-r0/speed2 --contract $RUN/kat-2610b-speed-r0/kat-2610b-speed-r0/speed2/speed-contract.json --parts decode,prefill,conc,l1 --prefill-depths 2048,8192,32768 --prompt-ids code,prose --runs 2 --max-tokens 512 --warmups 1 --prefill-runs 3 --conc-levels 1,2,4,8 --conc-rounds 2 --conc-max-tokens 512 --conc-prompt prose --tokenizer-json $HOME/models/hf/KAT-Coder-V2.5-Dev-NVFP4-MTP/tokenizer.json --tokenizer-python $HOME/nachtplan-2510/venvs/vllm/bin/python --sampling {"temperature": 0.7, "top_p": 0.8, "top_k": 20, "presence_penalty": 1.5} --sampling-source Kwaipilot/KAT-Coder-V2.5-Dev @7be56fe7 README.md:319-324 (thinking: max_tokens 81920, temperature 1.0, top_p 0.95, presence_penalty 1.5, top_k 20) and README.md:346-352 (non-thinking: max_tokens 32768, temperature 0.7, top_p 0.8, presence_penalty 1.5, top_k 20, chat_template_kwargs enable_thinking false). min_p not named -> not sent. --model kat-coder --no-cache-prompt --server-log $RUN/server-A.log --engine-version-file $RUN/engine-version.txt --server-slots 4 --server-slots-source howtospark recipe kat-coder-v2-5-nvfp4 step 4 (--max-num-seqs 4) = start script flint-2510/kat-ctl.sh; KV pool 6 GiB = 1.05x at the full 262,144 window (recipe 'Key vLLM parameters': --kv-cache-memory-bytes). The recipe's value is the largest it documents.
Quality v2

How well it answers

TestResult95 % marginRightCut offcount as wrongRaw files
MMLU-Pro
400 fixed questions, letter only
57.3 % ± 4.8 pts229 / 40054answers · summary · log · contractcommand
GPQA Diamond
198 questions, letter only
37.9 % ± 6.7 pts75 / 19843answers · summary · log · contractcommand
IFEval
200 fixed prompts, strict
77.5 % ± 5.8 pts155 / 2000answers · summary · log · contractcommand
LiveCodeBench
40 newest tasks, the code runs
35.0 % ± 14.2 pts14 / 4010summary · log · contractcommand
Long text 8K
4 tasks x 10 at 8192 tokens
80.0 % ± 12.1 pts32 / 400log · contract · answers · summarycommand
Long text 32K
4 tasks x 10 at 32768 tokens
62.5 % ± 14.4 pts25 / 400log · contract · answers · summarycommand
GPQA 30, thinking on
30 questions, limit 16,384 tokens
56.7 % ± 16.7 pts
median 1,298 tokens, 39.7 s per question
17 / 300log · contract · answers · summarycommand

Thinking off, except the last test. Seed 42. Sampling from the model card. A cut-off answer counts as wrong. Measured 2026-10-26.

Note from the run: Quality ran on this card on 26 Oct 2026, all seven tests of the fixed method: MMLU-Pro 400, GPQA Diamond 198, IFEval 200, LiveCodeBench 40 (code runs), long texts 8K/32K, Ruler 8K/32K, plus GPQA 30 with thinking. Thinking off in all tests except the thinking test (limit 16,384 tokens). Sampling is the maker's (instruct: temperature 0.7, top_p 0.8, top_k 20, from the model README), seed 42, the questions ran 4 at a time, the recipe's slot count. A cut-off answer counts as wrong: 10 of the 40 LiveCodeBench answers were cut at their limit, and 107 answers across the quality tests in total. The error margin sits next to every number. These are my own tests; no other run is mixed into the numbers on this page.

Exact commands we measured withfor reproducing↓

You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.

MMLU-Pro (run inst-r1)
bash tools/quality2/measure_all.sh tools/quality2/cards/kevin-katcoder-v25dev-35b-nvfp4-mtpgraft-vllm0240-1x.json --parts mmlupro --job kat-2610b
GPQA Diamond (run inst-r1)
bash tools/quality2/measure_all.sh tools/quality2/cards/kevin-katcoder-v25dev-35b-nvfp4-mtpgraft-vllm0240-1x.json --parts gpqa --job kat-2610b
IFEval (run inst-r1)
bash tools/quality2/measure_all.sh tools/quality2/cards/kevin-katcoder-v25dev-35b-nvfp4-mtpgraft-vllm0240-1x.json --parts ifeval --job kat-2610b
LiveCodeBench (run inst-r1)
bash tools/quality2/measure_all.sh tools/quality2/cards/kevin-katcoder-v25dev-35b-nvfp4-mtpgraft-vllm0240-1x.json --parts lcb --job kat-2610b
Long text 8K (run inst-r1)
bash tools/quality2/measure_all.sh tools/quality2/cards/kevin-katcoder-v25dev-35b-nvfp4-mtpgraft-vllm0240-1x.json --parts ruler --job kat-2610b
Long text 32K (run inst-r1)
bash tools/quality2/measure_all.sh tools/quality2/cards/kevin-katcoder-v25dev-35b-nvfp4-mtpgraft-vllm0240-1x.json --parts ruler --job kat-2610b
GPQA 30, thinking on (run think-r2)
bash tools/quality2/measure_all.sh tools/quality2/cards/kevin-katcoder-v25dev-35b-nvfp4-mtpgraft-vllm0240-1x.json --parts think --job kat-2610b
Memory test

How much context fits

Largest size tested
262,144tokens
Peak memory
42.24GiB
Decode at that size
not measured
Context sizePrompttokensFilledFirst tokenPrefilltok/s, as the server reports itDecodetok/sPeak memoryGiBResult
4K 4,096 tokens3,88594.8 %———42.71answered (stop)
8K 8,192 tokens7,77694.9 %———41.57answered (stop)
16K 16,384 tokens15,55895.0 %———41.91answered (stop)
32K 32,768 tokens31,12395.0 %———41.77answered (stop)
64K 65,536 tokens62,24995.0 %———41.27answered (stop)
128K 131,072 tokens124,49195.0 %———41.14answered (stop)
256K 262,144 tokens248,98795.0 %———42.24answered (stop)

Memory test. For each context size (4K, 8K, 16K ... up to the largest size tested for the setup) the server is started again with that context, one prompt that fills about 95 % of the context is sent, and the model must answer. The largest size that loaded and answered counts. Decode speed is measured on that answer at the largest size. Peak memory is the rise of used memory (MemTotal - MemAvailable) over the idle value before the step, on the one box. Unified memory, so GPU and CPU share it. Measured 2026-10-26. Raw files: result of every step · log · contract.

Note from the run: The memory test climbed the fixed ladder up to the recipe's full window: the model answered at 262,144 tokens of context (the recipe's --max-model-len), so nothing larger was tested. The peak rise over idle was 42.24 GiB at the largest step (the number includes the model weights). Decode speed at these sizes is not measured.

Exact command we measured withfor reproducing↓

You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.

Memory test (run fit-r3)
bash tools/quality2/measure_all.sh tools/quality2/cards/kevin-katcoder-v25dev-35b-nvfp4-mtpgraft-vllm0240-1x.json --parts fit --job kat-2610b
Credits

Also made this possible

Setup

Run it yourself

What you need and how to start it, step by step. The results below come from exactly this setup.

What you need

Hardware
1x NVIDIA DGX Spark class box (GB10, 'kevin'), 128 GB unified memory, standing GPU clock cap 2200 MHz (the default application clock of the GB10 is 2418 MHz; the cap is the standing setting on these boxes and the run used it). The model needs about 21.9 GB of NVFP4 weights; the box also runs two small standing services (they were idle-checked before the run).
Model
KAT-Coder V2.5-Dev 35B-A3B NVFP4 (sakamakismile/KAT-Coder-V2.5-Dev-NVFP4 @be2e4d17; base Kwaipilot/KAT-Coder-V2.5-Dev @7be56fe7) + Qwen3.6-35B-A3B MTP head graft (unsloth/Qwen3.6-35B-A3B-NVFP4-Fast @1c3f884b)
Model (KAT-Coder V2.5-Dev)
huggingface.co/Kwaipilot/KAT-Coder-V2.5-Dev
NVFP4 build with grafted MTP head and recipe (howtospark 'kat-coder-2-5-nvfp4')
huggingface.co/sakamakismile/KAT-Coder-V2.5-Dev-NVFP4
Grafted MTP head (Qwen3.6-35B-A3B-NVFP4-Fast @1c3f884b)
huggingface.co/unsloth/Qwen3.6-35B-A3B-NVFP4-Fast
Engine
Kwaipilot's coding model (35B-A3B) as a community NVFP4 build with a grafted MTP head, vLLM 0.24.0, 262,144-token context, 4 slots — the program that loads the model and answers requests · github.com/vllm-project/vllmBuild and settings we used: vLLM 0.24.0 (torch 2.11.0+cu130), FLASHINFER_CUTLASS NVFP4 MoE, MTP speculative k=2 (howtospark recipe)

Steps

  1. Get the engine and the model files from the list above.

  2. Start the server with this command. It loads the model into memory.

    systemd-run \
      --user \
      --unit=kat-serve ... vllm serve KAT-Coder-V2.5-Dev-NVFP4-MTP \
      --served-model-name kat-coder \
      --max-model-len 262144 \
      --kv-cache-memory-bytes 6442450944 \
      --gpu-memory-utilization 0.85 \
      --max-num-seqs 4 \
      --max-num-batched-tokens 8192 \
      --speculative-config mtp k=2 + maker parser flags

    The file names are the ones we used. Run the command in the folder that holds them, or put the full path in front of each name.

Exact command we measured withfor reproducing↓

You do not need this to run the model. It is the start text exactly as our run recorded it, with the engine build in front, so anyone can repeat the result.

Start, as recorded with the run
vLLM 0.24.0 (torch 2.11.0+cu130), FLASHINFER_CUTLASS NVFP4 MoE, MTP speculative k=2 (howtospark recipe); systemd-run --user --unit=kat-serve ... vllm serve $HOME/models/hf/KAT-Coder-V2.5-Dev-NVFP4-MTP --served-model-name kat-coder --max-model-len 262144 --kv-cache-memory-bytes 6442450944 --gpu-memory-utilization 0.85 --max-num-seqs 4 --max-num-batched-tokens 8192 --speculative-config mtp k=2 + maker parser flags (flint-2510/kat-ctl.sh)

Context and sampling: 262,144 tokens (the recipe's --max-model-len), a KV pool of 6 GiB (274,528 positions, about 1.05x the full window), 4 slots, MTP k=2 with the grafted draft head, seed 42, no prompt cache. Sampling as the maker's README: instruct temperature 0.7 / top_p 0.95 top_k 20 for thinking runs; the showcase ran with thinking and the maker's limits. Harness for the build test: OpenCode 1.19.3 (the maker names no harness that runs locally), headless, in a container on the box.. Hardware: 1x NVIDIA DGX Spark class box (GB10, 'kevin'), 128 GB unified memory, standing GPU clock cap 2200 MHz (the default application clock of the GB10 is 2418 MHz; the cap is the standing setting on these boxes and the run used it). The model needs about 21.9 GB of NVFP4 weights; the box also runs two small standing services (they were idle-checked before the run).. All raw files of this setup: raw/v2/kat-coder-v25-35b-nvfp4-mtp-1spark-vllm.

Mia's sparkDash 2.50.0

Mia's own benchmark, run unchanged

This is Mia's own benchmark tool (commit 21a3511), run unchanged. It has its own section on this page, and it is never mixed with my numbers. A cut-off answer counts as wrong here, so a value can differ from sparkDash's own screen.

Tool Eval Quick
93/ 100
Decode, 1 request
84.5tok/s
TestResult95 % marginRightCut offcount as wrongRaw files
Quality QA
150 questions
82.7 % ± 6.0 pts124 / 1503summarycommand
Quality MMLU
285 questions
89.8 % ± 3.5 pts256 / 2855summarycommand
Tool Eval Quick
15 scenarios, tool use
93 / 10013 / 15 passed—tool eval result · tool eval report · tool eval command · summarycommand
Decode, 1 request at once
first token 142 ms
84.5 tok/s——decode result · summarycommand
Prefill at 4K
first token 0.6 s
8505.6 tok/s——prefill result · summarycommand
Prefill at 8K
first token 1.2 s
7552.5 tok/s——prefill result · summarycommand
Prefill at 16K
first token 2.5 s
7055.5 tok/s——prefill result · summarycommand
Prefill at 32K
first token 5.4 s
6207.1 tok/s——prefill result · summarycommand

Seed 1234 applies to the two quality tests; decode, prefill and tool eval send no seed. The benchmark client ran on a separate machine that is never part of the measured group. Measured 2026-10-26. Version 2.50.0, commit 21a3511.

QA. Quality QA, 150 items, seed 1234, temperature 0, thinking off, 4 requests at once (Mia's default). An answer cut off at the token limit counts as wrong. ± is the 95 % margin (Wilson).

MMLU. Quality MMLU, 285 items (5 for each of 57 subjects, 4 answers), seed 1234, temperature 0, thinking off. An answer cut off at the token limit counts as wrong. ± is the 95 % margin (Wilson).

Decode. Decode bench, 1 request at once, 400 tokens, prompt type structured, temperature 0, thinking off. No seed is sent.

Prefill. Prefill bench at 4K, 8K, 16K and 32K tokens. sparkDash skips a size that does not fit into the context. No seed is sent.

Tool Eval Quick. Tool Eval Quick: tool-eval-bench (SeraphimSerapis, commit c61319b), 15 core scenarios (--short), --no-think, --timeout 120. Score 0 to 100. No seed is sent.

Note from the run: sparkDash 2.50.0 (@21a3511) ran its own tests on 27 Oct 2026 (job kat-2610c-sd): its QA set 82.67 % (3 of 150 answers cut) and its MMLU set 89.82 % (5 cut), temperature 0, thinking off, a cut-off answer counts as wrong. Its own column, never mixed into Speed v2, Quality v2 or the ranking. The sparkDash client ran on another machine and was never part of the measured group.

Exact commands we measured withfor reproducing↓

You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.

sparkDash (run sparkdash-r0)
python3 tools/quality2/sparkdash_client.py tools/quality2/cards/kevin-katcoder-v25dev-35b-nvfp4-mtpgraft-vllm0240-1x.json <box> --client <client machine> --job kat-2610c-sd --out $RUN
Tool Eval Quick, as sparkDash starts it
tool-eval-bench --base-url http://127.0.0.1:<port> --model kat-coder --short --no-think --timeout 120 --json-file $BENCH/sparkdash-client/runs/kat-2610c-sd-sparkdash-r0/tooleval/result.json --no-live