$ ./spark-bench --sweep --all-recipes
How many tokens/sec can one or two DGX Sparks serve under parallel load?
Aggregate decode throughput, per-session speed and tail latency as concurrent sessions scale — every number a real measured run. Toggle configs, set a latency budget, read the ceiling. See what these speeds actually look like →
Configurations · model · quant · backend · up to 7 at once
Percentile focus (chart 4)
01 Throughput ↔ latency frontier x: agg tok/s · y: p95 TTFT
The money chart. Each dot = one concurrency level. Down-and-right wins. Pick the rightmost dot still under your budget line.
02 Aggregate throughput vs concurrency x: sessions (log) · y: agg tok/s
Total tok/s across all sessions. The knee is where packing more sessions stops paying off — curves end at each config's KV-cache capacity ceiling.
03 Per-session throughput vs concurrency x: sessions (log) · y: tok/s / session
What one user feels. Falls as you batch more — the cost of higher aggregate throughput.
04 TTFT tail vs concurrency x: sessions (log) · y: TTFT ms
Time-to-first-token at the focused percentile, all visible configs. Switch to p99 to see whose tail blows up first.
05 GPU temperature vs concurrency x: sessions (log) · y: °C
GPU thermal load as concurrency scales. Watch for the knee where thermal throttling may kick in.
06 GPU power draw vs concurrency x: sessions (log) · y: watts
Power envelope as concurrency scales. Shows how much headroom remains before hitting the TDP wall.
measured (real engine run)
Hardware: NVIDIA DGX Spark · GB10 Grace Blackwell · 128 GB LPDDR5x unified @ 273 GB/s · 1 PFLOP FP4. Decode is memory-bandwidth bound; concurrency is KV-cache–capacity bound. Workload: 1024-token prompt / 256-token output, closed-loop.
Every series is a real run of the open
dgx-spark-bench harness on this hardware — reproducible from the recipe linked in each config card.
Related:
tok-sim — visual tokens/sec simulator to compare what different generation speeds look like.