Skip to content
PocketWebToolsPocketWebTools
PocketWebTools for Mac

Can you cluster Mac Studios for AI?

Yes: since macOS 26.2, Macs with Thunderbolt 5 can split a model over RDMA, and Apple measured four M5 Ultra Mac Studios running Muse Spark Open at 37 tokens per second (25 on two).

A cluster pays off only when the model does not fit one Mac or when you run it tensor parallel: in Apple's tests two Macs in pipeline mode generated text no faster than one (7.7 vs 7.7 tokens per second for Mistral Medium 3.5), while four in tensor mode were 3.0x faster.

Updated

Which models need more than one Mac

One Mac each, 8,192 tokens of context. Won't fit means the model needs a bigger Mac or a cluster.

Which models need more than one Mac
ModelMachineNeeds / GPU can useReply speedVerdict
gpt-oss-120bMXFP4, 8,192 tokens128 GB M5 Max (40-core GPU)65.0 GB of 115.4 GB66 to 78 tok/sEstimateRuns well
Qwen3.8 27BMLX BF16, 8,192 tokens96 GB M5 Ultra64.2 GB of 83.5 GB20 tok/s1MeasuredRuns well
Mistral Medium 3.5 128BFP8, 8,192 tokens256 GB M5 Ultra137.3 GB of 239.1 GB7.7 tok/s2MeasuredTight
DeepSeek V3.1Q4_K_M, 8,192 tokens256 GB M5 Ultra414.1 GB of 239.1 GBDoes not fitWon't fit
Muse Spark Open 816B‑A42BNVFP4, 8,192 tokens256 GB M5 Ultra544.6 GB of 239.1 GBDoes not fitWon't fit
Muse Spark Open 816B‑A42BNVFP4, 8,192 tokens512 GB M5 Ultra (not on sale yet)544.6 GB of 478.3 GBDoes not fitWon't fit
Kimi K2.6UD-Q4_K_XL, 8,192 tokens512 GB M5 Ultra (not on sale yet)596.0 GB of 478.3 GBDoes not fitWon't fit
GLM-5Q8_0, 8,192 tokens512 GB M5 Ultra (not on sale yet)818.1 GB of 478.3 GBDoes not fitWon't fit

The 256 GB GPU limit rests on weak evidence. The 512 GB limit is assumed, and the 512 GB Mac Studio is not on sale yet. Measured speeds come from Apple's runs on a 512 GB M5 Ultra Mac Studio, not from the exact machine in the row. Reply speed is in tokens per second at short context. Measured figures come from the published runs listed below; estimates come from memory bandwidth, as explained under How we estimate.

  1. 1. Measured: 20 tok/s, Qwen3.8 27B MLX BF16 on Mac Studio, M5 Ultra, 512 GB at 8,192 tokens. machinelearning.apple.com. Apple, MLX, batch 1, 128 generated tokens. Single Macs are 512 GB Mac Studios.
  2. 2. Measured: 7.7 tok/s, Mistral Medium 3.5 128B FP8 on Mac Studio, M5 Ultra, 512 GB at 8,192 tokens. machinelearning.apple.com. Apple, MLX, batch 1, 128 generated tokens. Single Macs are 512 GB Mac Studios.

Not this machine?

The checker opens set to 256 GB M5 Ultra. Change it to your own machine to see what fits and how fast it should reply.

Check your Mac

What a Mac cluster is

A cluster is two or more Macs joined by Thunderbolt cables, each holding part of one model. Apple's TN3205 says RDMA over Thunderbolt "is available starting with macOS 26.2 on Macs with Apple silicon with Thunderbolt 5". Each link is point to point, so for the lowest latency every Mac connects to every other Mac. A ring can join more Macs than a Mac has ports, but then the software has to forward data from Mac to Mac.

Apple's Mac Studio page promises "up to 3x faster distributed AI inference", measured as the time to summarize a long prompt on four preproduction 512 GB M5 Ultras in a full mesh, against one. The same page tells you to "use exo to cluster multiple AI workstations".

The link is the bottleneck. Apple rates Thunderbolt 5 at up to 120 Gb/s, and Jeff Geerling measured about 50 to 60 Gb/s in practice (his test). 60 Gb/s is 7.5 GB/s, against 1.2 TB/s of memory bandwidth inside one M5 Ultra, which is why splitting a model across Macs never scales perfectly.

