[GH-ISSUE #655] Zero-copy intranode for EPv2 #385

Open
opened 2026-10-26 09:59:51 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @usernamehaha2022 on GitHub (Jun 1, 2026).
Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/655

EPv1's low_latency_combine supports zero_copy (#79), but EPv2's ElasticBuffer does not — recv_x is always freshly allocated and a full-SM copy epilogue always runs:

github.com/deepseek-ai/DeepEP@b306af06af/csrc/elastic/buffer.hpp (L1013)

For intranode NVLink-only workloads, this epilogue takes 10% of total time. Would it be possible to support a zero-copy mode for EPv2's intranode path — either by returning a view into the symmetric buffer directly, or by fusing the scatter into the dispatch kernel?

Originally created by @usernamehaha2022 on GitHub (Jun 1, 2026). Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/655 EPv1's `low_latency_combine` supports `zero_copy` ([#79](https://github.com/deepseek-ai/DeepEP/pull/79)), but EPv2's `ElasticBuffer` does not — `recv_x` is always freshly allocated and a full-SM copy epilogue always runs: https://github.com/deepseek-ai/DeepEP/blob/b306af06afd412c88e51e71802951606e40b7358/csrc/elastic/buffer.hpp#L1013 For intranode NVLink-only workloads, this epilogue takes 10% of total time. Would it be possible to support a zero-copy mode for EPv2's intranode path — either by returning a view into the symmetric buffer directly, or by fusing the scatter into the dispatch kernel?
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
deepseek-ai/DeepEP#385
No description provided.