The hardware roster · one machine
the mini PC
Minisforum·whole machine·18 figures, from 1 exhibit · named in 8 exhibits
This roster is in beta and still being tested: every figure is proved against the page it came from, and the way they are read and shown is still changing.
a fanless-class mini desktop, CPU-only inference, 32 GB of memory and no discrete GPU — the machine of the two-hour battery test
It holds — Intel Core i5-12600H.
Narrow these 18 figuresevery modelmodel: a 26-billion-parameter model · 5 of 18 figuresmodel: gemma4:12b · 2 of 18 figuresmodel: gemma4:26b · 2 of 18 figuresmodel: Mistral Small 3.2 · 2 of 18 figuresmodel: nemotron-3.5-lightning:30b-a3b · 2 of 18 figuresmodel: phi4:14b · 2 of 18 figuresmodel: qwen3.5:9b · 2 of 18 figuresmodel: not stated · 1 of 18 figures
Language — decode, prefill and first token
Grouped by model and by what was measured, and inside a group sorted by power cap ascending — alphabetical and numeric, never by value. The heading of a group carries everything that does not change inside it; each row carries the value and the conditions that do. A condition the page does not state reads not stated, which is a third thing and not an uncapped card. A † means the same reading is printed in a second place on its exhibit — one reading, two printings, not two figures.
| value | what moves inside this group |
|---|---|
| gemma4:12b decode, median of five scored runstok/sQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 6.0 tok/s | |
from Two Hours at 12 tok/s § The one table to rememberread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-one-table-to-remember | |
| gemma4:12b time to first token, median of five cold-prefix runssQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · 536 prompt tokens, Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 25.6 s | |
from Two Hours at 12 tok/s § The wait: prefill is the real CPU taxread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-wait-prefill-is-the-real-cpu-tax | |
| gemma4:26b decode, median of five scored runstok/sQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 12.7 tok/s | |
from Two Hours at 12 tok/s § The one table to rememberread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-one-table-to-remember | |
| gemma4:26b the page says: gemma4:26b (MoE) time to first token, median of five cold-prefix runssQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · 536 prompt tokens, Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 11.4 s | |
from Two Hours at 12 tok/s § The wait: prefill is the real CPU taxread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-wait-prefill-is-the-real-cpu-tax | |
| Mistral Small 3.2 the page says: mistral-small3.2:24b decode, median of five scored runstok/sQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 3.3 tok/s | |
from Two Hours at 12 tok/s § The one table to rememberread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-one-table-to-remember | |
| Mistral Small 3.2 the page says: mistral-small3.2:24b time to first token, median of five cold-prefix runssQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · 1,023 prompt tokens, Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 97.7 s | |
from Two Hours at 12 tok/s § The wait: prefill is the real CPU taxread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-wait-prefill-is-the-real-cpu-tax | |
| nemotron-3.5-lightning:30b-a3b decode, median of five scored runstok/sQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 14.6 tok/s | |
from Two Hours at 12 tok/s § The one table to rememberread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-one-table-to-remember | |
| nemotron-3.5-lightning:30b-a3b the page says: nemotron-3.5-lightning:30b-a3b (MoE) time to first token, median of five cold-prefix runssQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · 532 prompt tokens, Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 14.1 s | |
from Two Hours at 12 tok/s § The wait: prefill is the real CPU taxread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-wait-prefill-is-the-real-cpu-tax | |
| phi4:14b decode, median of five scored runstok/sQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 5.2 tok/s | |
from Two Hours at 12 tok/s § The one table to rememberread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-one-table-to-remember | |
| phi4:14b time to first token, median of five cold-prefix runssQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · 505 prompt tokens, Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 35.4 s | |
from Two Hours at 12 tok/s § The wait: prefill is the real CPU taxread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-wait-prefill-is-the-real-cpu-tax | |
| qwen3.5:9b decode, median of five scored runstok/sQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 9.1 tok/s | |
from Two Hours at 12 tok/s § The one table to rememberread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-one-table-to-remember | |
| qwen3.5:9b time to first token, median of five cold-prefix runssQ4_K_M · Ollama · 0.32.15 · a 4,096-token context · 537 prompt tokens, Ollama's own default of 4 threads · 2026-08-25 (UTC) · power cap and concurrency not stated | |
| 16.0 s | |
from Two Hours at 12 tok/s § The wait: prefill is the real CPU taxread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named elsewhere on that page · read from two-hours-on-battery · section id #the-wait-prefill-is-the-real-cpu-tax | |
| a 26-billion-parameter model decode on battery, and how long it lasts4-bit · Ollama · version not stated · 32 K context pinned · 2026-08-31, 02:38:31–03:05:02Z · power cap, batch or steps and concurrency not stated | |
| ~12 tokens/second for about two hours on battery — and sit ready to answer for seven and a half | |
from Two Hours at 12 tok/s § Two hours at 12 tok/s — the test that named the pagetyped in from that page by hand, then checked against it word for word · the card is named in the same section · read from two-hours-on-battery · section id #two-hours-at-12-tok-s-the-test-that-named-the-page | |
Power, temperature, and what it costs
5 rows — same rule as above.
| value | what moves inside this group |
|---|---|
| a 26-billion-parameter model draw at the wall, by the UPS's own meter4-bit · Ollama · version not stated · 32 K context pinned · power cap, batch or steps and concurrency not stated | |
| 0 W shown (the box's ~5 W real draw is below the UPS meter's floor) | 02:38:31–02:41 |
the page's own words for this column: whole-box wall draw by the UPS's own meter — the reading is the mini PC's and the instrument is the battery unitfrom Two Hours at 12 tok/s § Two hours at 12 tok/s — the test that named the pageread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named in the same section · read from two-hours-on-battery · section id #two-hours-at-12-tok-s-the-test-that-named-the-page | |
| 60–82 W, mean 75.6 W | 02:41–02:56:56 |
the page's own words for this column: whole-box wall draw by the UPS's own meter — the reading is the mini PC's and the instrument is the battery unitfrom Two Hours at 12 tok/s § Two hours at 12 tok/s — the test that named the pageread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named in the same section · read from two-hours-on-battery · section id #two-hours-at-12-tok-s-the-test-that-named-the-page | |
| 74–81 W, mean 78.2 W | 02:56:56–03:03:00 |
the page's own words for this column: whole-box wall draw by the UPS's own meter — the reading is the mini PC's and the instrument is the battery unitfrom Two Hours at 12 tok/s § Two hours at 12 tok/s — the test that named the pageread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named in the same section · read from two-hours-on-battery · section id #two-hours-at-12-tok-s-the-test-that-named-the-page | |
| 75–76 W | 03:03–03:05:02 |
the page's own words for this column: whole-box wall draw by the UPS's own meter — the reading is the mini PC's and the instrument is the battery unitfrom Two Hours at 12 tok/s § Two hours at 12 tok/s — the test that named the pageread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named in the same section · read from two-hours-on-battery · section id #two-hours-at-12-tok-s-the-test-that-named-the-page | |
| not stated memory bandwidth, best triadGB/sa STREAM triad, gcc -O3 -march=native -fopenmp · version not stated · a 2,289 MiB working set, best of 9 timed reps · 2026-08-25 (UTC), 17:57–19:46Z · quantisation, power cap, context and concurrency not stated | |
| 51.1 GB/s | |
from Two Hours at 12 tok/s § Read this before the table: CPU speed is a memory-bandwidth storyread off that page’s own table by the roster’s reader, then checked against it word for word · the card is named in this row · read from two-hours-on-battery · section id #read-this-before-the-table-cpu-speed-is-a-memory-bandwidth | |
Where it appears
Every released exhibit that names this identity, in the shelf’s own order.
- A Short History of Mistral — named, and no figure carried from it — yet
- Electricity per million tokens, card by card — named, and no figure carried from it — yet
- Four homes for one reranker: what RuleSage's slowest stage cost at each stop — named, and no figure carried from it — yet
- The cost to purchase and run a very capable home AI rig — named, and no figure carried from it — yet
- The 3080 Rig, Priced — named, and no figure carried from it — yet
- The Two-Hour Machine, Priced — named, and no figure carried from it — yet
- Two Hours at 12 tok/s — 18 figures on this page
- What it costs to run a high-end AI rig at home — named, and no figure carried from it — yet
How this one is named here
The canonical name above is the full product name. Everything below is a spelling a published page or kit has actually used for it, kept so a reader who searches an older page’s words lands on this row. The set is closed and historical: no page cut after 2026-09-17 writes a memory class where it can write a card.
- [mini PC that ran the two-hour battery test]
- a Minisforum MS-01 mini PC
- a mini PC with 32G RAM and a 12-core Intel processor
- a mini PC with 32G RAM: 16 logical CPUs - 4 performance cores with hyperthreading (8 performance logical CPUs) plus 8 efficiency cores; hybrid Intel part; no discrete GPU at all
- cpu-mini
- the mini
- the mini (32G)
- this bench's mini rig
- this bench's own mini PC