IT WORKS!
For a year, anyone with DGX Sparks and Mac Studios has lived with the same problem: the NVIDIA boxes are fast at reading, the Apple boxes are fast at answering, and they can't share a thought. Two islands. A 10 GbE cable between them.
Earlier this month we published pd-bridge ( prefill/decode disaggregation across NVIDIA and Apple silicon. Spark 1 and Spark 2 run the prefill, a Mac Studio runs the decode, and the KV cache crosses between them — reconstructed on the Mac bit‑exact (313/313 arrays) so the decoder sees a normal prefix‑cache hit and never knows a bridge exists. Up to 3.7× faster than a Mac alone at 241K tokens, over plain 10 GbE HTTP.
That was one‑way, one turn, one Mac.
Today it's a loop!
The question we set out to answer:
Can a single conversation circulate across four machines — two DGX Sparks, two Mac Studios — turn after turn, each doing only what it's built for, and beat a single machine doing the whole job?
How it works:
• Spark 1 + Spark 2 (vLLM TP2) — Prefill. Read the conversation, compute the attention state. Blackwell compute: ~1,100 tok/s vs ~400 on a Mac Studio.
• Mac Studio A — Gateway. The only Studio with a Mellanox ConnectX‑4 on the MikroTik fabric (via a Thunderbolt 5 enclosure). Receives the Sparks' cache over RDMA — kernel bypass, no TCP, no files — using
@ashxhart MCDMA driver ( and maps it into oMLX cache blocks. First time that driver has run on a ConnectX‑4. First time through a mikrotik 812 switch. 6 µs latency, down from ~400! This is the key and we cannot stress enough how appreciative of his work, efforts, and willingness to give to the open source community!
• Mac Studio B (512 GB) — Memory. Holds the entire conversation's cache, receives each new piece from A over Thunderbolt 5 RDMA, and generates the reply. Never re‑reads the history, because it already has it.
• MikroTik CRS812 + TB5 mesh — Two kernel‑bypass RDMA fabrics carrying attention state between three machines.
The reply becomes part of the next message and goes back to the Sparks. Inference, back and forth, across two kinds of silicon. NVIDIA computes what Apple speaks.
The big wins:
• Up to 4.2× faster replies than a Mac Studio alone. Alone, Mac Studio B sits at a flat ~31 s per message because it re‑prefills the entire history every time. Fed by the Sparks: .7 s at 31K tokens, 7.4 s at 47K, 10.5 s at 63K. The longer the conversation, the more the split pays.
• The Mac never prefills. Cached tokens on Mac Studio B: 30,720 → 47,104 → 61,440. Every block computed on Blackwell, consumed on Metal.
• Network transport is a rounding error. Spark → Mac Studio A over RDMA through the MikroTik: 0.3–0.5 s. Mac Studio A → B over TB5: ~0.05 s. Under 1 second of a ~8‑second reply.
(Next: routing the cache back to the Sparks so they only prefill what's new — that flattens the whole loop.)
Who made this possible:
@ashxhart — MCDMA. RDMA verbs on macOS.
Nothing here works without it!
@Apple @NVIDIAAI @mikrotik_com (
@b_ostrov — MelonDMA, and the KV‑block‑over‑RDMA ideas we built on, and because I love that Ben is using M1-M2 machines and making this backward compatible for anyone/everyone with a card and imagination..
@MiaAI_lab — the model builds we run, because you already know she's going to be the queen of the heterogeneous model scene!
Why we're posting:
This is a basement, not a lab. We're not selling anything: compute where compute is cheap, memory where memory is cheap: RDMA in between.
What if we don't stop here..? Open Source Must Win!