// ai

AVAILABLE NOWDEM · GPU parity engine · inference acceleration

Demerzel

DEMERZEL RC5 · RELEASE CANDIDATE 5

Demerzel RC5

Inference Engine · NVIDIA · AMD · CPU

One engine for NVIDIA, AMD and plain CPUs. Measured head to head against llama.cpp, llama‑server, vLLM and Lemonade Server on the same machines, with the same model files and the same client.

RC5 Rust In production
// one engine, no tuning

Three stacks to tune — or one engine that tunes itself

The engines in these benchmarks are not used the same way. Each alternative needs extra pieces and hand‑set parameters that change with the model and the load. Demerzel is one server that measures the machine it lands on and adapts.

llama.cpp

engine + Ollama + llama‑server
  • The engine is a library and command‑line tools; for a friendly experience people put Ollama on top.
  • Serving many users at once is a separate program, llama‑server, sized by hand: slots, context, GPU layers, flash attention, batch sizes, threads.
  • Several models: its router mode starts a separate child server per model, each with its own hand‑set preset.
  • The right values differ per model, per machine and per expected load.

vLLM

a serving stack for supported models
  • One model per server: several models means several instances, each given a fixed share of GPU memory.
  • Serves only the model architectures and file formats it supports; in these tests it could not use the GGUF files the other engines read and ran the publishers’ own 4‑bit checkpoints instead.
  • Memory share, sequence count and context length are set per deployment, and change with the model and the traffic.
  • Minutes to start: 2–4.5 min on the DGX Spark, 6.4 min on the laptop CPU in these runs.

Demerzel

one server, autotuned
  • One binary: demerzel serve --model <file>. Single user or many, batching is built in.
  • At load it times its own kernels on the machine and model and keeps the fastest, then caches the choices; under traffic it adapts batching to the users arriving.
  • NVIDIA, AMD and plain CPUs from the same engine; serving in seconds (3–26 s on the DGX Spark).

So Demerzel — the intelligent machine behind the Empire in Asimov’s novels — proves worthy of the name, adjusting live and immediately to the hardware, the load conditions and the model requested.

// measured performance

Real Hardware. Real Numbers.

Demerzel against llama.cpp, llama‑server, vLLM and AMD’s Lemonade Server on the same machines, the same model files and the same client. NVIDIA DGX Spark (GB10), a Ryzen 7 laptop CPU and two AMD RX 470 cards. Measured 30–31 October 2026; every figure is the mean of interleaved rounds. Demerzel’s DGX Spark figures re‑measured 2 November 2026 on the same harness as the engine improves; the other engines’ figures are from 30–31 October.

Serving 8 users on a DGX Spark, Demerzel delivers 35% to 67% more throughput than llama‑server on every model tested; against vLLM it is faster for a single user on 3 of 4 models and at 16 users on 2 of 4, compared on equal‑size 4‑bit files.

At a glance
vs llama‑server · 8 users · DGX Spark
+67%
best model; the smallest gain is +35% (10 model files, 82‑token prompts)
vs vLLM · 1 user · DGX Spark
3.3×
faster on Llama‑3.2‑1B; on equal‑size Qwen2.5‑7B files +15%
vs vLLM · 16 users · DGX Spark
93%–148%
of vLLM's throughput, across the 4 models with a vLLM checkpoint
CPU prompt processing vs llama.cpp
132%
Qwen2.5‑7B Q4_K_M on a Ryzen 7 5825U; 103% or better on every format
First token on CPU vs vLLM
8.4×
sooner (553‑token prompt, Llama‑3.2‑3B); vLLM also took 6.4 min to start
AMD RX 470 generation vs llama.cpp
108%
Vulkan, two cards; prompt processing at 96% of llama.cpp

Serving on an NVIDIA DGX Spark (GB10, 128 GB)

