Best measured performance
Our best recorded results for six language models and five image models, compared with the same RTX 5090 running on Windows.
Thunderbolt · PCIe Gen 4 ×4
Selected results: 20 September 2026
NVIDIA driver 595.79
100% = Windows baselineBars use a 0–200% scale; higher is better.
Text generation
Decode throughput in tokens per second. Higher is better.
| Model | Best macudatok/s | Baselinetok/s | vs baseline |
|---|---|---|---|
| Llama 3.1 8B InstructQ8_0 · dense · 7.95 GiB | 163.1 ± 0.1 | 164.5 | |
| Nemotron Nano 9B v2Q6_K · Mamba-hybrid (SSM) · 8.50 GiB | 145.1 ± 0.1 | 140.6 | |
| Gemma 4 12B itQ4_K_M · dense · 6.86 GiB | 136.6 ± 0.1 | 136.4 | |
| Gemma 4 26B-A4B itQ4_K_XL (QAT) · MoE · 13.26 GiB | 230.0 ± 0.7 | 227.8 | |
| Qwen3.8 27BUD-Q4_K_M · dense · 15.32 GiB | 74.8 ± 0.0 | 75.3 | |
| Qwen3.5 35B-A3BQ4_K_M · MoE · 19.71 GiB | 225.5 ± 0.8 | 245.0 |
Best reported batch means from 19–20 September, with standard deviation from three repeats.
All selected results are from 20 September. tg128: 128 generated tokens.
Prompt processing
Prefill throughput in tokens per second. Higher is better.
| Model | Best macudatok/s | Baselinetok/s | vs baseline |
|---|---|---|---|
| Llama 3.1 8B InstructQ8_0 · dense · 7.95 GiB | 9,271 ± 511 | 11,118 | |
| Nemotron Nano 9B v2Q6_K · Mamba-hybrid (SSM) · 8.50 GiB | 7,248 ± 308 | 4,031 | |
| Gemma 4 12B itQ4_K_M · dense · 6.86 GiB | 5,679 ± 223 | 4,169 | |
| Gemma 4 26B-A4B itQ4_K_XL (QAT) · MoE · 13.26 GiB | 7,091 ± 310 | 5,478 | |
| Qwen3.8 27BUD-Q4_K_M · dense · 15.32 GiB | 2,624 ± 54 | 2,447 | |
| Qwen3.5 35B-A3BQ4_K_M · MoE · 19.71 GiB | 5,434 ± 263 | 4,726 |
pp256: a 256-token prompt, three repeats. The baseline prefill measurements have
substantial variance, especially for Llama 8B and Gemma 12B; full conditions are in the
run report.
Image generation
Best recorded warm generation times. Lower time is better; the bars show relative speed.
| Model | Best macudaseconds | Baselineseconds | vs baseline |
|---|---|---|---|
| SDXL Turbofp16 · 512 × 512 · 4 steps · CFG 1.0 | 2.56 s | 4.11 s | |
| Stable Diffusion 1.5fp32 · 512 × 512 · 20 steps · CFG 7 | 3.17 s | 3.86 s | |
| Z-Image TurboQ8 DiT · 1024 × 1024 · 8 steps · flash attention | 6.57 s | 7.83 s | |
| Qwen-ImageQ8_0 DiT · 1024 × 1024 · 20 steps · flash attention | 34.97 s | 40.48 s | |
| Qwen-Image 2.1Q8_0 DiT · 1024 × 1024 · 20 steps · CFG 6.0 · flash attention | 24.21 s | 27.08 s |
Total generate_image time. Z-Image and both Qwen-Image models use flash attention on both
platforms. Qwen-Image’s encoder is in host memory; Qwen-Image 2.1 runs entirely on the card on both platforms.
Percentages are baseline time ÷ macuda time.




Measurement details
Selection. Language-model results use the highest reported batch mean for each workload, with
llama-bench -ngl 99 -p 256 -n 128 -r 3. Image results use the lowest reported warm total for each
model, paired with a Windows baseline using the same configuration.
Dates and builds. Selected macuda results were recorded on 20 September, build
1774aa2-dirty, after 450/450 operator checks. Language-model, SDXL and SD 1.5 baselines are from
14 September; the Z-Image flash-attention and both Qwen-Image baselines are from 20 September.
Qwen-Image 2.1 uses stable-diffusion.cpp build c678dfe on both platforms.
Percentages. Throughput bars use macuda ÷ baseline. Image bars use baseline time ÷ macuda time. Labels round to the nearest whole percent; bar lengths use the unrounded ratios. All bars share a 0–200% scale, with the baseline marked at 100%.
Comparison scope. These are complete host-and-driver configurations. Host load and run-to-run variability affect the results; the Windows image reference logs also record thermal throttling. Image totals include text encoding and VAE decoding, so they do not isolate GPU sampling performance.
Previous runs, sampling times, speculative decoding and additional Metal comparisons are in the 20 September run report. See Architecture for implementation and validation details.