Literature review · Pluralis · Part II · August 2026

Speculation Meets the Pipeline

Pipeline-parallel (PP) decoding has two structural taxes: (N−1)/N of stages sit idle per token (the bubble), and every token pays a full traversal of every inter-stage link — which over WAN means a full lap of internet RTTs. Speculative decoding attacks both at once: one traversal can verify K drafted tokens, and speculation gives idle stages useful work. This review maps which speculative methods are already used with PP, which are attractive but not yet used, and what a WAN-PP deployment (the Pluralis setting) should actually adopt. It builds on the companion Speculative Decoding Atlas.

4
levers: amortize traversals · fill bubbles · overlap async · shrink the wire
7.8×
best reported gain over plain PP decode (SpecPipe/PipeDec, 21 stages)
0
production engines shipping SD × layer-PP (Aug 2026) — vLLM docs: "not composable"
<50 B
verification uplink per round achievable over WAN (DSSD)
01

The pipeline's two taxes, and why speculation pays both

In single-stream PP decoding, a token enters stage 1, flows through all N stages, and its sampled successor must return to stage 1 before anything else happens. Compute utilization is 1/N, and — decisive over WAN — latency per token ≈ Σ inter-stage RTTs + compute. With 8 volunteer stages at ~25 ms per hop plus the return link, that is ~200+ ms per token no matter how fast the GPUs are. Speculative verification changes the unit of work: a traversal carries a block of K drafted tokens and the target verifies all of them in that same lap. Accepted length L divides the number of laps — L is an RTT divisor. Extra draft tokens travel as payload bytes (cheap), not as extra laps (expensive), which is precisely the WAN trade.

Plain PP decode 1 token per traversal stage 1 stage 2 stage 3 stage 4 t₁ t₁ t₁ t₁ → t₂ t₂ returns to stage 1 — a full lap of link RTTs per token t₂ t₂ t₂ t₂ 12 of 16 stage-slots idle (the bubble) · 2 tokens = 2 laps Speculative PP decode K drafts verified per traversal stage 1 stage 2 stage 3 draft block t₁…t₄ verify t₁…t₄ verify → accept 3 + t₅ next block t₅…t₈ 4 tokens ride one lap → per-token latency ≈ (Σ RTT + compute) ÷ accepted length
Three-stage sketch of the speculative case for legibility; the arithmetic scales with any depth. The draft block is produced without touching the full pipeline (by a head, a retrieval match, or early-exit layers — §05 examines where the drafter should live), so the only recurring WAN cost is one lap per accepted block.
02

Four levers, one taxonomy

Every SD × PP system in the literature pulls some combination of four levers. They compose — the strongest 2026 designs pull all four.

LEVER 1 Amortize traversals K tokens verified per lap; acceptance ÷ RTT count SpecInfer SpecExec trees SpecPipe/PipeDec DSSD·PicoSpec split-inference lookahead the WAN lever LEVER 2 Fill the bubbles idle stages work on speculative continuations SpecPipe/PipeDec FlowSpec SPD (zero-bubble) PPSD PipeInfer the utilization lever LEVER 3 Overlap async draft while verifying; cancel stale work mid-pipe PipeInfer PipeSpec·AMUSD PicoSpec PPSD (Saguaro·PEARL) the latency-hiding lever LEVER 4 Shrink the wire ship token ids, not distributions; compress acts DSSD (<50 B up) PicoSpec top-K mask rollback Petals 8-bit acts TAH-Quant 3–4 bit the bandwidth lever Levers 1–3 shape the schedule; lever 4 shapes the bytes. Colors key the master table's "lever" column. Systems in parentheses are not yet applied to PP.
The four-lever taxonomy used throughout this page. A LAN-cluster paper can afford to pull only levers 2–3; a WAN deployment lives or dies by levers 1 and 4.
03

Already used: speculation inside real pipelines