Each engine serves the same OpenAI‑compatible streaming requests: distinct 82‑token prompts, 128 tokens generated greedily, no prompt cache. Bars show throughput for all users together, relative to llama‑server on the same file (1.0). vLLM cannot load GGUF files, so it runs the model maker’s own 4‑bit checkpoint (BF16 for Llama‑3.2‑1B); models with no vLLM bar have no vLLM checkpoint in this set.

Users at once
DemerzelvLLMllama‑server = 1.0
vs Lemonade Server, DGX Spark

Lemonade Server 2026.44.1 (AMD’s llama.cpp‑based server; its CUDA build, llama.cpp b11395) was measured on 3 of these files, tuned to 16 parallel slots, a 65,536‑token context and flash attention; its ratio is against Demerzel measured the same night. At 8 and 16 users Demerzel is 24%–67% ahead; for one user the two are within a few percent (108%, 96%, 99%). As shipped, Lemonade serves one request at a time (--parallel 1), so its throughput stays at the one‑user figure however many users wait.

Model
file
Prompt tok
/ users
vs
Lemonade
Demerzel
tok/s
Lemonade
tuned
Lemonade
as shipped
First token, ms
Demerzel / Lemonade
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)82 / 1108%48.545.044.742 / 49
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)82 / 4111%172.8155.644.0116 / 137
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)82 / 8167%330.1198.044.0197 / 267
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)82 / 16146%602.0411.643.8347 / 507
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)556 / 1111%45.541.041.4153 / 202
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)556 / 8156%242.4155.641.2850 / 1,320
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)556 / 16139%361.2260.541.21,476 / 2,121
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)82 / 199%89.089.590.260 / 81
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)82 / 4102%250.1244.489.0109 / 137
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)82 / 8156%431.0276.589.3204 / 277
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)82 / 16142%748.8526.788.7309 / 475
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)556 / 1102%80.879.478.8150 / 233
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)556 / 8149%297.4199.379.2713 / 1,264
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)556 / 16157%418.2266.578.91,067 / 2,093
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)82 / 196%11.912.412.4180 / 161
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)82 / 4101%45.244.812.3500 / 510
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)82 / 8147%84.757.712.4939 / 996
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)82 / 16124%154.6125.012.31,592 / 1,965
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)556 / 197%11.211.511.6724 / 771
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)556 / 8136%60.144.311.63,872 / 5,275
Every serving cell

Aggregate tokens per second; green where Demerzel is ahead, red where it is behind. Time to first token is the median over requests. Lemonade columns: see the table above.

