Speculative Speculative Decoding Guide: SSD AI

Autoregressive inference in Large Language Models (LLMs) is notoriously bottlenecked by memory bandwidth. Because generating each subsequent token requires loading billions of model parameters from GPU High-Bandwidth Memory (HBM) into on-chip cache, modern foundation models achieve arithmetic intensities far below modern GPU capabilities. In enterprise environments running real-time agent copilots, automated code generation, and web-scale intelligence workflows powered by AI Fetchly, token generation speed directly governs user experience and serving costs. Whether streaming structured market insights or executing multi-hop queries via real-time data fetching, inference latency must be minimized.
To break the sequential memory-bandwidth wall, Speculative Decoding (SD) emerged as a primary acceleration paradigm. By pairing a small, fast “draft model” (or multi-head draft generator like Medusa and EAGLE) with a large “target model”, standard speculative decoding generates a chunk of $K$ candidate tokens cheaply and verifies them in parallel in a single forward pass of the target model.
However, standard speculative decoding suffers from a structural hardware inefficiency: the synchronous “stop-and-wait” execution bubble. In every speculative iteration, the target model sits completely idle while the draft model generates tokens; then, the draft model sits completely idle while the target model verifies them. Because target verification is computationally intensive (taking 20ms to 50ms), this sequential alternation forces GPUs to spend half their active cycles waiting for synchronization barriers.
To dismantle this serial execution bottleneck, researchers Tanishq Kumar, Tri Dao (creator of FlashAttention), and Avner May introduced Speculative Speculative Decoding (SSD) (arXiv:2603.03251, tanishqkumar/ssd, presented at ICLR 2026).
SSD introduces an asynchronous pipelined architecture: speculating on the outcome of speculation itself. While the target model is busy verifying the current draft, the draft model proactively anticipates likely verification outcomes and begins drafting the next token segments in parallel, storing them in an in-memory Speculation Cache. When target verification finishes, the next draft is retrieved instantly with zero delay. SSD delivers up to 2.6x speedup over standard autoregressive decoding and 1.6x speedup over vanilla speculative decoding—while provably guaranteeing 100% mathematical fidelity to the target model’s output distribution.
In this comprehensive technical guide, we break down why standard speculative decoding leaves GPU compute on the table, analyze the mechanics of pipelined speculation caches, contrast SSD with tree-based speculative frameworks, build an end-to-end PyTorch implementation, and evaluate production deployment strategies.
The Problem: The Synchronous Stop-and-Wait Bottleneck in Speculative Decoding
To understand why Speculative Speculative Decoding represents a critical systems advance, we must examine how standard speculative decoding executes on modern hardware: the draft-verify alternation bubble, device underutilization, and the communication stall.
Standard Speculative Decoding (Synchronous Alternation):
Round 1: [Draft Model Generates K Tokens] ──▶ [Target Model Verifies K Tokens]
Round 2: [Draft Model Generates K Tokens] ──▶ [Target Model Verifies K Tokens]
│
├── 1. Target Hardware Inactivity Bubble:
│ └── While the Draft model is auto-regressively generating K tokens,
│ the massive Target GPU cluster sits completely idle waiting for candidate inputs!
│
├── 2. Draft Hardware Inactivity Bubble:
│ └── While the Target model is executing its forward verification pass (20ms - 50ms),
│ the Draft GPU sits completely idle waiting for the rejection/acceptance verdict!
│
├── 3. The Synchronization Dependency:
│ └── The draft model cannot start Round 2 until it knows EXACTLY which tokens
│ survived verification in Round 1 (to know the prompt prefix for Round 2).
│
└── 4. SSD Resolution (Pipelined Asynchronous Speculation):
└── Draft model OVERLAPS with Target verification!
└── Predicts likely verification outcomes -> Pre-generates candidate branches in advance.
└── When Target finishes, the correct branch is already generated in cache! The Mathematics of Standard Speculative Decoding
In standard speculative decoding (Leviathan et al., 2023; Chen et al., 2023), inference alternates between two discrete stages:
- Draft Phase: Given current prompt $\mathbf{x}$, a lightweight draft model $q$ generates a sequence of $K$ candidate tokens $\mathbf{d} = (d_1, d_2, \dots, d_K)$ autoregressively: $$d_j \sim q(\cdot \mid \mathbf{x}, d_1, \dots, d_{j-1})$$
- Verification Phase: The heavy target model $p$ processes all $K$ tokens in a single parallel forward pass, computing target distribution logits $p(d_j \mid \mathbf{x}, \mathbf{d}_{<j})$.
- Rejection Sampling: Each token $d_j$ is accepted with probability: $$\alpha_j = \min\left(1, , \frac{p(d_j \mid \mathbf{x}, \mathbf{d}{<j})}{q(d_j \mid \mathbf{x}, \mathbf{d}{<j})}\right)$$ If token $d_j$ is rejected, all subsequent tokens are discarded, a correction token is resampled from the adjusted residual distribution, and the round terminates.
This algorithm guarantees that the emitted tokens follow the exact distribution of the target model $p$.
The Inherent Inefficiency of the Serial Lockstep
While standard speculative decoding reduces the number of memory-bound forward passes of the target model, its total wall-clock latency per iteration is:
$$T_{\text{round}} = T_{\text{draft}}(K) + T_{\text{verify}}(K)$$
Where:
- $T_{\text{draft}}(K)$ is the time taken by the draft model to generate $K$ sequential tokens (typically $15\text{ms} - 35\text{ms}$).
- $T_{\text{verify}}(K)$ is the time taken by the target model to verify the $K$ tokens in parallel (typically $20\text{ms} - 50\text{ms}$).
During $T_{\text{draft}}$, the target model’s compute cores and tensor memory controllers sit idle. During $T_{\text{verify}}$, the draft model’s compute cores sit idle.
In disaggregated or multi-GPU serving environments (such as serving a 70B target model across tensor-parallel GPUs while hosting a 1B draft model on a dedicated core), this lockstep synchronization forces 50% of the aggregate computing infrastructure to remain idle at any given millisecond.
Speculative Speculative Decoding (SSD) Architecture: Overlapping Draft and Verification
Speculative Speculative Decoding resolves this hardware idling through a fundamental insight: we can pipeline speculation.
Instead of waiting for the target model to finish verification before starting the next draft round, the draft model uses the verification window to speculate on the outcome of the ongoing verification, generating candidate continuations before the true verdict arrives.
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ SPECULATIVE SPECULATIVE DECODING (SSD) │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ TIMESTEP i: │
│ Draft Model emitted candidate tokens: [ d_1, d_2, ..., d_K ] │
│ │
│ PARALLEL EXECUTION (ZERO PIPELINE BUBBLE): │
│ ┌────────────────────────────────────────┐ ┌─────────────────────────────────────┐ │
│ │ TARGET MODEL (Verifying Round i) │ │ DRAFT MODEL (Speculating Round i+1) │ │
│ │ ────────────────────────────────────── │ │ ─────────────────────────────────── │ │
│ │ Evaluates [ d_1, ..., d_K ] in parallel│ │ Runs concurrently during target run!│ │
│ │ Computes true target probabilities │ │ Evaluates likely acceptance lengths:│ │
│ │ Runtime: T_verify (e.g., 30ms) │ │ - Outcome A: All K accepted │ │
│ │ │ │ - Outcome B: K-1 accepted │ │
│ │ │ │ Pre-generates candidate drafts │ │
│ │ │ │ populating Speculation Cache C_spec │ │
│ └────────────────────────────────────────┘ └─────────────────────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ SYNCHRONIZATION & CACHE HIT: │
│ 1. Target finishes verification -> Emits verdict (e.g., "Accepted through token d_3")│
│ 2. SSD looks up Outcome(d_3) in pre-generated Speculation Cache C_spec │
│ 3. Cache Hit! Next draft candidate is retrieved in O(1) time (< 0.1ms)! │
│ 4. Target immediately begins verifying next batch without waiting for draft! │
│ │
└────────────────────────────────────────────────────────────────────────────────────────┘ The Pipelined Speculation Mechanics
In SSD, the draft model and target model operate concurrently as asynchronous pipeline stages:
- At round $i$, the draft model sends candidate sequence $\mathbf{d}^{(i)}$ to the target model.
- The target model begins executing verification $T_{\text{verify}}(\mathbf{d}^{(i)})$.
- While target verification is running, the draft model does not wait. It considers the discrete probability distribution over possible verification outcomes:
- Full Acceptance: All $K$ tokens are accepted.
- Partial Acceptance: $k < K$ tokens are accepted, followed by a resampled correction token.
- The draft model proactively generates draft branches conditioned on the most probable acceptance states and stores them in an in-memory Speculation Cache ($\mathcal{C}_{\text{spec}}$).
- When the target model completes its forward pass and emits the actual verification outcome $k^*$, the inference engine queries $\mathcal{C}_{\text{spec}}$:
- Cache Hit: If the draft model anticipated outcome $k^*$, the next candidate sequence is already fully generated. The target model immediately ingests the pre-computed draft for round $i+1$ with zero drafting delay.
- Cache Miss: If an improbable early rejection occurred that was not cached, the draft model generates the remaining tokens from that point.
The Speculation Cache ($\mathcal{C}_{\text{spec}}$)
The key systems component of SSD is the Speculation Cache. Because drafting is lightweight (often 10x to 20x cheaper than target verification), the draft model has ample compute budget during $T_{\text{verify}}$ to generate multiple speculative branches.
Let $\mathcal{O} = {0, 1, \dots, K}$ represent the set of possible accepted prefix lengths. Based on historical acceptance statistics (which typically hover between 70% and 90%), the draft model computes a probability mass function over $\mathcal{O}$:
$$P(\text{Outcome} = k) = \alpha^k (1 - \alpha)$$
Where $\alpha$ is the empirical token acceptance rate.
The draft model prioritizes caching the branches with the highest probability mass:
- The Full-Accept Branch ($k = K$): Because high-performing draft models (like EAGLE or fine-tuned LLaMA-1B drafts) exhibit high prefix acceptance, the all-accept scenario carries the highest prior probability.
- The Near-Full Branch ($k = K-1$): The second most probable outcome.
By pruning low-probability branches (e.g., immediate rejection at $k=0$), the Speculation Cache maintains a high hit rate (typically > 85%) while consuming minimal GPU memory.
Provable Output Equivalence
A critical mathematical guarantee of SSD is that it is provably lossless.
Unlike heuristic methods that prune or approximate target distributions, SSD strictly adheres to Leviathan et al.’s modified rejection sampling:
- The target model’s acceptance criterion is never relaxed or modified.
- The speculation cache merely pre-computes what the draft would have generated anyway had it known the outcome in advance.
- The output token distribution is mathematically identical to running standard target autoregressive decoding.
Architectural Comparison: SSD vs. Competing Speculative Paradigms
To contextualize SSD’s advance, we contrast it against Standard Speculative Decoding (SD), Medusa (Multi-Head Drafting), EAGLE-2 (Feature Extrapolation), and SpecInfer (Tree Attention).
| Metric / Feature | Standard SD (Leviathan) | Medusa (Multi-Head) | EAGLE-2 (Dynamic Trees) | SpecInfer (Tree Drafts) | Speculative Speculative Decoding (SSD) |
|---|---|---|---|---|---|
| Pipeline Concurrency | Strictly Serial (Stop-and-Wait) | Strictly Serial | Strictly Serial | Strictly Serial | Fully Pipelined (Async Overlap) |
| Draft Latency Overhead | Full ($T_{\text{draft}}$ exposed) | Full | Full | Full | Hidden (0ms exposed on cache hit) |
| Target GPU Idle Time | 40% – 50% Idle | 30% – 40% Idle | 30% – 40% Idle | 35% – 45% Idle | Near-Zero Idle Time (< 5%) |
| Mathematical Fidelity | 100% Lossless | Lossy / Lossless | Lossless | Lossless | 100% Lossless (Guaranteed) |
| Specialized Training? | None (Draft model pair) | Requires head training | Requires head training | None | None (Works with any draft/target) |
| Speedup over Dense | 1.8x – 2.1x | 2.1x – 2.3x | 2.2x – 2.5x | 2.0x – 2.2x | Up to 2.6x – 2.8x (Highest) |
| Speedup over Standard SD | Baseline (1.0x) | 1.15x | 1.25x | 1.10x | 1.4x – 1.6x faster than SD |
Why SSD Outperforms Standard Speculative Decoding
Standard speculative decoding can never exceed an theoretical speedup bound governed by Amdahl’s Law: even if target verification were instantaneous, total inference time would still be bounded by the draft model’s autoregressive generation time. SSD breaks this ceiling by running drafting and verification concurrently, effectively eliminating $T_{\text{draft}}$ from the critical execution path.
Orthogonality with EAGLE and Medusa
SSD is not a competitor to draft architectures like Medusa or EAGLE; it is an orthogonal execution runtime. An inference engine can deploy an EAGLE-2 draft head inside an SSD pipeline. While the target model verifies the candidate tree produced by EAGLE, the EAGLE head speculates on the next candidate tree using the speculation cache, combining EAGLE’s high acceptance rate with SSD’s zero-bubble execution.
End-to-End PyTorch Implementation: Building an Asynchronous SSD Engine
Below is a complete, self-contained PyTorch implementation demonstrating the core mechanics of Speculative Speculative Decoding: Pipelined Execution, Speculation Cache Management, Rejection Sampling, and Asynchronous Handoff.
"""
Speculative Speculative Decoding (SSD) Implementation
Reference: "Speculative Speculative Decoding" (arXiv:2603.03251, ICLR 2026)
Authors: Tanishq Kumar, Tri Dao, Avner May
"""
import torch
import torch.nn as nn
import torch.nn.functional as F
from typing import List, Dict, Tuple, Optional
class SpeculationCache:
"""
Maintains pre-computed draft candidate branches conditioned on
different target verification outcomes.
"""
def __init__(self):
# Maps outcome key (e.g., accepted prefix length) -> candidate draft tokens
self.cache: Dict[int, torch.Tensor] = {}
def store_speculation(self, outcome_condition: int, draft_tokens: torch.Tensor):
self.cache[outcome_condition] = draft_tokens
def lookup(self, verified_outcome: int) -> Optional[torch.Tensor]:
return self.cache.get(verified_outcome, None)
def clear(self):
self.cache.clear()
class SSDInferenceEngine:
"""
Asynchronous Pipelined Speculative Speculative Decoding Engine.
"""
def __init__(
self,
target_model: nn.Module,
draft_model: nn.Module,
draft_len: int = 4,
device: str = "cuda" if torch.cuda.is_available() else "cpu"
):
self.target_model = target_model.to(device)
self.draft_model = draft_model.to(device)
self.draft_len = draft_len
self.device = device
self.spec_cache = SpeculationCache()
@torch.no_grad()
def autoregressive_draft(self, prefix: torch.Tensor, steps: int) -> torch.Tensor:
"""Standard draft generation helper."""
current = prefix.clone()
drafted = []
for _ in range(steps):
logits = self.draft_model(current)[:, -1, :]
next_token = torch.argmax(logits, dim=-1, keepdim=True)
drafted.append(next_token)
current = torch.cat([current, next_token], dim=-1)
return torch.cat(drafted, dim=-1)
@torch.no_grad()
def verify_tokens(
self,
prefix: torch.Tensor,
draft_tokens: torch.Tensor
) -> Tuple[int, torch.Tensor]:
"""
Target model parallel verification pass.
Returns:
accepted_count: Number of candidate tokens accepted
bonus_token: Next token sampled from target distribution
"""
full_seq = torch.cat([prefix, draft_tokens], dim=-1)
target_logits = self.target_model(full_seq)
accepted_count = 0
k = draft_tokens.shape[-1]
prefix_len = prefix.shape[-1]
for j in range(k):
# Target prediction for position prefix_len + j
target_pred = torch.argmax(target_logits[:, prefix_len + j - 1, :], dim=-1, keepdim=True)
draft_token = draft_tokens[:, j:j+1]
if target_pred.item() == draft_token.item():
accepted_count += 1
else:
# Rejection encountered: return correction token
return accepted_count, target_pred
# All K accepted: emit bonus token from final target position
bonus_token = torch.argmax(target_logits[:, -1, :], dim=-1, keepdim=True)
return accepted_count, bonus_token
def execute_ssd_generation(
self,
prompt: torch.Tensor,
max_tokens: int = 32
) -> torch.Tensor:
"""
Executes pipelined generation using Speculative Speculative Decoding.
"""
generated = prompt.clone()
total_tokens = 0
# Initial Round: Draft model generates first batch
current_draft = self.autoregressive_draft(generated, steps=self.draft_len)
print(f"Beginning SSD Inference: Target Prompt Length = {prompt.shape[-1]}")
while total_tokens < max_tokens:
self.spec_cache.clear()
# --- PARALLEL OVERLAP EMULATION ---
# While Target verifies current_draft, Draft proactively speculates outcome
# The most probable outcome is full acceptance (k = draft_len)
hypothetical_full_accepted = torch.cat([generated, current_draft], dim=-1)
speculative_continuation = self.autoregressive_draft(hypothetical_full_accepted, steps=self.draft_len)
self.spec_cache.store_speculation(self.draft_len, speculative_continuation)
# Target Model executes parallel verification
accepted_k, next_token = self.verify_tokens(generated, current_draft)
# Append accepted tokens + correction/bonus token
if accepted_k > 0:
generated = torch.cat([generated, current_draft[:, :accepted_k]], dim=-1)
generated = torch.cat([generated, next_token], dim=-1)
newly_committed = accepted_k + 1
total_tokens += newly_committed
print(f"[SSD Round] Accepted: {accepted_k}/{self.draft_len} tokens | Emitted: {newly_committed} tokens")
# --- SPECULATION CACHE HANDOFF ---
cached_draft = self.spec_cache.lookup(accepted_k)
if cached_draft is not None:
print(" ▶ [CACHE HIT] Handoff next draft instantly from Speculation Cache (0ms pause)!")
current_draft = cached_draft
else:
print(" ▷ [CACHE MISS] Regenerating draft from rejection point.")
current_draft = self.autoregressive_draft(generated, steps=self.draft_len)
return generated
# --- Mock Models for Verification ---
class MockLM(nn.Module):
def __init__(self, vocab_size: int = 1000, hidden_dim: int = 64):
super().__init__()
self.embed = nn.Embedding(vocab_size, hidden_dim)
self.fc = nn.Linear(hidden_dim, vocab_size)
def forward(self, x: torch.Tensor) -> torch.Tensor:
h = self.embed(x)
return self.fc(h)
if __name__ == "__main__":
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Testing Speculative Speculative Decoding Engine on {device}...")
target = MockLM(vocab_size=1000, hidden_dim=128)
draft = MockLM(vocab_size=1000, hidden_dim=32)
engine = SSDInferenceEngine(target_model=target, draft_model=draft, draft_len=4, device=device)
dummy_prompt = torch.randint(0, 1000, (1, 8), device=device)
result = engine.execute_ssd_generation(dummy_prompt, max_tokens=16)
print(f"Generation complete! Final sequence length: {result.shape[-1]}")
print("Speculative Speculative Decoding execution verified successfully!") Empirical Benchmarks: Speedup, Hardware Utilization, and Accuracy
The authors evaluated SSD across extensive benchmark suites—including MT-Bench, GSM8K, HumanEval, and AlpacaEval—using foundation model pairs such as LLaMA-3-70B / LLaMA-3-8B and Mistral-Large / Mistral-7B on NVIDIA A100 and H100 GPU clusters.
Performance Benchmark Comparison (LLaMA-3-70B Target with LLaMA-3-8B Draft, NVIDIA H100):
┌───────────────────────────┬──────────────────┬─────────────────┬────────────────────┬──────────────┐
│ Inference Paradigm │ Latency (ms/tok) │ Speedup vs Base │ Hardware Idle Time │ Distribution │
├───────────────────────────┼──────────────────┼─────────────────┼────────────────────┼──────────────┤
│ Autoregressive Decoding │ 28.4 ms │ 1.0x (Baseline) │ 0% (Memory bound) │ Target Exact │
│ Vanilla Speculative Dec. │ 15.2 ms │ 1.86x │ 44.2% (Stop-wait) │ Exact Match │
│ Medusa-2 │ 13.1 ms │ 2.16x │ 36.8% │ Exact Match │
│ EAGLE-2 │ 12.2 ms │ 2.32x │ 32.1% │ Exact Match │
│ SSD (Ours) │ 10.9 ms │ 2.61x (+40%) │ 4.8% (Near-Zero!) │ Exact Match │
│ SSD + EAGLE-2 Combined │ 9.8 ms │ 2.90x │ 3.2% │ Exact Match │
└───────────────────────────┴──────────────────┴─────────────────┴────────────────────┴──────────────┘
Key Findings: Speedup over Vanilla SD: +40% | GPU Idle Time cut from 44% to <5% | Lossless Fidelity: 100% 1.6x Acceleration Over Standard Speculative Decoding
Across diverse code and prose generation benchmarks:
- Vanilla Speculative Decoding delivers a 1.86x speedup over dense autoregressive decoding.
- SSD pushes this to 2.61x speedup, delivering an additional 40% throughput increase over standard speculative decoding.
- When paired with high-acceptance draft heads (such as EAGLE-2), SSD achieves near-triple throughput (2.90x speedup).
Elimination of the Hardware Idle Bubble
Profiling GPU execution traces revealed the root cause of SSD’s performance gains:
- In vanilla speculative decoding, the target GPU experiences an idle bubble of 44.2% waiting for the draft model.
- In SSD, the target GPU idle time drops to less than 4.8%. The target GPU is fed candidate token blocks continuously, running at sustained maximum throughput.
High Speculation Cache Hit Rates
Across real-world conversational prompts in MT-Bench:
- The Speculation Cache achieved an average hit rate of 86.4% caching only the top 2 most probable outcomes ($k = K$ and $k = K-1$).
- Because the draft model is lightweight, generating the speculative branch consumed less than 15% of the draft GPU’s available FLOPs during the target verification window.
Enterprise Strategy: Deploying SSD with aiFetchly Pipelines
In high-consequence enterprise environments, autonomous agents must stream real-time insights, extract complex tabular data, and orchestrate web workflows with instant interactive responsiveness. These systems ingest heterogeneous feeds through enterprise web scraping and unified API integrations.
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ ENTERPRISE HIGH-THROUGHPUT PIPELINE: AIFETCHLY + SSD SERVING │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ 1. Automated Real-Time Ingestion (<InternalLink feature="data-fetching" text="aiFetchly Data Fetching" />) │
│ └── Ingest streaming market feeds, real-time news, customer support transcripts │
│ │
│ 2. Asynchronous Pipelined Serving (SSD Runtime) │
│ ├── Target Node (70B Model): Continuous verification of token candidate streams │
│ └── Draft Node (8B Model): Proactive generation of speculative cache branches │
│ │
│ 3. Zero-Bubble Interactive Streaming │
│ └── Emits tokens at 90+ tokens/sec to end-user interfaces (sub-12ms per token) │
│ └── 100% mathematically identical to running raw 70B target model │
│ │
│ 4. Commercial Economics & Production Scaling (<InternalLink feature="pricing" text="aiFetchly Pricing" />) │
│ └── Increases serving cluster token throughput by 2.6x on identical GPU hardware │
│ │
└────────────────────────────────────────────────────────────────────────────────────────┘ When building automated workflows that serve thousands of concurrent corporate users, traditional serving engines frequently suffer from long queuing delays and sluggish per-token generation speeds. By pairing AI Fetchly‘s structured data feeds with SSD:
- Interactive Sub-Second User Experience: Stream answers to end-user analysts at over 90 tokens per second, eliminating sluggish conversational pauses.
- 2.6x Higher Serving Concurrency: Squeeze more than double the token throughput out of your existing A100/H100 infrastructure without purchasing additional GPUs.
- Scalable Enterprise Economics: To design a custom multimodal ingestion and generation architecture tailored to your organization’s volume, review our enterprise pricing models and developer guides in our developer documentation.
Summary & Key Takeaways
Speculative Speculative Decoding (SSD) solves a major structural inefficiency in modern LLM serving:
- Pipelined Asynchronous Speculation: Overlaps target verification with draft generation, eliminating the stop-and-wait synchronization bubble that plagues standard speculative decoding.
- Pre-emptive Speculation Cache: Proactively generates candidate continuations for likely verification outcomes, delivering instant $O(1)$ draft handoff on cache hits (>85% hit rate).
- Provably Lossless Acceleration: Adheres strictly to rejection sampling theory, guaranteeing 100% mathematical output fidelity to the target foundation model.
- Compounding Hardware Gains: Slashes GPU idle bubbles from 44% down to under 5%, delivering up to 2.6x speedup over autoregressive decoding and 1.6x over vanilla speculative decoding.
By speculating on speculation itself, SSD unlocks the true hardware potential of modern GPU clusters, establishing a new gold standard for high-throughput, low-latency enterprise intelligence.