pavle-scalably's picture
Scalably release 2026-10-26
791f0dd verified
Raw History Blame Contribute Delete
41.5 kB
<!doctype html>
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>RTX 5090 serving explorer · Scalably</title>
<meta name="description" content="Measured vLLM and EXL3 serving runs on 2x RTX 5090">
<style>
:root{--subject:#00a37a;--compare:#b0ada6;--ink:#0a0a09;--muted:#5a5a55;--grid:#e2dfd8;--paper:#faf9f7;--card:#ffffff;color-scheme:light dark}
@media (prefers-color-scheme:dark){:root{--subject:#00ab80;--compare:#6f6c66;--ink:#f2f0eb;--muted:#a8a59c;--grid:#2a2926;--paper:#111110;--card:#1a1a18}}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 Figtree,system-ui,sans-serif}
main{max-width:1100px;margin:0 auto;padding:28px 18px 60px}
h1{font:400 clamp(30px,5vw,44px)/1.1 "Instrument Serif",Georgia,serif;margin:0 0 8px}
h2{font:400 27px/1.2 "Instrument Serif",Georgia,serif;margin:0 0 4px}
.sub{color:var(--muted);margin:0 0 14px;max-width:72ch}
a{color:inherit;text-decoration-color:var(--subject);text-underline-offset:3px}
.card{background:var(--card);border:1px solid var(--grid);border-radius:14px;padding:20px;margin:22px 0}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.seg{display:inline-flex;border:1px solid var(--grid);border-radius:999px;overflow:hidden}
.seg button{all:unset;cursor:pointer;padding:7px 13px;font-size:13px;color:var(--muted)}
.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.seg button:focus-visible{outline:2px solid var(--subject);outline-offset:-2px}
.panels{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:760px){.panels{grid-template-columns:1fr}}
svg{width:100%;height:auto;display:block;overflow:visible}
.tick{font:11px "JetBrains Mono",monospace;fill:var(--muted)}.lab{font:12px Figtree,sans-serif;fill:var(--ink)}.ptitle{font:600 13px Figtree,sans-serif;fill:var(--ink)}
.legend{display:flex;gap:16px;font-size:13px;color:var(--muted);margin:6px 0}.sw{display:inline-block;width:22px;height:0;border-top:2.5px solid;vertical-align:middle;margin-right:6px}
.empty{fill:var(--muted);font-size:13px}
#tip{position:fixed;pointer-events:none;background:var(--ink);color:var(--paper);font:12px/1.4 Figtree,sans-serif;padding:6px 9px;border-radius:8px;opacity:0;transition:opacity .1s;z-index:9}
details{margin-top:10px}summary{cursor:pointer;color:var(--muted);font-size:13px}
table{border-collapse:collapse;width:100%;font:12px "JetBrains Mono",monospace;margin-top:8px}th,td{text-align:right;padding:4px 6px;border-bottom:1px solid var(--grid)}th:first-child,td:first-child{text-align:left}
.tw{overflow-x:auto}.note{font-size:13px;color:var(--muted)}footer{color:var(--muted);font-size:13px;margin-top:30px}
.mono{font-family:"JetBrains Mono",monospace}
</style></head><body><main>
<h1>RTX 5090 serving explorer</h1>
<p class="sub">Every point is one measured cell from Scalably's own runs on two GeForce RTX 5090s, read from the engine's counters. Hover or focus a MoE point for its row ID in the dataset. Nothing here is a vendor number.</p>
<section class="card" aria-labelledby="h-moe">
<h2 id="h-moe">MoE vs dense, same vLLM flags</h2>
<p class="sub">Nex-N2.5-mini (sparse MoE, NVFP4) against Qwen3.8-27B (dense, NVFP4), vLLM 0.27.0 with production flags, 256 decode tokens per request. Data: <a href="https://huggingface.co/datasets/Scalably/moe-vs-dense-vllm-rtx5090">Scalably/moe-vs-dense-vllm-rtx5090</a> · write-up: <a href="https://scalably.io/blog/moe-vs-dense-llm-inference-vllm-benchmark-rtx-5090">scalably.io</a>.</p>
<div class="filters" role="group" aria-label="Filters">
<div class="seg" data-k="ctx"><button data-v="60000">60K</button><button data-v="120000">120K</button><button data-v="200000">200K</button></div>
<div class="seg" data-k="mode"><button data-v="cold">Cold prefix</button><button data-v="cached">Cached prefix</button></div>
<div class="seg" data-k="host"><button data-v="QB">Dense on the same rental</button><button data-v="QB-rig">Dense on our production rig</button></div>
</div>
<div class="legend"><span><i class="sw" style="border-color:var(--subject)"></i>Nex-N2.5-mini (MoE)</span><span><i class="sw" style="border-color:var(--compare);border-top-style:dashed"></i>Qwen3.8-27B (dense)</span></div>
<div class="panels"><div id="p1"></div><div id="p2"></div></div>
<p class="note" id="moe-note"></p>
<details><summary>Table view</summary><div class="tw" id="moe-table"></div></details>
</section>
<section class="card" aria-labelledby="h-flash">
<h2 id="h-flash">Qwen Flash at a full 256K window</h2>
<p class="sub">One request: a ~254K-token prompt and 8,192 output tokens, wall throughput including prefill. Warm is an unchanged-prefix repeat. Data: <a href="https://huggingface.co/datasets/Scalably/qwen-flash-dual-5090-serving">Scalably/qwen-flash-dual-5090-serving</a> · write-up: <a href="https://scalably.io/blog/qwen-flash-next-dual-rtx-5090-serving-benchmark">scalably.io</a>.</p>
<div class="panels"><div id="f1"></div><div id="f2"></div></div>
<p class="note">NInfer-ext ran on one GPU. Engine and quantization changed together in several arms, so these are not equal-fidelity comparisons. Warm rows missing for three engines ended before a complete repeat; that is not zero.</p>
<details><summary>Table view</summary><div class="tw" id="flash-table"></div></details>
</section>
<footer>Built by <a href="https://huggingface.co/Scalably">Scalably</a>: one founder directing AI agents (Anthropic's Claude, OpenAI's Codex), who ran the benchmarks, verified the numbers and built this page. Data CC BY 4.0. Found a wrong number? Open a discussion on the dataset.</footer>
</main><div id="tip" role="status"></div>
<script id="data" type="application/json">{"moe": [{"evidence_id": "M21", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 1, "cache_mode": "cold", "per_stream_tok_s_median": 172.7, "aggregate_output_tok_s": 27.1, "ttft_p95_s": 7.952, "itl_p95_ms": 15.8, "kv_usage_max": 0.0438, "preemptions": 0.0}, {"evidence_id": "M22", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 4, "cache_mode": "cold", "per_stream_tok_s_median": 22.7, "aggregate_output_tok_s": 32.4, "ttft_p95_s": 29.795, "itl_p95_ms": 503.3, "kv_usage_max": 0.1752, "preemptions": 0.0}, {"evidence_id": "M23", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 8, "cache_mode": "cold", "per_stream_tok_s_median": 9.5, "aggregate_output_tok_s": 33.3, "ttft_p95_s": 59.185, "itl_p95_ms": 566.3, "kv_usage_max": 0.3504, "preemptions": 0.0}, {"evidence_id": "M24", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 12, "cache_mode": "cold", "per_stream_tok_s_median": 5.9, "aggregate_output_tok_s": 33.1, "ttft_p95_s": 88.865, "itl_p95_ms": 582.1, "kv_usage_max": 0.5256, "preemptions": 0.0}, {"evidence_id": "M25", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 16, "cache_mode": "cold", "per_stream_tok_s_median": 4.4, "aggregate_output_tok_s": 33.2, "ttft_p95_s": 120.645, "itl_p95_ms": 582.6, "kv_usage_max": 0.5256, "preemptions": 0.0}, {"evidence_id": "M26", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 24, "cache_mode": "cold", "per_stream_tok_s_median": 3.3, "aggregate_output_tok_s": 33.5, "ttft_p95_s": 172.739, "itl_p95_ms": 587.4, "kv_usage_max": 0.5256, "preemptions": 0.0}, {"evidence_id": "M27", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 32, "cache_mode": "cold", "per_stream_tok_s_median": 3.1, "aggregate_output_tok_s": 33.6, "ttft_p95_s": 234.346, "itl_p95_ms": 592.8, "kv_usage_max": 0.5256, "preemptions": 0.0}, {"evidence_id": "M28", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 1, "cache_mode": "cached", "per_stream_tok_s_median": 208.3, "aggregate_output_tok_s": 143.1, "ttft_p95_s": 0.54, "itl_p95_ms": 5.9, "kv_usage_max": 0.0197, "preemptions": 0.0}, {"evidence_id": "M29", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 4, "cache_mode": "cached", "per_stream_tok_s_median": 114.0, "aggregate_output_tok_s": 334.3, "ttft_p95_s": 1.061, "itl_p95_ms": 17.0, "kv_usage_max": 0.0271, "preemptions": 0.0}, {"evidence_id": "M30", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 8, "cache_mode": "cached", "per_stream_tok_s_median": 90.8, "aggregate_output_tok_s": 513.8, "ttft_p95_s": 1.774, "itl_p95_ms": 17.4, "kv_usage_max": 0.037, "preemptions": 0.0}, {"evidence_id": "M31", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 12, "cache_mode": "cached", "per_stream_tok_s_median": 52.5, "aggregate_output_tok_s": 467.7, "ttft_p95_s": 2.558, "itl_p95_ms": 34.0, "kv_usage_max": 0.0469, "preemptions": 0.0}, {"evidence_id": "M32", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 16, "cache_mode": "cached", "per_stream_tok_s_median": 47.0, "aggregate_output_tok_s": 442.5, "ttft_p95_s": 7.362, "itl_p95_ms": 33.8, "kv_usage_max": 0.0487, "preemptions": 0.0}, {"evidence_id": "M33", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 24, "cache_mode": "cached", "per_stream_tok_s_median": 37.0, "aggregate_output_tok_s": 413.4, "ttft_p95_s": 9.612, "itl_p95_ms": 42.1, "kv_usage_max": 0.0487, "preemptions": 0.0}, {"evidence_id": "M34", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 60000, "concurrency": 32, "cache_mode": "cached", "per_stream_tok_s_median": 37.4, "aggregate_output_tok_s": 442.2, "ttft_p95_s": 16.062, "itl_p95_ms": 35.9, "kv_usage_max": 0.0487, "preemptions": 0.0}, {"evidence_id": "M35", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 1, "cache_mode": "cold", "per_stream_tok_s_median": 172.7, "aggregate_output_tok_s": 13.4, "ttft_p95_s": 17.607, "itl_p95_ms": 14.6, "kv_usage_max": 0.0913, "preemptions": 0.0}, {"evidence_id": "M36", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 4, "cache_mode": "cold", "per_stream_tok_s_median": 10.6, "aggregate_output_tok_s": 14.4, "ttft_p95_s": 68.938, "itl_p95_ms": 668.6, "kv_usage_max": 0.3541, "preemptions": 0.0}, {"evidence_id": "M37", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 8, "cache_mode": "cold", "per_stream_tok_s_median": 4.2, "aggregate_output_tok_s": 14.6, "ttft_p95_s": 137.681, "itl_p95_ms": 720.5, "kv_usage_max": 0.7082, "preemptions": 0.0}, {"evidence_id": "M38", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 12, "cache_mode": "cold", "per_stream_tok_s_median": 2.7, "aggregate_output_tok_s": 14.7, "ttft_p95_s": 206.81, "itl_p95_ms": 735.6, "kv_usage_max": 0.8816, "preemptions": 0.0}, {"evidence_id": "M39", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 16, "cache_mode": "cold", "per_stream_tok_s_median": 2.0, "aggregate_output_tok_s": 14.7, "ttft_p95_s": 275.692, "itl_p95_ms": 740.9, "kv_usage_max": 0.8816, "preemptions": 0.0}, {"evidence_id": "M40", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 24, "cache_mode": "cold", "per_stream_tok_s_median": 1.7, "aggregate_output_tok_s": 14.8, "ttft_p95_s": 396.862, "itl_p95_ms": 744.7, "kv_usage_max": 0.8846, "preemptions": 0.0}, {"evidence_id": "M41", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 32, "cache_mode": "cold", "per_stream_tok_s_median": 1.7, "aggregate_output_tok_s": 14.8, "ttft_p95_s": 535.455, "itl_p95_ms": 745.0, "kv_usage_max": 0.8846, "preemptions": 0.0}, {"evidence_id": "M42", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 1, "cache_mode": "cached", "per_stream_tok_s_median": 175.6, "aggregate_output_tok_s": 122.0, "ttft_p95_s": 0.626, "itl_p95_ms": 14.3, "kv_usage_max": 0.0376, "preemptions": 0.0}, {"evidence_id": "M43", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 4, "cache_mode": "cached", "per_stream_tok_s_median": 119.3, "aggregate_output_tok_s": 279.5, "ttft_p95_s": 1.768, "itl_p95_ms": 17.0, "kv_usage_max": 0.045, "preemptions": 0.0}, {"evidence_id": "M44", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 8, "cache_mode": "cached", "per_stream_tok_s_median": 105.8, "aggregate_output_tok_s": 382.7, "ttft_p95_s": 3.487, "itl_p95_ms": 16.3, "kv_usage_max": 0.0524, "preemptions": 0.0}, {"evidence_id": "M45", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 12, "cache_mode": "cached", "per_stream_tok_s_median": 80.2, "aggregate_output_tok_s": 390.8, "ttft_p95_s": 5.551, "itl_p95_ms": 32.5, "kv_usage_max": 0.0568, "preemptions": 0.0}, {"evidence_id": "M46", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 16, "cache_mode": "cached", "per_stream_tok_s_median": 49.0, "aggregate_output_tok_s": 391.5, "ttft_p95_s": 7.5, "itl_p95_ms": 45.5, "kv_usage_max": 0.0648, "preemptions": 0.0}, {"evidence_id": "M47", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 24, "cache_mode": "cached", "per_stream_tok_s_median": 47.4, "aggregate_output_tok_s": 421.4, "ttft_p95_s": 10.775, "itl_p95_ms": 46.9, "kv_usage_max": 0.0666, "preemptions": 0.0}, {"evidence_id": "M48", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 120000, "concurrency": 32, "cache_mode": "cached", "per_stream_tok_s_median": 40.6, "aggregate_output_tok_s": 427.3, "ttft_p95_s": 15.945, "itl_p95_ms": 49.2, "kv_usage_max": 0.0666, "preemptions": 0.0}, {"evidence_id": "M49", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 1, "cache_mode": "cold", "per_stream_tok_s_median": 172.2, "aggregate_output_tok_s": 7.1, "ttft_p95_s": 34.578, "itl_p95_ms": 11.9, "kv_usage_max": 0.1474, "preemptions": 0.0}, {"evidence_id": "M50", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 4, "cache_mode": "cold", "per_stream_tok_s_median": 5.5, "aggregate_output_tok_s": 7.4, "ttft_p95_s": 135.521, "itl_p95_ms": 885.0, "kv_usage_max": 0.5904, "preemptions": 0.0}, {"evidence_id": "M51", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 8, "cache_mode": "cold", "per_stream_tok_s_median": 2.2, "aggregate_output_tok_s": 7.5, "ttft_p95_s": 270.78, "itl_p95_ms": 938.4, "kv_usage_max": 0.8828, "preemptions": 0.0}, {"evidence_id": "M52", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 12, "cache_mode": "cold", "per_stream_tok_s_median": 1.5, "aggregate_output_tok_s": 7.5, "ttft_p95_s": 408.007, "itl_p95_ms": 956.9, "kv_usage_max": 0.8828, "preemptions": 0.0}, {"evidence_id": "M53", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 16, "cache_mode": "cold", "per_stream_tok_s_median": 1.5, "aggregate_output_tok_s": 7.1, "ttft_p95_s": 571.368, "itl_p95_ms": 1012.3, "kv_usage_max": 0.8822, "preemptions": 0.0}, {"evidence_id": "M54", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 24, "cache_mode": "cold", "per_stream_tok_s_median": 1.3, "aggregate_output_tok_s": 6.5, "ttft_p95_s": 910.037, "itl_p95_ms": 1079.2, "kv_usage_max": 0.8846, "preemptions": 0.0}, {"evidence_id": "M55", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 32, "cache_mode": "cold", "per_stream_tok_s_median": 1.5, "aggregate_output_tok_s": 7.1, "ttft_p95_s": 1119.028, "itl_p95_ms": 1029.1, "kv_usage_max": 0.8846, "preemptions": 0.0}, {"evidence_id": "M56", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 1, "cache_mode": "cached", "per_stream_tok_s_median": 168.1, "aggregate_output_tok_s": 97.7, "ttft_p95_s": 1.084, "itl_p95_ms": 17.6, "kv_usage_max": 0.0611, "preemptions": 0.0}, {"evidence_id": "M57", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 4, "cache_mode": "cached", "per_stream_tok_s_median": 106.4, "aggregate_output_tok_s": 209.8, "ttft_p95_s": 2.835, "itl_p95_ms": 27.0, "kv_usage_max": 0.0685, "preemptions": 0.0}, {"evidence_id": "M58", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 8, "cache_mode": "cached", "per_stream_tok_s_median": 82.4, "aggregate_output_tok_s": 270.8, "ttft_p95_s": 5.362, "itl_p95_ms": 28.5, "kv_usage_max": 0.0753, "preemptions": 0.0}, {"evidence_id": "M59", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 12, "cache_mode": "cached", "per_stream_tok_s_median": 72.2, "aggregate_output_tok_s": 305.6, "ttft_p95_s": 7.795, "itl_p95_ms": 32.7, "kv_usage_max": 0.0777, "preemptions": 0.0}, {"evidence_id": "M60", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 16, "cache_mode": "cached", "per_stream_tok_s_median": 70.2, "aggregate_output_tok_s": 330.0, "ttft_p95_s": 10.137, "itl_p95_ms": 30.8, "kv_usage_max": 0.0777, "preemptions": 0.0}, {"evidence_id": "M61", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 24, "cache_mode": "cached", "per_stream_tok_s_median": 67.3, "aggregate_output_tok_s": 351.3, "ttft_p95_s": 14.707, "itl_p95_ms": 38.0, "kv_usage_max": 0.0777, "preemptions": 0.0}, {"evidence_id": "M62", "host": "rental", "phase_tag": "B", "model": "nex-n2.5-mini", "context_target_tokens": 200000, "concurrency": 32, "cache_mode": "cached", "per_stream_tok_s_median": 67.1, "aggregate_output_tok_s": 365.7, "ttft_p95_s": 19.538, "itl_p95_ms": 40.2, "kv_usage_max": 0.0777, "preemptions": 0.0}, {"evidence_id": "M64", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 1, "cache_mode": "cold", "per_stream_tok_s_median": 80.9, "aggregate_output_tok_s": 8.6, "ttft_p95_s": 26.441, "itl_p95_ms": 27.8, "kv_usage_max": 0.1047, "preemptions": 0.0}, {"evidence_id": "M65", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 4, "cache_mode": "cold", "per_stream_tok_s_median": 7.1, "aggregate_output_tok_s": 9.6, "ttft_p95_s": 103.227, "itl_p95_ms": 1990.1, "kv_usage_max": 0.4433, "preemptions": 0.0}, {"evidence_id": "M66", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 8, "cache_mode": "cold", "per_stream_tok_s_median": 2.8, "aggregate_output_tok_s": 9.7, "ttft_p95_s": 206.51, "itl_p95_ms": 2106.4, "kv_usage_max": 0.8939, "preemptions": 0.0}, {"evidence_id": "M67", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 12, "cache_mode": "cold", "per_stream_tok_s_median": 1.8, "aggregate_output_tok_s": 9.7, "ttft_p95_s": 313.661, "itl_p95_ms": 2132.9, "kv_usage_max": 0.8968, "preemptions": 0.0}, {"evidence_id": "M68", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 16, "cache_mode": "cold", "per_stream_tok_s_median": 1.4, "aggregate_output_tok_s": 9.7, "ttft_p95_s": 417.218, "itl_p95_ms": 2152.6, "kv_usage_max": 0.9099, "preemptions": 0.0}, {"evidence_id": "M69", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 24, "cache_mode": "cold", "per_stream_tok_s_median": 1.4, "aggregate_output_tok_s": 9.7, "ttft_p95_s": 604.522, "itl_p95_ms": 2164.2, "kv_usage_max": 0.9099, "preemptions": 0.0}, {"evidence_id": "M70", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 32, "cache_mode": "cold", "per_stream_tok_s_median": 1.4, "aggregate_output_tok_s": 9.7, "ttft_p95_s": 815.807, "itl_p95_ms": 2178.3, "kv_usage_max": 0.9099, "preemptions": 0.0}, {"evidence_id": "M71", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 1, "cache_mode": "cached", "per_stream_tok_s_median": 91.0, "aggregate_output_tok_s": 79.1, "ttft_p95_s": 0.41, "itl_p95_ms": 22.4, "kv_usage_max": 0.061, "preemptions": 0.0}, {"evidence_id": "M72", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 4, "cache_mode": "cached", "per_stream_tok_s_median": 65.0, "aggregate_output_tok_s": 218.4, "ttft_p95_s": 0.994, "itl_p95_ms": 34.1, "kv_usage_max": 0.0785, "preemptions": 0.0}, {"evidence_id": "M73", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 8, "cache_mode": "cached", "per_stream_tok_s_median": 48.3, "aggregate_output_tok_s": 314.2, "ttft_p95_s": 1.783, "itl_p95_ms": 37.8, "kv_usage_max": 0.1017, "preemptions": 0.0}, {"evidence_id": "M74", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 12, "cache_mode": "cached", "per_stream_tok_s_median": 34.1, "aggregate_output_tok_s": 317.0, "ttft_p95_s": 2.986, "itl_p95_ms": 53.5, "kv_usage_max": 0.1294, "preemptions": 0.0}, {"evidence_id": "M75", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 16, "cache_mode": "cached", "per_stream_tok_s_median": 35.9, "aggregate_output_tok_s": 321.2, "ttft_p95_s": 9.027, "itl_p95_ms": 49.0, "kv_usage_max": 0.1294, "preemptions": 0.0}, {"evidence_id": "M76", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 24, "cache_mode": "cached", "per_stream_tok_s_median": 30.3, "aggregate_output_tok_s": 322.3, "ttft_p95_s": 12.144, "itl_p95_ms": 53.6, "kv_usage_max": 0.1294, "preemptions": 0.0}, {"evidence_id": "M77", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 60000, "concurrency": 32, "cache_mode": "cached", "per_stream_tok_s_median": 29.6, "aggregate_output_tok_s": 318.7, "ttft_p95_s": 20.561, "itl_p95_ms": 53.9, "kv_usage_max": 0.125, "preemptions": 0.0}, {"evidence_id": "M78", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 1, "cache_mode": "cold", "per_stream_tok_s_median": 87.4, "aggregate_output_tok_s": 3.9, "ttft_p95_s": 62.549, "itl_p95_ms": 15.3, "kv_usage_max": 0.1948, "preemptions": 0.0}, {"evidence_id": "M79", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 4, "cache_mode": "cold", "per_stream_tok_s_median": 3.3, "aggregate_output_tok_s": 4.5, "ttft_p95_s": 225.014, "itl_p95_ms": 2358.7, "kv_usage_max": 0.8706, "preemptions": 0.0}, {"evidence_id": "M80", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 8, "cache_mode": "cold", "per_stream_tok_s_median": 1.5, "aggregate_output_tok_s": 4.5, "ttft_p95_s": 453.286, "itl_p95_ms": 2453.7, "kv_usage_max": 0.8968, "preemptions": 0.0}, {"evidence_id": "M81", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 12, "cache_mode": "cold", "per_stream_tok_s_median": 1.5, "aggregate_output_tok_s": 4.5, "ttft_p95_s": 683.317, "itl_p95_ms": 2466.4, "kv_usage_max": 0.8924, "preemptions": 0.0}, {"evidence_id": "M82", "host": "rental", "phase_tag": "QB", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 16, "cache_mode": "cold", "per_stream_tok_s_median": 1.5, "aggregate_output_tok_s": 4.5, "ttft_p95_s": 913.008, "itl_p95_ms": 2486.5, "kv_usage_max": 0.8968, "preemptions": 0.0}, {"evidence_id": "M90", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 32, "cache_mode": "cold", "per_stream_tok_s_median": 3.0, "aggregate_output_tok_s": 8.9, "ttft_p95_s": 891.275, "itl_p95_ms": 1374.8, "kv_usage_max": 0.8955, "preemptions": 0.0}, {"evidence_id": "M91", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 1, "cache_mode": "cached", "per_stream_tok_s_median": 80.4, "aggregate_output_tok_s": 68.7, "ttft_p95_s": 0.531, "itl_p95_ms": 25.2, "kv_usage_max": 0.1161, "preemptions": 0.0}, {"evidence_id": "M92", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 4, "cache_mode": "cached", "per_stream_tok_s_median": 61.8, "aggregate_output_tok_s": 199.2, "ttft_p95_s": 1.349, "itl_p95_ms": 30.0, "kv_usage_max": 0.1335, "preemptions": 0.0}, {"evidence_id": "M93", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 8, "cache_mode": "cached", "per_stream_tok_s_median": 47.9, "aggregate_output_tok_s": 296.6, "ttft_p95_s": 2.402, "itl_p95_ms": 35.6, "kv_usage_max": 0.1567, "preemptions": 0.0}, {"evidence_id": "M94", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 12, "cache_mode": "cached", "per_stream_tok_s_median": 39.0, "aggregate_output_tok_s": 243.5, "ttft_p95_s": 8.98, "itl_p95_ms": 41.2, "kv_usage_max": 0.2351, "preemptions": 0.0}, {"evidence_id": "M95", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 16, "cache_mode": "cached", "per_stream_tok_s_median": 36.2, "aggregate_output_tok_s": 303.5, "ttft_p95_s": 9.673, "itl_p95_ms": 42.9, "kv_usage_max": 0.1843, "preemptions": 0.0}, {"evidence_id": "M96", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 24, "cache_mode": "cached", "per_stream_tok_s_median": 32.5, "aggregate_output_tok_s": 357.3, "ttft_p95_s": 11.539, "itl_p95_ms": 42.8, "kv_usage_max": 0.1843, "preemptions": 0.0}, {"evidence_id": "M97", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 120000, "concurrency": 32, "cache_mode": "cached", "per_stream_tok_s_median": 32.6, "aggregate_output_tok_s": 343.0, "ttft_p95_s": 18.877, "itl_p95_ms": 42.9, "kv_usage_max": 0.1843, "preemptions": 0.0}, {"evidence_id": "M98", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 200000, "concurrency": 1, "cache_mode": "cold", "per_stream_tok_s_median": 75.7, "aggregate_output_tok_s": 4.4, "ttft_p95_s": 55.158, "itl_p95_ms": 13.9, "kv_usage_max": 0.3251, "preemptions": 0.0}, {"evidence_id": "M99", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 200000, "concurrency": 4, "cache_mode": "cold", "per_stream_tok_s_median": 7.3, "aggregate_output_tok_s": 4.4, "ttft_p95_s": 231.44, "itl_p95_ms": 1737.4, "kv_usage_max": 0.9942, "preemptions": 2.0}, {"evidence_id": "M100", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 200000, "concurrency": 8, "cache_mode": "cold", "per_stream_tok_s_median": 3.7, "aggregate_output_tok_s": 4.3, "ttft_p95_s": 468.193, "itl_p95_ms": 1800.6, "kv_usage_max": 0.9942, "preemptions": 2.0}, {"evidence_id": "M101", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 200000, "concurrency": 1, "cache_mode": "cached", "per_stream_tok_s_median": 75.9, "aggregate_output_tok_s": 61.1, "ttft_p95_s": 0.805, "itl_p95_ms": 26.8, "kv_usage_max": 0.1901, "preemptions": 0.0}, {"evidence_id": "M102", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 200000, "concurrency": 4, "cache_mode": "cached", "per_stream_tok_s_median": 55.3, "aggregate_output_tok_s": 164.8, "ttft_p95_s": 2.085, "itl_p95_ms": 33.0, "kv_usage_max": 0.2119, "preemptions": 0.0}, {"evidence_id": "M103", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 200000, "concurrency": 8, "cache_mode": "cached", "per_stream_tok_s_median": 38.7, "aggregate_output_tok_s": 227.5, "ttft_p95_s": 3.618, "itl_p95_ms": 43.6, "kv_usage_max": 0.2308, "preemptions": 0.0}, {"evidence_id": "M104", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 200000, "concurrency": 12, "cache_mode": "cached", "per_stream_tok_s_median": 30.9, "aggregate_output_tok_s": 265.0, "ttft_p95_s": 5.258, "itl_p95_ms": 51.7, "kv_usage_max": 0.2583, "preemptions": 0.0}, {"evidence_id": "M105", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 200000, "concurrency": 16, "cache_mode": "cached", "per_stream_tok_s_median": 28.3, "aggregate_output_tok_s": 243.0, "ttft_p95_s": 12.533, "itl_p95_ms": 52.2, "kv_usage_max": 0.2583, "preemptions": 0.0}, {"evidence_id": "M106", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 200000, "concurrency": 24, "cache_mode": "cached", "per_stream_tok_s_median": 25.8, "aggregate_output_tok_s": 275.9, "ttft_p95_s": 15.541, "itl_p95_ms": 52.7, "kv_usage_max": 0.2583, "preemptions": 0.0}, {"evidence_id": "M107", "host": "rig", "phase_tag": "QB-rig", "model": "qwen3.8-27b", "context_target_tokens": 200000, "concurrency": 32, "cache_mode": "cached", "per_stream_tok_s_median": 25.3, "aggregate_output_tok_s": 269.6, "ttft_p95_s": 24.496, "itl_p95_ms": 54.0, "kv_usage_max": 0.2583, "preemptions": 0.0}], "flash": [{"workload": "full window: ~254K prompt, 8,192 output tokens, one request", "profile": "Frozen EXL", "quantization": "EXL3 2.50", "cache": "Quant8", "gpus": 2, "mode": "cold", "prompt_tokens": 253952, "output_tokens": 8192, "wall_tok_s": 131.50802990523357, "wall_seconds": 62.29277410591021, "ttft_seconds": 38.756553784012794}, {"workload": "full window: ~254K prompt, 8,192 output tokens, one request", "profile": "Frozen EXL", "quantization": "EXL3 2.50", "cache": "Quant8", "gpus": 2, "mode": "warm", "prompt_tokens": 253952, "output_tokens": 8192, "wall_tok_s": 341.3037495659041, "wall_seconds": 24.00208028894849, "ttft_seconds": 1.4291184929898009}, {"workload": "full window: ~254K prompt, 8,192 output tokens, one request", "profile": "Tuned EXL", "quantization": "EXL3 2.50", "cache": "Quant8", "gpus": 2, "mode": "cold", "prompt_tokens": 253952, "output_tokens": 8192, "wall_tok_s": 136.67608003388736, "wall_seconds": 59.93733503308613, "ttft_seconds": 38.52612456004135}, {"workload": "full window: ~254K prompt, 8,192 output tokens, one request", "profile": "Tuned EXL", "quantization": "EXL3 2.50", "cache": "Quant8", "gpus": 2, "mode": "warm", "prompt_tokens": 253952, "output_tokens": 8192, "wall_tok_s": 371.9796256329185, "wall_seconds": 22.022711555939168, "ttft_seconds": 1.4781194840325043}, {"workload": "full window: ~254K prompt, 8,192 output tokens, one request", "profile": "Strata serial", "quantization": "GSQ IQ3_XXS", "cache": "INT8", "gpus": 2, "mode": "cold", "prompt_tokens": 253943, "output_tokens": 8192, "wall_tok_s": 147.97840141069352, "wall_seconds": 55.35943030810449, "ttft_seconds": 27.562829514034092}, {"workload": "full window: ~254K prompt, 8,192 output tokens, one request", "profile": "Strata serial", "quantization": "GSQ IQ3_XXS", "cache": "INT8", "gpus": 2, "mode": "warm", "prompt_tokens": 253943, "output_tokens": 8192, "wall_tok_s": 292.1141084845735, "wall_seconds": 28.043835480930284, "ttft_seconds": 1.5177656019805}, {"workload": "full window: ~254K prompt, 8,192 output tokens, one request", "profile": "NInfer-ext", "quantization": "custom EXL3 3.5", "cache": "FP8", "gpus": 1, "mode": "cold", "prompt_tokens": 253952, "output_tokens": 8192, "wall_tok_s": 28.208987305144934, "wall_seconds": 290.40390253590886, "ttft_seconds": 101.90239312092308}, {"workload": "full window: ~254K prompt, 8,192 output tokens, one request", "profile": "Stock llama.cpp", "quantization": "GSQ IQ3_XXS", "cache": "q8_0", "gpus": 2, "mode": "cold", "prompt_tokens": 253950, "output_tokens": 8192, "wall_tok_s": 20.250885298796316, "wall_seconds": 404.5255246439483, "ttft_seconds": 163.5513619859703}, {"workload": "full window: ~254K prompt, 8,192 output tokens, one request", "profile": "BeeLlama", "quantization": "GSQ IQ3_XXS", "cache": "q8_0", "gpus": 2, "mode": "cold", "prompt_tokens": 253950, "output_tokens": 8192, "wall_tok_s": 17.812060727053534, "wall_seconds": 459.9130962740164, "ttft_seconds": 213.1621092199348}], "models": {"nex-n2.5-mini": "ProCreations/Nex-N2.5-mini-NVFP4", "qwen3.8-27b": "unsloth/Qwen3.8-27B-NVFP4"}, "links": {"moe_ds": "https://huggingface.co/datasets/Scalably/moe-vs-dense-vllm-rtx5090", "flash_ds": "https://huggingface.co/datasets/Scalably/qwen-flash-dual-5090-serving", "moe_article": "https://scalably.io/blog/moe-vs-dense-llm-inference-vllm-benchmark-rtx-5090", "flash_article": "https://scalably.io/blog/qwen-flash-next-dual-rtx-5090-serving-benchmark", "org": "https://huggingface.co/Scalably"}}</script>
<script>
const D=JSON.parse(document.getElementById('data').textContent);
const st={ctx:'60000',mode:'cached',host:'QB'};
const tip=document.getElementById('tip');
const fmt=(v,d=1)=>v==null?'–':Number(v).toLocaleString('en-US',{maximumFractionDigits:d,minimumFractionDigits:d});
function showTip(e,t){tip.textContent=t;tip.style.opacity=1;const x=Math.min(e.clientX+12,innerWidth-tip.offsetWidth-8);tip.style.left=x+'px';tip.style.top=(e.clientY-36)+'px'}
function hideTip(){tip.style.opacity=0}
const NS='http://www.w3.org/2000/svg';
function el(n,a,p){const e=document.createElementNS(NS,n);for(const k in a)e.setAttribute(k,a[k]);p&&p.appendChild(e);return e}
function niceStep(v){const raw=v/4,p=Math.pow(10,Math.floor(Math.log10(raw)));for(const m of[1,2,2.5,5,10])if(m*p>=raw)return m*p}
function niceMax(v){const st=niceStep(v);return Math.ceil(v/st)*st}
function lineChart(host,title,series,yKey,unit){
host.innerHTML='';const W=Math.max(300,Math.min(520,host.clientWidth||520)),H=W<420?260:300,m={l:46,r:92,t:28,b:36};
const svg=el('svg',{viewBox:`0 0 ${W} ${H}`,role:'img'},host);
const pts=series.flatMap(s=>s.rows.map(r=>r[yKey]));
el('text',{x:0,y:14,class:'ptitle'},svg).textContent=title;
if(!pts.length){el('text',{x:W/2,y:H/2,'text-anchor':'middle',class:'empty'},svg).textContent='Not measured for this combination';svg.setAttribute('aria-label',title+': not measured');return}
const xs=[1,4,8,12,16,24,32],X=c=>m.l+(c-1)/31*(W-m.l-m.r),ymax=niceMax(Math.max(...pts)),Y=v=>H-m.b-(v/ymax)*(H-m.t-m.b);
const step=niceStep(Math.max(...pts));for(let v=0;v<=ymax+1e-9;v+=step){el('line',{x1:m.l,x2:W-m.r,y1:Y(v),y2:Y(v),stroke:'var(--grid)'},svg);el('text',{x:m.l-8,y:Y(v)+4,'text-anchor':'end',class:'tick'},svg).textContent=fmt(v,0)}
xs.forEach(c=>el('text',{x:X(c),y:H-m.b+18,'text-anchor':'middle',class:'tick'},svg).textContent=c);
el('text',{x:(m.l+W-m.r)/2,y:H-2,'text-anchor':'middle',class:'tick'},svg).textContent='concurrent requests';
const aria=[],ends=[];
series.forEach(s=>{const r=s.rows.slice().sort((a,b)=>a.concurrency-b.concurrency);if(!r.length)return;
el('path',{d:r.map((p,i)=>(i?'L':'M')+X(p.concurrency)+' '+Y(p[yKey])).join(''),fill:'none',stroke:s.color,'stroke-width':2.5,'stroke-linecap':'round','stroke-linejoin':'round','stroke-dasharray':s.dash||''},svg);
r.forEach(p=>{const g=el('g',{tabindex:0},svg);el('circle',{cx:X(p.concurrency),cy:Y(p[yKey]),r:4,fill:s.hollow?'var(--card)':s.color,stroke:s.hollow?s.color:'var(--card)','stroke-width':s.hollow?2:2},g);
const hit=el('circle',{cx:X(p.concurrency),cy:Y(p[yKey]),r:12,fill:'transparent'},g);const t=`${s.name} · ${p.concurrency} request${p.concurrency===1?'':'s'} · ${fmt(p[yKey])} ${unit} · ${p.evidence_id}`;
hit.addEventListener('mousemove',e=>showTip(e,t));hit.addEventListener('mouseleave',hideTip);g.addEventListener('focus',()=>{const b=g.getBoundingClientRect();showTip({clientX:b.x,clientY:b.y},t)});g.addEventListener('blur',hideTip)});
const last=r[r.length-1];ends.push({x:X(last.concurrency)+8,y:Y(last[yKey])+4,t:`${s.short} ${fmt(last[yKey])}`});
aria.push(`${s.name} from ${fmt(r[0][yKey])} at ${r[0].concurrency} to ${fmt(last[yKey])} ${unit} at ${last.concurrency} requests`)});
ends.sort((a,b)=>a.y-b.y);for(let i=1;i<ends.length;i++)if(ends[i].y-ends[i-1].y<14){const mid=(ends[i].y+ends[i-1].y)/2;ends[i-1].y=mid-7;ends[i].y=mid+7}
ends.forEach(e=>el('text',{x:e.x,y:e.y,class:'lab'},svg).textContent=e.t);
svg.setAttribute('aria-label',title+'. '+aria.join('; '));
el('text',{x:W,y:H-2,'text-anchor':'end',class:'tick'},svg).innerHTML='scalably<tspan fill="var(--subject)">.</tspan>io';
}
function table(host,cols,rows){host.innerHTML='<table><thead><tr>'+cols.map(c=>`<th>${c[0]}</th>`).join('')+'</tr></thead><tbody>'+rows.map(r=>'<tr>'+cols.map(c=>`<td>${c[1](r)}</td>`).join('')+'</tr>').join('')+'</tbody></table>'}
function renderMoe(){
const sel=r=>String(r.context_target_tokens)===st.ctx&&r.cache_mode===st.mode;
const nex=D.moe.filter(r=>r.phase_tag==='B'&&sel(r)),qw=D.moe.filter(r=>r.phase_tag===st.host&&sel(r));
const S=[{name:'Nex-N2.5-mini (MoE)',short:'MoE',rows:nex,color:'var(--subject)'},{name:'Qwen3.8-27B (dense)',short:'Dense',rows:qw,color:'var(--compare)',dash:'6 5',hollow:true}];
lineChart(document.getElementById('p1'),'Per-stream decode, tok/s (median)',S,'per_stream_tok_s_median','tok/s');
lineChart(document.getElementById('p2'),'Aggregate output, tok/s',S,'aggregate_output_tok_s','tok/s');
const pre=[...nex,...qw].filter(r=>r.preemptions>0);
document.getElementById('moe-note').textContent=(qw.length?'':'The dense model was not measured for this combination on this host. ')+(pre.length?`Preemptions in this view: ${pre.map(r=>r.evidence_id+' ('+r.preemptions+')').join(', ')}.`:'No preemptions in this view.')+(st.host==='QB-rig'?' The rig kept serving production traffic at higher priority during these cells.':'');
table(document.getElementById('moe-table'),[['Row',r=>r.evidence_id],['Model',r=>r.model],['Host',r=>r.host],['Requests',r=>r.concurrency],['Per-stream tok/s',r=>fmt(r.per_stream_tok_s_median)],['Aggregate tok/s',r=>fmt(r.aggregate_output_tok_s)],['TTFT p95 s',r=>fmt(r.ttft_p95_s,2)],['ITL p95 ms',r=>fmt(r.itl_p95_ms)],['KV max',r=>fmt(r.kv_usage_max*100,0)+'%'],['Preempt',r=>r.preemptions]],[...nex,...qw].sort((a,b)=>a.model.localeCompare(b.model)||a.concurrency-b.concurrency));
}
function bars(host,title,rows){
host.innerHTML='';const W=Math.max(300,Math.min(520,host.clientWidth||520)),rowH=34,m={l:W<420?118:150,r:58,t:30,b:10},H=m.t+rows.length*rowH+m.b;const svg=el('svg',{viewBox:`0 0 ${W} ${H}`,role:'img'},host);
el('text',{x:0,y:14,class:'ptitle'},svg).textContent=title;
const max=niceMax(Math.max(...rows.map(r=>r.wall_tok_s))),X=v=>m.l+v/max*(W-m.l-m.r);
rows.forEach((r,i)=>{const y=m.t+i*rowH;el('text',{x:m.l-10,y:y+rowH/2+4,'text-anchor':'end',class:'lab'},svg).textContent=r.profile+(r.gpus===1?' (1 GPU)':'');
const w=Math.max(4,X(r.wall_tok_s)-m.l);const g=el('g',{tabindex:0},svg);
el('path',{d:`M${m.l} ${y+8}h${w-4}a4 4 0 0 1 4 4v${rowH-24}a4 4 0 0 1 -4 4h-${w-4}z`,fill:i===0?'var(--subject)':'var(--compare)'},g);
const t=`${r.profile} · ${r.quantization} / ${r.cache} · ${fmt(r.wall_tok_s)} wall tok/s · first token ${fmt(r.ttft_seconds)} s`;
g.addEventListener('mousemove',e=>showTip(e,t));g.addEventListener('mouseleave',hideTip);g.addEventListener('focus',()=>{const b=g.getBoundingClientRect();showTip({clientX:b.x,clientY:b.y},t)});g.addEventListener('blur',hideTip);
el('text',{x:m.l+w+6,y:y+rowH/2+4,class:'tick'},svg).textContent=fmt(r.wall_tok_s)});
svg.setAttribute('aria-label',title+'. '+rows.map(r=>`${r.profile} ${fmt(r.wall_tok_s)}`).join('; '));
}
function renderFlash(){
const by=m=>D.flash.filter(r=>r.mode===m).sort((a,b)=>b.wall_tok_s-a.wall_tok_s);
bars(document.getElementById('f1'),'Cold, wall tok/s',by('cold'));bars(document.getElementById('f2'),'Warm repeat, wall tok/s',by('warm'));
table(document.getElementById('flash-table'),[['Profile',r=>r.profile],['Quant / cache',r=>r.quantization+' / '+r.cache],['GPUs',r=>r.gpus],['Mode',r=>r.mode],['Wall tok/s',r=>fmt(r.wall_tok_s)],['First token s',r=>fmt(r.ttft_seconds)]],D.flash);
}
document.querySelectorAll('.seg').forEach(g=>{const k=g.dataset.k;g.querySelectorAll('button').forEach(b=>{b.setAttribute('aria-pressed',b.dataset.v===st[k]);b.onclick=()=>{st[k]=b.dataset.v;g.querySelectorAll('button').forEach(x=>x.setAttribute('aria-pressed',x===b));renderMoe()}})});
renderMoe();renderFlash();
let rt;addEventListener('resize',()=>{clearTimeout(rt);rt=setTimeout(()=>{renderMoe();renderFlash()},150)});
</script></body></html>