Model
file
Prompt tok
/ users
vs llama‑
server
vs
vLLM
vs
Lemonade
Demerzel
tok/s
llama‑
server
vLLMLemon­adeFirst token, ms
Demerzel / llama / vLLM / Lemonade
Qwen2.5‑7BIQ4_XS GGUF (4.2 GB)82 / 1109%115%—52.548.045.8—44 / 41 / 51 / —
Qwen2.5‑7BIQ4_XS GGUF (4.2 GB)82 / 4104%100%—191.1183.9190.1—126 / 113 / 119 / —
Qwen2.5‑7BIQ4_XS GGUF (4.2 GB)82 / 8160%96%—351.9219.6364.9—204 / 194 / 197 / —
Qwen2.5‑7BIQ4_XS GGUF (4.2 GB)82 / 16160%96%—647.8403.5671.6—341 / 394 / 357 / —
Qwen2.5‑7BIQ4_XS GGUF (4.2 GB)556 / 1107%113%—49.446.243.8—154 / 156 / 158 / —
Qwen2.5‑7BIQ4_XS GGUF (4.2 GB)556 / 8146%97%—261.0178.9269.2—768 / 1,030 / 810 / —
Qwen2.5‑7BIQ4_XS GGUF (4.2 GB)556 / 16138%96%—387.4280.1403.0—1,349 / 1,592 / 1,360 / —
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)82 / 1108%106%108%48.244.545.445.042 / 45 / 53 / 49
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)82 / 4109%92%111%172.6158.8188.2155.6118 / 113 / 121 / 137
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)82 / 8167%92%167%332.4199.1361.1198.0197 / 234 / 199 / 267
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)82 / 16144%91%146%605.3419.4662.5411.6346 / 445 / 353 / 507
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)556 / 1108%104%111%45.241.843.541.0152 / 175 / 158 / 202
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)556 / 8151%92%156%243.3160.9265.0155.6771 / 1,160 / 855 / 1,320
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)556 / 16131%91%139%360.8275.3395.6260.51,494 / 1,848 / 1,364 / 2,121
Llama‑3.2‑1BQ4_K_M GGUF (0.8 GB)82 / 1114%329%—237.8208.272.2—9 / 13 / 20 / —
Llama‑3.2‑1BQ4_K_M GGUF (0.8 GB)82 / 4101%203%—693.2683.8341.5—23 / 29 / 38 / —
Llama‑3.2‑1BQ4_K_M GGUF (0.8 GB)82 / 8151%175%—1,176.3778.4672.5—39 / 69 / 43 / —
Llama‑3.2‑1BQ4_K_M GGUF (0.8 GB)82 / 16146%148%—1,947.51,333.51,314.8—66 / 124 / 57 / —
Llama‑3.2‑1BQ4_K_M GGUF (0.8 GB)556 / 1117%311%—222.3190.171.5—30 / 38 / 29 / —
Llama‑3.2‑1BQ4_K_M GGUF (0.8 GB)556 / 8132%143%—861.5654.0603.0—138 / 204 / 125 / —
Llama‑3.2‑1BQ4_K_M GGUF (0.8 GB)556 / 16125%114%—1,196.0954.71,053.7—246 / 376 / 193 / —
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)82 / 1106%109%99%89.784.382.289.560 / 82 / 56 / 81
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)82 / 497%112%102%249.4256.1222.5244.4120 / 142 / 97 / 137
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)82 / 8148%107%156%419.8283.6391.4276.5255 / 272 / 147 / 277
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)82 / 16131%111%142%722.0550.8651.5526.7383 / 442 / 212 / 475
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)556 / 1106%102%102%80.075.278.279.4173 / 221 / 102 / 233
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)556 / 8135%90%149%273.8202.8304.6199.3927 / 1,169 / 457 / 1,264
Qwen3‑30B‑A3BIQ4_XS GGUF (16.5 GB, bartowski)556 / 16136%88%157%374.1275.1425.4266.51,392 / 1,978 / 703 / 2,093
Qwen3‑30B‑A3BQ4_K GGUF (18.6 GB)82 / 1106%107%—88.082.782.2—79 / 85 / 56 / —
Qwen3‑30B‑A3BQ4_K GGUF (18.6 GB)82 / 4120%108%—241.2200.5222.5—133 / 137 / 97 / —
Qwen3‑30B‑A3BQ4_K GGUF (18.6 GB)82 / 8135%91%—356.6264.5391.4—223 / 266 / 147 / —
Qwen3‑30B‑A3BQ4_K GGUF (18.6 GB)82 / 16104%77%—500.9481.1651.5—350 / 438 / 212 / —
Qwen3‑30B‑A3BQ4_K GGUF (18.6 GB)556 / 1107%99%—77.772.578.2—191 / 235 / 102 / —
Qwen3‑30B‑A3BQ4_K GGUF (18.6 GB)556 / 8151%88%—267.6177.4304.6—803 / 1,264 / 457 / —
Qwen3‑30B‑A3BQ4_K GGUF (18.6 GB)556 / 16133%77%—327.5245.6425.4—1,201 / 2,038 / 703 / —
Qwen3‑Coder‑30B‑A3BQ4_K_M GGUF82 / 1102%——67.366.2——88 / 105 / — / —
Qwen3‑Coder‑30B‑A3BQ4_K_M GGUF82 / 4102%——200.1196.1——145 / 167 / — / —
Qwen3‑Coder‑30B‑A3BQ4_K_M GGUF82 / 8155%——348.1224.9——229 / 310 / — / —
Qwen3‑Coder‑30B‑A3BQ4_K_M GGUF82 / 16110%——529.9480.1——357 / 512 / — / —
Qwen3‑Coder‑30B‑A3BQ4_K_M GGUF556 / 1102%——60.559.2——207 / 277 / — / —
Qwen3‑Coder‑30B‑A3BQ4_K_M GGUF556 / 8141%——208.5147.7——859 / 1,514 / — / —
Qwen3‑Coder‑30B‑A3BQ4_K_M GGUF556 / 16137%——276.9202.7——1,291 / 2,467 / — / —
Flint 40B‑A2.5BQ4_1 GGUF82 / 1112%——91.882.0——110 / 126 / — / —
Flint 40B‑A2.5BQ4_1 GGUF82 / 4103%——224.4216.8——165 / 219 / — / —
Flint 40B‑A2.5BQ4_1 GGUF82 / 8149%——345.9232.3——218 / 384 / — / —
Flint 40B‑A2.5BQ4_1 GGUF82 / 16108%——410.4378.6——357 / 558 / — / —
Flint 40B‑A2.5BQ4_1 GGUF556 / 1113%——82.873.2——206 / 303 / — / —
Flint 40B‑A2.5BQ4_1 GGUF556 / 8144%——250.7173.8——862 / 1,907 / — / —
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)82 / 1100%100%96%12.012.012.012.4198 / 147 / 179 / 161
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)82 / 498%95%101%45.346.247.544.8504 / 455 / 473 / 510
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)82 / 8147%93%147%84.857.691.057.7941 / 988 / 815 / 996
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)82 / 16120%93%124%154.6129.2165.8125.01,590 / 1,818 / 1,524 / 1,965
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)556 / 1102%99%97%11.311.111.411.5725 / 714 / 605 / 771
Qwen3‑32BIQ4_XS GGUF (17.7 GB, bartowski)556 / 8134%90%136%60.245.066.544.33,832 / 4,775 / 3,046 / 5,275
Qwen3‑32BQ4_K_M GGUF (19.8 GB, official)82 / 1106%92%—11.010.412.0—168 / 167 / 179 / —
Qwen3‑32BQ4_K_M GGUF (19.8 GB, official)82 / 4104%85%—40.238.547.5—508 / 460 / 473 / —
Qwen3‑32BQ4_K_M GGUF (19.8 GB, official)82 / 8156%85%—77.249.591.0—904 / 1,118 / 815 / —
Qwen3‑32BQ4_K_M GGUF (19.8 GB, official)82 / 16123%84%—138.8113.3165.8—1,889 / 2,082 / 1,524 / —
Qwen3‑32BQ4_K_M GGUF (19.8 GB, official)556 / 1105%90%—10.39.811.4—718 / 814 / 605 / —
Qwen3‑32BQ4_K_M GGUF (19.8 GB, official)556 / 8138%81%—53.739.066.5—4,417 / 5,397 / 3,046 / —
Hermes‑70BQ4_K_M GGUF (42.5 GB)82 / 1108%——5.24.8——323 / 353 / — / —
Hermes‑70BQ4_K_M GGUF (42.5 GB)82 / 4103%——19.418.9——1,093 / 834 / — / —
Hermes‑70BQ4_K_M GGUF (42.5 GB)82 / 8144%——35.224.4——1,692 / 1,945 / — / —
Hermes‑70BQ4_K_M GGUF (42.5 GB)82 / 16107%——60.056.0——3,350 / 3,835 / — / —
Hermes‑70BQ4_K_M GGUF (42.5 GB)556 / 1111%——5.04.5——1,474 / 1,725 / — / —
Hermes‑70BQ4_K_M GGUF (42.5 GB)556 / 8132%——25.419.2——8,955 / 11,324 / — / —

