Apple M2 vs Apple M3 for local AI
Both fit the same models we track, up to gpt-oss 20B. They generate at about the same speed, since their memory bandwidth is close (100 and 100 GB/s).
Memory and bandwidth
Memory decides which models fit. Bandwidth decides how fast they generate, because every token reads the model's active weights once.
| Apple M2 | Apple M3 | |
|---|---|---|
| Memory | 8 or 16 or 24 GB unified memory | 8 or 16 or 24 GB unified memory |
| Usable for models | About 16 GB of 24 GB | About 16 GB of 24 GB |
| Bandwidth | 100 GB/s | 100 GB/s |
| Biggest model that fits | gpt-oss 20B | gpt-oss 20B |
| Best everyday pick | Qwen3 4B, ~22 tok/s | Qwen3 4B, ~22 tok/s |
Every model, side by side
Estimated generation speed at the largest memory size each was sold in (24 GB and 24 GB).
| Model | Apple M2 | Apple M3 |
|---|---|---|
| Qwen3 4B About 4 GB | ~22 tok/s Usable | ~22 tok/s Usable |
| Qwen3 8B About 7 GB | ~11 tok/s Usable | ~11 tok/s Usable |
| Gemma 3 12B About 10 GB | ~7 tok/s Slow | ~7 tok/s Slow |
| Qwen3 14B About 11 GB | ~6 tok/s Slow | ~6 tok/s Slow |
| gpt-oss 20B About 16 GB | ~18 tok/s Usable | ~18 tok/s Usable |
| Gemma 3 27B About 19 GB | Needs 19 GB | Needs 19 GB |
| Qwen3 30B-A3B About 21 GB | Needs 21 GB | Needs 21 GB |
| Qwen3 32B About 22 GB | Needs 22 GB | Needs 22 GB |
| Llama 3.3 70B About 45 GB | Needs 45 GB | Needs 45 GB |
| gpt-oss 120B About 67 GB | Needs 67 GB | Needs 67 GB |
| Qwen3 235B-A22B About 144 GB | Needs 144 GB | Needs 144 GB |
| DeepSeek R1 671B About 406 GB | Needs 406 GB | Needs 406 GB |
They're close for local AI, so pick on price. Price matters as much as either number: check used prices on the builds page, where every parts list has a measured or estimated speed.
Both columns use the same formula: memory bandwidth divided by the weights read per token, calibrated on our own rack, with Ollama's default 4-bit sizes. Real results are usually within about a third. Measured either one? Send us the number.