Files
Jason WittyandClaude Opus 5.5 698005c602 Switch to UD-Q4_K_XL for testing; benchmark vs IQ3_S
Standard benchmark, two fresh-restart runs: prompt -51% at 4K, -37% at 16K,
decode -40% vs IQ3_S. 12/12 sanity checks. Kept active for husky-bench.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 12:30:53 -07:00
..

standard benchmark: NVIDIA GeForce RTX 3090

Protocol strata-qwen38-thinking-v1-draft.1 (draft), run 20261027T192719Z-3eb539d8, started 2026-10-27T19:27:19Z. Status: nonconforming.

Written by <user> bench run. The machine-readable result is results.json; every request, its raw usage and timings and the client event offsets are in outputs.jsonl.

This run is not a complete standard result:

  • no model file could be hashed

Hardware and software

  • GPU: NVIDIA GeForce RTX 3090 (24.0 GiB dedicated)
  • CPU: Intel(R) Core(TM) i9-14900KS; RAM: 110.0 GiB
  • Storage of the model files: not measured
  • OS: NixOS 26.05 (Yarara) 6.18.55; drivers: gpu-driver 595.71.05; runtime: cuda 13.2
  • commit: 4b9e05a2a806a3fe24f7b2560d98626c37dade35; engine 0.1.51; source build
  • Background work: not measured

Model and configuration

  • Model: qwen3.8-flash-next-unsloth-ud-q4_k_xl; quantization UD-Q4_K_XL; revision not measured; source revision not measured
  • Files: not measured
  • Track: custom (UD-Q4_K_XL rep 2, 275 W, case closed)
  • Context 131072 tokens; server capacity 1 slot(s)
  • Sampling: temperature 1.0, top_p 0.95, top_k 20, min_p 0.0, presence_penalty 0.0, repetition_penalty 1.0, reasoning_effort xhigh; thinking on, preserved
  • Engine options: config.json; chat template: provenance/chat_template.jinja

Method

The frozen requests of bench/prompts/standard-v1 (corpus e75eff8b9feea04f...) were sent over loopback HTTP, streaming, one at a time, in this order: 1 warm-up (excluded), 3 repetitions of the short, 4K and 16K prompts, and the twelve sanity checks. Prompt and decode speed are the engine's own timings; time to first token is the client's monotonic clock from dispatch to the first nonempty reasoning, answer or tool-call delta. No request was retried. Time after the model loaded: 2 min 38 s.

Results

Case Prompt tok/s Decode tok/s TTFT s First answer s Total s Capped
short n/a 65.7 (64.2-66.4) n=3 1.18 (0.95-1.18) n=3 2.51 (2.43-2.83) n=3 5.9 (5.5-6.1) n=3 0/3
prompt-4k 847.4 (811.0-855.6) n=3 68.9 (68.0-72.1) n=3 4.85 (4.81-5.07) n=3 10.57 (8.45-11.29) n=3 12.3 (11.9-12.5) n=3 3/3
prompt-16k 1917.8 (1917.3-1920.6) n=3 76.3 (72.3-76.4) n=3 8.57 (8.56-8.58) n=3 13.66 (12.00-13.85) n=3 15.3 (15.2-15.6) n=3 3/3

Cells are median (min-max) n=samples. Short is a prompt of about 80 tokens: its prompt rate is dominated by the fixed cost of a request, so it is not shown; read prompt speed from prompt-4k and prompt-16k. Capped = requests that reached the 512-token cap, reasoning and answer together. A capped request's total time is the time to the cap, not to an answer, and it has no first-answer time when it was still reasoning.

Phase Planned Completed Truncated Failed Skipped
warmup 1 0 1 0 0
performance 9 3 6 0 0
sanity 12 12 0 0 0
concurrency 0 0 0 0 0

Sanity checks: 12 of 12.

Case Result Reason
I1 pass the expected JSON value
I2 pass the expected JSON value
I3 pass the expected JSON value
I4 pass the exact expected text
R1 pass the exact expected text
R2 pass the exact expected text
R3 pass the exact expected text
R4 pass the expected JSON value
T1 pass the expected tool call
T2 pass the expected tool call
T3 pass the expected tool call
T4 pass the expected tool call

Failures, exclusions and limitations

  • No request failed.
  • Prompt-prefix reuse is the shared template prefix only; the cache was not emptied between requests, and the expert cache stays warm and evolves. These are not cold-model measurements.
  • Output caps include reasoning; a request that reaches its cap is truncated and fails its sanity check.
  • The runner cannot see other programs on the machine, the repeat-stop and loop-recovery switches of the server, or the quantization repository's revision; see missing in results.json for every value it could not read.
  • The server had answered no request before this run (a freshly loaded engine).