mirror of
https://github.com/deepseek-ai/DeepEP.git
synced 2026-11-05 00:47:32 +00:00
[PR #605] [MERGED] [Public release 26/04] Introducing EPv2: faster EP, and Engram/PP/CP supports #658
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
deepseek-ai/DeepEP#658
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/deepseek-ai/DeepEP/pull/605
Author: @LyricZhao
Created: 4/23/2026
Status: ✅ Merged
Merged: 4/29/2026
Merged by: @LyricZhao
Base:
main← Head:epv2-release📝 Commits (7)
4151890Merge with private repoa6c8525Fix compilation6305c46Add readme3e490fbUpdate docsbae7664Fix submodule76f1427Fix cu128 compilation018f21eenhance: add env:EP_NIC_NAME to config nic name (#610)📊 Changes
106 files changed (+14948 additions, -3932 deletions)
View changed files
➕
.editorconfig(+58 -0)📝
.gitignore(+24 -4)➕
.gitmodules(+3 -0)➕
CMakeLists.txt(+52 -0)📝
README.md(+324 -244)➕
build.sh(+12 -0)📝
csrc/CMakeLists.txt(+0 -35)➖
csrc/deep_ep.cpp(+0 -1893)➖
csrc/deep_ep.hpp(+0 -300)➕
csrc/elastic/buffer.hpp(+1307 -0)➕
csrc/elastic/utils.hpp(+28 -0)➕
csrc/indexing/main.cu(+21 -0)➕
csrc/jit/api.hpp(+20 -0)➕
csrc/jit/cache.hpp(+34 -0)➕
csrc/jit/compiler.hpp(+269 -0)➕
csrc/jit/device_runtime.hpp(+67 -0)➕
csrc/jit/handle.hpp(+155 -0)➕
csrc/jit/include_parser.hpp(+80 -0)➕
csrc/jit/kernel_runtime.hpp(+87 -0)➕
csrc/jit/launch_runtime.hpp(+74 -0)...and 80 more files
📄 Description
With the evolution of hardware, networking, and model architectures, the previous DeepEP V1 had accumulated too much legacy baggage and performance issues. Today, we are excited to introduce DeepEP V2, which includes a complete refactoring of Expert Parallelism — achieving extreme performance with several times fewer SM resources compared to V1, while supporting significantly larger scale-up and scale-out domains — as well as experimental 0 SM Engram, 0 SM Pipeline Parallelism, and 0 SM Context Parallelism all-gather.
We are also happy to announce that we have switched from the NVSHMEM backend to the more lightweight NCCL Gin backend.
New Features
Notes
Still On-going Features
Performance
Following V3's configuration, we tested with 8K tokens per batch, 7168 hidden dimensions, top 8 experts, FP8 dispatching, and BF16 combining, and obtained the following results:
Notes, the results are logical bandwidth. For example, under the
EP 8 x 2case, 90 GB/s actually contains local rank traffic.Comparing with V1, V2 achieves up to 1.3x peak performance, while saving up to 4x SM count.
We omit results for larger EP configurations for the time being, but encourage interested users to benchmark them directly. Based on our internal experience, we expect the kernel to continue saturating hardware bandwidth at scale.
Contributors
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.