๐ Local LLMs on Apple Silicon: Unified Memory Wins
A 64GB MacBook loads models a 24GB RTX 4090 cannot touch. What unified memory buys you, where MLX still beats everything, and which stack to actually run.
Derek Holt ยท Local AI & Hardware Writer
ยท 5 min read
โก TL;DR โ quick answers
- Is a Mac good for running local LLMs?
- Better than most people expect, for one specific reason: unified memory. On a PC the model has to fit in VRAM, and 24GB is a hard ceiling on a 4090. On Apple Silicon the CPU and GPU share one pool, so a 64GB MacBook can load models that simply will not fit on that 4090. You give up raw throughput and gain capacity, which for a lot of local work is the trade you want.
- MLX or Ollama on Apple Silicon?
- Ollama for most people, and that advice changed recently enough that older guides get it wrong. Ollama 0.19 (March 2026) added a native MLX runner on Apple Silicon, so it now taps the same Apple framework MLX-LM does rather than wrapping llama.cpp. Use MLX-LM directly when you want maximum speed or need to fine-tune, and accept that it is a Python and command-line tool, not a consumer one.
- How much faster is MLX than llama.cpp?
- Reported figures put MLX roughly 10-30% ahead on supported models, widening to around 30-40% on M5 hardware. Treat those as directional rather than exact: the gap depends on the specific model, quantisation and context length, and it has been narrowing as llama.cpp and Ollama absorb Apple-native kernels. Benchmark your own model before assuming the headline number applies to you.
Key takeaways
- Unified memory is the whole argument: a 64GB Mac can hold models a 24GB RTX 4090 physically cannot, regardless of how fast the 4090 is.
- Ollama 0.19+ switched to a native MLX runner on Apple Silicon, so the old 'Ollama is just a slow llama.cpp wrapper' advice is out of date.
- MLX directly is still the speed pick on supported models, reported around 10-30% faster than llama.cpp and further ahead on M5, but it is a developer tool with a real learning curve.
- For most people the correct stack is Ollama for daily use, MLX-LM when you need maximum speed or fine-tuning, LM Studio when you want a GUI.
I have spent enough on GPUs to be defensive about the subject, so it is uncomfortable to admit that the most capable local-inference machine in my house has no discrete graphics card in it at all. Not the fastest. The most capable, which is a different measurement and the one that decides what you can run.
By the numbers
- Unified memory means a 64GB Mac loads models a 24GB RTX 4090 cannot hold, full stop
- MLX runs roughly 10-30% faster than llama.cpp on supported models, reported around 30-40% on M5
- Ollama 0.19 (March 31, 2026) added a native MLX runner on Apple Silicon โ it is no longer a llama.cpp wrapper on a modern Mac
- Practical RAM tiers: 16GB for 7B-class, 32GB as a working floor, 64GB where the capacity advantage bites
Capacity beats bandwidth more often than benchmarks suggest
Here is the thing benchmark charts systematically undersell. A 4090 will generate tokens faster than an M-series Mac on any model both can load. That last clause is doing enormous work. On my rig, the question I actually run into is not "how fast does this 7B model go", it is "can this machine hold a 70B model at all". Bandwidth decides how fast you go; memory capacity decides whether you go.
Apple Silicon wins that second question at a price no consumer GPU matches, because the CPU and GPU share one memory pool rather than the GPU getting a walled-off 24GB. That is the entire architectural argument, and it is why the GPU buying guide advice about VRAM ceilings needs a Mac-shaped asterisk attached to it.
So what: if your ceiling problem is model size rather than tokens per second, a Mac is the cheaper answer.
The advice that went stale in March
For years the correct guidance was: Ollama is convenient but it wraps llama.cpp, so you pay a real speed penalty on Apple Silicon versus running MLX directly. Plenty of guides still say exactly that, and as of Ollama 0.19 it is wrong. Ollama now ships a native MLX runner on Apple Silicon, tapping the same Apple framework MLX-LM uses.
That collapses the old trade-off. You previously chose between convenience and speed; now, for most models, convenience costs you very little. This is a good reminder that in local AI a guide's publication date is part of its accuracy, and it is why I re-check runtime claims rather than repeating them from memory.
When MLX directly is still worth it
Two cases. First, maximum throughput on a supported model, where running MLX-LM without a layer on top still measures ahead. Second, fine-tuning, where you want the framework's own tooling rather than an inference-focused wrapper.
The honest caveat: standalone MLX has a steep learning curve and assumes you are comfortable in Python and a terminal. It is a developer's tool. If that describes you, the speed is there. If it does not, you will spend the difference in frustration and get a slower result overall because you will use it less.
LM Studio remains the answer for a GUI, with the model browser showing each quant against your available memory before you commit to a download, which on a machine where memory is shared with everything else is more useful than it sounds. The Ollama versus LM Studio comparison covers that split in more detail.
So what: default to Ollama, reach for MLX-LM only for peak speed or fine-tuning, use LM Studio if you want to see what fits before downloading.
What the unified-memory pitch leaves out
Shared memory cuts both ways. Everything else on the machine eats from the same pool, so a 32GB Mac is not offering 32GB to your model. The OS, the browser with forty tabs, and whatever else is resident all take their cut first, and the practical headroom is well under the number on the spec sheet. Quantisation is how you claw that back, and the quantisation explainer covers which levels actually cost you quality rather than just file size.
There is also a thermal reality on laptops that desktop benchmarks never show. Sustained inference on a fanless or lightly-cooled Mac throttles, so the tokens-per-second you measure in the first thirty seconds is not the number you get twenty minutes into a long job.
The numbers I would actually check first
Before spending anything, run the model you care about on the machine you already own and write down three figures: tokens per second on a short prompt, tokens per second twenty minutes in, and peak memory while it runs. The first tells you whether the machine is fast enough. The second tells you whether it throttles. The third tells you how much headroom you have before the next model size up stops fitting.
That third number is the one people skip, and it is the one that decides your upgrade. Memory pressure on a shared pool shows up as swapping long before it shows up as an error, so a model that technically loads can still make the whole machine miserable. Watch the memory-pressure graph rather than the free-memory figure, because macOS will report memory as used that it would happily reclaim.
One more thing worth knowing: quantisation levels behave slightly differently between runtimes, so a quant that runs well under one stack is not guaranteed to behave identically under another. If you switch from Ollama to MLX-LM for speed, re-check output quality on your own prompts rather than assuming the model is the same model.
So what: measure sustained speed and peak memory before you buy anything, rather than first-token speed alone.
Where I land
If you already own an M-series Mac with 32GB or more, stop shopping for a GPU and start running models on the machine you have. Install Ollama, pull something in the 7B to 14B range, and see whether the speed is genuinely limiting before you spend money. If your work has you loading large models rather than chasing peak throughput, a used 3090's 24GB does not compete with 64GB of unified memory at any price I have found.
Sources & further reading
Outside figures cited above. First-hand test results are our own and noted as such in the text.
- Local LLMs on Mac: Ollama vs. MLX โ Which Should You Use? โ AI Indigo
- Running LLMs Locally on macOS: The Complete 2026 Comparison โ DEV Community
- Apple Silicon LLMs: Run AI Models on Mac (MLX, 2026) โ Codersera
Frequently asked questions
โธIs a Mac good for running local LLMs?
Better than most people expect, for one specific reason: unified memory. On a PC the model has to fit in VRAM, and 24GB is a hard ceiling on a 4090. On Apple Silicon the CPU and GPU share one pool, so a 64GB MacBook can load models that simply will not fit on that 4090. You give up raw throughput and gain capacity, which for a lot of local work is the trade you want.
โธMLX or Ollama on Apple Silicon?
Ollama for most people, and that advice changed recently enough that older guides get it wrong. Ollama 0.19 (March 2026) added a native MLX runner on Apple Silicon, so it now taps the same Apple framework MLX-LM does rather than wrapping llama.cpp. Use MLX-LM directly when you want maximum speed or need to fine-tune, and accept that it is a Python and command-line tool, not a consumer one.
โธHow much faster is MLX than llama.cpp?
Reported figures put MLX roughly 10-30% ahead on supported models, widening to around 30-40% on M5 hardware. Treat those as directional rather than exact: the gap depends on the specific model, quantisation and context length, and it has been narrowing as llama.cpp and Ollama absorb Apple-native kernels. Benchmark your own model before assuming the headline number applies to you.
โธHow much RAM do I need for local LLMs on a Mac?
16GB runs 7B-class models comfortably at Q4 and gets tight beyond that. 32GB is the sensible working floor if local inference is a real part of your workflow. 64GB is where the unified-memory advantage stops being theoretical and starts loading things a consumer GPU cannot. Remember the OS and your apps are eating from the same pool, so usable memory is meaningfully below the sticker figure.
The 5 best AI video finds, every week
New models, tested prompts, and what actually worked in our production โ one short email a week. No spam, unsubscribe anytime.

Written by Derek Holt
Local AI & Hardware Writer
Runs the site's local-inference rig and benchmarks every GPU, quant, and speed-stack claim on it personally before it goes in a guide. Will not shut up about VRAM bandwidth.
Explore these topics
Every guide, comparison and prompt library we have on each.
Keep learning
Local LLMs ยท Ollama & LM Studio
GuidesLocal LLMs for Coding: What Actually Works (2026)
Which local coding models are real vs toys, wiring Ollama's OpenAI API into your editor, real latency numbers, and the privacy case for client code.




