---
title: "Gemma-4-31B-it (BF16) · DGX Spark Arena"
canonical: "https://djangodevreng.nl/arena/gemma-4-31b-it-bf16/"
license: "CC-BY-4.0"
source: "https://github.com/djangodevreng/dgx-spark-benchmarks"
attribution: "Django de Vreng, https://djangodevreng.nl"
---

# Gemma-4-31B-it (BF16)

Dense 31B in BF16 op DGX Spark betaalt zijn breedte direct. Single-user op 4k context blijft net bruikbaar, maar bij c=10 zakt decode naar 3.4 t/s/user en 25k context tikt op 177 sec TTFT. Onder de rustige kantoor-baseline klimt de queue naar 168 concurrente requests en TTFT mean naar 204 seconden. Voor deze hardware is dense 31B de verkeerde architectuur, een MoE als de 26B-A4B doet vergelijkbaar werk drie tot vier keer sneller.

## Specificaties

- Vendor: Google
- Architectuur: Dense
- Parameters: 31B
- Precisie: BF16
- Context: 256K
- VRAM: 62 GB
- Engine: vLLM v0.20.1
- Hardware: DGX Spark, NVIDIA GB10, 128 GB unified memory
- Model card: https://huggingface.co/google/gemma-4-31B-it

## Quality (model-cards)

| Benchmark | Score |
| --- | --- |
| MMLU-Pro | 82.6 |
| GPQA | 82.3 |
| HumanEval / LCB | 77.1 |
| Avg | 80.7 |

## Benchmarks op de DGX Spark

| Test | tokens/s p/user | tokens/s totaal | TTFT (ms) |
| --- | --- | --- | --- |
| 01 Chat | 3 | 20 | 7190 |
| 02 RAG · 8k context | 3 | 19 | 44190 |
| 03 Lange output / agents | 4 | 19 | 2090 |
| 04 Grote context · 25k | 1 | 7 | 177230 |
| 05 Multi-turn · kantoorwerk | 3 | 22 | 11760 |
| 06 Realistische kantoor-baseline | 4 | 4 | 164379 |
| 07 Echte gesprekken · ShareGPT | 3 | 3 | 903 |
| 08 Maandagochtend-piek | 15 | 15 | 4970 |
| 09 Reasoning workload | 2 | 2 | 1846 |

## Wat ik ervan vond

**Werkte: Single-user 4k context blijft net bruikbaar**

Bij c=1 op 4k context: 3.7 t/s/user decode, TTFT 3.9 sec. Niet snel, maar bruikbaar voor één gebruiker met korte prompts. Daarboven valt het hard tegen.

**Brak: Office-baseline tikt op 200+ sec TTFT**

Onder de rustige kantoor-workload (0.3 rps Poisson) klimt de queue naar 168 concurrente requests, TTFT mean 204 sec, P99 boven 8 minuten. Voor productie-inzet niet bruikbaar.

**Kostte: 25k context is een non-starter**

TTFT mean 177 sec bij c=10, stddev 90 sec. Met 10 concurrent requests à 25k tokens prefill loopt de queue uren achter. De prefill-muur staat hier al bij c=5.

**Verraste: 62 GB weights laten KV-cache krap**

Dense BF16 vreet geheugen. Op 128 GB unified blijft circa 55 GB voor KV-cache, en daarmee zit de scheduler met c=10 op 25k krap. Op deze Spark is dit duidelijk een MoE-hardware, niet een dense-hardware.

## Noten

Dense 31B in BF16. 62 GB weights op 128 GB unified, KV-cache fp8, prefix caching uit. vLLM v0.20.1 met async scheduling. Zelfde server-config als de 26B-A4B varianten zodat de vergelijking eerlijk is.

---

Licentie: CC-BY-4.0 (https://creativecommons.org/licenses/by/4.0/). Django de Vreng, https://djangodevreng.nl.
Volledige arena: https://djangodevreng.nl/arena/ · Ruwe runs (GitHub): https://github.com/djangodevreng/dgx-spark-benchmarks