Two bodies of work have actually fused speculation with pipeline execution. The first splits layers across devices and speculates to fill the pipeline; the second splits draft and verify across a network link (edge drafts, remote verifier) — which is exactly a two-stage WAN pipeline, and where the wire-protocol lessons come from. Everything here exists as running code or a published measurement; none of it ships in a mainstream engine yet (§06).

Layer-split pipelines with speculation

SystemYear · venueLeversMechanismReported gain (its own baseline)Code
SpecInfer / FlexFlow Serve'23 · ASPLOS'24amortizeToken-tree verification; target runs under TP+PP knobs (PP as deployment option, not co-designed)1.4–2.4× multi-nodeFlexFlow
PipeInfer'24 · SC'24async bubbleContinuous asynchronous speculation: a non-speculative run always in flight + speculative microbatches; early cancellation kills invalidated branches mid-pipelineup to 2.15× vs sync SD; robust to low bandwidth & low acceptancerepo (llama.cpp+MPI)
AMUSD'24 · IEEEasyncDraft and verify models run continuously on separate GPUs with rollback — a 2-stage draft/verify pipeline1.96× vs ARrepo
PipeSpec'25 · ACL-F'25asynck models of increasing size as an asynchronous hierarchical pipeline (each drafts for the next), lightweight rollback breaks the draft→verify lockstepup to 2.54× (LLaMA-2/3, multi-GPU)repo
SpecPipe / PipeDec'25 · arXivbubble amortizeDynamic speculative token tree expands layer-by-layer inside the pipeline, filling every stage slot; relaxed speculative window, two-level KV4.46–7.79× vs plain PP decode (Llama-3.1-70B, 10 GbE, 7–21 stages)"after review"
FlowSpec'25 · arXivbubbleContinuous pipelined tree SD for sparse-request edge pipelines: score-based step-wise verification, pruning, dynamic expansion1.36–1.77× (5× Jetson)repo
PPSD'25 · arXivbubble asyncEarly-exit layers (draft) and remaining layers (verify) run as overlapping pipeline stages — verify-while-draft, per-token2.01–3.81×not found
SPD'26 · arXivbubbleSpeculation module reads partially-processed features at multiple pipeline depths, timed inside the pipeline step — zero-bubble when spec layers ≤ L/n2.20–2.24× at 8 stages (drops to ~1.67× at 16)claimed, URL unverified
prima.cpp'25 · arXivamortizeHome-cluster piped-ring PP (Wi-Fi, mixed CPU/GPU) that ships with draft-model SD on top32B + SD = 26 tok/s; 5–17× lower TPOT vs llama.cpp/exorepo
Intel AI-PC pipeline shards'26 · arXivamortize wirePer-layer OpenVINO shards over plain TCP (~16 KB/token/hop) + SD with zero-cost rollback of rejected drafts via attention mask instead of KV trim1.79× 2-node Llama-3.1-8B; "usable" at 100 ms/hop simulated WANrepo
BloomBee'26 · arXivamortize wirePetals-descendant P2P substrate (DP layer placement, micro-batching, KV offloading) that ships EAGLE-2 speculation with a learned MLP pruner — candidates scored and dropped before transmission (tree −60%, 96% of acceptance kept) — plus a break-even bandwidth formula S* for when speculation pays at all1.76× vs Petals at 20 Mbps (67 vs 38 tok/s, LLaMA-30B); up to −43% latency; tested on real internet links (280–643 Mbps)repo · Apache-2.0

Draft here, verify there: speculation across a network link