One user, raw engine speed

Demerzel’s CUDA engine on a 540‑token prompt and a 128‑token generation, against llama‑bench pp512 / tg128 on the same GGUF file (flash attention on, all layers on the GPU).

Model
file
Prompt
vs llama.cpp
Generate
vs llama.cpp
Demerzel
prompt tok/s
llama.cpp
prompt
Demerzel
generate tok/s
llama.cpp
generate
Qwen2.5‑7BQ4_K_M GGUF (4.7 GB)110%106%4,2973,90349.246.4
Qwen2.5‑7BIQ4_XS GGUF (4.2 GB)97%105%4,3154,44653.551.1
Llama‑3.2‑1BQ4_K_M GGUF (0.8 GB)97%107%21,15421,835241.1224.6
Qwen3‑30B‑A3BQ4_K GGUF (18.6 GB)97%100%3,2513,35492.592.2
Qwen3‑Coder‑30B‑A3BQ4_K_M GGUF111%97%2,9082,61970.872.8
Flint 40B‑A2.5BQ4_1 GGUF113%104%2,8572,524102.198.3
Qwen3‑32BQ4_K_M GGUF (19.8 GB, official)106%107%90084511.310.6
Qwen3‑32BQ5_K_M GGUF (23.2 GB)93%102%7247809.49.2
Hermes‑70BQ4_K_M GGUF (42.5 GB)96%108%3713855.34.9

