On a 24 GB Mac, 12 catalog models run fully on the GPU at an 8,192-token context. The most capable is gemma-4-26B-A4B-it at QAT-Q4_0 (needs ~15.8 GiB). Pick a smaller model or a lower quant for more headroom.
Figures assume a 24 GB unified-memory Mac (one pool shared by CPU and GPU), judged at an 8,192-token context. Speeds depend on the specific chip — see the GPU pages.
TL;DR
A 24 GB Mac runs the 13B–14B class fully on the GPU at 4-bit sweet-spot quants, with headroom for long context. The 30B class is out of reach at healthy quants here, and the reason is the one people miss: macOS hands the GPU only part of the unified pool by default — roughly three quarters, and about two thirds on machines at 32 GB and below, so a 24 GB machine budgets against roughly 16. The list below is derived live from the fit engine, largest first.
Unlike a discrete GPU, your Mac's pool also holds macOS, your browser and every open app — and the GPU's default claim on that pool is a fraction of it, not all of it. A model that looks like it should fit the sticker figure often doesn't fit the working one.
Practically: close heavy apps before loading anything near the top of this list, and treat entries with visible headroom as the comfortable daily drivers. If the 30B class is the goal, the 36 GB tier is the first place it is a realistic fit.
gemma-4-26B-A4B-it at QAT-Q4_0 · 26.5B params · needs ~15.8 GiB
One command to run it (llama.cpp):
llama-server -m gemma-4-26B_q4_0-it.gguf -c 8192 -ngl 999
| Model | Sweet-spot quant | Fits in |
|---|---|---|
| gemma-4-26B-A4B-it google | QAT-Q4_0 Runs fully on GPU | ~15.8 GiB |
| Devstral-Small-2-24B-Instruct-2512 mistralai | IQ4_XS Runs fully on GPU | ~14.9 GiB |
| Mistral-Small-3.2-24B-Instruct-2506 mistralai | IQ4_XS Runs fully on GPU | ~14.9 GiB |
| gpt-oss-20b openai | F16 Runs fully on GPU | ~15 GiB |
| Kimi-VL-A3B-Instruct moonshotai | Q4_K_M Runs fully on GPU | ~11.6 GiB |
| DeepSeek-R1-Distill-Qwen-14B deepseek-ai | Q4_K_M Runs fully on GPU | ~11.2 GiB |
| Qwen3-14B Qwen | Q4_K_M Runs fully on GPU | ~11 GiB |
| Phi-4-reasoning microsoft | Q4_K_M Runs fully on GPU | ~11.4 GiB |
| phi-4 microsoft | Q4_K_M Runs fully on GPU | ~11.2 GiB |
| gemma-4-12B-it google | Q8_0 Runs fully on GPU | ~14.3 GiB |
| Qwen3-8B Qwen | Q8_0 Runs fully on GPU | ~10.6 GiB |
| DeepSeek-R1-Distill-Llama-8B deepseek-ai | Q8_0 Runs fully on GPU | ~10.3 GiB |
Derived live from the fit engine + catalog at an 8,192-token context. "Fits in" is the modelled VRAM the sweet-spot quant needs (weights + KV cache + overhead). Speed depends on your specific card — check a GPU page or the calculator.
For fit, roughly — the same memory-sized models load — but with two differences. The Mac's pool is shared with macOS and your apps, so the usable slice is smaller than the headline number, and generation speed depends on your chip's memory bandwidth, which varies a lot across Apple Silicon tiers.
Usually because the rest of the system is holding memory, or because macOS limits how much of the unified pool the GPU may claim by default. Close heavy apps first; advanced users can raise the GPU memory limit, but always leave macOS a working share or the whole machine crawls.
Both work well on Apple Silicon. GGUF (llama.cpp, LM Studio, Ollama) has the broadest model coverage and is what this page's commands use; MLX is Apple-native and often competitive on speed for models available in both formats. Pick by tooling first — the format follows the runtime you want to use.
This page ranks by fit, not speed. Generation speed mostly tracks the chip's memory bandwidth, which differs substantially between base, Pro, Max, and Ultra chips — a 24 GB configuration exists across several of those tiers, so check your specific chip's page for speed context.
Yes — the KV cache grows with context and comes out of the same shared pool. A model that fits at this page's stated context can push the system into swapping at much longer contexts, so check your model and target context in the fit calculator before relying on long sessions.
selected to compare · pick at least 2