SystemYear · venueLeversMechanismWAN-relevant numbersCode
DSSD'25 · ICML'25wire amortizeDevice drafts, server verifies; resampling moved to the device so the uplink carries token ids only — distributions cross the wire only on rejection<50 B/round uplink (vs ~61 KB); 1.5–2.4× at 0–50 ms RTT, 10–100 Mbps; naive distributed SD ≤1×repo
PicoSpec'26 · arXivasync wireEdge drafts block k+1 while cloud verifies block k; verification starts on partial arrival; top-K sparse distributions cut the downlink O(V)→O(K) (~1000×)up to 2.9× (Jetson↔A100 WAN); vanilla SD on the same link = 0.44× — slower than no speculationnot seen
Mixture of Attentions'25 · ICLR'25amortizeSD head designed for client–server split: small device model proposes, server completes with minimal calls; keeps generating on disconnect+9.5% over EAGLE-2; client–server latencies in paper bodynot seen
SLED'25 · SEC'25amortizeMany heterogeneous edge devices draft; one shared server batch-verifies — verification-as-a-service2.2× throughput, 2.8× device capacitynot seen
CoSine'25 · arXivasyncDisaggregated multi-drafter cluster + verification server with confidence fusion−27% latency, 1.31–1.62× vs SpecInfer (10 GbE)no repo
DSI'25 · ICLR'25async"Speculation parallelism": replicated target/drafter instances verify overlapping lookahead segments concurrently — provably ≥ both AR and sync SD for any drafter1.29–1.92× over SD (sims)repo
Split inference over WAN'26 · arXivamortize wireEmbeddings local, middle layers remote (2-stage PP, WebSocket, 8–10 KB/token); training-free Jacobi lookahead amortizes the RTT8.1–10.9 tok/s at real ~80 ms RTT; acceptance 1.2–1.3 tok/steprepo
SpecExec'24 · NeurIPS'24amortizeDeterministic mega-trees (hundreds–thousands of drafts) verified in one target pass — built for offloading, whose cost structure ≈ a WAN lap~20 accepted tokens per traversal; 4–6 tok/s for 50B+ on a consumer GPUrepo

Reported gains of SD × pipeline systems

Each paper's best case against its own baseline (named per bar) — settings differ; hover for details

SpecPipe/PipeDec7.79× vs plain PP PPSD3.81× vs AR PicoSpec2.9× edge↔cloud PipeSpec2.54× DSSD2.4× at 50 ms RTT SPD2.24× at 8 stages PipeInfer2.15× vs sync SD AMUSD1.96× vs AR DSI1.92× vs SD (sim) Intel shards1.79× 2-node FlowSpec1.77× BloomBee1.76× vs Petals
Baselines are not comparable across bars — SpecPipe's 7.79× is against unaccelerated single-request PP (the weakest baseline and the one closest to today's WAN reality), while PipeInfer's 2.15× is already measured against synchronous speculative decoding. Read each bar with its own baseline.
04

Attractive but not yet used with PP

The strongest drafters from the Atlas have never been run inside a multi-node pipeline — mostly for engine-plumbing reasons, not fundamental ones. Ranked roughly by expected payoff in a PP/WAN setting:

Unused · retrieval & suffix drafting (Prompt Lookup, SuffixDecoding, SAM-Decoding)

Client-side drafts that never touch the pipeline

Why attractive: retrieval drafters need no model access at all — no hidden states, no weights — so in a PP deployment they can run on the client, produce a draft block for free, and spend zero extra pipeline laps. On agentic/RAG traffic they out-accept EAGLE (SuffixDecoding up to 5.3×). Why unused: every published PP system drafts with a model; no one has wired an n-gram/suffix drafter into a layer-split pipeline. This is pure engineering, and the vLLM implementations are reusable. Blocker class: nobody-tried-it.

Unused · EAGLE-3 / HASS / MTP heads

The best drafters in the world, stuck on single-node plumbing

Why attractive: highest acceptance per drafted parameter (≈4–6 tokens); MTP heads ship free with DeepSeek/Qwen3-Next/GLM weights. In PP their inputs (final-layer features) live exactly where sampling already happens — the last stage — so drafting adds no extra forward lap; drafted ids ride the existing return link. Why unused: engines assume the drafter and the scheduler share one process. vLLM's fix (broadcast accepted-token counts to earlier ranks, RFC #44697) is in flight; SGLang's MTP×PP draft-cache transfer is on the roadmap. Blocker class: engine plumbing, actively being fixed.

