Can MacBook Air M5 32GB run gpt-oss 20B?
Estimated speed and memory fit for gpt-oss 20B (20.91B MoE, 3.6B active) on MacBook Air M5 32GB. We have no measured run for this pair yet, so the speed is an estimate; submit yours.
Short answer
Yes. gpt-oss 20B Q8_0 fits fully on MacBook Air M5 32GB at 16k context, using 12.5 of 21.9 GB usable, and generates about ~37 tokens/s (estimated, not measured).
Measured generation speed by quantization
No measured rows for gpt-oss 20B on MacBook Air M5 32GB yet. The ~37 tok/s above is a bandwidth estimate (153 GB/s × 0.64 efficiency). Have this machine? Submit a llama-bench result and this page will switch to measured data.
Generation = tg128 (128 generated tokens, short context). Public rows are medians of community llama.cpp results (sources); our own runs use llama-bench on a rented GPU.
Alternatives
Less memory that still fits gpt-oss 20B
Smaller memory usually means a cheaper card or Mac (we do not list prices).
- RTX 5080 16GB: Q8_0, 15 GB usable, ~239 tok/s measured
- RTX 5070 Ti 16GB: Q8_0, 15 GB usable, ~224 tok/s measured
- RTX 5060 Ti 16GB: Q8_0, 15 GB usable, ~125 tok/s measured
Faster for gpt-oss 20B
- 16GB VRAM class (RTX 4060 Ti 16GB, 32GB RAM): Q8_0, 15 GB usable, ~94 tok/s measured
- RTX 4090 24GB: Q8_0, 23 GB usable, ~258 tok/s measured
- AMD RX 7900 XTX 24GB: Q8_0, 23 GB usable, ~221 tok/s estimated
Other models on MacBook Air M5 32GB, similar size
- LFM2.5 24B-A2B (hardware page): Q6_K, fits fully, ~39 tok/s (estimated)
- Mistral Small 3.2 24B (hardware page): Q4_K_M, fits fully, ~6 tok/s (scaled from measured)
- Gemma 4 26B-A4B (hardware page): UD-Q5_K_M, fits fully, ~25 tok/s (estimated)
- Qwen3.6 27B (hardware page): Q4_K_M, fits fully, ~6 tok/s (estimated)
Memory and context limits
Q8_0 weights are 12.1 GB; the 16k f16 KV cache adds 0.41 GB. Largest context that fits in 21.9 GB usable:
| KV cache type | Max context |
|---|---|
| f16 | 128k |
| q8_0 | 128k |
| q4_0 | 128k |
Native limit 128k. Full KV cache table for gpt-oss 20B.
Copy-paste commands
The advisor's pick for this hardware: Q8_0, 16k context.
llama-server -hf unsloth/gpt-oss-20b-GGUF:Q8_0 -c 16384 -fa on --jinja -ngl 99
OLLAMA_CONTEXT_LENGTH=16384 ollama serve ollama run hf.co/unsloth/gpt-oss-20b-GGUF:Q8_0
pip install -U mlx-lm mlx_lm.generate --model mlx-community/gpt-oss-20b-MXFP4-Q8 --prompt "Hello" --max-tokens 256 mlx_lm.server --model mlx-community/gpt-oss-20b-MXFP4-Q8 --port 8080
MLX runs on Apple Silicon only. Repo: mlx-community/gpt-oss-20b-MXFP4-Q8 (converted with mlx-lm, per its model card). These commands use MLX's default context handling; there is no MLX speed on this site yet.
MLX on this Mac
MLX is Apple's machine-learning framework for Apple Silicon. Where an mlx-community conversion exists, the commands above include an MLX block next to llama.cpp and ollama.
- File size. MLX's default quantization is affine with a group size of 64, and every group stores a scale and a bias (MLX docs). With 16-bit scales and biases that works out to about 4.5 bits per weight at 4-bit and 8.5 at 8-bit. llama.cpp lists Q4_K_M at about 4.89 and Q8_0 at about 8.50 bits per weight (llama.cpp quantize README). So an MLX 4-bit repo is usually a little smaller than Q4_K_M and MLX 8-bit is about the same size as Q8_0. Real repos differ because some layers (embeddings, vision towers, MoE experts in MXFP4 for gpt-oss) are stored differently, so we show each repo's actual size.
- Quality. They are different schemes. MLX 4-bit applies one bit width with per-group scale and bias, while Q4_K_M is a K-quant mix that keeps some tensors at higher precision (llama.cpp k-quants PR). We have not found a rigorous like-for-like quality comparison, so we only pair them by bit class: MLX 4-bit with Q4-class GGUF and MLX 8-bit with Q8_0.
- Speed. MLX speeds are not shown on this site yet. Published comparisons often find MLX faster than llama.cpp on Macs: an M2 Ultra study measured about 230 tok/s for MLX against about 150 for llama.cpp (short context) on Qwen-2.5 models (arXiv 2511.05502), and an M4 Max table shows mlx-lm ahead of llama.cpp on most 4-bit text models but behind on Gemma 3 4B (arXiv 2601.19139). So MLX may well run faster than the llama.cpp numbers shown here, but not for every model, and we do not estimate by how much.
- Which package. Text-only conversions run with mlx-lm. Many recent mlx-community repos (Gemma 4, Qwen3.5/3.6/3.8, Qwen3-VL) were converted with mlx-vlm and their model cards say to run them with it, so the command we show follows each repo's card.
Repos are checked against the Hugging Face API (how).
FAQ
How fast is gpt-oss 20B on MacBook Air M5 32GB?
About 37.3 tokens/s for generation (Q8_0, estimated from 153 GB/s memory bandwidth). Speed drops as the context fills; see the depth table on this hardware's other pages.
How much memory does gpt-oss 20B need on MacBook Air M5 32GB?
The advisor's pick, Q8_0, is 12.1 GB of weights plus 0.41 GB of KV cache at 16k context (12.5 GB), against 21.9 GB usable.
Is the gpt-oss 20B speed on MacBook Air M5 32GB measured or estimated?
Estimated. No measured llama.cpp run for this pair is on file yet, so the figure comes from memory bandwidth and our calibration against measured hardware.
What can I use instead of MacBook Air M5 32GB for gpt-oss 20B?
With less memory, RTX 5080 16GB (~239 tok/s), RTX 5070 Ti 16GB (~224 tok/s), RTX 5060 Ti 16GB (~125 tok/s) also fit it fully. Faster: 16GB VRAM class (RTX 4060 Ti 16GB, 32GB RAM) (~94 tok/s), RTX 4090 24GB (~258 tok/s), AMD RX 7900 XTX 24GB (~221 tok/s).
What is the maximum context for gpt-oss 20B on MacBook Air M5 32GB?
With an f16 KV cache about 128k tokens, 128k with q8_0 and 128k with q4_0, bounded by the model's own limit.
Related
All models on MacBook Air M5 32GB · gpt-oss 20B on all hardware · VRAM tier · all measured pages · leaderboard