Can I run Qwen3 32B on the Apple M4 Pro?
Runs slowlyQ4_K_M fits in unified memory (22.5 of 33.6 GB usable by the GPU): Runs slowly, est. 9.5 tok/s (7.6–11.4, calibrated estimate ±20%). Q2_K (heavy quality loss) would reach Runs well, est. 14.3 tok/s (11.5–17.2, calibrated estimate ±20%).
48 GB unified memory · 273.0 GB/s · FP16 8.1 TFLOPS. Assumes 8k context and an f16 KV cache. Verdicts are shown for each memory size.
Verdict by memory size
The page uses the 48 GB configuration; here is every size.
- 24 GBWon't runTry IQ4_XS: Runs slowlyest. 6.9 tok/s (4.8–8.9, theoretical estimate ±30%)Q2_K (heavy quality loss): Runs well
- 48 GBRuns slowlyest. 9.5 tok/s (7.6–11.4, calibrated estimate ±20%)Q2_K (heavy quality loss): Runs well(used on this page)
- 64 GBRuns slowlyest. 9.5 tok/s (7.6–11.4, calibrated estimate ±20%)Q2_K (heavy quality loss): Runs well
Every quant of Qwen3 32B on the Apple M4 Pro
| Quant | File size | Verdict | Speed | Memory | Runs as | Notes |
|---|---|---|---|---|---|---|
| Q2_K | 12.34 GB | Runs well | est. 14.3 tok/s11.5–17.2calibrated estimate ±20% | 15.1 / 33.6 GB | Unified memory | — |
| IQ4_XS | 17.69 GB | Runs slowly | est. 10.5 tok/s8.4–12.6calibrated estimate ±20% | 20.4 / 33.6 GB | Unified memory | — |
| Q4_K_Mbaseline | 19.76 GB | Runs slowly | est. 9.5 tok/s7.6–11.4calibrated estimate ±20% | 22.5 / 33.6 GB | Unified memory | — |
| Q8_0 | 34.82 GB | Runs slowly | est. 3.7 tok/s2.6–4.8theoretical estimate ±30% | 37.0 GB RAM | CPU only | — |
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.
Where the memory goes at Q4_K_M
- Weights
- 19.8 GB
- KV cache
- 2.1 GB
- Compute buffer
- 0.6 GB
- Free
- 11.1 GB
- Not usable by the GPU
- 14.4 GB
Context length vs. KV cache
| Context | KV f16 | KV q8_0 | KV q4_0 |
|---|---|---|---|
| 4k | 21.4 GBRuns slowly est. 10.0 tok/s8.0–12.0calibrated estimate ±20% | 20.9 GBRuns slowly est. 10.2 tok/s8.2–12.2calibrated estimate ±20% | 20.6 GBRuns slowly est. 10.3 tok/s8.3–12.4calibrated estimate ±20% |
| 8k | 22.5 GBRuns slowly est. 9.5 tok/s7.6–11.4calibrated estimate ±20% | 21.5 GBRuns slowly est. 9.9 tok/s7.9–11.9calibrated estimate ±20% | 20.9 GBRuns slowly est. 10.2 tok/s8.1–12.2calibrated estimate ±20% |
| 16k | 24.7 GBRuns slowly est. 8.6 tok/s6.9–10.4calibrated estimate ±20% | 22.7 GBRuns slowly est. 9.4 tok/s7.5–11.3calibrated estimate ±20% | 21.6 GBRuns slowly est. 9.9 tok/s7.9–11.9calibrated estimate ±20% |
| 32k | 29.1 GBRuns slowly est. 7.3 tok/s5.9–8.8calibrated estimate ±20% | 25.2 GBRuns slowly est. 8.5 tok/s6.8–10.2calibrated estimate ±20% | 23.0 GBRuns slowly est. 9.3 tok/s7.5–11.2calibrated estimate ±20% |
S = Runs great · A = Runs well · B = Runs slowly · F = Won't run
At Q4_K_M the verdict stays Runs slowly up to 32k context with an f16 KV cache, and up to 32k with q8_0.
Estimated speed
- Generation
- est. 9.5 tok/s (7.6–11.4, calibrated estimate ±20%)
- Prompt processing
- about 99 tok/s (59–138, rough estimate ±40%)
Measured on this exact combination
No public measurement for this exact combination yet; the numbers above are estimates.
If this is not enough
A smaller model that runs well on the Apple M4 Pro
Runs greatNemotron 3.5 Lightning 30B-A3B: Runs great, est. 68.0 tok/s (47.6–88.4, theoretical estimate ±30%)
A lower quant of Qwen3 32B
Runs wellQ2_K (12.34 GB, heavy quality loss): Runs well, est. 14.3 tok/s (11.5–17.2, calibrated estimate ±20%)
Qwen3 32B on the Apple M4 Max (32-core GPU)
Runs wellQ4_K_M: Runs well, est. 14.2 tok/s (11.4–17.1, calibrated estimate ±20%)
How to run it
Commands for the Q4_K_M file. Both tools download from Hugging Face on first run.
File: Qwen_Qwen3-32B-Q4_K_M.gguf (19.76 GB) from bartowski/Qwen_Qwen3-32B-GGUF.
llama-server -hf bartowski/Qwen_Qwen3-32B-GGUF:Q4_K_M -c 8192 -ngl all -fa on- -ngl all loads every layer on the GPU.
- -fa on enables flash attention (needed for KV cache quantization).
- --cache-type-k q8_0 --cache-type-v q8_0 shrinks the KV cache to 1.15 GB at 8k context.
Terminal:
OLLAMA_CONTEXT_LENGTH=8192 ollama serve
ollama run hf.co/bartowski/Qwen_Qwen3-32B-GGUF:Q4_K_M- Ollama defaults to 4k context on GPUs under 24 GB. Set OLLAMA_CONTEXT_LENGTH when starting the server, or /set parameter num_ctx inside the chat.
/set parameter num_ctx 8192
Related pages
Guide: Running local LLMs on a Mac (M4, M5): how much unified memory?
Other models on the Apple M4 Pro
Qwen3 32B on other hardware
Frequently asked questions
Can I run Qwen3 32B on the Apple M4 Pro?
Q4_K_M fits in unified memory (22.5 of 33.6 GB usable by the GPU): Runs slowly, est. 9.5 tok/s (7.6–11.4, calibrated estimate ±20%). Q2_K (heavy quality loss) would reach Runs well, est. 14.3 tok/s (11.5–17.2, calibrated estimate ±20%). Q4_K_M needs 22.5 GB at 8k context; the GPU can use 33.6 GB of the unified memory.
How much context can Qwen3 32B use on the Apple M4 Pro?
At Q4_K_M the verdict stays Runs slowly up to 32k context with an f16 KV cache (8.6 GB of KV) and up to 32k with a q8_0 KV cache (4.6 GB). The model supports up to 32k.
Which quant should I use, and how fast is it?
Q4_K_M (19.76 GB) is the recommended balance: Runs slowly, est. 9.5 tok/s (7.6–11.4, calibrated estimate ±20%). The largest tracked file that still gets Runs slowly is Q8_0 (34.82 GB), est. 3.7 tok/s (2.6–4.8, theoretical estimate ±30%).
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.