Pipeline or tensor parallel

  • Pipeline parallel: each Mac holds a block of layers and they take turns on every token. It adds memory, not generation speed. Apple did see prefill, the wait before the first token, up to about 1.8x faster at 65,536 tokens of context with --prefill-step-size 8192, because the Macs overlap work on chunks of a long prompt.
  • Tensor parallel: every Mac works on every layer at the same time. It adds speed, and it needs the low latency of RDMA: the MLX docs call their RDMA backend "Necessary for things like tensor parallelism".
Apple's measured decode speed, tokens per second, one to four M5 Ultra Mac Studios
Model and contextOne M5 Ultra2 Macs, pipeline2 Macs, tensor4 Macs, tensor4 Macs vs one
Qwen3.8 27B, BF16, 8,192 tokens19.6919.4433.2750.892.6x
Qwen3.8 27B, BF16, 65,536 tokens17.8718.0430.8447.452.7x
Mistral Medium 3.5, FP8, 8,192 tokens7.77.713.6923.373.0x
Mistral Medium 3.5, FP8, 65,536 tokens6.166.1411.0518.923.1x
Muse Spark Open, NVFP4, 8,192 tokensDoes not fit one Mac15.7424.9936.73No one-Mac run
Muse Spark Open, NVFP4, 65,536 tokensDoes not fit one Mac14.3723.8434.66No one-Mac run

Measured by Apple with MLX LM, one request at a time, 128 generated tokens (source, October 15, 2026). The single Macs are 512 GB Mac Studios. Each pair of clustered Macs had two Thunderbolt 5 cables; Apple does not state their memory.

Two Macs in pipeline mode stayed within 2% of one Mac's decode speed in every run. Tensor mode was 1.7x to 1.8x faster on two Macs and 2.6x to 3.1x faster on four. exo claims "up to 1.8x speedup on 2 devices and 3.2x speedup on 4 devices" for its own tensor sharding (a vendor figure).

For Muse Spark Open, Meta's open-weight model, which needs 544.6 GB at 4‑bit, two Macs ran at 15.74 tokens per second in pipeline mode and 24.99 in tensor mode, and four ran at 36.73. MLX LM's server and chat use tensor parallel by default; --pipeline switches to pipeline mode.

How much memory a cluster gives you

Raw RAM is not what the GPU can use. On macOS 26 and later, one 256 GB Mac gives the GPU about 239.1 GB, and we assume about 478.3 GB for a 512 GB Mac. Four 512 GB Macs have 2,048 GB of RAM but about 1,913.2 GB of GPU memory, and that model is not on sale yet.

Estimated memory each model needs against the GPU memory of linked Mac Studios
Model and fileNeeds2 x 256 GB (478.3 GB)4 x 256 GB (956.6 GB)2 x 512 GB (956.6 GB)4 x 512 GB (1,913.2 GB)
Muse Spark Open, NVFP4544.6 GBToo bigFitsFitsFits
Kimi K2.6, UD-Q4_K_XL596.0 GBToo bigFitsFitsFits
DeepSeek V3.1, Q8_0728.1 GBToo bigFitsFitsFits
GLM-5, Q8_0818.1 GBToo bigFitsFitsFits
Muse Spark Open, BF161,678.1 GBToo bigToo bigToo bigFits
Kimi K2.6, BF162,094.8 GBToo bigToo bigToo bigToo big

Estimate at 8,192 tokens of context. Assumes the model splits evenly across Macs of the same memory size (as exo and MLX distributed do) and that linking them costs no memory on any one Mac. Neither is measured. The 256 GB GPU limit rests on weak evidence. The 512 GB limit is assumed, and the 512 GB Mac Studio is not on sale yet. Meta's own Mac setups for the NVFP4 build are exactly two 512 GB or four 256 GB Mac Studios (Meta).

You do not always need a cluster for a big model. Muse Spark Open's Q2_K build (a 304.1 GB file) needs about 311.1 GB to run, which fits one 512 GB Mac; Hugging Face, a launch partner, measured 18 tokens per second on a 512 GB M3 Ultra. DeepSeek V3.1 at Q4_K_M needs 414.1 GB: too big for one 256 GB Mac, but within a 512 GB one once Apple sells it. More on that Mac in the 512 GB section.

