vLLM turns on DeepEP v2 combine overlap by default, cutting decode ITL p50 8.8% on an EP8 DeepSeek-R1 deployment
PR #52781, merged 2026-09-15, fixes the fact that prepare_finalize/deepep_v2.py issued the ElasticBuffer combine synchronously at both call sites, so the modular-kernel shared-expert overlap window was never used and the shared-expert FFN serialized behind the cross-node all-to-all on every MoE layer during decode. finalize_async now issues the combine with async_with_compute_stream and returns a receiver closure joining via a device-side event wait, which is graph-replay safe. On DeepSeek-R1-671B FP8 at EP8 across two GB300 nodes with full cudagraphs, decode ITL p50 drops from 15.71 ms to 14.32 ms at concurrency 1 and 22.05 to 20.89 ms at concurrency 24, with greedy outputs bit-identical across four independent ABBA server starts; VLLM_DEEPEP_V2_COMBINE_OVERLAP=0 is the kill switch.
Source
↳ Follow the thread