CPU and AMD

Ryzen 7 5825U, raw engine speed

Demerzel against llama.cpp with the GPU disabled on both sides, 8 threads, 2 interleaved rounds. Generation on this one‑memory‑channel laptop is bound by memory bandwidth for both engines.

Model
format
Prompt
vs llama.cpp
Generate
vs llama.cpp
Demerzel
pp512
llama.cpp
pp512
Demerzel
tg128
llama.cpp
tg128
Llama‑3.2‑3BQ4_K_M126%99%101.981.19.09.1
Qwen2.5‑7BQ4_K_M132%100%46.034.84.24.2
Llama‑3.2‑3BQ8_0103%96%65.162.95.25.4
Llama‑3.2‑3BF16111%97%41.637.62.82.9
Ryzen 7 5825U, serving Llama‑3.2‑3B

Same streaming client for every engine: a 553‑token prompt, 128 tokens generated, 1 user and 4 users. vLLM 0.32’s CPU build runs the BF16 weights, so the half‑precision rows compare like with like.

Engine
format
First
token, s
Per
token, ms
4 users
tok/s
Start‑
up, s
Demerzel Q4_K_M5.911611.92
llama‑server Q4_K_M7.411710.84
Demerzel Q8_09.91927.82
Demerzel F1612.83655.02
llama‑server F1614.93504.74
vLLM 0.32 CPU BF1649.83642.0383
Two AMD RX 470 cards (Polaris, Vulkan)

An eight‑year‑old GPU pair on a 2012 FX‑4300 host, model split across both cards. Demerzel against llama.cpp’s Vulkan build, 3 interleaved rounds.

Model
format
Prompt
vs llama.cpp
Generate
vs llama.cpp
Demerzel
pp512
llama.cpp
pp512
Demerzel
tg128
llama.cpp
tg128
Qwen2.5‑Coder‑7BQ4_K_M96%108%147.5153.427.125.0

Many models, one server

20 users on Llama‑3.2‑1B and 2 users on Qwen3‑30B‑A3B at the same time, on one DGX Spark: the same streaming client and prompts for every engine (50‑word prompts, 256 tokens, greedy), both models warmed first, means of 2 interleaved rounds (31 October 2026). Demerzel serves both from one process and keeps tuning each model to the load and to the other model sharing the GPU; llama‑server’s router runs a child server per model; vLLM serves one model per instance.

