llamaperf

Best Mac for running local LLMs

A Mac shares one pool of memory between the CPU and GPU, so it can load models that would need several graphics cards. How fast it generates depends on the chip's memory bandwidth, which rises from the base chip through Pro and Max to Ultra. This page compares Macs on the same model at the same quant.

What is the best Mac for running LLMs locally?

Measured on Qwen3.8 27B at 4-bit, the fastest Mac people have reported is M5 Ultra 256GB, at 50.0 tokens per second (one run). M3 Ultra 512GB follows at 31.8 tokens per second (one run), then M5 Max 36GB at 25.8 tokens per second (one run). The table lists every Mac with a run of this model.

Speed only matters if the model fits. Check what fits on your Mac.

Ranked on Qwen3.8 27B at 4-bit

Median tokens per second from plain runs: one Mac, one request, no speculative decoding, and the whole model in its memory. A run that kept part of the model in system RAM or on disk isn't ranked, because then the CPU and its memory set the pace as much as the Mac. The runs still differ in engine and context, and a long context can cut decode speed sharply, so each row shows what its median came from. Read a small gap between two rows as noise. Every Qwen3.8 report

#MacMemoryGen t/sPP t/sGen runsEngine and context
1M5 Ultra 256GB256 GBunified50.01800.01 run1oMLX8K context
2M3 Ultra 512GB512 GBunified31.8391.21 run1MLXcontext not stated
3M5 Max 36GB36 GBunified25.8-1engine not statedcontext not stated
4M1 Ultra 128GB128 GBunified25.1153.31 run1engine not statedcontext not stated
5M4 Max 64GB64 GBunified23.9119.91 run1llama.cppcontext not stated
6M4 Max 128GB128 GBunified21.8236.61 run1llama.cppcontext not stated
7M1 Max 64GB64 GBunified16.9-1LM Studio64K context
8M1 Max 32GB32 GBunified15.881.81 run1MLXcontext not stated
9M3 Ultra 256GB256 GBunified14.093.11 run1Ollamacontext not stated
10M4 Pro 64GB64 GBunified12.9126.24 runs4llama.cpp, 2 not statedcontext not stated
11M2 Pro 32GB32 GBunified8.621.91 run1llama.cpp128K context
12M4 24GB24 GBunified6.560.81 run1llama.cppcontext not stated

No speed reports yet

These match the profile, but nobody has reported a plain run on them.

What to look for

Memory size decides what loads

macOS won't hand all of a Mac's memory to the GPU. By default llama.cpp, MLX and Ollama can use about two thirds of it on a 32 GB Mac or smaller and about three quarters from 36 GB up. The calculator grades every Mac against that limit and shows the setting that raises it.

The chip tier decides how fast it generates

Each step from base to Pro to Max to Ultra widens the memory bus, and generation speed follows. Two Macs with the same memory can differ a lot in speed, because some memory sizes ship with a cut-down chip on a narrower bus.

MLX or llama.cpp

MLX is Apple's own framework and is often the faster of the two on a Mac. llama.cpp supports more model formats and more tools build on it. Try your model in both before you decide a Mac is too slow for it.

Frequently asked

How much memory does a Mac need for local LLMs?

Enough for the model's weights, its context and macOS's share. The calculator's Mac tab takes your exact Mac and model and tells you which quant fits, so you don't have to work it out by hand.

Should I get an M-series Pro or Max for local LLMs?

The Max if generation speed matters to you. It has a wider memory bus than the Pro of the same generation, and generation speed tracks bandwidth closely. The table shows how far apart they are on the same model.

How is this list ranked?

Every Mac is ranked on its median speed for one reference model at one quant level, counting plain runs on a single machine only. The reference is the model the most Macs have reports of.

See also