← CanIRunLocal · All hardware · All models
With 16 GB unified memory (about 10.7 GB usable by the GPU), these are the best open models that fit. The top pick is Bonsai 2 27B (ternary) at Q2_0 (~10.6 GB, ~19 tok/s): ollama run bonsai-2:27b.
Best for coding: LFM2.5 8B-A1B (MoE) (lfm2.5:8b-a1b-q8_0), DeepSeek Coder V2 Lite 16B (MoE) (deepseek-coder-v2:16b), Gemma 4 12B (gemma4:12b-it-q4_K_M).
Runtimes available for this hardware: Ollama, LM Studio, llama.cpp, MLX.
Open the interactive checker for M2 Pro 16GB| # | Model | Quant | Memory needed | Fit | Speed | Command |
|---|---|---|---|---|---|---|
| 1 | Bonsai 2 27B (ternary) | Q2_0 | 10.6 GB | fits in fast memory | ~19 tok/s | ollama run bonsai-2:27b |
| 2 | Bonsai 2 9B (ternary) | Q2_0 | 4.6 GB | fits in fast memory | ~50 tok/s | ollama run bonsai-2:9b |
| 3 | LFM2.5 8B-A1B (MoE) | Q8_0 | 9.8 GB | fits in fast memory | ~75 tok/s | ollama run lfm2.5:8b-a1b-q8_0 |
| 4 | DeepSeek R1 Distill Qwen 14B | Q4_K_M | 10.3 GB | fits in fast memory | ~18 tok/s | ollama run deepseek-r1:14b |
| 5 | Phi-4 14B | Q4_K_M | 10.4 GB | fits in fast memory | ~18 tok/s | ollama run phi4:14b |
| 6 | Qwen3 14B | Q4_K_M | 10.6 GB | fits in fast memory | ~17 tok/s | ollama run qwen3:14b |
| 7 | Mistral Nemo 12B | Q5_K_M | 9.9 GB | fits in fast memory | ~18 tok/s | ollama run mistral-nemo:12b-instruct-2407-q5_K_M |
| 8 | Ministral 3 14B | Q4_K_M | 10.7 GB | fits in fast memory | ~18 tok/s | ollama run ministral-3:14b |
| 9 | Gemma 3 12B | Q4_K_M | 9.8 GB | fits in fast memory | ~20 tok/s | ollama run gemma3:12b |
| 10 | Gemma 4 12B | Q4_K_M | 9.6 GB | fits in fast memory | ~20 tok/s | ollama run gemma4:12b-it-q4_K_M |
| 11 | Qwen3.5 9B | Q4_K_M | 8 GB | fits in fast memory | ~24 tok/s | ollama run qwen3.5:9b-q4_K_M |
| 12 | Llama 3.2 Vision 11B | Q4_K_M | 9.3 GB | fits in fast memory | ~21 tok/s | ollama run llama3.2-vision:11b |
| 13 | Ministral 3 8B | Q4_K_M | 7.4 GB | fits in fast memory | ~27 tok/s | ollama run ministral-3:8b |
| 14 | Qwen3-VL 8B | Q4_K_M | 7.5 GB | fits in fast memory | ~26 tok/s | ollama run qwen3-vl:8b |
| 15 | Ornith-1.5 9B | Default | 8 GB | fits in fast memory | ~24 tok/s | ollama run ornith-1.5:9b |
| 16 | Nimble v3 9B (Bespoke Labs, decision) | Q8_0 | 10.6 GB | fits in fast memory | ~17 tok/s | ollama run nimble-v3:9b-q8_0 |
| 17 | Qwen 2.5 VL 7B | Q4_K_M | 7.4 GB | fits in fast memory | ~27 tok/s | ollama run qwen2.5vl:7b |
| 18 | Granite 4.2 8B | Q8_0 | 10.3 GB | fits in fast memory | ~17 tok/s | ollama run granite4.2:8b-q8_0 |
| 19 | Qwen3 8B | Q8_0 | 9.9 GB | fits in fast memory | ~18 tok/s | ollama run qwen3:8b-q8_0 |
| 20 | DeepSeek R1 0528 Qwen3 8B | Q8_0 | 9.9 GB | fits in fast memory | ~18 tok/s | ollama run deepseek-r1:8b-0528-qwen3-q8_0 |
| 21 | DeepSeek R1 Distill Qwen 7B | Q8_0 | 9.1 GB | fits in fast memory | ~20 tok/s | ollama run deepseek-r1:7b-qwen-distill-q8_0 |
| 22 | MiniCPM-V 2.6 8B | Q8_0 | 10.5 GB | fits in fast memory | ~18 tok/s | ollama run minicpm-v:8b-2.6-q8_0 |
| 23 | Bonsai 2 4B (ternary) | Q2_0 | 2.8 GB | fits in fast memory | ~100 tok/s | ollama run bonsai-2:4b |
| 24 | Gemma 4 E4B (effective 4.5B) | Q8_0 | 10.3 GB | fits in fast memory | ~18 tok/s | ollama run gemma4:e4b-it-q8_0 |
| 25 | DeepSeek Coder V2 Lite 16B (MoE) | Q4_0 | 9.9 GB | fits in fast memory | ~59 tok/s | ollama run deepseek-coder-v2:16b |
| 26 | Gemma 3n E4B (on-device) | Q8_0 | 10.5 GB | fits in fast memory | ~17 tok/s | ollama run gemma3n:e4b-it-q8_0 |
| 27 | Qwen3.5 4B | Q8_0 | 6.4 GB | fits in fast memory | ~31 tok/s | ollama run qwen3.5:4b-q8_0 |
| 28 | Gemma 4 E2B (effective 2.3B) | Q8_0 | 7.2 GB | fits in fast memory | ~27 tok/s | ollama run gemma4:e2b-it-q8_0 |
| 29 | Phi-4 Mini 3.8B | Q8_0 | 4.9 GB | fits in fast memory | ~39 tok/s | ollama run phi4-mini:3.8b-q8_0 |
| 30 | Qwen3 4B | Q8_0 | 5.2 GB | fits in fast memory | ~36 tok/s | ollama run qwen3:4b-q8_0 |
| 31 | Granite 4.2 3B | Q8_0 | 4.7 GB | fits in fast memory | ~41 tok/s | ollama run granite4.2:3b-q8_0 |
| 32 | Qwen3-VL 4B | Q8_0 | 6.3 GB | fits in fast memory | ~31 tok/s | ollama run qwen3-vl:4b-instruct-q8_0 |
| 33 | Llama 3.2 3B | Q8_0 | 4.2 GB | fits in fast memory | ~47 tok/s | ollama run llama3.2:3b-instruct-q8_0 |
| 34 | Gemma 3 4B | Q8_0 | 6.2 GB | fits in fast memory | ~32 tok/s | ollama run gemma3:4b-it-q8_0 |
| 35 | Gemma 3n E2B (on-device) | Q8_0 | 7.8 GB | fits in fast memory | ~23 tok/s | ollama run gemma3n:e2b-it-q8_0 |
| 36 | tev1 4B (Together AI, decision) | Q8_0 | 5.4 GB | fits in fast memory | ~35 tok/s | ollama run tev1:4b-q8_0 |
| 37 | Ministral 3 3B | Q8_0 | 5.6 GB | fits in fast memory | ~36 tok/s | ollama run ministral-3:3b-instruct-2512-q8_0 |
| 38 | Qwen3.5 2B | Q8_0 | 3.8 GB | fits in fast memory | ~59 tok/s | ollama run qwen3.5:2b-q8_0 |
| 39 | Qwen3-VL 2B | Q8_0 | 3.8 GB | fits in fast memory | ~59 tok/s | ollama run qwen3-vl:2b-instruct-q8_0 |
| 40 | Qwen3 1.7B | Q8_0 | 2.9 GB | fits in fast memory | ~73 tok/s | ollama run qwen3:1.7b-q8_0 |
| 41 | DeepSeek R1 Distill Qwen 1.5B | Q8_0 | 2.6 GB | fits in fast memory | ~84 tok/s | ollama run deepseek-r1:1.5b-qwen-distill-q8_0 |
| 42 | SmolLM2 1.7B | Q8_0 | 2.5 GB | fits in fast memory | ~89 tok/s | ollama run smollm2:1.7b |
| 43 | Bonsai 2 2B (ternary) | Q2_0 | 2 GB | fits in fast memory | ~176 tok/s | ollama run bonsai-2:2b |
| 44 | GLM-OCR 0.9B | BF16 | 3.7 GB | fits in fast memory | ~59 tok/s | ollama run glm-ocr:latest |
| 45 | Qwen 2.5 14B | Q4_K_M | 10.3 GB | fits in fast memory | ~18 tok/s | ollama run qwen2.5:14b |
| 46 | Qwen 2.5 Coder 14B | Q4_K_M | 10.3 GB | fits in fast memory | ~18 tok/s | ollama run qwen2.5-coder:14b |
| 47 | MiniCPM-V 4.6 1B | Q8_0 | 2.9 GB | fits in fast memory | ~84 tok/s | ollama run minicpm-v4.6:q8_0 |
| 48 | Llama 3.2 1B | Q8_0 | 2 GB | fits in fast memory | ~123 tok/s | ollama run llama3.2:1b |
| 49 | LFM2.5 1.2B Thinking | Q8_0 | 1.9 GB | fits in fast memory | ~133 tok/s | ollama run lfm2.5-thinking:1.2b-q8_0 |
| 50 | Gemma 3 1B | Q8_0 | 1.8 GB | fits in fast memory | ~145 tok/s | ollama run gemma3:1b-it-q8_0 |
| 51 | Qwen3.5 0.8B | Q8_0 | 2 GB | fits in fast memory | ~160 tok/s | ollama run qwen3.5:0.8b-q8_0 |
| 52 | Qwen3 0.6B | Q8_0 | 1.5 GB | fits in fast memory | ~193 tok/s | ollama run qwen3:0.6b-q8_0 |
| 53 | Llama 3.1 8B | Q8_0 | 9.5 GB | fits in fast memory | ~19 tok/s | ollama run llama3.1:8b-instruct-q8_0 |
| 54 | Qwen 2.5 7B | Q8_0 | 9.1 GB | fits in fast memory | ~20 tok/s | ollama run qwen2.5:7b-instruct-q8_0 |
| 55 | Qwen 2.5 Coder 7B | Q8_0 | 9.1 GB | fits in fast memory | ~20 tok/s | ollama run qwen2.5-coder:7b-instruct-q8_0 |
| 56 | Mistral 7B v0.3 | Q8_0 | 8.7 GB | fits in fast memory | ~21 tok/s | ollama run mistral:7b-instruct-q8_0 |
| 57 | LLaVA 1.6 7B | Q8_0 | 9.1 GB | fits in fast memory | ~21 tok/s | ollama run llava:7b-v1.6-vicuna-q8_0 |
| 58 | Code Llama 7B | Q8_0 | 8.1 GB | fits in fast memory | ~22 tok/s | ollama run codellama:7b-instruct-q8_0 |
| 59 | SmolLM2 360M | FP16 | 1.3 GB | fits in fast memory | ~219 tok/s | ollama run smollm2:360m |
| 60 | Qwen 2.5 3B | Q8_0 | 4.1 GB | fits in fast memory | ~48 tok/s | ollama run qwen2.5:3b-instruct-q8_0 |
| 61 | SmolLM2 135M | FP16 | 0.9 GB | fits in fast memory | ~593 tok/s | ollama run smollm2:135m |
| 62 | Qwen 2.5 Coder 1.5B | Q8_0 | 2.3 GB | fits in fast memory | ~100 tok/s | ollama run qwen2.5-coder:1.5b-instruct-q8_0 |
Estimates, not benchmarks. Model sizes are ollama.com download sizes; memory needed adds headroom for ~8k tokens of context; speeds are rough figures from memory bandwidth. Data updated 2026-10-18.
A project by OnDevice Labs · llms.txt