vLLM has come within 6% of DeepInfer’s decode throughput across batch sizes 8 through 256, according to its published benchmark for DeepSeek-V4.1-Flash. Its prefill performance also follows DeepInfer’s published curve.
A general-purpose engine reaching that performance gives teams a path to serve the model without maintaining a separate runtime. DeepInfer, which DeepSeek built from vLLM, targets this model in offline mode. vLLM adds online scheduling, multi-model support, prefill and decode disaggregation, and rack-scale expert parallelism.
Near parity on one node, 7.9× at rack scale
The published results separate engine-level comparisons from online serving across an NVIDIA GB300 NVL72, a rack system connecting 72 GPUs through NVLink.
SemiAnalysis AgentX represents agent-style traffic with long, growing contexts. That workload exercises request scheduling, KV-cache movement, expert routing, and concurrent decoding in addition to raw kernel speed.
Shared kernels close the gap
DeepInfer began as a vLLM-based engine, while vLLM has continued integrating DeepSeek’s low-level GPU routines from MegaAttn, MegaMoE, and Mega-mHC. Both engines therefore execute many of the same optimized attention and Mixture-of-Experts operations.
vLLM’s serving layer extends those kernels across separate prefill and decode pools. Prefill processes the input prompt and builds its key-value cache; decode generates subsequent tokens from that cache. Assigning each phase to its own GPU pool allows independent tuning for compute, memory, batching, and latency.
Wide expert parallelism, or Wide-EP, distributes a Mixture-of-Experts model’s experts across many GPUs. Because each token activates only a subset of those experts, wider distribution reduces the amount of expert-weight data each rank must read during a decode step.
Memory math sets the parallelism
DeepSeek-V4.1-Flash uses only 890 bytes per token for its global KV cache because it combines cross-layer KV sharing with FP4 compression. That compact cache leaves more memory available for long contexts and batching.
MoE weight reads account for most decode time, while attention contributes relatively little. Context growth also has a limited effect on each step: increasing the context from 128K to 855K tokens, a 6.7× expansion, adds 0.6 ms, or 7%, to model decode latency.
DEP combines data-parallel attention with expert parallelism, and the number indicates the participating GPU count. A DEP2 prefill instance spans two GPUs; a DEP32 decode instance spans 32.
Three prefill changes compound
At 32K newly processed tokens, three changes increased prefill throughput by reducing repeated indexer work and memory-address translation overhead:
- Extended bounded replay through layer 20. The indexer skips computation for all except the final 128 tokens, improving throughput by 19.9%.
- Mapped shared host tables with 2 MB GPU pages. Larger pages reduce misses in the cache that translates virtual addresses, adding 2.8%.
- Used DeepSelect top-k in the prefill indexer. Faster candidate selection adds another 15.6%.
Together, the changes raise new-token prefill throughput by 35.6% to 43.9% across workloads adding 4K to 64K tokens to a cached 128K prefix. Throughput for a 64K prefill rises from 71.2K to 102.5K tokens/s/GPU.
Balanced experts expose the CPU bottleneck
vLLM’s Expert Parallel Load Balancer periodically rearranges expert placement according to observed demand. On a scale where 1.0 represents uniform work across ranks, EPLB raises balancedness from 0.35 to 0.94 for the target model and from 0.21 to 0.89 for the draft model.
Speculative decoding uses the smaller draft model to propose tokens and the target model to verify them. Better expert placement recovers about 97% of the target model’s gap to uniform routing and 93% of the draft model’s gap. A new NVLink backend rebalances a DEP32 instance in under one second without pausing token generation.
Shorter GPU steps made host-side scheduling and synchronization the next constraint. An untuned DEP32 step took 17.57 ms, compared with 13.84 ms for DEP16, even though GPU execution was 1.1 ms faster at DEP32. CPU work consumed the hardware gain.
- KV transfer: A NIXL connector raised transfer throughput from 141K to 440K tokens/s/GPU.
- Rank synchronization: A recursive-doubling CPU all-reduce replaced Gloo.
- Cache admission: Each step accepts at most four new KV-cache loads, limiting bursts of host work.
- Request admission: Processing time for an 855K-token prompt fell from 38.8 ms to 6.0 ms.
The deployment case, and its limits
Teams serving DeepSeek-V4.1-Flash can use upstream vLLM for online, rack-scale deployment while retaining performance close to DeepInfer’s model-specific offline runtime. The same build supplies scheduling, disaggregated serving, multi-model support, and Wide-EP across an NVL72 rack.
The techniques apply most directly to large MoE models whose decode time is dominated by expert-weight reads. Actual gains will depend on model architecture, routing skew, prompt distribution, concurrency, interconnect topology, and CPU capacity, so production validation should reproduce the target workload and latency objectives.