Field noteOct 31, 20265 min read1 source

Hao AI Lab releases JetSpec++ code and drafters for two-GPU lossless speculative decoding, up to 7.45x over autoregressive

In one minute

Hao AI Lab has published JetSpec++, code and checkpoints for a lossless speculative-decoding method that drafts tokens on a second GPU while a target model verifies the current block. Its reported gains—up to 7.45× over autoregressive decoding in a specific benchmark—make it a reproducible option for teams investigating single-request inference latency, provided they have compatible two-GPU hardware.

What changed: Hao AI Lab’s JetSpec++ code release adds a distinct causal tree-drafting approach and reports up to 7.45× lossless decoding speedup on two GPUs.

What happened

The Hao AI Lab JetSpec repository presents JetSpec++ as “Foresight Parallel Drafting with Self Refinements.” Its central design overlaps two jobs: while the target model verifies the current draft, a second GPU drafts the next block and refines it during the wait. The repository describes the method as lossless speculative decoding: the target model verifies a tree of proposed tokens, and the accepted path is selected using the target’s logits. The release includes code and downloadable checkpoints.

The README’s headline measurements are on a pair of GB200 GPUs at batch size 1 and temperature 0. On MATH-500, Qwen3-8B reaches 1,361.1 tokens per second with JetSpec++, compared with 902.1 for DSpark and 182.7 for autoregressive decoding; the reported speedups are 7.45× over autoregressive decoding and 1.51× over DSpark in the table. The repository’s overview states 1.54× over DSpark, so the release contains a small discrepancy between that summary and the table. On GSM8K, Qwen3-8B records 1,148.8 tokens per second, or 6.30× over autoregressive decoding. For Qwen3.8-27B, the reported results range from 342.4 tokens per second on GSM8K to 367.2 on MATH-500, with speedups of 5.68× and 6.20× respectively. Across seven benchmarks, the repository says JetSpec++ had the longest acceptance length, averaging 8.94 tokens per round at temperature 0, versus 6.89 for DSpark.

The published JetSpec++ checkpoints target Qwen3-8B and Qwen3.8-27B, and list A100, B200 and GB200 support. The setup requires Linux, two GPUs with peer access, and a CUDA compiler. The README gives installation and benchmark commands, but no price: the project is released under an MIT license. A quick-start run downloads the pinned target and checkpoint, selects a schedule for the GPU, and reports throughput. The first run compiles kernels and can take several minutes. The README cautions that the quick-start throughput reflects a short prompt on a fresh engine; it directs users to the speedup script for a steadier measurement.

The repository also contains the earlier JetSpec implementation, with a Hugging Face reference path and an optimized serving engine. That implementation supports a wider set of listed target families, including Qwen, Gemma, GPT-OSS and Step3p7-Flash. These capabilities should not be conflated with JetSpec++’s narrower published checkpoint list: the project documents both, but their support matrices differ.

What the archive adds

This is a new release on a topic already covered in Why is Speculative Decoding Fast? and What is Speculative Decoding?. Those notes explain why draft-and-verify can help memory-bound decoding; JetSpec++ adds a concrete two-GPU implementation, checkpoints and benchmark figures. It is a new fact on a known story, not a restatement.

Trend signal

JetSpec++ is consistent with the idea that inference systems are competing on completed output speed and hardware-aware execution, rather than only model-call cost. However, the supplied pattern set has no directly matching inference-optimization pattern. The archive’s speculative-decoding coverage gives context, but does not establish a broader trend claim, so no pattern link is appropriate.

Why now

The repository now provides the code, checkpoints and reproduction commands needed to test the method rather than assess it only from a paper or headline. The source does not explain why this release happened at this particular time.

Connections to other events

Earlier speculative-decoding coverage in Why is Speculative Decoding Fast? describes the underlying opportunity: use otherwise idle GPU compute during memory-bound, low-batch generation. JetSpec++ turns that general technique into a specific schedule that overlaps drafting and verification across two GPUs. The repository’s results are therefore an implementation-level addition to the same line of work, not independent evidence that the reported gains generalize beyond the listed hardware and tests.

Why it matters

For teams serving short, low-batch requests, latency can matter more than maximizing aggregate throughput. JetSpec++ offers a testable way to trade a second GPU and additional system complexity for faster token generation, while retaining the target model’s output distribution according to the method’s design. The published checkpoints and scripts reduce the work required to reproduce the experiment on supported hardware.

The main decision is operational: compare the method with your own workload, target model, prompt lengths and serving stack before allocating a second accelerator. The README’s own warning about fresh-engine quick-start measurements matters here; a short demonstration is not a steady-state service benchmark. The headline speedups are promising, but they describe a specific GB200 pair, batch size and benchmark set. They do not show that teams with different GPUs, long contexts, larger batches or other target models will see comparable gains.

Limits and uncertainty

The supplied source reports the project’s own benchmark results, not an independent evaluation. Those measurements use GB200 pairs, batch size 1 and temperature 0; they do not establish performance under production traffic, long prompts, different batch sizes or other GPU combinations. The quick-start command measures a short prompt on a fresh engine, and the repository says to use its speedup script for a steadier number. Although the method is described as lossless, the excerpt does not provide an independent audit of that property. The listed JetSpec++ checkpoints cover two target models, so the results do not establish broad model compatibility. The repository summary and its MATH-500 table also differ slightly on JetSpec++’s speedup over DSpark.

Reader takeaway

JetSpec++ is an executable, MIT-licensed experiment for speeding up decoding when a team can dedicate two peer-connected GPUs to one request. Its headline result is substantial on the stated GB200 tests, but the useful question is not whether 7.45× is universally achievable: it is whether the method improves steady-state latency for your model and workload enough to justify the extra GPU and integration effort.

Evidence / sources

  1. 1github.com/hao-ai-lab/JetSpec
All Field Notes

Next reads

Read next

Open the graph
  1. 01archiveField NotesOpen the latest editorial analysis.
  2. 02source ledgerSource LedgerInspect the public source evidence graph.
Who read this page?Machine requests, hidden until opened

Loading the privacy-safe route aggregate...

Open the JSON contract