Yes — with 10.3 GB to spare
Qwen3.8 27B at Q4_K_M fits your M3 Pro · 36 GB entirely in unified memory at 8K context, at an estimated 5.4 tokens per second. Past 172K the KV cache pushes it over — quantise the cache to q8_0, or step down a quantisation, to go longer.
The current default local Qwen: dense 27B, text + image + video, 262K context. Only 16 of its 64 blocks keep a KV cache, so long context is cheap.
The VRAM budget
Quantisation ladder
| Quant | Weights | Total @ 8K | Max context | Tok/s | Quality | Fit |
|---|---|---|---|---|---|---|
| Q8_0 | 27.5 GB | 28.6 GB | — | ~3.0 | −0.1% ppl | 1.6 GB over |
| Q6_K | 21.2 GB | 22.3 GB | 82K | 3.9 | −0.4% ppl | Long context |
| Q5_K_M | 18.4 GB | 19.5 GB | 128K | 4.6 | −0.8% ppl | Long context |
| Q4_K_M | 15.6 GB | 16.7 GB | 172K | 5.4 | −1.9% ppl | Recommended |
| Q3_K_M | 12.7 GB | 13.8 GB | 219K | 6.6 | −5.4% ppl | Long context |
| Q2_K | 10.8 GB | 11.9 GB | 248K | 7.7 | −15% ppl | Long context |
Quality is the published perplexity delta against f16 weights. Max context assumes an f16 KV cache; q8_0 roughly doubles it. Only 16 of its 64 blocks keep a per-token KV cache; the rest are linear-attention, Mamba or convolution blocks with a fixed-size state.
How to run it
$ pip install mlx-lm $ mlx_lm.generate --model mlx-community/Qwen3.8-27B-4bit \ --max-tokens 512 --prompt "Hello"
Apple's own array framework. The fastest path on Apple Silicon. More on MLX.