FitLLM

Can I run Qwen 3.8 27B on a M5 Max 128GB Mac?

✅ Yes — it fits — up to ~262K tokens at 8-bit

Computed with the open FitLLM engine — accurate per-layer KV-cache modeling, not a naive estimate. Updated 2026-08-24.

Memory breakdown (8-bit, F16 KV, 33K context)

Model weights25.9 GB
KV cache2.0 GB
Linear-attention state (fixed — does not grow with context)0.1 GB
Runtime + macOS12.4 GB
Total used40.4 / 128 GB
Free87.6 GB

Max context at 8-bit: ~262K tokens. Unified memory is shared by the OS — FitLLM leaves ~20% headroom.

Every quantization on M5 Max 128GB

QuantWeightsFits (KV F16)Used @32K
4bit12.9 GB✅ up to 262K ctx25.9 / 128 GB
8bit25.9 GB✅ up to 262K ctx40.4 / 128 GB
16bit51.7 GB✅ up to 262K ctx69.4 / 128 GB

Lower quants free memory at some output-quality cost — 4-bit is the common sweet spot for local use.

▶ Open the interactive calculator (this exact setup)

Embed this verdict

Live badge for your README or model card — recomputed by the engine, never stale:

[![fits: Qwen 3.8 27B on M5 Max 128GB Mac](https://img.shields.io/endpoint?url=https%3A%2F%2Ffitllm.run%2Fapi%2Fbadge%3Fmodel%3DQwen%25203.8%252027B%26ram%3D128%26quant%3D8)](https://fitllm.run/can-i-run/qwen-3-8-27b-on-m5-max-128gb)

fit badge preview ← renders like this, live.

Or from your terminal (exit 0/1 — works as a pre-download guard):

npx fitllm "Qwen 3.8 27B" --mac 128

Why most calculators get this wrong

Qwen 3.8 27B is a hybrid model: only 16 of its 64 layers use full attention — the rest are linear and keep no growing KV cache. Naive calculators count every layer at full context and badly over-estimate.

Other options

same Mac Models that fit in 128GB: GLM-4.7-Flash, gpt-oss-20b, Qwen 3.6 27B, Qwen 3.6 35B-A3B, Qwen-AgentWorld-35B-A3B, Gemma 4 e2b, Gemma 4 e4b, Gemma 4 12b, Gemma 4 26b A4B, Gemma 4 31b, Llama-3.2-3B-Instruct, Llama-3.1-8B-Instruct, MiniCPM5-1B, Qwen3-0.6B, Qwen3-1.7B, Llama-3.2-1B-Instruct, Gemma-3-1B-it, Qwen 3.8 27B, Laguna XS 2.1.

Reproduce it

Open math: fitllm-engine (MIT), from official config.json.

All numbers are computed by the open-source fitllm-engine (MIT) from official model config.json values — reproduce or audit them yourself. Estimates; real usage varies with runtime (llama.cpp / MLX / Ollama), driver and display. Found a mismatch? Report it. · FitLLM home