gpt-oss-120b on a Mac
OpenAI · 116.8B parameters (5.1B active — mixture of experts) · Apache 2.0 · released 2025-08
Weights @ Q4_K_M
66.6 GiB
the usual download size
KV cache
72 KB
per token, FP16
Max context
128K
tokens
Smallest Mac
96 GB
M2 Max
Short answerA M2 Max 96GB is the smallest Apple Silicon machine that loads gpt-oss-120b at Q4_K_M with an 8K context, at roughly 64 tokens/sec. MacBook Pro 16" (M2 Max) is the cheapest way to get that configuration.
Every Mac, ranked
| Mac | Memory | Needs | Tok/s | Verdict |
|---|---|---|---|---|
| M1 8GB | 8 GB | 71.3 GiB | 11 | No |
| M1 16GB | 16 GB | 71.3 GiB | 11 | No |
| M2 16GB | 16 GB | 71.3 GiB | 16 | No |
| M4 16GB | 16 GB | 71.3 GiB | 19 | No |
| M1 Pro 16GB | 16 GB | 71.3 GiB | 32 | No |
| M3 Pro 18GB | 18 GB | 71.3 GiB | 24 | No |
| M2 24GB | 24 GB | 71.3 GiB | 16 | No |
| M4 24GB | 24 GB | 71.3 GiB | 19 | No |
| M4 Pro 24GB | 24 GB | 71.3 GiB | 44 | No |
| M4 32GB | 32 GB | 71.3 GiB | 19 | No |
| M1 Max 32GB | 32 GB | 71.3 GiB | 64 | No |
| M2 Max 32GB | 32 GB | 71.3 GiB | 64 | No |
| M3 Max 36GB | 36 GB | 71.3 GiB | 48 | No |
| M4 Max 36GB | 36 GB | 71.3 GiB | 66 | No |
| M4 Pro 48GB | 48 GB | 71.3 GiB | 44 | No |
| M4 Max 48GB | 48 GB | 71.3 GiB | 87 | No |
| M4 Pro 64GB | 64 GB | 71.3 GiB | 44 | No |
| M1 Max 64GB | 64 GB | 71.3 GiB | 64 | No |
| M4 Max 64GB | 64 GB | 71.3 GiB | 87 | No |
| M2 Ultra 64GB | 64 GB | 71.3 GiB | 128 | No |
| M2 Max 96GB | 96 GB | 71.3 GiB | 64 | Yes, but tight |
| M3 Ultra 96GB | 96 GB | 71.3 GiB | 131 | Yes, but tight |
| M3 Max 128GB | 128 GB | 71.3 GiB | 64 | Yes, comfortably |
| M4 Max 128GB | 128 GB | 71.3 GiB | 87 | Yes, comfortably |
| M2 Ultra 192GB | 192 GB | 71.3 GiB | 128 | Yes, comfortably |
| M3 Ultra 256GB | 256 GB | 71.3 GiB | 131 | Yes, comfortably |
| M3 Ultra 512GB | 512 GB | 71.3 GiB | 131 | Yes, comfortably |
Download size by quantisation
Weight memory scales linearly with bits per parameter. Everything below assumes an 8K context on top.
| Quantisation | Weights | Total @ 8K | Notes |
|---|---|---|---|
| FP16 | 217.6 GiB | 229.8 GiB | Full precision. Reference quality, twice the memory of Q8. |
| Q8_0 | 115.6 GiB | 122.7 GiB | Indistinguishable from FP16 in practice, at half the size. |
| Q6_K | 89.7 GiB | 95.6 GiB | Near-lossless. A good stop when you have memory to spare. |
| Q5_K_M | 77.5 GiB | 82.7 GiB | Slightly better than Q4_K_M, noticeably bigger. |
| Q4_K_M | 66.6 GiB | 71.3 GiB | The default. Best quality-per-gigabyte for most people. |
| Q3_K_M | 53.0 GiB | 57.0 GiB | Visible quality loss. Use to squeeze one size class up. |
| Q2_K | 40.8 GiB | 44.2 GiB | Last resort. Often worse than a smaller model at Q4. |
Mixture of expertsgpt-oss-120b holds 116.8B parameters in memory but only reads about 5.1B per token. You pay the full memory cost of a 116.8B model and get roughly the speed of a 5.1B one — an excellent trade if you have the RAM.