Unused · SpecExec-style mega-trees & network-aware tree shaping (Sequoia)

Verification trees sized to the link, not the GPU

Why attractive: SpecExec showed that when a traversal is very expensive (offloading — the same cost structure as WAN), verifying a tree of hundreds of drafts yields ~20 accepted tokens per lap. Sequoia's hardware-aware tree optimizer is exactly the right formalism — its cost model just needs RTT and bandwidth terms instead of PCIe. Why unused: both target offloading/single-node; no multi-node PP system builds trees sized to link budgets. Blocker class: cost-model transplant (research-shaped, tractable).

Unused · DFlash / DSpark block-diffusion drafting

One drafter pass per block — the ideal per-lap payload generator

Why attractive: a block-diffusion drafter emits the whole K-token draft in a single forward pass, so draft latency stops competing with the pipeline clock; DSpark's confidence-scheduled variable-length verification is a natural fit for jittery WAN laps. Why unused: SGLang's DFLASH explicitly requires pp_size == 1; the draft model conditions on target context features, which in PP live on the last stage — same plumbing problem as EAGLE, one more tensor to route. Blocker class: engine constraint, declared.

Unused · verification-parallel scheduling (Saguaro, PEARL) & adaptive draft length (SpecDec++, AdaSpec)

Never let the drafter idle; let K track the network

Why attractive: Saguaro/PEARL-style pre/post-verification is the single-node version of what PipeInfer does across a cluster — drafting continues while verification is in flight, which over WAN means drafting through the entire RTT window for free. Adaptive-K methods should make K a function of pipeline depth and measured link jitter; today no published formula for K(depth, RTT) exists — SPD and SpecPipe only provide empirical scans. Blocker class: open research gap (and a cheap paper for whoever closes it).

05

The WAN playbook: what Pluralis-style PP should adopt

Over WAN the pipeline clock is the network, not the GPU: a lap through 8 stages at ~25 ms per hop costs ~200 ms before any compute. Two published numbers frame the whole design space. Naive speculation shipped over a real link makes things worse — PicoSpec measured vanilla networked SD at 0.44× — while a WAN-aware protocol on the same link reached 2.9×. The difference is entirely in the four levers.

Why acceptance length is the whole game over WAN

Illustrative model, not a measurement: effective tokens/s at a 200 ms pipeline lap (8 WAN hops), compute ≪ RTT · tok/s = L ÷ 0.2 s

