cd /news/large-language-models/pipeline-parallel-llm-inference-acro… Β· home β€Ί topics β€Ί large-language-models β€Ί article
[ARTICLE Β· art-34300] src=github.com β†— pub= topic=large-language-models verified=true sentiment=↑ positive

Pipeline-parallel LLM inference across GPUs on separate machines

A 744-billion-parameter GLM-5.2 model was served at ~30 tokens per second across six prosumer Blackwell GPUs in six US states over a wide-area network using pipeline parallelism and speculative decoding. The system, built on the Shard inference engine, splits the model into contiguous layer blocks across separate machines, with a coordinator holding only the token embedding and a small draft model. This demonstrates that frontier-size models can be run across geographically distributed consumer hardware at usable speeds by hiding WAN latency through async pipelining and CUDA-graphed draft models.

read7 min views1 publishedJun 19, 2026
Pipeline-parallel LLM inference across GPUs on separate machines
Image: source

Pipeline-parallel LLM inference across GPUs on separate machines. A model too large for any single card is split into contiguous blocks of layers β€” one shard per GPU β€” and a request is served by streaming activations through the shards in order. No datacenter, no single host, and no node ever holds the whole model.

Shard is the inference engine for c0mpute.

A 744-billion-parameter frontier model, served at ~30 tok/s across seven prosumer Blackwell GPUs in six US states β€” over WAN, greedy, deterministic. GLM-5.2 (NVFP4, 78 layers) is split 13 layers per node across 6Γ— RTX PRO 6000; no single card holds it, six do. Each node loads only its own block. A coordinator holds no model layers β€” just the token embedding/head and a small CUDA-graphed GLM-4-9B draft that proposes tokens, which the distributed 744B verifies.

Setup tok/s (warm) Output
GLM-5.2 744B NVFP4, 6Γ— RTX PRO 6000 across 6 US states (NV Β· TX Β· MN Β· MO Β· UT + WA coord), WAN, pipelined spec-decode + CUDA-graphed draft ~30
greedy, deterministic

Every run emits a verifiable receipt β€” distinct GPU UUIDs / public IPs / regions, measured WAN edge RTTs (22–75 ms), the output token hash, and a lossless-optimization check. This run's receipt: docs/receipts/glm52-nvfp4-wan-20260618.json (see

docs/PROOF.mdfor how a skeptic checks it).

That is the whole thesis in one line: a frontier-size model, far too big for any single card, served across machines on different networks β€” activations crossing the country on every traversal β€” at a speed that is actually usable.

Plain pipeline decode over WAN is latency-bound: one round-trip per token, ~1–2 tok/s, unusable. The path to 30 was a sequence of measured steps, each committed:

Step tok/s What changed
plain KV decode 1.87 latency-bound baseline (one token per round-trip)
+ deep-draft spec-decode (GLM-4-9B), relay-back 1.99 one traversal commits several tokens
  • ring direct-return | 2.94 | tail returns to the coordinator in one hop β€” 7 ring hops, not a 12-hop relay-back |
  • async pipelining | 16.6 | overlap many verify traversals in flight β†’ throughput-bound, not latency-bound; the WAN drops to ~5% of the loop |
  • CUDA-graphed draft | ~30 | with the WAN hidden, the draft was 94% of the loop; CUDA-graphing it (3.8Γ—) lifts the whole pipeline |

The key insight: over WAN the round-trip is the scarce resource, not compute β€” so speculative decoding, marginal in a datacenter, becomes the whole game. A small draft proposes K tokens; the distributed 744B verifies them in a single pipeline traversal; greedy acceptance commits the verified prefix. Then two compounding wins:

Async pipelining over the ring. Because the ring is direct-return, multiple verify chunks can be in flight at once. The coordinator drafts a continuous stream and pumps overlapping chunks into the pipeline without waiting β€” so the loop runs at the pipeline'sthroughput, not itslatency. The WAN, which dominated every prior attempt, drops to ~5% of the loop. - CUDA-graphed draft. Once the WAN is hidden, the GLM-4-9B draft (single-token decode, launch-overhead-bound) becomes 94% of the loop. Capturing it as a CUDA graph cuts it 3.8Γ— (49.7β†’13.1 ms/tok). The hard part was making the static KV cache honor speculative rollback under graph capture β€” solved by driving the write slot through a static-address position tensor; the result isbyte-identical to the eager path, so the optimization is provably lossless. (research/glm_swarm_nvfp4_cg.py

,research/glm_swarm_nvfp4_cg_diff.py

.)

A transformer is a stack of layers. Shard splits the stack into contiguous blocks, one block per GPU. A token is produced by passing activations through the blocks in order; each node keeps a KV-cache for its own layers.

coordinator (WA) ── GLM-4-9B draft (CUDA-graphed) + embed / lm_head
     β”‚
     β”œβ”€β–Ί stage0 ─► stage1 ─► stage2 ─► stage3 ─► stage4 ─► stage5 ─┐  (verify chunks, pipelined)
     β”‚   NV         TX         (Β·)        MN         MO        UT    β”‚
     β”‚   0–12       13–25      26–38      39–51      52–64     65–77 β”‚
     └──────────────── direct return (tail β†’ coordinator, 1 hop) β”€β”€β”€β”€β”˜