EngineDemerzel is faster by
(small / big model)
Llama‑1B
20 users
tok/s
Qwen3‑30B‑A3B
2 users
tok/s
First token, ms
(small / big)
Ready
s
Pro­cesses
Demerzelone server, both modelsbaseline903102.7101 / 10012-311
llama‑serverrouter mode: a child server per model1.57× 1.18×57587.3296 / 1474-183
vLLMtwo instances, one model each1.35× 1.40×66773.1241 / 120367-3902

Vision and video: Qwen3‑VL‑8B

Qwen3‑VL‑8B Instruct reading charts, photos and video clips on one DGX Spark, one user. Same OpenAI‑API requests to every engine (media sent inline, greedy decoding), 200 questions per dataset. Demerzel and llama.cpp run Qwen’s own 4‑bit GGUF (Q4_K_M) with its F16 vision projector; vLLM cannot load those files and runs the 4‑bit AWQ checkpoint. Video clips are 32 frames at 2 frames per second. First token is the median time to the first answer token. Bold marks the best value in each row. Per‑dataset detail for each size below.

Qwen3‑VL‑8B, 1 userDemerzelllama.cppvLLM (AWQ 4‑bit)
ChartQA accuracy84.0%83.5%82.0%
RealWorldQA accuracy70.0%70.5%68.5%
MMMU accuracy50.5%51.5%52.5%
MMBench accuracy90.0%90.5%90.0%
MVBench (video) accuracy65.0%65.0%65.0%
First token, chart0.23 s0.33 s0.21 s
First token, photo0.62 s1.34 s0.60 s
First token, video1.27 s2.43 s1.03 s
Decode speed———

Qwen3‑VL in detail: 30B‑A3B, 8B and 4B

Qwen3‑VL 8B and 4B Instruct reading pictures and video clips on one DGX Spark. Every engine gets the same OpenAI‑API requests (images and clips sent inline, greedy decoding) over 200 questions per dataset. Demerzel, llama‑server and Lemonade Server run Qwen’s own 4‑bit GGUF (Q4_K_M) with its F16 vision projector; vLLM cannot load those files and runs the 4‑bit AWQ checkpoint. Video clips are 32 frames at 2 frames per second; vLLM’s container cannot decode H.264, so it reads near‑lossless MPEG‑4 copies of the same frames (Demerzel scores the same on both). Bold marks the best value in each row.

Qwen3‑VL‑30B‑A3B (MoE): accuracy and time to first token (median, s)
DatasetDemerzel
accuracy
llama‑server
accuracy
Lemonade
accuracy
vLLM
accuracy
Demerzel
first token
llama‑server
first token
Lemonade
first token
vLLM
first token
RealWorldQA70.0%71.0%—70.5%0.621.41—0.44
MVBench (video)67.0%65.5%—67.0%1.233.33—0.77
Qwen3‑VL‑30B‑A3B (MoE): speed, 256‑token answers

Generated tokens per second for all users together, and the mean time to first token (s), with 1 and 4 users asking at once.

Input / usersDemerzel
tok/s
llama‑server
tok/s
Lemonade
tok/s
vLLM
tok/s
Demerzel
first token
llama‑server
first token
Lemonade
first token
vLLM
first token
Chart / 183.572.3—72.50.230.35—0.18
Chart / 4147.3121.7—161.40.581.36—0.27
Photo / 167.949.9—64.40.731.76—0.50
Photo / 4120.582.1—144.41.535.51—0.92
Video clip / 149.134.1—53.01.783.98—1.10
Video clip / 484.651.4—116.92.8312.07—1.26
Qwen3‑VL‑8B: accuracy and time to first token (median, s)
DatasetDemerzel
accuracy
llama‑server
accuracy
Lemonade
accuracy
vLLM
accuracy
Demerzel
first token
llama‑server
first token
Lemonade
first token
vLLM
first token
ChartQA84.0%83.5%82.0%82.0%0.230.330.350.21
RealWorldQA70.0%70.5%—68.5%0.621.34—0.60
MMMU50.5%51.5%—52.5%0.140.21—0.15
MMBench90.0%90.5%—90.0%0.110.15—0.11
MVBench (video)65.0%65.0%64.5%65.0%1.272.432.521.03
Qwen3‑VL‑8B: speed, 256‑token answers

