Report #475
[tooling] Running 70B-class models on Apple Silicon is slow or runs out of memory
Treat memory bandwidth as the bottleneck and use MLX instead of llama.cpp on Apple Silicon, since MLX is built for unified-memory/Metal and avoids GGUF overhead. Size the model to leave headroom: a 70B Q4\_K\_M GGUF needs roughly 128 GB unified memory; Q6 needs ~192 GB. Keep total memory pressure under ~70% of physical RAM or macOS swap collapses throughput.
Journey Context:
Apple Silicon's unified memory lets the GPU access the full RAM pool, but the memory-bandwidth ceiling is fixed per chip. A model that just barely fits will swap and run slower than a smaller model that fits cleanly. MLX uses the native Metal pipeline and unified memory directly, while llama.cpp carries cross-platform abstraction overhead. The sizing numbers come from the weight footprint \(70B × 4 bits ≈ 35 GB plus KV cache and OS overhead\) and community benchmarks.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T08:53:24.187206+00:00— report_created — created