CanItRun Logocanitrun.

Apple Silicon for LLMs: M1-M5 Complete Guide

CanItRun11 min readHardware

Why Apple Silicon Is Different: Unified Memory Architecture

Apple Silicon's defining advantage for LLM inference is unified memory. On a discrete GPU system, the GPU can only access its dedicated VRAM. The 24 GB on an RTX 4090 is a hard ceiling — the system's 64 GB of DDR5 RAM is irrelevant. On Apple Silicon, the CPU and GPU share the same physical memory pool. This means an M4 Max with 128 GB of unified memory can hold a 128 GB model entirely in GPU-accessible memory. This is how a MacBook Pro runs Llama 3.3 70B at Q8_0 (~72 GB) while an RTX 4090 desktop cannot even load it at Q4. The trade-off is memory bandwidth. Apple Silicon's bandwidth is shared between CPU and GPU, and it is lower than high-end discrete GPUs. The M4 Max delivers 546 GB/s — excellent for a laptop but roughly half the RTX 4090's 1008 GB/s. This means Apple Silicon generates tokens slower than equivalent-priced NVIDIA setups for same-size models. The unified memory advantage manifests when model size exceeds 24-32 GB: at that point, NVIDIA users need multi-GPU or workstation cards, while Apple Silicon users just load the model. Unified memory is also non-upgradeable — buy the memory you need upfront, because you cannot add more later. This makes used Mac purchases for LLM work tricky: finding a used Mac with exactly the right memory configuration requires patience.

M1 Through M5: Generational Bandwidth Improvements

Each Apple Silicon generation has improved memory bandwidth, directly improving LLM token generation speed. M1 (2020): base 68 GB/s, Pro 200 GB/s, Max 400 GB/s, Ultra 800 GB/s. The base M1 with 8 GB is limited to 3-4B models. The M1 Ultra with 64-128 GB was the first Apple Silicon config that could run 70B models at usable speeds. M2 (2022): 10-20% bandwidth improvements across the lineup. M2 Max: 400 GB/s. M2 Ultra: 800 GB/s with up to 192 GB — the first Mac to comfortably run 70B at Q8_0. M3 (2023): 3nm process, efficiency focus. M3 Max: 400 GB/s (disappointingly, no bandwidth increase over M2 Max). M3 Ultra: 800 GB/s with up to 256 GB. M4 (2024): Major bandwidth jump. M4 Pro: 273 GB/s. M4 Max: 546 GB/s (36% increase over M3 Max). M4 Ultra: expected 1092 GB/s (not yet released in quantity). The M4 generation is the first where Apple Silicon bandwidth starts approaching high-end discrete GPU territory. M5 (2025-2026): expected further bandwidth improvements and more efficient Neural Engine for ML workloads. The M5 Max is rumored to reach 600+ GB/s. For LLM inference, the meaningful upgrades are bandwidth (M1→M2→M4 were significant) and maximum memory (M2 Ultra 192 GB, M4 Ultra expected 256+ GB).

Which Chip for Which Model: A Practical Guide

8 GB (M1, M2, M3 base): 3-4B models at Q4_K_M (~2-3 GB) with short context. Phi-3.5 Mini, Gemma 3 4B, SmolLM2. 7B at Q4 (~5 GB) technically fits but leaves almost no room for context or the OS. This is the minimum for a functional experience. 16 GB (M1-3 base 16GB, M1 Pro, M2, M4 16GB): 7-8B at Q4_K_M (~5 GB) with comfortable context. 14B at Q4_K_M (~9 GB) works, leaving about 5 GB for OS and KV cache — manageable. This is the sweet spot for 7-14B models. 24-36 GB (M2 Pro, M3 Pro, M4 Pro 24GB): 14B at Q8_0 (~9 GB) for near-lossless quality, or 27-32B at Q4_K_M (~17-20 GB) with moderate context. The entry point for 32B-class models. 48 GB (M4 Pro 48GB, M3 Max 48GB): Llama 3.3 70B at Q4_K_M (~40 GB) fits with ~8 GB left for OS and KV cache. This is the gateway to 70B models — the most cost-effective Apple Silicon config for large models. 64-96 GB (M3/M4 Max): 70B at Q5_K_M or Q6_K with generous context. 109B MoE models at Q4 (~55 GB). 128 GB (M4/M5 Max): 70B at Q8_0 (~72 GB) — near-lossless. Llama 4 Scout (109B MoE) at Q4 (~55 GB) with plenty of headroom. Multiple models loaded simultaneously. 192 GB (M2/M4 Ultra): 70B at Q8_0 with massive context. 405B at IQ1_S (1.58-bit, ~131 GB). Any open-weight model. This is enthusiast/datacenter territory.