Disk adds up too. Each Mac loads the model from its own disk (Meta's cookbook), so a four-Mac Muse Spark Open setup stores the 533 GB NVFP4 checkpoint four times.

What a cluster costs

Mac Studio M5 Ultra setups, GPU memory and US price
SetupGPU memory, estimatePrice
One 256 GB M5 Ultra239.1 GB$9,499
Two 256 GB M5 Ultras478.3 GB$18,998
Four 256 GB M5 Ultras956.6 GB$37,996
Two 512 GB M5 Ultras956.6 GBNot published yet

Hardware only, US prices before tax, M5 Ultra, 30-core CPU, 64-core GPU with 1 TB of storage, from Apple's store on October 19, 2026. Add a Thunderbolt 5 cable for every pair of Macs. The 512 GB option: "512GB memory option for M5 Ultra coming late October." (Apple).

Two 256 GB Macs give the GPU about 478.3 GB for $18,998, the same as one 512 GB Mac's assumed 478.3 GB, whose price Apple has not published.

Cheaper ways to pool memory, and why they lose

One big Mac Studio against groups of smaller Macs
SetupGPU memory, estimateMemory bandwidth per MacPrice
One 256 GB Mac Studio, M5 Ultra239.1 GB1.2 TB/s$9,499
Two 128 GB Mac Studios, M5 Max230.9 GB614 GB/s$10,198
Four 64 GB Mac minis, M5 Pro222.7 GB307 GB/s$10,796

Our arithmetic from Apple's US store prices and our GPU memory estimate. Assumes the model splits evenly across Macs of the same memory size (as exo and MLX distributed do) and that linking them costs no memory on any one Mac. Neither is measured.

One 256 GB M5 Ultra costs less than either group, gives the GPU more memory and reads it faster, with no cables or cluster software. Groups of smaller Macs only make sense if you already own them.

Which Macs can join an RDMA cluster

  • Thunderbolt 5, so RDMA works on macOS 26.2 or later: Mac mini (M5 Pro), Mac Studio (M5 Max, M5 Ultra), MacBook Pro 14-inch (M5 Pro, M5 Max), MacBook Pro 16-inch (M5 Pro, M5 Max).
  • Thunderbolt 4, so no RDMA: Mac mini (M6), MacBook Air 13-inch (M5), MacBook Air 15-inch (M5), MacBook Pro 14-inch (M5), iMac 24-inch (M4).
  • No Thunderbolt: MacBook Neo (A18 Pro).
Thunderbolt 5 ports and the largest full mesh
MacThunderbolt 5 portsLargest mesh, one cable per pairLargest mesh, two cables per pair
Mac Studio, M5 Ultra6 (4 on the back, 2 on the front)7 Macs4 Macs
Mac Studio, M5 Max4 (4 on the back; the front ports are USB-C)5 Macs (4 without the port next to Ethernet)3 Macs (2 without the port next to Ethernet)
Mac mini, M5 Pro3 (3 on the back)4 Macs2 Macs

Our arithmetic from Apple's spec pages, using every Thunderbolt 5 port for the cluster. Apple's four-Mac M5 Ultra setup, with two cables per pair, uses all 6 ports on each Mac. The smaller M5 Max figures leave out the back port next to Ethernet (see exo's rule below).

exo adds two rules of its own: every Mac must run exactly the same macOS version, beta numbers included, and on a Mac Studio the Thunderbolt 5 port next to the Ethernet port cannot be used. exo wrote the second rule for earlier Mac Studios. Apple's own four-Mac M5 Ultra mesh uses all 6 ports, so it does not apply there; for the M5 Max Mac Studio, which has the same back ports as the M4 Max, it is unconfirmed.

Mac mini cluster

Only the M5 Pro Mac mini has Thunderbolt 5, so only it can use RDMA. With 3 ports each, up to 4 can form a full mesh, which matches TN3205's own example of four Mac minis. The M6 Mac mini has Thunderbolt 4 and can join only MLX's ring backend, which runs over ordinary TCP networking; we know of no published speed for that setup.

Four 64 GB M5 Pro minis give the GPU about 222.7 GB for $10,796, less than one 256 GB Mac Studio's 239.1 GB for $9,499, and each reads its memory at 307 GB/s. The setup steps are the same as below.

Tools that split a model across Macs

  • MLX LM, from Apple: what Apple measured the cluster speeds with, and what Meta's Mac cookbook uses. Its distributed mode has two backends, ring over TCP and JACCL over RDMA, started with mlx.launch. Current versions: MLX 0.32.4, MLX LM 0.32.2 (PyPI).
  • exo (Apache 2.0): a Mac app that finds the other Macs and splits the model for you, on top of MLX. It needs macOS 26.2 or later, installs with brew install --cask exo, and serves a dashboard and an API at localhost:52415 with OpenAI, Claude Messages and Ollama style endpoints. Its last packaged release is v1.0.71 from April 23, 2026, though the code was still updated on October 13, 2026. The PyPI package named exo is unrelated: do not pip install it.
  • llama.cpp RPC: its own README calls it a "proof-of-concept" that is "fragile and insecure", so never run the RPC server on an open network. On macOS it can use RDMA over Thunderbolt, and v0.7.0 added tensor parallel RPC (-sm tensor).
  • An independent test: Jeff Geerling linked four M3 Ultra Mac Studios and found exo got faster as he added Macs, while llama.cpp RPC got slower. He also wrote that he has "some underlying trust issues with Exo, since the developers went AWOL for a while".
  • PocketWebTools for Mac does not link Macs and serves no local API, so it is not a cluster tool.

How to set up a Mac cluster with MLX

  1. Cable every Mac to every other Mac: Use Macs with Thunderbolt 5 on macOS 26.2 or later and run a Thunderbolt 5 cable between every pair. MLX's RDMA backend supports only fully connected groups.
  2. Turn off the Thunderbolt bridge: On each Mac open System Settings, Network, Thunderbolt Bridge and choose Make Inactive, so frames cannot loop between the cables.
  3. Enable RDMA in macOS Recovery: Start each Mac in macOS Recovery, open Utilities, Terminal, run rdma_ctl enable and restart. It cannot be done remotely. Back in macOS, ibv_devices should list the RDMA interfaces.
  4. Set up passwordless SSH: Turn on Remote Login (System Settings, General, Sharing) on every Mac. From the first Mac, create a key with ssh-keygen and copy it with ssh-copy-id to every Mac in the group, the first one included: mlx.launch starts each part of the job over SSH, so ssh mac1.local has to work without a password even on mac1. Below, mac1.local to mac4.local stand for each Mac's local hostname, shown under Sharing.
  5. Install MLX LM on every Mac: Run pip install -U mlx-lm on each Mac (MLX LM 0.32.2 with MLX 0.32.4 today), into the same Python path on every Mac, such as a virtual environment at the same location: mlx.launch runs that exact Python binary on each one, and mlx.launch --print-python shows which.
  6. Write the host file: On the first Mac, run mlx.distributed_config over Thunderbolt with the jaccl backend. With --auto-setup it also configures the links, which needs passwordless sudo on each Mac.
  7. Copy the model to every Mac: Each Mac loads the model from its own disk. Download it on the first Mac with hf download, then mlx_lm.share copies it to the others over the cluster.
  8. Serve the model across the Macs: Start mlx_lm.server (or mlx_lm.chat in the terminal) through mlx.launch with the jaccl backend. It splits the model tensor parallel by default; add --pipeline for pipeline mode. Do not use mlx_lm.generate: it has no multi-Mac code and every Mac would load the whole model.
On each Mac, in macOS Recovery, Utilities, Terminal
rdma_ctl enable
Back in macOS: list the RDMA interfaces
ibv_devices
On the first Mac: passwordless SSH to every Mac, itself included
ssh-keygen -t ed25519
ssh-copy-id mac1.local
ssh-copy-id mac2.local
ssh-copy-id mac3.local
ssh-copy-id mac4.local
On every Mac, in the same Python environment path
pip install -U mlx-lm
On the first Mac: write the host file
mlx.distributed_config --verbose --hosts mac1.local,mac2.local,mac3.local,mac4.local --over thunderbolt --backend jaccl --auto-setup --output hostfile.json
On the first Mac: download the model, then copy it to the others
hf download Qwen/Qwen3.8-27B
mlx_lm.share --model Qwen/Qwen3.8-27B --hostfile hostfile.json
Serve it across the Macs (tensor parallel)
mlx.launch --hostfile hostfile.json --backend jaccl -- mlx_lm.server --model Qwen/Qwen3.8-27B --port 8080
Or chat in the terminal
mlx.launch --hostfile hostfile.json --backend jaccl -- mlx_lm.chat --model Qwen/Qwen3.8-27B

MLX_METAL_FAST_SYNCH

Apple and Meta add --env MLX_METAL_FAST_SYNCH=1 to mlx.launch for speed. The MLX docs say it is "not reliable", can deadlock and leave the GPU wedged, and is best left unset. We leave it out above.

The example model is the Qwen3.8 27B checkpoint Apple measured; swap in any MLX model that is too big or too slow on one Mac. Muse Spark Open needs a gated download and MLX LM 0.32.2 or later: see how to run Muse Spark Open on a Mac. If you would rather not use Terminal, exo does the discovery and splitting for you.

What we recommend

Cluster only if the model you need does not fit one Mac, or if you will run it tensor parallel for speed. Two Macs in pipeline mode buy memory, not faster generation.

For anything up to about 239.1 GB, one 256 GB M5 Ultra ($9,499) is cheaper and simpler than a group of smaller Macs.

For 4‑bit frontier models such as Muse Spark Open (544.6 GB) and Kimi K2.6 (596.0 GB), four 256 GB M5 Ultras ($37,996, about 956.6 GB of GPU memory) are the setup you can order today; two 512 GB Macs give the same once Apple sells them.

MLX LM

What Apple used for the cluster speeds on this page, and what Meta's Mac cookbook uses. Comfortable in Terminal? Follow the setup steps.

Free and open source (MIT licence), from Apple. Made by another developer, not PocketWebTools.

Get MLX LM

exo

A Mac app that finds your other Macs and splits the model for you, with an OpenAI style API. Its last packaged release is from April 23, 2026.

Free and open source (Apache 2.0 licence). Made by another developer, not PocketWebTools.

Get exo
Can I Run AICheck one Mac: see which models fit a single machine before you buy a second. The checker grades one Mac at a time; it has no cluster mode.Open Can I Run AI

PocketWebTools for Mac

Runs 6 open chat models, up to Qwen3.6 35B‑A3B (a 22.4 GB download), plus transcription with speaker labels, text to speech and voice cloning, OCR, photo upscaling and cutouts, all offline on Apple Silicon. It does not generate images, read images in chat, load your own model files, run MLX, link several Macs or serve a local API for coding tools.

For everyday private AI on each Mac in the group, such as chat, transcription and voice. It does not link Macs.

Version 1.0.0. Needs Apple Silicon (M1 or later), macOS 14 Sonoma or later.

Buy for $99$49

Already have a key? Download the app. It asks for the key the first time it opens.

14-day money-back guarantee. Your license key is shown right after checkout and stays on your purchase page; one key works on up to 3 Macs.

See everything the app does

How we estimate

Show the formulas, constants and sources

Memory a model needs

Memory = weights + context memory + runtime. Weights are the real download size of the file you pick, read from Hugging Face. When a size is unknown we use parameters x bits per weight / 8, with typical averages per quant type (Q2_K 2.96, Q3_K_M 3.91, Q4_K_M 4.8, UD-Q4_K_XL 4.9, MXFP4 4.25, NVFP4 4.5, Q5_K_M 5.7, Q6_K 6.56, Q8_0 8.5, BF16 16). Runtime is 0.7 GB, or 2% of the weights when that is more, for compute buffers and allocator slack: measured buffers stay near that size whatever the model. Against our own Mac app's measured memory for six models, and Apple's published totals for two models at 65,536 tokens, this lands within 15%. Where someone measured the memory of the exact file, we use that run instead and say so. Checked 2026-10-19.

Context memory (KV cache)

Each token of context stores keys and values: 2 x layers x KV heads x head size x 2 bytes (16‑bit cache, the default in llama.cpp and MLX), read from each model's config.json. Sliding-window layers keep at most their window (2,048 tokens on Muse Spark Open, for example), so they add a fixed amount instead of growing. MLX is confirmed to cap them on Muse Spark Open; whether llama.cpp does for that model is not verified, so its GGUF figures may run low at long context. Models with compressed attention (MLA) store one small latent per layer. Linear-attention layers keep a small fixed state, counted in the runtime share. In llama.cpp you can store the cache at lower precision with --cache-type-k and --cache-type-v (-ctk and -ctv): per element that is q8_0 1.0625 bytes, q4_0 0.5625 bytes, from the size of each type's data blocks. A lower-precision V cache needs flash attention, which llama.cpp turns on by itself unless you switch it off. Measured runs are taken to use the 16‑bit default. Checked 2026-10-19.

How much memory a Mac's GPU can use

macOS only lets the GPU use part of a Mac's memory. Apple publishes no formula, so we read the default from public llama.cpp, Ollama and MLX logs where one exists. On macOS 26 and later: 8 GB: 2/3, about 5.7 GB (medium evidence); 16 GB: 0.74, about 12.7 GB (strong evidence); 18 GB: 0.74, about 14.3 GB (medium evidence); 24 GB: 0.74, about 19.1 GB (strong evidence); 32 GB: 0.78, about 26.8 GB (strong evidence); 36 GB: 0.78, about 30.2 GB (medium evidence); 48 GB: 0.78, about 40.2 GB (strong evidence); 64 GB: 0.81, about 55.7 GB (strong evidence); 96 GB: 0.81, about 83.5 GB (weak evidence); 128 GB: 0.84, about 115.4 GB (strong evidence); 192 GB: 0.84, about 173.2 GB (weak evidence); 256 GB: 0.87, about 239.1 GB (weak evidence); 512 GB: 0.87 (assumed), about 478.3 GB (unconfirmed evidence). Why the weaker rows are weaker: 96 GB: One log, from 2026-09-30. 192 GB: One M2 Ultra log, from 2025-10-30. 256 GB: Two M3 Ultra logs, possibly from the same person. 512 GB: No confirmed default. Logs show 464 GiB (about 0.906), but the same value appears on a macOS 15 Mac, so it is probably a manual override. We use 0.87, the 256 GB ratio, which may understate a 512 GB Mac by about 20 GB. On macOS 15 or earlier it was 2/3 up to 32 GB and 3/4 above. The limit can be raised with sudo sysctl iogpu.wired_limit_mb=<MiB>; it resets on restart and macOS needs memory of its own, so leave headroom. The setting cannot go past a second limit, the kernel's cap on all locked memory, which Apple's open-source macOS kernel sets by memory size (16 GB: 13.1 GB; 32 GB: 27.1 GB; 64 GB: 56.3 GB; 128 GB: 116.8 GB; 256 GB: 241.9 GB; 512 GB: 515.4 GB) and two measured Macs match exactly. That cap sits a little above the default at every size, so the default is what a model gets, and we suggest the setting only when a model fits under the cap. It may still fail. Checked 2026-10-19.

Several Macs linked together

For a group of Macs with the same memory, we add up what each one's GPU can use: two 256 GB Macs on macOS 26 and later come to about 478.3 GB. Assumes the model splits evenly across Macs of the same memory size (as exo and MLX distributed do) and that linking them costs no memory on any one Mac. Neither is measured. We give no estimated speed for a group; only published runs, each with its number of Macs. Checked 2026-10-19.

How much memory a PC can use

On a graphics card we take its video memory minus 0.5 GB for the display. Runtimes like llama.cpp, LM Studio and Ollama can put layers that do not fit into system memory; we allow up to 60% of it, and any model that needs it is graded Tight. Both numbers are our assumptions, not measurements. AMD documents up to 96 GB of GPU memory on a 128 GB Ryzen AI Max machine; on smaller ones we assume the same 75% share. NVIDIA publishes no GPU limit for DGX Spark, so we assume 84% of its memory, the share macOS gives a 128 GB Mac. Checked 2026-10-19.

Reply speed

Writing each token reads the model's active weights once, so speed follows memory bandwidth: seconds per token = active GB / (bandwidth x 0.85) + a fixed cost per token of 2 ms on Apple for standard models, 5 ms for hybrid linear-attention models (Qwen3.5 and 3.8), 6 ms for mixture of experts; 1.3 ms on NVIDIA and DGX Spark for standard models and 2 ms for mixture of experts. Active GB comes from the file's tensor table where we computed it, else from a similar file of the same model whose table we read, scaled by file size, else from the active parameters at the file's own bits per weight. When a PC spills into system memory, that part reads at 60 GB/s x 0.6 (assumed dual-channel DDR5). Fitted to 53 published llama.cpp and MLX runs, it had a median error of 6% and every point within 20%; that fit is in-sample. AMD and Intel cards borrow the NVIDIA values and are marked rough. Speeds are at short context; long chats run slower. Checked 2026-10-19.

Why speeds are a range

The top of the range is the formula above. The bottom is 65% of it on M1 and M2 chips, where our own Mac app ran about a third under the formula on two mid-size models, and 85% everywhere else. The M1 and M2 rule rests on those two points only. Checked 2026-10-19.

When we do not estimate speed

We show no estimated speed for weights under 2 bits each, which are limited by computation rather than bandwidth (a 1‑bit 27B model ran at about a quarter of the bandwidth limit), or for mixture-of-experts models above 120B total parameters, where the formula ran 40% fast on Muse Spark Open against a measured 18 tokens per second. Those rows show measured speeds where someone published them, and "not measured" otherwise, and a model with no speed figure is graded Tight at best. Checked 2026-10-19.

Measured beats estimated

When someone published a speed for the same model, quant and chip, we show that number, labelled measured, with its source and caveats, instead of the formula. A run on another runtime (Meta's ExecuTorch numbers for a GGUF, for example) or one that does not say which GPU-core version of a chip it used is shown for comparison only. Our own measurements come from PocketWebTools for Mac on a 16 GB M1 Pro and a 32 GB Mac mini M4. A speed measured at a context more than 4 times shorter than the one you picked (or at an unstated one, which usually means a short test) is labelled measured at short context, since long chats run slower. Measurements of several Macs linked together never stand in for one Mac, and each is shown with its number of Macs. Model data checked 2026-10-19.

Grades

Won't fit: the model needs more than the GPU can use (plus the allowed system memory on a PC). Tight: it fits but needs more than 90% of that memory, spills into system memory, replies under 8 tokens per second, or has no speed figure for that machine. Runs well: everything else. Every grade states the quant, the context length (8,192 tokens unless you change it) and the memory figure it assumed. Speech, voice and image models are graded on memory only. Checked 2026-10-19.

Time to the first word

Reading your prompt is limited by computation, not bandwidth. We scale each chip's published llama.cpp prompt speed on a 7B model by 6.6B / the model's active parameters, x 0.75 for mixture of experts. It matched measured runs within 8% for standard models. Checked 2026-10-19.

Questions

Can you cluster Mac Studios?
Yes. Since macOS 26.2, Mac Studios link over Thunderbolt 5 with RDMA, and tools such as MLX LM and exo split one model across them. Apple measured four M5 Ultras running Muse Spark Open at 36.73 tokens per second.
Can I use RDMA on my Mac?
Only on an Apple silicon Mac with Thunderbolt 5 running macOS 26.2 or later, after you enable it once in macOS Recovery with rdma_ctl enable. Macs with Thunderbolt 4, such as the M6 Mac mini, the MacBook Air and the base M5 MacBook Pro, cannot.
How to create a Mac mini cluster?
Use M5 Pro Mac minis (the only Mac minis with Thunderbolt 5), cable each one to every other, enable RDMA in macOS Recovery, then run MLX LM or exo across them; 3 ports per mini allow up to 4 in a full mesh. Four 64 GB minis give the GPU about 222.7 GB, less than one 256 GB Mac Studio's 239.1 GB.
Can a Mac Studio cluster be used for LLM inference?
Yes, that is its main use. In Apple's tests the speed gain came from tensor parallel: four M5 Ultras ran Mistral Medium 3.5 3.0x faster than one, while two in pipeline mode were no faster at generating.
Which Mac Studio is best for AI?
For one machine, the one whose memory fits your largest model: see Mac Studio for AI. For a cluster, the M5 Ultra: it has 6 Thunderbolt 5 ports and 1.2 TB/s of memory bandwidth, and it is what Apple measured.

Where to go next

Sources

Changelog

  • : Published: Apple's measured speeds on one, two and four M5 Ultra Mac Studios, how much GPU memory two and four Macs pool, what they cost, which Macs can use RDMA, and the MLX setup over Thunderbolt 5.