Best local LLMs for MacBook Pro 14/16 (2024) M4 Max 128GB
MacBook Pro 14/16 (2024) — M4 Max (40-core GPU) 128GB. Memory-fit math with KV cache, speeds labelled by how they were obtained, and commands you can paste.
Best for Coding · 16k context
| Model | Quant | Fit | Memory | Speed (generation) |
|---|---|---|---|---|
| GLM-4.5-Air | Q5_K_M | fits fully | 86.6 GB | ~22 tok/s estimated |
| gpt-oss 120B | Q8_0 | fits fully | 64.0 GB | ~73 tok/s estimated |
| Qwen3-Coder 30B-A3B | Q8_0 | fits fully | 34.1 GB | ~58 tok/s estimated |
| Qwen3.6 35B-A3B | Q8_0 | fits fully | 37.3 GB | ~66 tok/s estimated |
| Gemma 4 26B-A4B | Q8_0 | fits fully | 27.9 GB | ~50 tok/s estimated |
llama-server -hf unsloth/GLM-4.5-Air-GGUF:Q5_K_M -c 16384 -fa on --jinja -ngl 99
OLLAMA_CONTEXT_LENGTH=16384 ollama run hf.co/unsloth/GLM-4.5-Air-GGUF:Q5_K_M
Best for Chat / general · 16k context
| Model | Quant | Fit | Memory | Speed (generation) |
|---|---|---|---|---|
| GLM-4.5-Air | Q5_K_M | fits fully | 86.6 GB | ~22 tok/s estimated |
| gpt-oss 120B | Q8_0 | fits fully | 64.0 GB | ~73 tok/s estimated |
| Gemma 4 12B | Q8_0 | fits fully | 13.7 GB | ~20 tok/s scaled from measured src |
| Qwen3.6 35B-A3B | Q8_0 | fits fully | 37.3 GB | ~66 tok/s estimated |
| Qwen3-Coder 30B-A3B | Q8_0 | fits fully | 34.1 GB | ~58 tok/s estimated |
llama-server -hf unsloth/GLM-4.5-Air-GGUF:Q5_K_M -c 16384 -fa on --jinja -ngl 99
OLLAMA_CONTEXT_LENGTH=16384 ollama run hf.co/unsloth/GLM-4.5-Air-GGUF:Q5_K_M
Best for Vision · 16k context
| Model | Quant | Fit | Memory | Speed (generation) |
|---|---|---|---|---|
| Gemma 4 12B | Q8_0 | fits fully | 13.7 GB | ~20 tok/s scaled from measured src |
| Qwen3.6 35B-A3B | Q8_0 | fits fully | 37.3 GB | ~66 tok/s estimated |
| Gemma 4 26B-A4B | Q8_0 | fits fully | 27.9 GB | ~50 tok/s estimated |
| Qwen3.5 9B | Q8_0 | fits fully | 10.1 GB | ~27 tok/s scaled from measured src |
| Qwen3-VL 8B | Q8_0 | fits fully | 11.1 GB | ~30 tok/s scaled from measured src |
llama-server -hf unsloth/gemma-4-12b-it-GGUF:Q8_0 -c 16384 -fa on --jinja -ngl 99
OLLAMA_CONTEXT_LENGTH=16384 ollama run hf.co/unsloth/gemma-4-12b-it-GGUF:Q8_0
All 13 models that fit, fastest first · 16k context
Click a column header to sort. 4 of 13 speeds here are measured or scaled from measured; the rest are bandwidth estimates. Filter by use case, speed source, fit, license and more in the interactive advisor →
| Model | Params | Quant | Fit | Memory | Tok/s | Source |
|---|---|---|---|---|---|---|
| gpt-oss 20B | 20.91B MoE | Q8_0 | fits fully | 12.5 GB | ~97 | estimated |
| gpt-oss 120B | 116.83B MoE | Q8_0 | fits fully | 64.0 GB | ~73 | estimated |
| Qwen3.6 35B-A3B | 35.95B MoE | Q8_0 | fits fully | 37.3 GB | ~66 | estimated |
| Qwen3-Coder 30B-A3B | 30.53B MoE | Q8_0 | fits fully | 34.1 GB | ~58 | estimated |
| Qwen3.5 4B | 4.66B | Q8_0 | fits fully | 5.1 GB | ~57 | scaled from measured |
| Gemma 4 26B-A4B | 25.81B MoE | Q8_0 | fits fully | 27.9 GB | ~50 | estimated |
| Qwen3-VL 8B | 8.77B | Q8_0 | fits fully | 11.1 GB | ~30 | scaled from measured |
| Qwen3.5 9B | 9.65B | Q8_0 | fits fully | 10.1 GB | ~27 | scaled from measured |
| GLM-4.5-Air | 110.47B MoE | Q5_K_M | fits fully | 86.6 GB | ~22 | estimated |
| Gemma 4 12B | 11.96B | Q8_0 | fits fully | 13.7 GB | ~20 | scaled from measured |
| Mistral Small 3.2 24B | 24.01B | Q5_K_M | fits fully | 19.4 GB | ~15 | estimated |
| Qwen3.6 27B | 27.78B | Q4_K_M | fits fully | 18.1 GB | ~15 | estimated |
| Gemma 4 31B | 31.27B | Q4_K_M | fits fully | 20.5 GB | ~14 | estimated |
Long context on this hardware · up to 1M tokens
Largest context whose KV cache still fits next to the weights (same placement as the 16k result, KV types f16 / q8_0 / q4_0). Models are capped at their verified maximum; extended means beyond the native maximum using YaRN, only listed where the model card documents it. Long context needs flash attention (-fa on, already in the commands) and a lot of memory; a quantized KV cache saves memory but can cost accuracy. Speed at depth is an estimate (penalty fitted to measured depth runs up to 128k).
Try it in the advisor: 128k · 256k · 512k · 1M
| Model | Native max | Max ctx f16 | Max ctx q8_0 | Max ctx q4_0 | Est. tok/s at max f16 ctx |
|---|---|---|---|---|---|
| Qwen3.6 35B-A3B Q8_0 | 256k | 1M extended | 1M extended | 1M extended | ~11 estimated |
| Qwen3.5 4B Q8_0 | 256k | 1M extended | 1M extended | 1M extended | ~9 estimated |
| Qwen3.5 9B Q8_0 | 256k | 1M extended | 1M extended | 1M extended | ~8 estimated |
| Qwen3.6 27B Q4_K_M | 256k | 1M extended | 1M extended | 1M extended | ~4 estimated |
| Qwen3-Coder 30B-A3B Q8_0 | 256k | 512k extended | 1M extended | 1M extended | ~5 estimated |
| Qwen3-VL 8B Q8_0 | 256k | 512k extended | 1M extended | 1M extended | ~4 estimated |
| Gemma 4 26B-A4B Q8_0 | 256k | 256k | 256k | 256k | ~25 estimated |
| Gemma 4 12B Q8_0 | 256k | 256k | 256k | 256k | ~16 estimated |
| Gemma 4 31B Q4_K_M | 256k | 256k | 256k | 256k | ~8 estimated |
| gpt-oss 20B Q8_0 | 128k | 128k | 128k | 128k | ~46 estimated |
| gpt-oss 120B Q8_0 | 128k | 128k | 128k | 128k | ~32 estimated |
| Mistral Small 3.2 24B Q5_K_M | 128k | 128k | 128k | 128k | ~8 estimated |
| GLM-4.5-Air Q5_K_M | 128k | 16k | 32k | 64k | ~18 estimated |
Open the interactive advisor with this hardware →
Speeds marked measured are medians of real runs (short-context generation) from these sources; scaled from measured means a measurement of a same-size or same-model-different-quant run, scaled by bytes read; estimated comes from memory bandwidth (spec source: https://support.apple.com/en-us/122211) × an efficiency factor of 0.47 calibrated to measured runs on this hardware. 4 measured data points on file for this hardware · submit your benchmark. Memory size on this page is an example configuration; check what your machine has. Model data last verified 2026-10-14. Ranking = fits and fast enough first, then larger; not a quality benchmark.
Page generated 2026-10-16 by tools/generate_pages.js