Generated tokens per second for all users together, and the mean time to first token (s), with 1 and 4 users asking at once.

Input / usersDemerzel
tok/s
llama‑server
tok/s
Lemonade
tok/s
vLLM
tok/s
Demerzel
first token
llama‑server
first token
Lemonade
first token
vLLM
first token
Chart / 144.138.939.538.70.230.340.410.19
Chart / 4139.2116.7128.9145.70.511.280.660.31
Photo / 139.031.3—34.20.741.71—0.70
Photo / 4104.176.5—113.91.595.32—1.18
Video clip / 131.525.729.429.01.833.102.301.54
Video clip / 474.357.573.190.72.998.254.241.93
Qwen3‑VL‑4B: accuracy and time to first token (median, s)
DatasetDemerzel
accuracy
llama‑server
accuracy
Lemonade
accuracy
vLLM
accuracy
Demerzel
first token
llama‑server
first token
Lemonade
first token
vLLM
first token
ChartQA82.0%81.5%82.5%83.0%0.150.200.220.12
RealWorldQA72.5%72.5%—75.0%0.460.74—0.36
MMMU49.5%50.0%—48.5%0.090.14—0.09
MMBench90.5%89.5%—88.5%0.070.10—0.07
MVBench (video)66.0%64.5%62.5%68.0%0.901.671.760.61
Qwen3‑VL‑4B: speed, 256‑token answers

Generated tokens per second for all users together, and the mean time to first token (s), with 1 and 4 users asking at once.

Input / usersDemerzel
tok/s
llama‑server
tok/s
Lemonade
tok/s
vLLM
tok/s
Demerzel
first token
llama‑server
first token
Lemonade
first token
vLLM
first token
Chart / 177.468.166.666.20.140.200.260.12
Chart / 4234.9195.0212.1241.90.340.730.400.18
Photo / 165.254.5—57.90.510.95—0.41
Photo / 4164.6128.1—180.21.062.83—0.67
Video clip / 149.840.846.046.61.272.021.570.95
Video clip / 4112.283.2107.7137.11.985.402.931.12

Video generation: Wan2.2

Wan2.2 TI2V‑5B turning text into video on one DGX Spark: the 16 VBench prompts, 832×480, 33 frames, 30 steps, guidance 5, shift 5, seed 42. Demerzel and diffusers use the UniPC sampler; stable‑diffusion.cpp offers Euler at the same 30 steps (the same number of model passes). Demerzel’s output matches the fp32 diffusers reference (cosine 0.99999 at Q8_0; VAE 70.8 dB PSNR). Times are per video with the model loaded. CLIPScore (ViT‑L/14, how well the frames match the prompt; higher is better) is scored on 8 evenly spaced frames of each video and averaged over the 16 videos.

Engine
weights
Seconds
per video
Denoise
s
VAE
decode s
CLIPScore
DemerzelQ4_K_M GGUF49.535.214.224.14
DemerzelQ8_0 GGUF49.535.214.223.68
stable‑diffusion.cppQ4_K_M GGUF91.871.718.221.15
stable‑diffusion.cppQ8_0 GGUF87.567.418.121.11
diffusersbf1674.259.814.521.71
diffusersQ8_0 GGUF83.869.314.421.99
diffusersQ4_K_M GGUF98.884.214.621.43
// RC5 IS IN PRODUCTION

We already serve several AI engines in production on Demerzel while we fine‑tune it on new hardware — so this release candidate is actually in production today.

We keep the release candidate label instead of “final” while we tune the engine on new hardware, and keep fine‑tuning it on older hardware too.

Stay tuned.