L = 1 (no speculation)5 tok/s L ≈ 2 (n-gram, free-form)10 tok/s L ≈ 5 (EAGLE-3 / MTP)25 tok/s L ≈ 8 (DFlash-class block)40 tok/s L ≈ 16 (mega-tree, overlap-heavy)80 tok/s
Linear by construction — the point is what the x-axis is made of: accepted tokens per lap is the only term that divides RTT. Draft compute and tree bytes are off-lap costs; over WAN they are nearly free by comparison. Real systems lose a constant factor to draft misses and verification stalls (compare §03's measured bars).
client prompt · sampler stage 1 layers 1…k · KV₁ stage 2 … · KV₂ stage 3 … · KV₃ last stage final layers · logits ~25 ms ~25 ms ~25 ms ~25 ms accepted token ids return (bytes, not distributions — DSSD/PicoSpec wire rules) A · retrieval drafter n-gram · suffix tree no model access needed B · early-exit drafter first layers double as drafter (PPSD · SPD) C · EAGLE / MTP head features live here; drafts ride the return A drafts before the lap starts (zero extra hops) · B drafts in the first hop (block enters the pipe already formed) · C drafts at the exit with the best features, overlapped with the next lap
Where the drafter can live in a WAN pipeline, colored by Atlas family (retrieval = green, self-speculative = pink, heads = orange). The three placements compose: a client retrieval drafter handles agentic/repetitive spans, an early-exit or last-stage head covers free-form text, and whichever drafts, verification is the same single lap.

1 · Make every lap carry a block (lever 1)

Adopt speculative verification before any other optimization: it is the only technique that divides the RTT count. Size the block/tree to bandwidth, not GPU budget — a 64-node draft tree at 2 bytes/token costs nothing next to a 25 ms hop. SpecExec's mega-tree regime (~20 accepted/lap) was designed for exactly this cost structure; Sequoia's optimizer becomes network-aware by swapping PCIe terms for RTT/bandwidth in its cost model.

2 · Never ship distributions (lever 4)

Verification traffic must be token ids plus occasional sparse corrections: DSSD's device-side resampling gets the uplink under 50 bytes/round (naive: ~61 KB); PicoSpec's top-K downlink is ~1000× smaller than full logits; the Intel AI-PC paper's attention-mask rollback makes rejected drafts free (no KV trimming round-trips). Between stages, quantize activations — Petals shipped dynamic blockwise 8-bit (~2×); TAH-Quant reaches 3–4 bits on the same PP channel.

3 · Draft through the RTT window (lever 3)

While a block is in flight, the drafter should already be producing the next block against the optimistic outcome (PicoSpec's draft-ahead; PipeInfer's continuous speculation with mid-pipeline cancellation; Saguaro's verification-time drafting is the same idea one level down). Over WAN the verification window is enormous — hundreds of milliseconds of free drafting time per lap.

4 · Fill remaining bubbles with the tree (lever 2)

With a single stream, stages behind the wavefront are idle; SpecPipe/PipeDec shows the draft tree itself can expand stage-by-stage inside those slots (4.5–7.8× over plain PP). For multi-tenant swarms, FlowSpec's sparse-request variant applies.

5 · Keep PP; it is the right WAN parallelism

PP's structural advantage over TP on WAN: per-stage KV caches stay resident, and only ~d_model bytes per token cross each link (~16 KB/hop for an 8B model in fp16, less quantized) versus TP's per-layer all-reduces. Placement should be network-aware (Helix's max-flow formulation; Parallax's two-phase scheduler for volunteer pools).

The unclaimed stack

One system has entered; the composed stack is still open

Petals-class volunteer substrate + client-side retrieval drafting + link-sized verification trees + DSSD/PicoSpec wire protocol (ids up, top-K down, mask rollback) + PipeInfer-style asynchronous speculation with cancellation + 4–8-bit inter-stage activations. Every ingredient is published and most are open source. The first claim on this ground is BloomBee (Apr '26, arXiv 2604.21072): a Petals descendant that ships EAGLE-2 speculation with a learned tree pruner and beats Petals 1.76× at 20 Mbps — proof the niche is real. But it pulls two levers of four: no hedged asynchronous drafting through the RTT window, no exact ids-only wire protocol, no retrieval drafting, no cancellation machinery. Petals, Parallax, and exo themselves still ship without speculation as of Aug 2026.

06

Engine reality: SD × PP in production stacks

EngineSD × layer-PP status (Aug 2026)DetailEvidence
vLLMnot composableDocs state SD is not composable with PP as of ≤0.15.0; drafter loads only on the last PP rank; MTP+PP "crashes or silently diverges". Active RFC proposes broadcasting accepted-token counts to earlier ranks.docs · RFC #44697 · PR #16568 (closed)
SGLangpartial / in progressDFLASH explicitly requires pp_size == 1; EAGLE/MTP carry no documented PP guarantee; PP roadmap targets prefill + PD-disaggregation, with MTP draft-cache transfer pending. Flagship DeepSeek deployment scales via EP/DP/TP, not PP.docs · roadmap #11857
TensorRT-LLMdisaggregation onlyEAGLE-3 with disaggregated (prefill/decode-split) serving is supported and demonstrated via Dynamo (Llama-4 example); no explicit statement for SD with layer-PP.docs · Dynamo example
llama.cppnot integratedLocal draft-model SD works single-process; RPC distributed mode has no speculative integration — an open feature request proposes an HTTP proxy over separate draft/target servers. PipeInfer exists because upstream doesn't pipeline speculation.docs · issue #23982
FlexFlow Serve✓ (research)The one system where tree speculation and TP+PP coexist behind flags — SpecInfer's home; low maintenance activity in 2025–26.SERVE.md
The gap in one line: research prototypes report 2–8× from SD × PP, while every mainstream engine either forbids or half-supports the combination — the scheduling state (accepted-token counts, draft caches) lives on one rank and nobody has finished distributing it.
07

Master table: the SD × PP / WAN inventory

Everything surveyed, including WAN substrates without speculation and Atlas methods not yet applied to PP. Filter by primary lever:

System / methodLeverYear · venueCore ideaNumbersUses SDPP statusWAN fitOpen source
SpecInfer / FlexFlowamortize'23 · ASPLOS'24Tree verification under TP+PP deployment flags1.4–2.4× multi-nodeused (research)adaptableyes
PipeInferasync'24 · SC'24Continuous async speculation + mid-pipeline cancellation2.15× vs sync SDused (research)directyes
AMUSDasync'24 · IEEEAsync draft/verify on separate GPUs, rollback1.96× vs ARused (research)adaptableyes
PipeSpecasync'25 · ACL-F'25Hierarchical async pipeline of ever-larger modelsup to 2.54×used (research)adaptableyes
SpecPipe / PipeDecbubble'25 · arXivDraft tree expands layer-by-layer inside the pipeline4.46–7.79× vs plain PPused (research)directpromised
FlowSpecbubble'25 · arXivPipelined tree SD for sparse-request edge pipelines1.36–1.77×used (research)directyes
PPSDbubble'25 · arXivEarly-exit draft layers ∥ verify layers as pipeline stages2.01–3.81×used (paper)directnot found
SPDbubble'26 · arXivZero-bubble drafting from mid-pipeline features2.24× @ 8 stagesused (paper)directunverified
prima.cppamortize'25 · arXivHome-cluster piped-ring PP shipping with draft-model SD32B+SD = 26 tok/sused (research)LAN-directyes
Intel AI-PC shardsamortize'26 · arXivTCP layer shards + SD + attention-mask rollback1.79× 2-node; 100 ms/hop OKused (research)directyes
DSSDwire'25 · ICML'25Device resampling: token ids up, distributions only on reject<50 B/round; 2.4× @ 50 msused (2-stage)directyes
PicoSpecasync'26 · arXivDraft-ahead ∥ verification; top-K downlink; partial-arrival verify2.9×; vanilla netSD = 0.44×used (2-stage)directnot seen
Mixture of Attentionsamortize'25 · ICLR'25SD head built for client–server split deployment+9.5% over EAGLE-2used (2-stage)directnot seen
SLEDamortize'25 · SEC'25Many edge drafters, one shared batch-verifier2.2× throughputused (2-stage)adaptablenot seen
CoSineasync'25 · arXivDisaggregated multi-drafter + verifier, confidence fusion1.31–1.62× vs SpecInferused (research)adaptableno repo
DSIasync'25 · ICLR'25Speculation parallelism across replicated instances; provable1.29–1.92× vs SD (sim)used (sim)adaptableyes
Split inference over WANamortize'26 · arXiv2-stage split + Jacobi lookahead amortizing a real 80 ms RTT8.1–10.9 tok/s @ 80 msused (2-stage)directyes
SpecExecamortize'24 · NeurIPS'24Mega-trees: hundreds of drafts, ~20 accepted per expensive traversal4–6 tok/s, 50B on consumer GPUoffloading — not PP yetrecipe transfersyes
EAGLE-3 / HASS heads (Atlas §2)amortize'24–25Best acceptance/parameter; inputs live on the last PP stage~4–6 acceptednot yet — engine plumbing (vLLM RFC #44697)direct once plumbedyes
MTP heads (DeepSeek, Qwen3-Next…)amortize'24–26Draft head ships with the weights — zero training for deployers~1.8–2.5× single-nodenot yet — SGLang MTP×PP pendingdirect once plumbed✓ in weights
SuffixDecoding / n-gram (Atlas §3)amortize'23–25Client-side drafting, no model access, zero extra lapsup to 5.3× agenticnot yet — nobody tried in PPideal for WANyes
DFlash / DSpark (Atlas §2)amortize'26One drafter pass per block; adaptive verification length>6× single-nodeblocked — SGLang pp_size==1attractiveyes
Saguaro · PEARL (Atlas §1)async'25–26Draft during verification — single-node analog of PipeInfer4.4–5× single-nodenot yet applied to PPattractivepartial
BloomBeeamortize'26 · arXivPetals-descendant WAN substrate shipping EAGLE-2 SD + learned tree pruning + lossless activation compression1.76× vs Petals @ 20 Mbpsused (research)directyes
Petalssubstrate'23 · ACL/NeurIPSVolunteer WAN PP: routing, failover, 8-bit activations~2 steps/s, 70B @ ≤100 ms RTTno SDWAN PP substratedirect ancestoryes
Parallax (Gradient)substrate'25 · arXivTwo-phase scheduler: layer allocation + per-request pipelinesno SDWAN PP substratedirectyes
Helixsubstrate'25 · ASPLOS'25Placement/scheduling as max-flow over GPUs and network3.3× throughput, 24–42 nodesno SDplacement layeradaptableyes
exo · distributed-llama · Cakesubstrate'24–26Home-cluster TP/PP frameworksLAN-scaleno SDsubstratesinspirationyes
TAH-Quantwire'25 · arXivTile-wise Hadamard + entropy-adaptive 3–4-bit PP activations4.3× e2e (training PP; same channel)orthogonalchannel-leveldirectunverified

"used (research)" = running code exists that combines speculation with pipelined execution · "used (2-stage)" = draft/verify split across a network link, the minimal pipeline · "not yet" = published method with no PP deployment found during this review. WAN fit is this review's judgment, not a paper claim.

08

Takeaways

Speculative decoding matters more for WAN PP than for any other deployment. On a single GPU it buys 2×; over an 8-hop WAN lap it is the difference between 5 tok/s and 25–80 tok/s, because accepted length is the only divisor of RTT count. It should be treated as a first-class protocol feature, not an optimization.

The research exists; the engines don't have it. Ten research systems already fuse SD with pipelines (2–8× reported), but vLLM documents the combination as not composable, SGLang has it half-plumbed, and TRT-LLM only covers disaggregation. Anyone building WAN PP today must implement speculation themselves — and can, since PipeInfer, FlowSpec, DSSD, SpecExec, and the Intel shards are all open source.

The wire protocol is worth as much as the drafter. PicoSpec's 0.44× cautionary number shows naive speculation loses to no speculation over a real link; ids-up/top-K-down plus mask rollback (DSSD, PicoSpec, Intel) recovers it to 2.9×. Ship token ids, never distributions.

Best near-term stack: client retrieval drafts + last-stage head + async laps. Retrieval drafting is free and needs no model access (ideal for agentic traffic); EAGLE/MTP heads sit naturally on the last stage once accepted-token state is distributed (vLLM RFC #44697 is the template); PipeInfer-style continuous speculation hides the RTT window. The pieces compose because verification is one lap regardless of who drafted.

Two cheap papers are sitting on the table. (1) A closed-form or learned policy for draft length/tree size as a function of pipeline depth, RTT, and bandwidth — today only empirical scans exist (SPD, SpecPipe). (2) The composed WAN speculation stack: BloomBee (Apr '26) became the first WAN network to ship speculation — EAGLE-2 with learned tree pruning, 1.76× over Petals — but hedged async drafting, exact ids-only wire protocols, and retrieval drafting remain uncombined; Petals, Parallax, and exo still decode one token per lap.