The coordinator (entry node) holds no 744B layers β€” only the draft and a thin driver. Each round: the draft proposes K tokens; the coordinator ships [cur, d₁..dβ‚–]

into stage 0, which embeds them; the chain verifies all K+1 in one forward traversal; the tail returns the argmaxes straight to the coordinator (one hop, not relayed back); the coordinator greedy-accepts the longest matching prefix. Many such chunks are in flight at once (the pipeline), and the draft replays a captured CUDA graph against a static KV cache.

Splitting a model across co-located GPUs is well understood. Doing it across machines on the open internet, fast enough to be usable, is not β€” and that is the part Shard owns.

Latency. Every token traverses the whole pipeline. Speculative decoding amortizes one round-trip over many committed tokens; pipelining overlaps the traversals so the WAN stops being the floor; the CUDA-graphed draft keeps what's left cheap.Transport. The activation tensor crosses the public internet on every step. Shard owns this layer β€” supervised edges that fail fast and reconnect, per-edge health logging, no opaque "broken pipe." The wire is authenticated and encrypted with pickle-free framing (phase0/wire.py

; ChaCha20-Poly1305 under a sharedSHARD_PSK

), so a passive observer learns nothing and a forged frame is a parse error, not code execution. (NAT hole-punching + relay fallback for home routers is the remaining Phase 1 work; a direct open port stands in today.)

Shard is c0mpute infrastructure, held to its three guarantees:

Uncensored. The engine runs models as-is. No content filter in the inference path.Decentralized. Anyone can join a GPU with one command and be assigned a block of layers. No central inference server.Private. No node holds the whole model β€” a real start, not the whole story. The wire is sealed (authenticated encryption, pickle-free), so the leak is not on the path; but aparticipatingnode must decrypt to run its layer, so it sees the activations it processes. Intermediate activations can still leak a fraction of a user's tokens to a malicious node. The plan β€” pin leaky boundary layers to trusted nodes, per-request trusted routing, never overclaim β€” is indocs/ARCHITECTURE.md. It is the number-one open problem and is treated as one.

120B (MXFP4, 36 layers) across 3 scattered RTX 4090s in different US states + a coordinator, ~40 tok/s (peak ~42), greedy, exact. This is the rig the permissionless work (Phase 3+) is built on β€” plain 24GB consumer cards, the hardware a real volunteer runs. This run's verifiable receipt (distinct GPU UUIDs / IPs / states, WAN edge RTTs, output hash, sync-vs-pipelined token match): docs/receipts/gpt-oss-120b-wan-20260619.json.

The climb from a latency-bound ~18 tok/s, each step measured:

Step tok/s What changed
pipelined spec-decode (4-stage) 25.8 async-draft overlap + many verify chunks in flight + RTT-optimal ring order
  • 3-stage (12-layer) ring | 28.8 | fatter stages β†’ 4 WAN hops instead of 5 (12 layers fits a 24GB card) |
  • coordinator placed in-region | ~40 (peak ~42) | the coordinator holds no model layers, so it can live anywhere; moving it off the cross-country leg cut the ring 174β†’102 ms |

The last step is the one nobody looks for: the cheapest node in the system β€” the layer-less coordinator β€” was sitting a continent away from the swarm, paying two long round-trips on every token. Putting it next to the stages, on the same scattered nodes, was a ~40% latency cut for free. Full record: docs/research/wan-speculative-decoding.md.

GLM-5.2 (above) remains the frontier-size flagship β€” 6Γ— the parameters at 744B; gpt-oss-120B is the faster, consumer-card build target the network is bootstrapped on.

phase0/   transport + deploy: wire.py (sealed framing), mesh.py (edge RTTs),
          proof_receipt.py (run-receipt build/verify), launch + bench tooling
research/ the swarm drivers β€” glm_swarm_nvfp4_kv.py (NVFP4 KV-cached stages),
          glm_swarm_nvfp4_pipe.py (pipelined spec-decode), glm_swarm_nvfp4_cg.py
          (CUDA-graphed draft), *_cg_diff.py / *_fwdcmp.py (correctness diagnostics)
docs/     ARCHITECTURE, ROADMAP, PROOF.md, receipts/, and the research records
shard/    engine module scaffolding (node, transport, specdec, topology)

Phase 0 β€” Transport, proven. Reliable serving through a multi-stage split.Phase 1 β€” WAN. Different networks behind NAT: hole-punching, relay fallback, activation quantization, edge supervision.Phase 2 β€” Speculative decoding. Draft-and-verify over the swarm β€”done at GLM-5.2 744B scale, ~30 tok/s greedy over WAN(and gpt-oss-120B at ~18–25, above).** Phase 3 β€” Permissionless swarm.**One-command join, dynamic layer allocation across heterogeneous GPUs, per-token payouts, fault tolerance.

Full detail, pass/fail criteria, and risks: docs/ROADMAP.md.

Apache License 2.0 Β© 2026 leyten

── more in #large-language-models 4 stories Β· sorted by recency
── more on @shard 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/pipeline-parallel-ll…] indexed:0 read:7min 2026-06-19 Β· β€”