Tell us what you want it to do. We'll pick the models, work out the hardware they need, and show the machines you can buy today.
Step 1:What do you want it to do?
Pick one or more. 3 selected
How quick should answers be?4.85 or more tokens a second (your number)
How much should it read at once?32,768 tokens
What's your budget?Optional. Models that only run on pricier machines stay in the list, dimmed.
Step 2:The models we'd use
Ranking every model for your jobs and checking which machines run them…
Step 3:What it takes, and machines you can buy
Working out the memory your plan needs…
Step 2:The models we'd use
Every model we track for each job, best score first. Pick any one a machine can run; we start you on the best of those that run together. Models too big for any desktop, and models too slow on every machine at your speed setting, stay in the list, with ways to use them in the cloud. Sizes include working space for what you chose in Step 1.
Code 19 models, ranked by SciCode
Size · Runs on
How the Code list is ranked and sized
Every model we track for each job is listed, best on-task score first, unscored ones after with why. You can choose a model when a machine you can buy today runs it at your speed — within your budget when you set one. We start you on the best set that runs together on one machine you can buy: job by job, the best-scoring model that still leaves room for the jobs after it. A better model passed over says why; a job that can't fit alongside the others is marked, and the rest are chosen without it. A GGUF model used for Images or Speech also loads a projector file whose size is not recorded yet: it is not counted, so a set that needs one is marked not confirmed, with the room each machine leaves for it.
Ranked by SciCode (Artificial Analysis run) (% of subproblems solved, higher is better), run by Artificial Analysis. Code that has to run and pass tests, scored by an independent board on every coding model we track.
Checked against 89 machines: 40 ready-made (priced or not) and 49 builds put together from parts with a current price. A part with no current price is in no build, so a graphics card we have no price for does not count here. Judged at ≥ 4.85 tok/s.
Cloud options under a locked model: Up to 3, cheapest first: services that run this exact model and charge per token (matched on its Hugging Face id, or the model name the provider lists), then rented GPU servers whose GPU memory holds it at your settings — on-demand before spot, since a spot server can be taken back. Each at its latest observed price; prices checked in the last 36 hours come before older ones.
46 GPU server offers don't state GPU memory (Together AI, Azure, Nebius, Oracle OCI, Hyperbolic, GCP, Paperspace (DigitalOcean), DigitalOcean), so they were not considered.
A spot server costs less — Azure Standard_ND96isr_MI300X_v5 at $8.8704 an hour — but the provider can take it back mid-run, so on-demand servers are listed first.
Images
Qwen3.8-Flash-NextMMMU-Pro 79.8 — best a machine runs; Kimi K3 (80.5) is cloud only · 35 models
The first reply to a long prompt is the slow one — the machine has to read all of it. Kept cached, every model stays loaded with its conversation, so follow-ups only read what is new and switching jobs reloads nothing.
First reply to a long promptWorking it out on the first machine below…
Follow-up repliesOnly new text is read
Memory for AI306 GB, 4.7 GB of it cacheShow the work
Step 3:What it takes, and machines you can buy
What it takes
Your setup needs 306 GB of memory for AI, and 4.85 or more tokens a second.
That includes 4.7 GB of conversation cache. A Mac with 512 GB or more has room for all three at once.
Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
256 GB512 GB
(opens in a new tab)
$3.00 in · $15.00 out per 1M tokens
Use it as a service: Together AI runs Kimi K3 and charges per token.
A spot server costs less — CoreWeave NVIDIA HGX B300 x8 at $35.84 an hour — but the provider can take it back mid-run, so on-demand servers are listed first.
SciCode (Artificial Analysis run): 51.6 (% of subproblems solved). The best we track on it is Kimi K3 at 59.5; 19 models for this job have a score on it. Score source (opens in a new tab)
Memory it needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
11 layers keep a full KV cache, 34 linear-attention/SSM layers keep only a constant-size state (treated as negligible).
Runtime overhead: estimate — Arithmetic that also depends on a tunable assumption, listed below.
overhead_gb = weights_gb × overhead_fraction
overhead_gb = 156.82 × 0.08 = 12.55 GB
overhead_fraction
0.08 — Settings (SPEC §8.1 default 0.08)
Runtime buffers, activations, and allocator slack approximated as a fraction of weights.
Runs on 52 machines you can buy today, from at least $4,061 (CPU only · EPYC 9015 · 8× M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM). 1 Mac and 1 mini PC also run it but have no current price.
DeepSeek-V4.1-Flash is not fully onboarded yet (missing: no quantized repos listed (GGUF/MLX) — only the native checkpoint can be sized; Plan asks for quant "4bit" but no sized quantization of DeepSeek-V4.1-Flash has that name).
at least $1,269 — Framework Desktop DIY Edition (Ryzen AI Max 385), 32GB, 10 tok/s
GLM-5.3-Flash
169.736978848 GB
Qwen3.8-Flash-Next
129.48808638719998 GB
Qwen3-ASR 1.7B
5.77887773952 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
The cheapest that runs all three together is 1× Radeon AI PRO R9700 32GB (32358-01-20G) · EPYC 9015 · 8× M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM, with 517 GB for AI: GLM-5.3-Flash 13.3 tokens a second, Qwen3.8-Flash-Next 4.9 tokens a second, Qwen3-ASR 1.7B 89.6 tokens a second.
At least$6,328
SabrePC, Newegg and 1 more ·Out of stock
via access tier 2, route sabrepc_ngstate; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · SabrePC, Newegg, ARCTIC don't show shipping until checkout.
With no current price, so not counted: Apple Mac Studio (2026), M5 Ultra 36-core CPU / 80-core GPU, 512GB (Rig total needs a landed price for every part; missing: Apple Mac Studio (2026), M5 Ultra 36-core CPU / 80-core GPU, 512GB.).
Memory: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Every model stays loaded with its own conversation cache (Keep cached).
16 GB Mac (Apple Mac mini (2026), M6, 16GB): derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
unified memory 12 = 12 GB
unified memory.usable_gb
12 GB — 16 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
24 GB Mac (Apple Mac mini (2026), M5 Pro 15-core CPU / 16-core GPU, 24GB, and 1 more of this size): derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
unified memory 18 = 18 GB
unified memory.usable_gb
18 GB — 24 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
32 GB Mac (Apple Mac mini (2026), M6, 32GB): derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
unified memory 24 = 24 GB
unified memory.usable_gb
24 GB — 32 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
36 GB Mac (Apple Mac Studio (2026), M5 Max 18-core CPU / 32-core GPU, 36GB): derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
unified memory 27 = 27 GB
unified memory.usable_gb
27 GB — 36 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
48 GB Mac (Apple Mac Studio (2026), M5 Max 18-core CPU / 40-core GPU, 48GB, and 1 more of this size): derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
unified memory 36 = 36 GB
unified memory.usable_gb
36 GB — 48 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
64 GB Mac (Apple Mac Studio (2026), M5 Max 18-core CPU / 40-core GPU, 64GB, and 2 more of this size): derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
unified memory 48 = 48 GB
unified memory.usable_gb
48 GB — 64 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
96 GB Mac (Apple Mac Studio (2025), M3 Ultra 28-core CPU / 60-core GPU, 96GB, and 3 more of this size): derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
unified memory 72 = 72 GB
unified memory.usable_gb
72 GB — 96 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
128 GB Mac (Apple Mac Studio (2026), M5 Max 18-core CPU / 40-core GPU, 128GB): derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
unified memory 96 = 96 GB
unified memory.usable_gb
96 GB — 128 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
256 GB Mac (Apple Mac Studio (2026), M5 Ultra 30-core CPU / 64-core GPU, 256GB, and 1 more of this size): derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
unified memory 192 = 192 GB
unified memory.usable_gb
192 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
512 GB Mac (Apple Mac Studio (2026), M5 Ultra 36-core CPU / 80-core GPU, 512GB): derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
unified memory 384 = 384 GB
unified memory.usable_gb
384 GB — 512 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
Already have a computer?
Check it first — it may already run your setup.
Prices are before sales tax — add a ZIP code to include it.
Sort
Checking every machine against your plan…
Link machines together
Run models too big for one machine by joining two or more. Needs extra cabling.
Coming later
First reply, 32,768-token prompt56.7 secondsQwen3.8-Flash-Next (Images) on 1× Radeon AI PRO R9700 32GB (32358-01-20G) · EPYC 9015 · 8× M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM, the first machine below.Show the work
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
30 machines run your setup. Speeds are tokens a second; prices are before sales tax (see Deliver to, above). 1 more machine would run it but has no current price.
Best value
1× Radeon AI PRO R9700 32GB (32358-01-20G) · EPYC 9015 · 8× M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM
Build your own · 517 GB for AI · 212 GB to spare
Code
13.3
Images
4.9
Speech
89.6
At least$6,328
SabrePC, Newegg and 1 more ·Out of stock
via access tier 2, route sabrepc_ngstate; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
1× Radeon AI PRO R9700 Creator 32GB (R9700 CT) · EPYC 9015 · 8× M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM
Build your own · 517 GB for AI · 212 GB to spare
Code
13.3
Images
4.9
Speech
89.6
At least$6,424
SabrePC, Newegg and 1 more ·Out of stock
via access tier 2, route sabrepc_ngstate; access tier 2, route seed:research; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
2× Radeon AI PRO R9700 32GB (32358-01-20G) · EPYC 9015 · 8× M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM
Build your own · 305 GB for AI · 0.2 GB to spare
Code
15.4
Images
5.5
Speech
89.6
At least$7,270
SabrePC, Newegg and 1 more ·Out of stock
via access tier 2, route sabrepc_ngstate; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
2× Radeon AI PRO R9700 Creator 32GB (R9700 CT) · EPYC 9015 · 8× M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM
Build your own · 305 GB for AI · 0.2 GB to spare
Code
15.4
Images
5.5
Speech
89.6
At least$7,462
Newegg, SabrePC and 1 more ·Out of stock
via access tier 2, route seed:research; access tier 2, route sabrepc_ngstate; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · Newegg, SabrePC, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
3× Radeon AI PRO R9700 32GB (32358-01-20G) · EPYC 9015 · 8× M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM
Build your own · 336 GB for AI · 31 GB to spare
Code
18.2
Images
6.3
Speech
89.6
At least$8,875
SabrePC, Newegg and 1 more ·Out of stock
via access tier 2, route sabrepc_ngstate; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
3× Radeon AI PRO R9700 Creator 32GB (R9700 CT) · EPYC 9015 · 8× M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM
Build your own · 336 GB for AI · 31 GB to spare
Code
18.2
Images
6.3
Speech
89.6
At least$9,162
Newegg, SabrePC and 1 more ·Out of stock
via access tier 2, route seed:research; access tier 2, route sabrepc_ngstate; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · Newegg, SabrePC, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
1× Radeon AI PRO R9700 32GB (32358-01-20G) · EPYC 9015 · 8× Server Premier KSM64R52BD4-96MC 96GB DDR5-6400 RDIMM
Build your own · 760 GB for AI · 455 GB to spare
Code
13.3
Images
4.9
Speech
89.6
At least$32,967
SabrePC, Newegg and 1 more ·Out of stock
via access tier 2, route sabrepc_ngstate; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
1× Radeon AI PRO R9700 Creator 32GB (R9700 CT) · EPYC 9015 · 8× Server Premier KSM64R52BD4-96MC 96GB DDR5-6400 RDIMM
Build your own · 760 GB for AI · 455 GB to spare
Code
13.3
Images
4.9
Speech
89.6
At least$33,063
SabrePC, Newegg and 1 more ·Out of stock
via access tier 2, route sabrepc_ngstate; access tier 2, route seed:research; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
1× Radeon AI PRO R9700 Creator 32GB (R9700 CT) · EPYC 9015 · 8× Server Premier KSM64R52BD4-128MB 128GB DDR5-6400 RDIMM
Build your own · 1,003 GB for AI · 698 GB to spare
Code
13.3
Images
4.9
Speech
89.6
At least$35,472
SabrePC, Newegg and 1 more ·Out of stock
via access tier 2, route sabrepc_ngstate; access tier 2, route seed:research; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
1× GeForce RTX 5090 32G GAMING TRIO OC · EPYC 9015 · 8× Server Premier KSM64R52BD4-128MB 128GB DDR5-6400 RDIMM
Build your own · 1,003 GB for AI · 698 GB to spare
Code
13.9
Images
5.4
Speech
200
At least$38,872
SabrePC, Newegg and 1 more ·Out of stock
via access tier 2, route sabrepc_ngstate; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
1× RTX PRO 6000 Blackwell Workstation Edition, 96GB · EPYC 9015 · 8× Server Premier KSM64R52BD4-96MC 96GB DDR5-6400 RDIMM
Build your own · 822 GB for AI · 517 GB to spare
Code
22.2
Images
10.1
Speech
200
At least$42,159
SabrePC, Newegg and 1 more ·Out of stock
via access tier 2, route sabrepc_ngstate; access tier 3, route newegg_realtime; access tier 1, route arctic_jsonld (landed, before sales tax) · SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
CPU only · EPYC 9015 · 8× M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM (at least $4,723) fits everything, but Qwen3.8-Flash-Next (Images) runs at 4.4 tokens a second — below ≥ 4.85 tok/s. That counts measured memory only: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded. Show slower machines (at least 4.35 tokens a second)
1× Radeon AI PRO R9700 32GB (32358-01-20G) · EPYC 9015 · 8× M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM (at least $5,665) fits only if you load models when needed: keeping all of them cached needs 305 GB, it has 274.2 GB for AI. That counts measured memory only: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded. Switch to load when needed
1× Radeon AI PRO R9700 Creator 32GB (R9700 CT) · EPYC 9015 · 8× M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM (at least $5,761) fits only if you load models when needed: keeping all of them cached needs 305 GB, it has 274.2 GB for AI. That counts measured memory only: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded. Switch to load when needed
1× AI TOP Radeon AI PRO R9700 32GB (GV-R9700AI TOP-32GD) · EPYC 9015 · 8× M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM (at least $5,772) fits only if you load models when needed: keeping all of them cached needs 305 GB, it has 274.2 GB for AI. That counts measured memory only: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded. Switch to load when needed
1× GeForce RTX 5080 16G SHADOW 3X OC · EPYC 9015 · 8× M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM (at least $6,413) fits everything, but Qwen3.8-Flash-Next (Images) runs at 4.7 tokens a second — below ≥ 4.85 tok/s. That counts measured memory only: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded. Show slower machines (at least 4.7 tokens a second)
1× GeForce RTX 5080 WINDFORCE OC 16G (GV-N5080WF3OC-16GD) · EPYC 9015 · 8× M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM (at least $6,423) fits everything, but Qwen3.8-Flash-Next (Images) runs at 4.7 tokens a second — below ≥ 4.85 tok/s. That counts measured memory only: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
About this search
89 machines checked (89 evaluated); 83 part combinations skipped as incompatible. 30 priced machines of any kind run your plan, budget aside.
1333 platform combinations were collapsed. For each socket and memory size the search carries the CHEAPEST build and, when it is a different part, the one with the most CPU compute (which is what prefill depends on); the rest differ only in price.
8 CPU+GPU hybrid candidates were the same parts as a GPU rig already in the list and are listed once.
1 more machine of this kind would run your setup but has no current price, so it is not listed.
Machine results are reused within the same minute while no price, part, offer, model or setting has changed. Prices are aged as of the start of that minute, so a price passing the 36-hour freshness line is flagged up to 60 seconds late. Evaluated at , in 720 ms.
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603 — placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 486.4 = 517.44 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
486.4 GB — 512 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 517.44 − 305 = 212.44 GB
usable_gb
517.4399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $6,328 / 4.86 tok/s = $1,303.36/tok/s
landed_cost
6328.28 USD
decode_tok_s
4.855340208220114 tok/s
Where each part is bought
Samsung M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
Sapphire Radeon AI PRO R9700 32GB (32358-01-20G): SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
The price is a floor: SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Show the work
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 486.4 = 517.44 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
486.4 GB — 512 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 517.44 − 305 = 212.44 GB
usable_gb
517.4399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $6,424 / 4.86 tok/s = $1,323.07/tok/s
landed_cost
6423.96 USD
decode_tok_s
4.855340208220114 tok/s
Where each part is bought
Samsung M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Radeon AI PRO R9700 Creator 32GB (R9700 CT): Newegg (opens in a new tab), shipped, checked , access tier 2, route seed:research
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603 — placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 486.4 = 517.44 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
486.4 GB — 512 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 517.44 − 305 = 212.44 GB
usable_gb
517.4399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $6,435 / 4.86 tok/s = $1,325.32/tok/s
landed_cost
6434.86 USD
decode_tok_s
4.855340208220114 tok/s
Where each part is bought
Samsung M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
GIGABYTE AI TOP Radeon AI PRO R9700 32GB (GV-R9700AI TOP-32GD): SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.3657 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.6343 — placement
per_token_overhead_ms
28.872107066297204 ms — derived: 0.366 × 1.58 ms (GPU VRAM) + 0.634 × 44.61 ms (System RAM) = 28.87 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.4794 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.5206 — placement
per_token_overhead_ms
23.980284367226076 ms — derived: 0.479 × 1.58 ms (GPU VRAM) + 0.521 × 44.61 ms (System RAM) = 23.98 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 62.08 + System RAM 243.2 = 305.28 GB
GPU VRAM.usable_gb
62.08 GB — 64 GB physical
System RAM.usable_gb
243.2 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 305.28 − 305 = 0.28 GB
usable_gb
305.28 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $7,270 / 5.48 tok/s = $1,325.66/tok/s
landed_cost
7270.19 USD
decode_tok_s
5.48418941023314 tok/s
Where each part is bought
Sapphire Radeon AI PRO R9700 32GB (32358-01-20G): SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
Samsung M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
The price is a floor: SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Show the work
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.3657 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.6343 — placement
per_token_overhead_ms
28.872107066297204 ms — derived: 0.366 × 1.58 ms (GPU VRAM) + 0.634 × 44.61 ms (System RAM) = 28.87 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.4794 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.5206
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 62.08 + System RAM 243.2 = 305.28 GB
GPU VRAM.usable_gb
62.08 GB — 64 GB physical
System RAM.usable_gb
243.2 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 305.28 − 305 = 0.28 GB
usable_gb
305.28 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $7,462 / 5.48 tok/s = $1,360.56/tok/s
landed_cost
7461.55 USD
decode_tok_s
5.48418941023314 tok/s
Where each part is bought
ASRock Radeon AI PRO R9700 Creator 32GB (R9700 CT): Newegg (opens in a new tab), shipped, checked , access tier 2, route seed:research
Samsung M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.3657 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.6343 — placement
per_token_overhead_ms
28.872107066297204 ms — derived: 0.366 × 1.58 ms (GPU VRAM) + 0.634 × 44.61 ms (System RAM) = 28.87 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.4794 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.5206 — placement
per_token_overhead_ms
23.980284367226076 ms — derived: 0.479 × 1.58 ms (GPU VRAM) + 0.521 × 44.61 ms (System RAM) = 23.98 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 62.08 + System RAM 243.2 = 305.28 GB
GPU VRAM.usable_gb
62.08 GB — 64 GB physical
System RAM.usable_gb
243.2 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 305.28 − 305 = 0.28 GB
usable_gb
305.28 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $7,483 / 5.48 tok/s = $1,364.53/tok/s
landed_cost
7483.35 USD
decode_tok_s
5.48418941023314 tok/s
Where each part is bought
GIGABYTE AI TOP Radeon AI PRO R9700 32GB (GV-R9700AI TOP-32GD): SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
Samsung M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.5486 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.4514 — placement
per_token_overhead_ms
21.003160599445806 ms — derived: 0.549 × 1.58 ms (GPU VRAM) + 0.451 × 44.61 ms (System RAM) = 21 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.7191 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.2809 — placement
per_token_overhead_ms
13.665426550839111 ms — derived: 0.719 × 1.58 ms (GPU VRAM) + 0.281 × 44.61 ms (System RAM) = 13.67 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 93.12 + System RAM 243.2 = 336.32 GB
GPU VRAM.usable_gb
93.12 GB — 96 GB physical
System RAM.usable_gb
243.2 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 336.32 − 305 = 31.32 GB
usable_gb
336.32 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $8,875 / 6.3 tok/s = $1,408.61/tok/s
landed_cost
8874.5 USD
decode_tok_s
6.300168464547592 tok/s
Where each part is bought
Sapphire Radeon AI PRO R9700 32GB (32358-01-20G): SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
Samsung M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
The price is a floor: SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Show the work
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.5486 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.4514 — placement
per_token_overhead_ms
21.003160599445806 ms — derived: 0.549 × 1.58 ms (GPU VRAM) + 0.451 × 44.61 ms (System RAM) = 21 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.7191 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.2809
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 93.12 + System RAM 243.2 = 336.32 GB
GPU VRAM.usable_gb
93.12 GB — 96 GB physical
System RAM.usable_gb
243.2 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 336.32 − 305 = 31.32 GB
usable_gb
336.32 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $9,162 / 6.3 tok/s = $1,454.17/tok/s
landed_cost
9161.54 USD
decode_tok_s
6.300168464547592 tok/s
Where each part is bought
ASRock Radeon AI PRO R9700 Creator 32GB (R9700 CT): Newegg (opens in a new tab), shipped, checked , access tier 2, route seed:research
Samsung M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.5486 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.4514 — placement
per_token_overhead_ms
21.003160599445806 ms — derived: 0.549 × 1.58 ms (GPU VRAM) + 0.451 × 44.61 ms (System RAM) = 21 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.7191 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.2809 — placement
per_token_overhead_ms
13.665426550839111 ms — derived: 0.719 × 1.58 ms (GPU VRAM) + 0.281 × 44.61 ms (System RAM) = 13.67 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 93.12 + System RAM 243.2 = 336.32 GB
GPU VRAM.usable_gb
93.12 GB — 96 GB physical
System RAM.usable_gb
243.2 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 336.32 − 305 = 31.32 GB
usable_gb
336.32 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $9,194 / 6.3 tok/s = $1,459.36/tok/s
landed_cost
9194.24 USD
decode_tok_s
6.300168464547592 tok/s
Where each part is bought
GIGABYTE AI TOP Radeon AI PRO R9700 32GB (GV-R9700AI TOP-32GD): SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
Samsung M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 2,189.81 = 15 s
prompt_tokens
32768 tokens
prefill_tok_s
2189.81 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603 — placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 633.52 = 51.7 s
prompt_tokens
32768 tokens
prefill_tok_s
633.52 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 21,308.28 = 1.4 s
prompt_tokens
30000 tokens
prefill_tok_s
21308.28 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 486.4 = 517.44 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
486.4 GB — 512 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 517.44 − 305 = 212.44 GB
usable_gb
517.4399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $9,824 / 5.38 tok/s = $1,827.32/tok/s
landed_cost
9823.96 USD
decode_tok_s
5.37615851409029 tok/s
Where each part is bought
MSI GeForce RTX 5090 32G GAMING TRIO OC: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Samsung M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.3657 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.6343 — placement
per_token_overhead_ms
28.872107066297204 ms — derived: 0.366 × 1.58 ms (GPU VRAM) + 0.634 × 44.61 ms (System RAM) = 28.87 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 2,189.81 = 15 s
prompt_tokens
32768 tokens
prefill_tok_s
2189.81 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.4794 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.5206 — placement
per_token_overhead_ms
23.980284367226076 ms — derived: 0.479 × 1.58 ms (GPU VRAM) + 0.521 × 44.61 ms (System RAM) = 23.98 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 633.52 = 51.7 s
prompt_tokens
32768 tokens
prefill_tok_s
633.52 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 21,308.28 = 1.4 s
prompt_tokens
30000 tokens
prefill_tok_s
21308.28 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 62.08 + System RAM 243.2 = 305.28 GB
GPU VRAM.usable_gb
62.08 GB — 64 GB physical
System RAM.usable_gb
243.2 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 305.28 − 305 = 0.28 GB
usable_gb
305.28 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $14,262 / 7.02 tok/s = $2,031.38/tok/s
landed_cost
14261.55 USD
decode_tok_s
7.020617611668886 tok/s
Where each part is bought
MSI GeForce RTX 5090 32G GAMING TRIO OC: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Samsung M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.5486 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.4514 — placement
per_token_overhead_ms
21.003160599445806 ms — derived: 0.549 × 1.58 ms (GPU VRAM) + 0.451 × 44.61 ms (System RAM) = 21 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.7191 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.2809 — placement
per_token_overhead_ms
13.665426550839111 ms — derived: 0.719 × 1.58 ms (GPU VRAM) + 0.281 × 44.61 ms (System RAM) = 13.67 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 93.12 + System RAM 243.2 = 336.32 GB
GPU VRAM.usable_gb
93.12 GB — 96 GB physical
System RAM.usable_gb
243.2 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 336.32 − 305 = 31.32 GB
usable_gb
336.32 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $14,857 / 10.11 tok/s = $1,468.9/tok/s
landed_cost
14857.04 USD
decode_tok_s
10.114414087088528 tok/s
Where each part is bought
NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
Samsung M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.5486 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.4514 — placement
per_token_overhead_ms
21.003160599445806 ms — derived: 0.549 × 1.58 ms (GPU VRAM) + 0.451 × 44.61 ms (System RAM) = 21 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.7191 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.2809 — placement
per_token_overhead_ms
13.665426550839111 ms — derived: 0.719 × 1.58 ms (GPU VRAM) + 0.281 × 44.61 ms (System RAM) = 13.67 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 93.12 + System RAM 486.4 = 579.52 GB
GPU VRAM.usable_gb
93.12 GB — 96 GB physical
System RAM.usable_gb
486.4 GB — 512 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 579.52 − 305 = 274.52 GB
usable_gb
579.52 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $15,519 / 10.11 tok/s = $1,534.39/tok/s
landed_cost
15519.44 USD
decode_tok_s
10.114414087088528 tok/s
Where each part is bought
NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
Samsung M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.5486 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.4514 — placement
per_token_overhead_ms
21.003160599445806 ms — derived: 0.549 × 1.58 ms (GPU VRAM) + 0.451 × 44.61 ms (System RAM) = 21 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.7191 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.2809 — placement
per_token_overhead_ms
13.665426550839111 ms — derived: 0.719 × 1.58 ms (GPU VRAM) + 0.281 × 44.61 ms (System RAM) = 13.67 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 93.12 + System RAM 243.2 = 336.32 GB
GPU VRAM.usable_gb
93.12 GB — 96 GB physical
System RAM.usable_gb
243.2 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 336.32 − 305 = 31.32 GB
usable_gb
336.32 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $15,992 / 10.11 tok/s = $1,581.13/tok/s
landed_cost
15992.18 USD
decode_tok_s
10.114414087088528 tok/s
Where each part is bought
NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
Samsung M321R4GA3BB6-CQK 32GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.5486 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.4514 — placement
per_token_overhead_ms
21.003160599445806 ms — derived: 0.549 × 1.58 ms (GPU VRAM) + 0.451 × 44.61 ms (System RAM) = 21 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.7191 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.2809 — placement
per_token_overhead_ms
13.665426550839111 ms — derived: 0.719 × 1.58 ms (GPU VRAM) + 0.281 × 44.61 ms (System RAM) = 13.67 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 93.12 + System RAM 486.4 = 579.52 GB
GPU VRAM.usable_gb
93.12 GB — 96 GB physical
System RAM.usable_gb
486.4 GB — 512 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 579.52 − 305 = 274.52 GB
usable_gb
579.52 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $16,655 / 10.11 tok/s = $1,646.62/tok/s
landed_cost
16654.58 USD
decode_tok_s
10.114414087088528 tok/s
Where each part is bought
NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
Samsung M321R8GA0BB0-CQK 64GB DDR5-4800 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: 2× NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: 2× NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: 2× NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 186.24 + System RAM 243.2 = 429.44 GB
GPU VRAM.usable_gb
186.24 GB — 192 GB physical
System RAM.usable_gb
243.2 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 429.44 − 305 = 124.44 GB
usable_gb
429.44 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603 — placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 729.6 = 760.64 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
729.5999999999999 GB — 768 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 760.64 − 305 = 455.64 GB
usable_gb
760.6399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $32,967 / 4.86 tok/s = $6,789.94/tok/s
landed_cost
32967.48 USD
decode_tok_s
4.855340208220114 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-96MC 96GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
Sapphire Radeon AI PRO R9700 32GB (32358-01-20G): SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
The price is a floor: SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Show the work
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 729.6 = 760.64 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
729.5999999999999 GB — 768 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 760.64 − 305 = 455.64 GB
usable_gb
760.6399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $33,063 / 4.86 tok/s = $6,809.65/tok/s
landed_cost
33063.16 USD
decode_tok_s
4.855340208220114 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-96MC 96GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Radeon AI PRO R9700 Creator 32GB (R9700 CT): Newegg (opens in a new tab), shipped, checked , access tier 2, route seed:research
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603 — placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 729.6 = 760.64 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
729.5999999999999 GB — 768 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 760.64 − 305 = 455.64 GB
usable_gb
760.6399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $33,074 / 4.86 tok/s = $6,811.89/tok/s
landed_cost
33074.06 USD
decode_tok_s
4.855340208220114 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-96MC 96GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
GIGABYTE AI TOP Radeon AI PRO R9700 32GB (GV-R9700AI TOP-32GD): SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603 — placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 972.8 = 1,003.84 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
972.8 GB — 1,024 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 1,003.84 − 305 = 698.84 GB
usable_gb
1003.8399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $35,377 / 4.86 tok/s = $7,286.12/tok/s
landed_cost
35376.6 USD
decode_tok_s
4.855340208220114 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-128MB 128GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
Sapphire Radeon AI PRO R9700 32GB (32358-01-20G): SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
The price is a floor: SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Show the work
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 972.8 = 1,003.84 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
972.8 GB — 1,024 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 1,003.84 − 305 = 698.84 GB
usable_gb
1003.8399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $35,472 / 4.86 tok/s = $7,305.83/tok/s
landed_cost
35472.28 USD
decode_tok_s
4.855340208220114 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-128MB 128GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Radeon AI PRO R9700 Creator 32GB (R9700 CT): Newegg (opens in a new tab), shipped, checked , access tier 2, route seed:research
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 1,996.44 = 16.4 s
prompt_tokens
32768 tokens
prefill_tok_s
1996.44 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603 — placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 972.8 = 1,003.84 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
972.8 GB — 1,024 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 1,003.84 − 305 = 698.84 GB
usable_gb
1003.8399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $35,483 / 4.86 tok/s = $7,308.07/tok/s
landed_cost
35483.18 USD
decode_tok_s
4.855340208220114 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-128MB 128GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
GIGABYTE AI TOP Radeon AI PRO R9700 32GB (GV-R9700AI TOP-32GD): SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 2,189.81 = 15 s
prompt_tokens
32768 tokens
prefill_tok_s
2189.81 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603 — placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 633.52 = 51.7 s
prompt_tokens
32768 tokens
prefill_tok_s
633.52 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 21,308.28 = 1.4 s
prompt_tokens
30000 tokens
prefill_tok_s
21308.28 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 729.6 = 760.64 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
729.5999999999999 GB — 768 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 760.64 − 305 = 455.64 GB
usable_gb
760.6399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $36,463 / 5.38 tok/s = $6,782.38/tok/s
landed_cost
36463.16 USD
decode_tok_s
5.37615851409029 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-96MC 96GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
MSI GeForce RTX 5090 32G GAMING TRIO OC: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.1829 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.8171 — placement
per_token_overhead_ms
36.74105353314861 ms — derived: 0.183 × 1.58 ms (GPU VRAM) + 0.817 × 44.61 ms (System RAM) = 36.74 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 2,189.81 = 15 s
prompt_tokens
32768 tokens
prefill_tok_s
2189.81 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.2397 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.7603 — placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 633.52 = 51.7 s
prompt_tokens
32768 tokens
prefill_tok_s
633.52 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 21,308.28 = 1.4 s
prompt_tokens
30000 tokens
prefill_tok_s
21308.28 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 31.04 + System RAM 972.8 = 1,003.84 GB
GPU VRAM.usable_gb
31.04 GB — 32 GB physical
System RAM.usable_gb
972.8 GB — 1,024 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 1,003.84 − 305 = 698.84 GB
usable_gb
1003.8399999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $38,872 / 5.38 tok/s = $7,230.49/tok/s
landed_cost
38872.28 USD
decode_tok_s
5.37615851409029 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-128MB 128GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
MSI GeForce RTX 5090 32G GAMING TRIO OC: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: 3× NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: 3× NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: 3× NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 279.36 + System RAM 243.2 = 522.56 GB
GPU VRAM.usable_gb
279.36 GB — 288 GB physical
System RAM.usable_gb
243.2 GB — 256 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 522.56 − 305 = 217.56 GB
usable_gb
522.56 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
The price is a floor: SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.5486 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.4514 — placement
per_token_overhead_ms
21.003160599445806 ms — derived: 0.549 × 1.58 ms (GPU VRAM) + 0.451 × 44.61 ms (System RAM) = 21 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.7191 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.2809 — placement
per_token_overhead_ms
13.665426550839111 ms — derived: 0.719 × 1.58 ms (GPU VRAM) + 0.281 × 44.61 ms (System RAM) = 13.67 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 93.12 + System RAM 729.6 = 822.72 GB
GPU VRAM.usable_gb
93.12 GB — 96 GB physical
System RAM.usable_gb
729.5999999999999 GB — 768 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 822.72 − 305 = 517.72 GB
usable_gb
822.7199999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $42,159 / 10.11 tok/s = $4,168.17/tok/s
landed_cost
42158.64 USD
decode_tok_s
10.114414087088528 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-96MC 96GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
The price is a floor: SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.5486 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.4514 — placement
per_token_overhead_ms
21.003160599445806 ms — derived: 0.549 × 1.58 ms (GPU VRAM) + 0.451 × 44.61 ms (System RAM) = 21 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.7191 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.2809 — placement
per_token_overhead_ms
13.665426550839111 ms — derived: 0.719 × 1.58 ms (GPU VRAM) + 0.281 × 44.61 ms (System RAM) = 13.67 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 93.12 + System RAM 729.6 = 822.72 GB
GPU VRAM.usable_gb
93.12 GB — 96 GB physical
System RAM.usable_gb
729.5999999999999 GB — 768 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 822.72 − 305 = 517.72 GB
usable_gb
822.7199999999999 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $43,294 / 10.11 tok/s = $4,280.4/tok/s
landed_cost
43293.78 USD
decode_tok_s
10.114414087088528 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-96MC 96GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
The price is a floor: SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.5486 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.4514 — placement
per_token_overhead_ms
21.003160599445806 ms — derived: 0.549 × 1.58 ms (GPU VRAM) + 0.451 × 44.61 ms (System RAM) = 21 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.7191 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.2809 — placement
per_token_overhead_ms
13.665426550839111 ms — derived: 0.719 × 1.58 ms (GPU VRAM) + 0.281 × 44.61 ms (System RAM) = 13.67 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 93.12 + System RAM 972.8 = 1,065.92 GB
GPU VRAM.usable_gb
93.12 GB — 96 GB physical
System RAM.usable_gb
972.8 GB — 1,024 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 1,065.92 − 305 = 760.92 GB
usable_gb
1065.92 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $44,568 / 10.11 tok/s = $4,406.36/tok/s
landed_cost
44567.76 USD
decode_tok_s
10.114414087088528 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-128MB 128GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
NVIDIA RTX PRO 6000 Blackwell Workstation Edition, 96GB: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
The price is a floor: SabrePC, Newegg, ARCTIC don't show shipping until checkout.
Speeds are tokens a second for each model on this machine, estimated from its memory bandwidth and calibrated against published benchmarks; each one expands below to its formula and inputs.
GLM-5.3-Flash (Code)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.5486 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.4514 — placement
per_token_overhead_ms
21.003160599445806 ms — derived: 0.549 × 1.58 ms (GPU VRAM) + 0.451 × 44.61 ms (System RAM) = 21 ms
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
0.7191 — placement
System RAM.bandwidth_gbs
307.2 GB/s — component spec
System RAM.efficiency_moe
0.7 — Settings efficiency.server_ddr5 — Server DDR5/MRDIMM single socket: 6 dense + 7 MoE points (small n); fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md. The 44.61 ms per-token overhead is a CPU-engine constant, not a property of DDR5: its fit is set by a 128-core Xeon 6980P running llama.cpp (55.3 ms/token on a 3B model) and SGLang (17.0 ms) with the CPU executing every layer (research 12 §6). A GPU spilling into this memory pays it only for the share of each token read from RAM (lib/perf/decode.ts refinement 3).
System RAM.active_share
0.2809 — placement
per_token_overhead_ms
13.665426550839111 ms — derived: 0.719 × 1.58 ms (GPU VRAM) + 0.281 × 44.61 ms (System RAM) = 13.67 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU VRAM.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
Unavailable — First reply: No prefill measurement or compute rating for DIY: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB + AMD EPYC 9015. (missing: measured prefill_tokens_sec, compute_tflops_fp16)
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU VRAM 93.12 + System RAM 972.8 = 1,065.92 GB
GPU VRAM.usable_gb
93.12 GB — 96 GB physical
System RAM.usable_gb
972.8 GB — 1,024 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 1,065.92 − 305 = 760.92 GB
usable_gb
1065.92 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
Price per token a second: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
cost_per_tok_s = landed_cost / decode_tok_s
= $45,703 / 10.11 tok/s = $4,518.59/tok/s
landed_cost
45702.9 USD
decode_tok_s
10.114414087088528 tok/s
Where each part is bought
Kingston Server Premier KSM64R52BD4-128MB 128GB DDR5-6400 RDIMM: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96GB: SabrePC (opens in a new tab), shipped, checked , access tier 2, route sabrepc_ngstate
ASRock Rack GENOAD8QM3-2T/BCM: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
Seasonic PRIME PX-2200: Newegg (opens in a new tab), shipped, checked , access tier 3, route newegg_realtime
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU HBM3e.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
8.7487 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 52,262.73 = 0.6 s
prompt_tokens
32768 tokens
prefill_tok_s
52262.73 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3.8-Flash-Next (Images)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.48 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU HBM3e.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 15,119.69 = 2.2 s
prompt_tokens
32768 tokens
prefill_tok_s
15119.69 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Qwen3-ASR 1.7B (Speech)
Speed: estimate — Arithmetic that also depends on a tunable assumption, listed below.
0.86 — Settings efficiency.gpu_vram — Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
GPU HBM3e.active_share
1 — placement
per_token_overhead_ms
1.58 ms — Settings efficiency.gpu_vram.overheadMs — calibrated fit (D-013): Discrete GPU: 10 dense + 3 MoE points; fit on published benchmarks, leave-one-out validated — docs/research/12b-estimator-validation.md
bytes_per_token_gb
5.2741 GB
Dense: every parameter is read per token.
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 508,550.93 = 0.1 s
prompt_tokens
30000 tokens
prefill_tok_s
508550.93 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Your plan needs: estimate — Arithmetic that also depends on a tunable assumption, listed below.
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
Memory for AI: derived — Arithmetic on observed inputs only. No tunable assumption enters it.
available_gb = Σ usable_gb over memory pools
GPU HBM3e 244.44 + CPU LPDDR5X 446.4 = 690.84 GB
GPU HBM3e.usable_gb
244.44 GB — 252 GB physical
CPU LPDDR5X.usable_gb
446.40000000000003 GB — 496 GB physical
Usable memory is below physical memory for at least one pool (OS/driver reservation; editable in Settings).
To spare: estimate — Arithmetic that also depends on a tunable assumption, listed below.
spare_gb = usable_gb − all-resident need
= 690.84 − 305 = 385.84 GB
usable_gb
690.84 GB
need_gb
305.00394297471996 GB
All models loaded at once (Keep all resident).
Not counted, because it is not measured yet: Qwen3.8-Flash-Next reads images through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out. Qwen3-ASR 1.7B hears audio through a separate projector file (mmproj); its size is not recorded yet, so the memory shown leaves it out.
So the real room to spare is smaller than shown, by the size of what is not counted: the sizes of Qwen3.8-Flash-Next's and Qwen3-ASR 1.7B's projector files (mmproj) are not recorded.
Slowest model (what Fastest and Best value rank on): estimate — Arithmetic that also depends on a tunable assumption, listed below.
slowest = min(decode tok/s) over the Plan's text models
Not shown: 7 more machines that fit only one model at a time; 6 more machines that are below your speed.
— placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
The price is a floor: SabrePC, Newegg, ARCTIC don't show shipping until checkout.
— placement
per_token_overhead_ms
23.980284367226076 ms — derived: 0.479 × 1.58 ms (GPU VRAM) + 0.521 × 44.61 ms (System RAM) = 23.98 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 2 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
The price is a floor: Newegg, SabrePC, ARCTIC don't show shipping until checkout.
— placement
per_token_overhead_ms
13.665426550839111 ms — derived: 0.719 × 1.58 ms (GPU VRAM) + 0.281 × 44.61 ms (System RAM) = 13.67 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
layer split across 3 GPUs: capacity adds, per-token bandwidth does not (layers run sequentially)
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Per-token overhead of System RAM (44.61 ms) is not charged: this model does not read from that pool.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
The price is a floor: Newegg, SabrePC, ARCTIC don't show shipping until checkout.
— placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
The price is a floor: SabrePC, Newegg, ARCTIC don't show shipping until checkout.
— placement
per_token_overhead_ms
34.29514218361304 ms — derived: 0.24 × 1.58 ms (GPU VRAM) + 0.76 × 44.61 ms (System RAM) = 34.3 ms
bytes_per_token_gb
39.7749 GB
MoE: only active parameters are read per token (SPEC §3).
Effective bits include embeddings and higher-precision tensors in mixed quants.
Assumes active weights are quantized like the file average.
KV cache is re-read on every token (DECISIONS D-008).
Pools are read sequentially per token, so per-pool times add (harmonic combination).
Per-token overhead on a split placement is DERIVED, not measured: each pool's own single-pool figure is charged in proportion to the share of each token it serves, because the fixed cost is per operation and the split puts that share of the operations on each device.
Calibrated with that pool serving the whole model (D-013): GPU VRAM (1.58 ms), System RAM (44.61 ms).
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 32,768 / 577.57 = 56.7 s
prompt_tokens
32768 tokens
prefill_tok_s
577.57 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.
Batch size 1 (single user, interactive).
First reply: estimate — Arithmetic that also depends on a tunable assumption, listed below.
ttft_s = prompt_tokens / prefill_tok_s
= 30,000 / 19,426.65 = 1.5 s
prompt_tokens
30000 tokens
prefill_tok_s
19426.65 tok/s
No published prefill measurement for this hardware; scaled from peak compute (estimate).
Model q_dim unknown — attention FLOPs omitted, so long-prompt TTFT is understated.