MLX vs Ollama on Mac: Which to Use

Ollama on Mac uses Metal (Apple's GPU API) via llama.cpp's Metal backend. It works out of the box with zero configuration — install via Homebrew, run ollama serve, and pull models. MLX (Apple's native machine learning framework) is purpose-built for Apple Silicon. It uses the unified memory architecture more efficiently than Metal for some operations, particularly prompt processing (prefill). The MLX community maintains a library of pre-converted models (mlx-community on Hugging Face). In practice: Ollama is 5-15% slower than MLX for prompt processing but identical for token generation on most models. Ollama's ecosystem (IDE extensions, API compatibility, tool support) is dramatically larger. MLX gives you Python-level control and is better for development and experimentation. For daily model running, Ollama is the pragmatic choice. For users who want maximum performance or are doing ML development on Mac, MLX is worth the setup effort. Installing MLX: pip install mlx-lm. Running a model: mlx_lm.generate --model mlx-community/Llama-3.1-8B-Instruct-4bit. MLX also supports LoRA fine-tuning on Mac, which is not possible with Ollama. For fine-tuning adapters on Mac, MLX is the best (and essentially only) option.

# Ollama on Mac (simplest)
brew install ollama
ollama serve
ollama run llama3.3:70b

# MLX on Mac (faster prompt processing, Python control)
pip install mlx-lm
mlx_lm.generate \
  --model mlx-community/Llama-3.3-70B-Instruct-4bit \
  --prompt "Explain quantum computing"

# MLX fine-tuning (unique Mac capability)
pip install mlx-lm
# See mlx-community fine-tuning examples on GitHub

Mac vs PC for LLMs: The Honest Comparison

The Mac vs PC decision for local LLMs comes down to one question: do you need to run models larger than 32 GB? If yes, and you want to do it on a single device with minimal complexity, get a Mac with 48+ GB unified memory. If no, and you primarily run 7-32B models, a PC with an NVIDIA GPU is faster and often cheaper. Mac advantages: single-device large model capability (70B at Q4 on a MacBook Pro is genuinely unique), near-silent operation (even under sustained inference load), dramatically lower power consumption (an M4 Max MacBook Pro draws under 100W running inference — dual RTX 3090s draw 700W), portable (run 70B models on a laptop — impossible on any PC laptop), and zero configuration (Metal acceleration works out of the box, no driver installation, no CUDA toolkit). PC advantages: faster token generation for same-size models (RTX 4090 at 1008 GB/s vs M4 Max at 546 GB/s — roughly 2x faster), upgradeability (add more RAM, swap GPU, add a second GPU), gaming and other GPU workloads, CUDA ecosystem breadth (ExLlamaV2, TensorRT-LLM, and other CUDA-exclusive tools), and generally lower cost for equivalent compute. For a dedicated inference appliance: Mac Mini M4 Pro 48GB at $2399 is compelling. For a versatile workstation: PC with RTX 3090/4090/5090. For portable large-model inference: MacBook Pro M4 Max with 64-128 GB. There is no universal winner — the right choice depends on which models you run and where you run them.

Which Mac to Buy for LLM Inference

Budget entry ($600-1000 used): M1/M2 Mac Mini with 16 GB. Runs 7-8B models at Q4_K_M and 14B at Q4_K_M. The cheapest way to experience Apple Silicon LLM inference. Look for used/refurbished units. Best value for 14B models ($1000-2000): M2/M3 MacBook Air or Mac Mini with 24 GB. The 24 GB tier comfortably runs 14B at Q8_0 and touches 27-32B at Q4. The fanless Air throttles under sustained load — the Mac Mini does not. Best value for 70B models ($2000-3000): M4 Pro Mac Mini with 48 GB ($2399 new). This is arguably the best value in large-model local inference. Runs Llama 3.3 70B at Q4_K_M in a device that fits on a desk, draws under 100W, and makes no noise. Maximum laptop capability ($3000-5000): M4 Max MacBook Pro with 64-128 GB. Run 70B at Q8_0 on a laptop. No PC laptop can touch this. Maximum capacity ($5000+): Mac Studio with M4 Ultra 192 GB. Run virtually any open-weight model including 405B at aggressive quantization. This is research-lab-level capability on a desk. Key buying advice: always maximize memory over other specs. A base M4 Pro with 48 GB is far more useful for LLMs than a maxed-out M4 Pro with 24 GB. Memory determines which models you can run — everything else only affects speed.

What Tokens Per Second to Expect on Apple Silicon

Token generation speed on Apple Silicon is bandwidth-bound. Approximate tok/s for common configurations: 7B Q4_K_M (~5 GB): M1 8-15 tok/s, M2 Pro 15-25 tok/s, M4 Max 30-50 tok/s. 14B Q4_K_M (~9 GB): M1 Pro 8-15 tok/s, M4 Pro 18-28 tok/s, M4 Max 25-40 tok/s. 27-32B Q4_K_M (~17-20 GB): M2 Pro 5-8 tok/s, M3 Max 10-18 tok/s, M4 Max 15-25 tok/s. 70B Q4_K_M (~40 GB): M1 Ultra 5-8 tok/s, M3 Max 8-12 tok/s, M4 Max 12-15 tok/s. These numbers assume the model fits entirely in unified memory with all layers on GPU (which Ollama handles automatically via Metal). Prompt processing (prefill) is significantly faster — a 2000-token prompt might process in 1-3 seconds on M4 Max regardless of model size. The tok/s numbers matter most for interactive use: 10 tok/s is readable, 20 tok/s feels responsive, 30+ tok/s feels fast. Long context reduces generation speed slightly on Apple Silicon due to KV cache management, but less dramatically than on discrete GPUs because the unified memory can accommodate very large KV caches without overflow. For maximum context on Mac, ensure you have enough total memory for model + KV cache. A 70B model at Q4 (~40 GB) with 32K context needs roughly 10-12 GB for KV cache at FP16 — plan for 52-55 GB total.

Frequently asked questions

Is 8 GB enough on an M1 Mac for LLMs?
Barely. You can run 3-4B models (Phi-3.5 Mini, Gemma 3 4B) at Q4 with short context. A 7B model at Q4 (~5 GB) technically fits but leaves only ~1.5 GB for macOS and the KV cache after OS overhead — you will be swapping constantly. For a usable experience, 16 GB is the practical minimum. If you already have an 8 GB Mac, try SmolLM2 1.7B — it is surprisingly capable for simple tasks.
Can I add more RAM to my Mac later?
No. Apple Silicon uses unified memory soldered to the chip package. Memory is not upgradeable after purchase. Buy more than you think you need today, especially if you plan to run LLMs. The $400 to upgrade from 24 to 48 GB on an M4 Pro Mac Mini is the best $400 you will spend — it unlocks 70B models.
Does the number of GPU cores matter on Apple Silicon?
Less than memory and bandwidth. LLM token generation is bandwidth-bound: the GPU cores wait on data from memory. More GPU cores help with prompt processing (prefill), where the computation is parallelizable. For token generation, 16-core vs 40-core GPU typically shows a 5-15% difference — meaningful but not transformative. Always prioritize memory capacity and chip tier (which determines bandwidth) over GPU core count.
Can I use an external GPU with a Mac?
No. Apple dropped eGPU support with Apple Silicon. All GPU compute runs on the integrated GPU cores. This is actually fine for LLMs because the unified memory architecture eliminates the need for a separate GPU with its own VRAM. The integrated GPU on M4 Max performs comparably to a mid-range discrete GPU for inference workloads.
M4 Pro Mac Mini or build a PC for the same price?
At $2399 (M4 Pro 48GB Mac Mini): the Mac runs Llama 3.3 70B at Q4 (12-15 tok/s) out of the box, near-silent, 100W. For the same $2400: you can build a PC with a used RTX 3090 24GB (~$800) + components (~$800) and have $800 left over — or go dual 3090s (48 GB, ~$1500 + $800 PC = ~$2300) for 70B at Q4 at 15-22 tok/s. The PC is faster, louder, hotter, and more complex. The Mac is simpler and more elegant. Choose based on your tolerance for PC building and noise.