DGX Spark 128GB vs M5 Max 40-core 128GB for local LLMs
Uses its largest memory option, 128 GB, with 8k context and an f16 KV cache.
What to know before choosing
This page compares one unit of each with 128GB: the DGX Spark from NVIDIA or a partner maker, and the 40-core GPU M5 Max in the Mac Studio (2026) or a MacBook Pro. The same 128GB gives the GPUs different shares. CanRun counts about 70% on the Mac, 89.6 GB, and on the DGX Spark what Linux and the desktop leave free, 116.9 GB, from public boot logs. That decides big low-bit files: the Q2_K file of Solar Open 2 250B fits on the DGX Spark's GPU and runs well. On the M5 Max it is calculated CPU-only and capped at Runs slowly, although its theoretical speed estimate is higher. The macOS default limit is higher than CanRun's figure, so check ollama ps there.
Everywhere else the M5 Max's bandwidth leads. Dense models show it most: Gemma 4 31B runs well on the M5 Max and slowly on the DGX Spark, a public benchmark. For reading long prompts, CanRun's rough estimates (±40%), which count the M5 Max's GPU neural accelerators, put the two close on MoE models such as gpt-oss-120b and the DGX Spark nearly twice as fast on dense ones such as Gemma 4 31B.
The DGX Spark's 64GB configuration and linked units are not on this page; see the NVIDIA DGX Spark page and our DGX Spark guide.
Speed
The M5 Max 40-core 128GB generates text about 2.2× faster than the DGX Spark 128GB (median of our estimates over the 56 models that fit entirely in memory on both at Q4_K_M or the closest available quant).
On Ling-3.0 Flash the two estimate ranges overlap, so the real gap may be smaller.
- Reference model
- Ling-3.0 Flash at Q4_K_M, the largest model that fits entirely in memory on both at Q4_K_M or the closest available quant
- DGX Spark 128GB
- est. 52.8 tok/s (36.9–68.6, theoretical estimate ±30%)
- M5 Max 40-core 128GB
- est. 96.3 tok/s (67.4–125.2, theoretical estimate ±30%)
- Prompt processing on Ling-3.0 Flash
- DGX Spark 128GB: about 1,129 tok/s (678–1,581, rough estimate ±40%); M5 Max 40-core 128GB: about 1,032 tok/s (619–1,445, rough estimate ±40%)
Specs side by side
| Spec | DGX Spark 128GB | M5 Max 40-core 128GB | Difference |
|---|---|---|---|
| Memory | 128 GB of unified memory | 128 GB of unified memory | Same |
| Memory bandwidth | 273.0 GB/s | 614.0 GB/s | 2.25× on the M5 Max 40-core 128GB |
| FP16 compute | 62.5 TFLOPS | 16.6 TFLOPS | 3.77× on the DGX Spark 128GB |
| Launch year | 2025 | 2026 | — |
| Price | $3,999 launch MSRP (128 GB) | — | — |
| Public benchmark results | 14 results | 5 results | — |
Verdicts at a glance
Out of 59 models at Q4_K_M (or the closest available quant) with 8k context.
- DGX Spark 128GBRuns great34 modelsRuns well12 modelsRuns slowly10 modelsWon't run3 models
- M5 Max 40-core 128GBRuns great44 modelsRuns well12 modelsRuns slowly0 modelsWon't run3 models
How to read the verdicts
- Runs great
- Fully on the GPU at 20 tok/s or more
- Runs well
- Fully on the GPU at 8–20 tok/s; MoE experts in system RAM at 20 tok/s or more; or at least 90% on the GPU at 8 tok/s or more
- Runs slowly
- 2–8 tok/s; CPU-only; less than 90% on the GPU; or MoE experts in system RAM below 20 tok/s
- Won't run
- Does not fit, or under 2 tok/s
Where the verdicts differ
20 models get a different verdict on the two.
Scroll sideways to see every column.
| Model | DGX Spark 128GB verdict | DGX Spark 128GB speed | M5 Max 40-core 128GB verdict | M5 Max 40-core 128GB speed |
|---|---|---|---|---|
| Qwen3.5 122B-A10BQ4_K_M | Runs well | 29.0 tok/s8k estimate 24.0 tok/s (19.2–28.8, calibrated estimate ±20%)measured (1 run, 4k context) | Runs great | est. 47.4 tok/s37.9–56.8calibrated estimate ±20% |
| Laguna S 2.1Q4_K_M | Runs well | est. 28.4 tok/s22.7–34.1calibrated estimate ±20% | Runs great | est. 53.6 tok/s42.9–64.3calibrated estimate ±20% |
| Solar Open 100BQ4_K_M | Runs well | est. 22.8 tok/s18.3–27.4calibrated estimate ±20% | Runs great | est. 45.3 tok/s36.2–54.3calibrated estimate ±20% |
| Gemma 3 27BQ4_K_M | Runs well | est. 12.4 tok/s9.9–14.8calibrated estimate ±20% | Runs great | est. 27.1 tok/s21.7–32.5calibrated estimate ±20% |
| Mistral Small 3.2 24BQ4_K_M | Runs well | est. 13.6 tok/s10.9–16.3calibrated estimate ±20% | Runs great | est. 29.8 tok/s23.8–35.7calibrated estimate ±20% |
| Qwen3 14BQ4_K_M | Runs well | est. 20.6 tok/s16.5–24.7calibrated estimate ±20% | Runs great | est. 45.1 tok/s36.1–54.1calibrated estimate ±20% |
| DeepSeek R1 Distill Qwen 14BQ4_K_M | Runs well | est. 20.1 tok/s16.1–24.1calibrated estimate ±20% | Runs great | est. 44.0 tok/s35.2–52.8calibrated estimate ±20% |
| HyperCLOVA X SEED Think 14BQ4_K_M | Runs well | est. 20.9 tok/s14.6–27.2theoretical estimate ±30% | Runs great | est. 45.8 tok/s32.0–59.5theoretical estimate ±30% |
| Phi-4Q4_K_M | Runs well | est. 19.8 tok/s15.9–23.8calibrated estimate ±20% | Runs great | est. 43.5 tok/s34.8–52.2calibrated estimate ±20% |
| Gemma 4 12BQ4_K_M | Runs well | est. 29.4 tok/s23.5–35.2calibrated estimate ±20% | Runs great | est. 64.3 tok/s51.5–77.2calibrated estimate ±20% |
| Llama 3.3 70BQ4_K_M | Runs slowly | 4.7 tok/s8k estimate 4.7 tok/s (3.8–5.7, calibrated estimate ±20%)measured (2 runs, 512 context) | Runs well | est. 10.3 tok/s8.3–12.4calibrated estimate ±20% |
| EXAONE 4.5 33BQ4_K_M | Runs slowly | est. 10.3 tok/s8.3–12.4calibrated estimate ±20% | Runs well | est. 22.7 tok/s18.1–27.2calibrated estimate ±20% |
| Nanbeige4.3 33BQ4_K_M | Runs slowly | est. 9.4 tok/s7.6–11.3calibrated estimate ±20% | Runs well | est. 20.7 tok/s16.6–24.8calibrated estimate ±20% |
| DeepSeek R1 Distill Qwen 32BQ4_K_M | Runs slowly | est. 9.7 tok/s7.7–11.6calibrated estimate ±20% | Runs well | est. 21.2 tok/s17.0–25.5calibrated estimate ±20% |
| Qwen3 32BQ4_K_M | Runs slowly | 10.7 tok/s8k estimate 9.7 tok/s (7.8–11.7, calibrated estimate ±20%)measured (2 runs, 512 context) | Runs well | est. 21.3 tok/s17.0–25.6calibrated estimate ±20% |
| EXAONE 4.0 32BQ4_K_M | Runs slowly | est. 10.7 tok/s8.6–12.9calibrated estimate ±20% | Runs well | est. 23.5 tok/s18.8–28.2calibrated estimate ±20% |
| Gemma 4 31BQ4_K_M | Runs slowly | 10.1 tok/s8k estimate 11.2 tok/s (9.0–13.5, calibrated estimate ±20%)measured (1 run, 512 context) | Runs well | est. 24.6 tok/s19.7–29.5calibrated estimate ±20% |
| Granite 4.2 30BQ4_K_M | Runs slowly | est. 10.7 tok/s8.6–12.9calibrated estimate ±20% | Runs well | est. 23.5 tok/s18.8–28.2calibrated estimate ±20% |
| Qwen3.5 27BQ4_K_M | Runs slowly | 11.3 tok/s8k estimate 12.1 tok/s (9.7–14.5, calibrated estimate ±20%)measured (1 run, 4k context) | Runs well | 29.2 tok/s8k estimate 26.4 tok/s (21.2–31.7, calibrated estimate ±20%)measured (1 run, 512 context) |
| Qwen3.8 27BQ4_K_M | Runs slowly | est. 11.8 tok/s9.5–14.2calibrated estimate ±20% | Runs well | est. 26.0 tok/s20.8–31.1calibrated estimate ±20% |
Every model on both
Scroll sideways to see every column.
| Model | DGX Spark 128GB verdict | DGX Spark 128GB speed | M5 Max 40-core 128GB verdict | M5 Max 40-core 128GB speed |
|---|---|---|---|---|
| Ling-3.0 FlashQ4_K_M | Runs great | est. 52.8 tok/s36.9–68.6theoretical estimate ±30% | Runs great | est. 96.3 tok/s67.4–125.2theoretical estimate ±30% |
| Qwen3.5 122B-A10BQ4_K_M | Runs well | 29.0 tok/s8k estimate 24.0 tok/s (19.2–28.8, calibrated estimate ±20%)measured (1 run, 4k context) | Runs great | est. 47.4 tok/s37.9–56.8calibrated estimate ±20% |
| Laguna S 2.1Q4_K_M | Runs well | est. 28.4 tok/s22.7–34.1calibrated estimate ±20% | Runs great | est. 53.6 tok/s42.9–64.3calibrated estimate ±20% |
| gpt-oss-120bMXFP4 | Runs great | 58.7 tok/s8k estimate 50.8 tok/s (40.6–60.9, calibrated estimate ±20%)measured (1 run, 2k context) | Runs great | est. 102.4 tok/s81.9–122.8calibrated estimate ±20% |
| Solar Open 100BQ4_K_M | Runs well | est. 22.8 tok/s18.3–27.4calibrated estimate ±20% | Runs great | est. 45.3 tok/s36.2–54.3calibrated estimate ±20% |
| Kolibri 1Q4_K_M | Runs great | est. 52.2 tok/s41.7–62.6calibrated estimate ±20% | Runs great | est. 96.4 tok/s77.1–115.7calibrated estimate ±20% |
| K2-Horizon MoVA 36B-A4BQ4_K_M | Runs great | est. 37.7 tok/s26.4–49.1theoretical estimate ±30% | Runs great | est. 71.2 tok/s49.9–92.6theoretical estimate ±30% |
| Qwen3.5 35B-A3BQ4_K_M | Runs great | est. 61.9 tok/s49.5–74.2calibrated estimate ±20% | Runs great | est. 109.8 tok/s87.8–131.7calibrated estimate ±20% |
| Qwen3.6 35B-A3BQ4_K_M | Runs great | est. 70.5 tok/s56.4–84.6calibrated estimate ±20% | Runs great | est. 121.8 tok/s97.5–146.2calibrated estimate ±20% |
| MiniCPM-V 4.7 35B-A3BQ4_K_M | Runs great | est. 76.0 tok/s60.8–91.2calibrated estimate ±20% | Runs great | est. 129.2 tok/s103.4–155.1calibrated estimate ±20% |
| Nemotron 3.5 Lightning 30B-A3BQ4_K_M | Runs great | est. 69.8 tok/s48.8–90.7theoretical estimate ±30% | Runs great | est. 137.2 tok/s96.0–178.3theoretical estimate ±30% |
| Qwen3 30B-A3B (2507)Q4_K_M | Runs great | est. 60.7 tok/s48.6–72.9calibrated estimate ±20% | Runs great | est. 104.2 tok/s83.4–125.0calibrated estimate ±20% |
| Gemma 3 27BQ4_K_M | Runs well | est. 12.4 tok/s9.9–14.8calibrated estimate ±20% | Runs great | est. 27.1 tok/s21.7–32.5calibrated estimate ±20% |
| Gemma 4 26B-A4BQ4_K_M | Runs great | 47.0 tok/s8k estimate 51.5 tok/s (41.2–61.8, calibrated estimate ±20%)measured (1 run, 32k context) | Runs great | est. 98.4 tok/s78.7–118.1calibrated estimate ±20% |
| Mistral Small 3.2 24BQ4_K_M | Runs well | est. 13.6 tok/s10.9–16.3calibrated estimate ±20% | Runs great | est. 29.8 tok/s23.8–35.7calibrated estimate ±20% |
| gpt-oss-20bMXFP4 | Runs great | est. 71.7 tok/s57.4–86.0calibrated estimate ±20% | Runs great | est. 145.2 tok/s116.2–174.3calibrated estimate ±20% |
| Kanana 1.5 15.7B-A3BQ4_K_M | Runs great | est. 62.2 tok/s49.7–74.6calibrated estimate ±20% | Runs great | est. 114.6 tok/s91.7–137.5calibrated estimate ±20% |
| Qwen3 14BQ4_K_M | Runs well | est. 20.6 tok/s16.5–24.7calibrated estimate ±20% | Runs great | est. 45.1 tok/s36.1–54.1calibrated estimate ±20% |
| DeepSeek R1 Distill Qwen 14BQ4_K_M | Runs well | est. 20.1 tok/s16.1–24.1calibrated estimate ±20% | Runs great | est. 44.0 tok/s35.2–52.8calibrated estimate ±20% |
| HyperCLOVA X SEED Think 14BQ4_K_M | Runs well | est. 20.9 tok/s14.6–27.2theoretical estimate ±30% | Runs great | est. 45.8 tok/s32.0–59.5theoretical estimate ±30% |
| Phi-4Q4_K_M | Runs well | est. 19.8 tok/s15.9–23.8calibrated estimate ±20% | Runs great | est. 43.5 tok/s34.8–52.2calibrated estimate ±20% |
| Gemma 3 12BQ4_K_M | Runs great | est. 27.2 tok/s21.7–32.6calibrated estimate ±20% | Runs great | est. 59.5 tok/s47.6–71.5calibrated estimate ±20% |
| Mellum2.1 12B-A2.5B ThinkingQ4_K_M | Runs great | est. 104.4 tok/s83.5–125.2calibrated estimate ±20% | Runs great | est. 179.0 tok/s143.2–214.8calibrated estimate ±20% |
| Gemma 4 12BQ4_K_M | Runs well | est. 29.4 tok/s23.5–35.2calibrated estimate ±20% | Runs great | est. 64.3 tok/s51.5–77.2calibrated estimate ±20% |
| Qwen3.5 9BQ4_K_M | Runs great | 35.2 tok/s8k estimate 34.7 tok/s (27.8–41.6, calibrated estimate ±20%)measured (1 run, 4k context) | Runs great | 82.7 tok/s8k estimate 76.0 tok/s (60.8–91.2, calibrated estimate ±20%)measured (2 runs, 512 context) |
| K2-Horizon 7BQ4_K_M | Runs great | est. 31.3 tok/s25.1–37.6calibrated estimate ±20% | Runs great | est. 68.6 tok/s54.9–82.4calibrated estimate ±20% |
| Qwen3 8BQ4_K_M | Runs great | 43.9 tok/s8k estimate 34.1 tok/s (27.3–41.0, calibrated estimate ±20%)measured (1 run, 512 context) | Runs great | est. 74.8 tok/s59.8–89.8calibrated estimate ±20% |
| DeepSeek R1 0528 Qwen3 8BQ4_K_M | Runs great | est. 34.1 tok/s27.3–41.0calibrated estimate ±20% | Runs great | est. 74.8 tok/s59.8–89.8calibrated estimate ±20% |
| DeepSeek R1 Distill Llama 8BQ4_K_M | Runs great | est. 35.5 tok/s28.4–42.6calibrated estimate ±20% | Runs great | est. 77.9 tok/s62.3–93.4calibrated estimate ±20% |
| Kanana 1.5 8BQ4_K_M | Runs great | est. 35.5 tok/s28.4–42.6calibrated estimate ±20% | Runs great | est. 77.9 tok/s62.3–93.4calibrated estimate ±20% |
| Llama 3.1 8BQ4_K_M | Runs great | est. 35.5 tok/s28.4–42.6calibrated estimate ±20% | Runs great | est. 77.9 tok/s62.3–93.4calibrated estimate ±20% |
| Gemma 4 E4BQ4_K_M | Runs great | est. 61.5 tok/s43.1–80.0theoretical estimate ±30% | Runs great | est. 116.9 tok/s81.8–152.0theoretical estimate ±30% |
| Ling-3.0 TinyQ4_K_M | Runs great | est. 179.8 tok/s125.8–233.7theoretical estimate ±30% | Runs great | est. 282.8 tok/s198.0–367.7theoretical estimate ±30% |
| Gemma 4 E2BQ4_K_M | Runs great | est. 115.9 tok/s81.1–150.6theoretical estimate ±30% | Runs great | est. 197.1 tok/s138.0–256.3theoretical estimate ±30% |
| Qwen3.5 4BQ4_K_M | Runs great | est. 68.7 tok/s55.0–82.5calibrated estimate ±20% | Runs great | est. 150.6 tok/s120.5–180.7calibrated estimate ±20% |
| Nanbeige4.2 3BQ4_K_M | Runs great | est. 34.8 tok/s24.3–45.2theoretical estimate ±30% | Runs great | est. 76.2 tok/s53.3–99.0theoretical estimate ±30% |
| Spark-X2.5 4BQ4_K_M | Runs great | est. 73.4 tok/s58.7–88.1calibrated estimate ±20% | Runs great | est. 160.8 tok/s128.6–193.0calibrated estimate ±20% |
| Llama 3.2 3BQ4_K_M | Runs great | est. 72.0 tok/s57.6–86.3calibrated estimate ±20% | Runs great | est. 157.7 tok/s126.1–189.2calibrated estimate ±20% |
| LFM2.5 2.6BQ4_K_M | Runs great | est. 118.0 tok/s82.6–153.4theoretical estimate ±30% | Runs great | est. 258.6 tok/s181.0–336.2theoretical estimate ±30% |
| MiniCPM5 2BQ4_K_M | Runs great | est. 111.4 tok/s89.1–133.6calibrated estimate ±20% | Runs great | est. 244.0 tok/s195.2–292.8calibrated estimate ±20% |
| HyperCLOVA X SEED 1.5BQ4_K_M | Runs great | est. 117.3 tok/s93.8–140.8calibrated estimate ±20% | Runs great | est. 257.1 tok/s205.6–308.5calibrated estimate ±20% |
| EXAONE 4.0 1.2BQ4_K_M | Runs great | est. 162.1 tok/s129.7–194.6calibrated estimate ±20% | Runs great | est. 355.3 tok/s284.3–426.4calibrated estimate ±20% |
| Llama 3.2 1BQ4_K_M | Runs great | est. 197.5 tok/s158.0–236.9calibrated estimate ±20% | Runs great | est. 432.7 tok/s346.2–519.2calibrated estimate ±20% |
| MiniCPM5 1BQ4_K_M | Runs great | est. 238.9 tok/s191.1–286.7calibrated estimate ±20% | Runs great | est. 523.5 tok/s418.8–628.2calibrated estimate ±20% |
| Llama 3.3 70BQ4_K_M | Runs slowly | 4.7 tok/s8k estimate 4.7 tok/s (3.8–5.7, calibrated estimate ±20%)measured (2 runs, 512 context) | Runs well | est. 10.3 tok/s8.3–12.4calibrated estimate ±20% |
| EXAONE 4.5 33BQ4_K_M | Runs slowly | est. 10.3 tok/s8.3–12.4calibrated estimate ±20% | Runs well | est. 22.7 tok/s18.1–27.2calibrated estimate ±20% |
| Nanbeige4.3 33BQ4_K_M | Runs slowly | est. 9.4 tok/s7.6–11.3calibrated estimate ±20% | Runs well | est. 20.7 tok/s16.6–24.8calibrated estimate ±20% |
| DeepSeek R1 Distill Qwen 32BQ4_K_M | Runs slowly | est. 9.7 tok/s7.7–11.6calibrated estimate ±20% | Runs well | est. 21.2 tok/s17.0–25.5calibrated estimate ±20% |
| Qwen3 32BQ4_K_M | Runs slowly | 10.7 tok/s8k estimate 9.7 tok/s (7.8–11.7, calibrated estimate ±20%)measured (2 runs, 512 context) | Runs well | est. 21.3 tok/s17.0–25.6calibrated estimate ±20% |
| EXAONE 4.0 32BQ4_K_M | Runs slowly | est. 10.7 tok/s8.6–12.9calibrated estimate ±20% | Runs well | est. 23.5 tok/s18.8–28.2calibrated estimate ±20% |
| Gemma 4 31BQ4_K_M | Runs slowly | 10.1 tok/s8k estimate 11.2 tok/s (9.0–13.5, calibrated estimate ±20%)measured (1 run, 512 context) | Runs well | est. 24.6 tok/s19.7–29.5calibrated estimate ±20% |
| Muse Glimmer 30BQ4_K_M | Runs well | est. 12.2 tok/s9.8–14.7calibrated estimate ±20% | Runs well | est. 26.8 tok/s21.4–32.1calibrated estimate ±20% |
| Granite 4.2 30BQ4_K_M | Runs slowly | est. 10.7 tok/s8.6–12.9calibrated estimate ±20% | Runs well | est. 23.5 tok/s18.8–28.2calibrated estimate ±20% |
| Qwen3.5 27BQ4_K_M | Runs slowly | 11.3 tok/s8k estimate 12.1 tok/s (9.7–14.5, calibrated estimate ±20%)measured (1 run, 4k context) | Runs well | 29.2 tok/s8k estimate 26.4 tok/s (21.2–31.7, calibrated estimate ±20%)measured (1 run, 512 context) |
| Qwen3.6 27BQ4_K_M | Runs well | est. 12.3 tok/s9.8–14.7calibrated estimate ±20% | Runs well | est. 26.9 tok/s21.5–32.3calibrated estimate ±20% |
| Qwen3.8 27BQ4_K_M | Runs slowly | est. 11.8 tok/s9.5–14.2calibrated estimate ±20% | Runs well | est. 26.0 tok/s20.8–31.1calibrated estimate ±20% |
| GLM-5.3 FlashQ4_K_M | Won't run | — | Won't run | — |
| DeepSeek V4 Flash 0731MXFP4 | Won't run | — | Won't runTry Q2_K (heavy quality loss): Runs slowly | est. 42.7 tok/s29.9–55.5theoretical estimate ±30% |
| Solar Open 2 250BIQ4_XS | Won't runTry Q2_K (heavy quality loss): Runs well | est. 22.0 tok/s17.6–26.3calibrated estimate ±20% | Won't runTry Q2_K (heavy quality loss): Runs slowly | est. 43.1 tok/s30.2–56.1theoretical estimate ±30% |
Models with a thinking mode spend extra tokens thinking, so their speed thresholds are 1.5× stricter (30 / 12 / 3 tok/s). With thinking turned off, a model may do one grade better.
Public benchmarks
Measured results on the DGX Spark 128GB
| Model | Quant | Backend | Context | Prompt (tok/s) | Generation (tok/s) | Flags | Source | Measured |
|---|---|---|---|---|---|---|---|---|
| gpt-oss-120b | MXFP4 | llama.cpp | 2k | 2,444.0 | 58.7 | CUDA, no mmap | github.com | 2026-02-05 |
| Gemma 4 31B | Q4_K_M | llama.cpp | 512 | 687.0 | 10.1 | CUDA | github.com | 2026-04-14 |
| Gemma 4 26B-A4B | Q4_K_M | llama.cpp | 32k | — | 47.0 | CUDA, depth 32768 | github.com | 2026-06-11 |
| Qwen3.5 35B-A3B | Q8_0 | llama.cpp | 2k | 2,572.0 | 49.2 | CUDA | github.com | 2026-03-12 |
| Qwen3.5 9B | Q4_K_M | llama.cpp | 4k | — | 35.2 | — | github.com | 2026-08-13 |
| Qwen3.5 27B | Q4_K_M | llama.cpp | 4k | — | 11.3 | — | github.com | 2026-08-13 |
| Qwen3.5 122B-A10B | Q4_K_M | llama.cpp | 4k | — | 29.0 | — | github.com | 2026-08-13 |
| Llama 3.3 70B | Q4_K_M | llama.cpp | 512 | 284.0 | 4.7 | CUDA, Vulkan | github.com | 2025-11-22 |
| Llama 3.3 70B | Q4_K_M | llama.cpp | 512 | — | 4.6 | CUDA | github.com | 2026-08-12 |
| Llama 3.3 70B | Q8_0 | llama.cpp | 512 | — | 2.9 | CUDA | github.com | 2026-08-12 |
| Llama 3.3 70B | Q2_K | llama.cpp | 512 | — | 7.2 | CUDA | github.com | 2026-08-12 |
| Qwen3 32B | Q4_K_M | llama.cpp | 512 | 630.0 | 10.5 | CUDA, Vulkan | github.com | 2025-11-22 |
| Qwen3 32B | Q4_K_M | llama.cpp | 512 | 762.0 | 10.8 | CUDA | github.com | 2025-12-05 |
| Qwen3 8B | Q4_K_M | llama.cpp | 512 | 3,168.0 | 43.9 | CUDA | github.com | 2025-12-05 |
Measured results on the M5 Max 40-core 128GB
| Model | Quant | Backend | Context | Prompt (tok/s) | Generation (tok/s) | Flags | Source | Measured |
|---|---|---|---|---|---|---|---|---|
| llama-2-7b | Q4_0 | llama.cpp | 512 | 3,220.0 | 119.9 | Metal, FA | github.com | 2026-08-25 |
| Gemma 4 26B-A4B | Q8_0 | llama.cpp | 512 | 3,582.0 | 95.4 | Metal | github.com | 2026-09-15 |
| Qwen3.5 27B | Q4_K_M | llama.cpp | 512 | 731.0 | 29.2 | — | github.com | 2026-09-27 |
| Qwen3.5 9B | Q4_K_M | llama.cpp | 512 | 2,369.0 | 86.5 | — | github.com | 2026-09-27 |
| Qwen3.5 9B | Q4_K_M | llama.cpp | 512 | 2,338.0 | 78.8 | — | localmaxxing.com | 2026-06-19 |
Public benchmarks we calibrate against. Their conditions (context, backend, flags) can differ from the estimates above.
Frequently asked questions
Which is faster for local LLMs, the DGX Spark 128GB or the M5 Max 40-core 128GB?
The M5 Max 40-core 128GB generates text about 2.2× faster than the DGX Spark 128GB (median of our estimates over the 56 models that fit entirely in memory on both at Q4_K_M or the closest available quant). Estimated speed on Ling-3.0 Flash at Q4_K_M: the DGX Spark 128GB est. 52.8 tok/s (36.9–68.6, theoretical estimate ±30%); the M5 Max 40-core 128GB est. 96.3 tok/s (67.4–125.2, theoretical estimate ±30%).
What is the largest model each can run entirely in memory?
The DGX Spark 128GB fits Ling-3.0 Flash at Q4_K_M (77.01 GB file) entirely in 128 GB of unified memory, at est. 52.8 tok/s (36.9–68.6, theoretical estimate ±30%). The M5 Max 40-core 128GB fits Ling-3.0 Flash at Q4_K_M (77.01 GB file) entirely in 128 GB of unified memory, at est. 96.3 tok/s (67.4–125.2, theoretical estimate ±30%).
How many local LLMs run well on each?
At Q4_K_M with 8k context, out of 59 tracked models: the DGX Spark 128GB — 34 Runs great, 12 Runs well, 10 Runs slowly, 3 Won't run; the M5 Max 40-core 128GB — 44 Runs great, 12 Runs well, 0 Runs slowly, 3 Won't run. 20 models get a different verdict.
Speeds are estimates from memory bandwidth, calibrated against public benchmarks, and each one comes with an error band and a confidence label. Real results vary with drivers, backend, context length and thermals.