methodology
Same models. Same versions.
Weeks on the bench, not minutes.
This page describes exactly how every machine in Benchmark 01 is tested. It is published before the first result, and any change is logged at the bottom of the page.
01 / principles
Measured the way you would use it.
Every machine runs the same models, in the same formats, with the same software versions, in the same room. Results are measured, never taken from spec sheets. Each test is run three times and the median is reported; raw data for every run is published alongside the review.
- Reproducible. Model files, software versions and command lines are published, so anyone with the same hardware can check the numbers.
- Sustained, not peak. A machine that is fast for 30 seconds and throttles after 10 minutes is reported as such.
- Like for like. Machines are ranked only against machines of the same class.
02 / test classes
Three classes and one reference.
Memory capacity decides which models a machine can load; memory bandwidth decides how fast it answers. Classes follow the platform, so a 1,500 € machine is never ranked against a 7,000 € workstation.
| Class | Platform | Memory | Peak bandwidth (vendor) |
|---|---|---|---|
| 1 · Essential | Ryzen AI 9 HX 470 / Core Ultra | 32–128 GB | ~90–128 GB/s |
| 2 · Performance | Ryzen AI Max+ 395 | 128 GB unified | 256 GB/s |
| 3 · AI Workstation | Ryzen AI Max+ PRO 495 | 192 GB unified | 273 GB/s |
| Reference | Apple Mac mini M6 / M5 Pro | 32 / 64 GB unified | 170 GB/s / n.a. |
03 / models
The model suite.
The suite covers what people actually run locally: small dense models, mid-size dense models, mixture-of-experts (MoE) models and the largest open models a desktop can hold. Each machine runs every model that fits in its memory; a model that does not fit is reported as “does not fit”, not as zero.
| Model | Type | Format | Approx. size | Runs on |
|---|---|---|---|---|
| Gemma 4 12B | dense | Q4_K_M | ~8 GB | all classes |
| gpt-oss-20b | MoE · 21B / 3.6B active | MXFP4 | ~14 GB | all classes |
| Qwen 3.8 27B | dense | Q4_K_M | ~18 GB | all classes |
| Qwen3.6-35B-A3B | MoE · 35B / 3B active | Q4_K_M | ~22 GB | all classes |
| Llama 3.3 70B | dense · bandwidth reference | Q4_K_M | ~43 GB | 64 GB+ |
| gpt-oss-120b | MoE · 117B / 5.1B active | MXFP4 | ~63 GB | class 2 & 3 |
| Mistral Small 4 | MoE · 119B / 6B active | Q4_K_M | ~70 GB | class 2 & 3 |
| DeepSeek V4-Flash | MoE · 284B / 13B active | UD-IQ3_XXS | ~103 GB | class 3 class 2 on Linux |
| Qwen3-235B-A22B | MoE · 235B / 22B active | Q4_K_M | ~135 GB | class 3 |
Whisper large-v3-turbo.04 / software
Tools and backends.
The core numbers come from llama.cpp, the engine behind most local AI applications, so that every platform is measured with the same code. Everyday tools are then checked to confirm the experience matches.
core measurements
llama.cpp · llama-bench
- AMD: Vulkan and ROCm backends, best result reported, both published
- Apple: Metal backend
- Intel: Vulkan / SYCL backend
- Same release build on every machine
everyday tools
LM Studio · Ollama · MLX
- Install-and-run check with default settings
- Spot-check of speed against llama.cpp
- MLX on Apple as an additional result
05 / speed
How fast it reads, how fast it answers.
Two numbers matter. Prompt processing is how fast the machine reads your input (documents, code, conversation history). Generation is how fast it writes the answer. Both are measured in tokens per second, at several context lengths, because speed drops as the conversation grows.
# same command on every machine, every model that fits $ llama-bench -m <model> -p 512,4096 -n 128 -d 0,8192,32768 -r 3 -o csv
Context depths tested: empty, 8k and 32k tokens already in the conversation. Time to first token is reported for a 4k-token prompt.
06 / endurance
Hours of load, not a 30-second sprint.
endurance run
24 hours of continuous load
- Non-stop generation mixing short questions and long-context requests (up to 32k tokens)
- Throughput logged every minute over the full 24 hours
- CPU/GPU temperature, clock speed and fan speed tracked throughout
- Run with the default power profile, then repeated with the maximum profile
- Throttling reported: when it starts and how much speed is lost
- Stability: crashes, driver resets and errors counted
real-world scenarios
Several days of everyday work
- Document assistant: questions across a set of contracts, invoices and manuals (hundreds of pages)
- Coding assistant: completion and code review on a real project
- Meetings: one-hour recording transcribed, then summarised with action items
- Same scenarios and same documents on every machine; response times and stability recorded
team use
Several people at once
- One machine serving a small office: 1, 3 and 5 simultaneous users
- Response time per user and total throughput
- How far each machine can go before answers become too slow to use
power & noise
Measured, not estimated
- Power at the wall, logged once per second (idle, light use, full load)
- Tokens per watt and estimated energy cost per day
- Noise in dB(A) at 50 cm, idle and under load, ambient noted
07 / npu
What the NPU really adds.
Most local AI tools run on the GPU, not the NPU. This section measures what the NPU brings where software can use it today, so that “TOPS” on a spec sheet can be read in practice.
language models
AMD Lemonade & FastFlowLM
- NPU-only and hybrid NPU + GPU modes
- Prompt processing, generation and tokens per watt vs. GPU-only
speech
Transcription
- 30-minute meeting recording with Whisper
- Real-time factor and energy used, NPU vs. GPU vs. CPU
08 / setup
From the box to the first answer.
- Windows 11, as shipped. Time and steps to a working local assistant with LM Studio.
- Linux. Clean install of the latest Ubuntu LTS: drivers, ROCm / Vulkan, llama.cpp build.
- Memory for the GPU. How much memory can be given to the GPU, how (BIOS, driver, kernel settings) and what it changes.
- Hardware notes. Ports, networking, storage, upgradability and build quality, briefly.
09 / scoring
Numbers first, opinions labelled.
Each machine gets a results sheet: speed per model, endurance curve, power, noise and setup notes. Rankings are given within each class only. Value is shown as generation speed per euro, using the manufacturer's public price on the day of publication. The written verdict is clearly separated from the measurements.
10 / independence
How this stays honest.
- No paid rankings. Placement cannot be bought, and no manufacturer reviews or edits the text.
- Supplied hardware is disclosed. Every review states who provided the machine.
- Method first. This protocol is public before testing starts; changes are logged below.
- Raw data published. CSV files for every run are released with the results.
11 / changelog
Changes to this protocol.
| Version | Date | Change |
|---|---|---|
| 1.0 | 20 Oct 2026 | First published version. |