Qwen3.8-27B · vLLM · NVFP4 · conc-128
status: done
Configuration
| Model | Qwen/Qwen3.8-27B |
|---|---|
| Company | Alibaba |
| Family | Qwen |
| Parameters | 27B (dense, hybrid linear-attn) |
| Engine | vLLM |
| Quant / precision | NVFP4 |
| Why this quant | Same unsloth NVFP4 checkpoint as the conc-32 headline — only --max-num-seqs differs. Top of the concurrency curve, and the non-speculative baseline for the conc-128 MTP config. |
| Download | unsloth/Qwen3.8-27B-NVFP4 |
| Context window | 65536 |
| Input modalities | text, image, video (served text-only here) |
Measured results
| Prefill tok/s | 445.24 |
|---|---|
| Decode tok/s | 346.23 |
| Peak memory (GB) | 106.18 (system MemAvailable delta (10s sampling) — vLLM static KV reservation (util 0.85)) |
| Completed | 2026-08-21 03:48 +0800 |
Full run command
# conc-128 point. Identical to the conc-32 base recipe except --max-num-seqs.
scripts/bench-vllm-serving.sh unsloth/Qwen3.8-27B-NVFP4 65536 128 1000 900 256 \
--trust-remote-code --dtype bfloat16
# 1000/1000 prompts in 686.3 s — DRAINED the dataset, did NOT hit the 900 s cap. 0 errors.
# ready after 339 s. TTFT median 1251.1 ms, TPOT median 349.1 ms.
Notes
346.2 tok/s at conc-128 — the throughput ceiling of this model on a Spark, and it is not worth it.
- Result (conc 128): prefill 445.24 / decode 346.23 tok/s; TTFT median 1251.1 ms, TPOT median 349.1 ms. 1000/1000 completed in 686.3 s, 0 errors. Load 339 s.
- Like c64, this run drained the dataset rather than hitting the time cap, so the aggregate includes
a ramp-down tail and reads as a floor. A saturated
--num-prompts 4000re-run is recorded below when available; the 1000-prompt figure stays the headline so the c1…c128 curve is recipe-identical throughout. - The curve has flattened out. Per-doubling gain: 1.94× (c4→c8) → 1.71× (c8→c16) → 1.63× (c16→c32) → 1.35× (c32→c64) → 1.22× (c64→c128). Aggregate throughput is asymptoting somewhere near ~370–400 tok/s for this model at this quant on this box.
- Per-stream latency has collapsed: TPOT 349.1 ms ≈ 2.9 tok/s per user, versus 88.5 ms (11.3 tok/s) at c1. Quadrupling the batch from c32 bought 1.65× aggregate throughput for 2.4× worse per-token latency — a losing trade unless the workload is entirely offline. The useful operating range on this box is c4–c32; c64 and c128 exist here to bound the curve, not to be deployed.
- Memory 106.2 GB, still mid-band —
--max-num-seqsdoes not move the static reservation. (The MTP variant at this batch is the one exception on the whole sweep; see below.) - Base-vs-MTP comparison on conc-128 + MTP — where the speculative speedup finally reaches zero.
- Served text-only (
mm_served: false), ctx 65536, consistent with the rest of the sweep.