Computed with the open FitLLM engine — accurate per-layer KV-cache modeling, not a naive estimate. Updated 2026-07-10.
| Model weights | 109 GB |
| KV cache | 1.1 GB |
| Runtime + macOS | 16.2 GB |
| Total used | 132 / 128 GB |
| Short by | 4.3 GB |
Max context at 8-bit: does not fit. Unified memory is shared by the OS — FitLLM leaves ~20% headroom.
| Quant | Weights | Fits (KV F16) | Used @32K |
|---|---|---|---|
| 4bit | 54.5 GB | ✅ up to 131K ctx | 71.3 / 128 GB |
| 8bit | 109 GB | ❌ won't fit | 132 / 128 GB |
| 16bit | 218 GB | ❌ won't fit | 254 / 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)Live badge for your README or model card — recomputed by the engine, never stale:
[](https://fitllm.run/can-i-run/gpt-oss-120b-on-m5-max-128gb)
← renders like this, live.
Or from your terminal (exit 0/1 — works as a pre-download guard):
npx fitllm "gpt-oss-120b" --mac 128
gpt-oss-120b interleaves sliding-window (local) and global attention 5:1. The local layers cap their KV cache at the 128-token window, and the global layers use a different head shape (head_dim 64 vs 64). A naive "all layers × full context × one head_dim" formula over-counts KV cache by several times.
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, Qwen3-0.6B, Qwen3-1.7B, Llama-3.2-1B-Instruct, Gemma-3-1B-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