DeepSeek 本周发布开源项目 DeepEP,专为混合专家模型(MoE)和专家并行(EP)打造高效通信库。DeepEP 提供了优化的全对全 GPU 核心、低延迟 RDMA 操作和不占用计算资源的通信-计算重叠方法,大幅提升 MoE 模型在训练和推理阶段的性能。该库支持 Hopper GPU 架构,并提供了网络配置建议和快速上手指南。
DeepEP 是 DeepSeek 开源周的第二日发布,为混合专家模型提供高效的通信解决方案,有助于提升大规模分布式 MoE 模型的性能。
DeepEP 提供了优化的全对全 GPU 核心、低延迟 RDMA 操作、基于钩子的通信-计算重叠方法,支持 Hopper GPU 架构,并在 InfiniBand 网络环境中进行了测试。
DeepEP 在各种场景下展现出卓越的性能,如内节点通信性能达到 NVLink 带宽的 153-158 GB/s,低延迟核心测试中分发操作延迟为 163-194 微秒,合并操作延迟为 318-369 微秒。
DeepEP 提供了清晰的 Python API,使开发者能轻松地将其集成到现有 MoE 模型中。使用 DeepEP 需要特定的硬件和软件环境,包括 Hopper GPU、Python、CUDA、PyTorch 以及 NVSHMEM。安装步骤包括构建和创建符号链接、运行测试案例等。
DeepEP 提供了网络配置建议,包括通过 InfiniBand 虚拟通道实现流量隔离、自适应路由配置等,以在大规模集群中发挥 DeepEP 的最佳性能。
DeepSeek 本周正连续 5 天发布开源项目,今天是第 2 天,带来了
专为混合专家模型(MoE)和专家并行(EP)打造的高效通信库 — DeepEP。
就在半小时前,官方对此进行了发布,以下是由赛博禅心带来的详解。
首先,我得说明:本次发布较为硬核,我尽量写得清晰,但最好配合 AI 进行阅读
话题回来,DeepEP 这东西专门用于 MoE 的分发与合并操作,同时支持包括 FP8 在内的低精度运算。
同时的,DeepEP 针对 DeepSeek-V3 论文中提出的组限制门控算法进行了特别优化,为非对称域带宽转发(如从 NVLink 域到 RDMA 域)提供了一系列高性能核心。这些核心不仅具有高吞吐量,适合训练和推理预填充任务,还支持流多处理器(SM)数量控制。
对于延迟敏感的推理解码场景,DeepEP 包含一组纯 RDMA 低延迟核心,将延迟降至最低。库还引入了一种基于钩子的通信-计算重叠方法,不占用任何 SM 资源,进一步提升效率。
01
性能表现
DeepEP 在各种场景下展现出色的性能
。
在具有 NVLink 和 RDMA 转发功能的标准核心测试中,使用 H800 GPU(NVLink 最大带宽约 160 GB/s),每个 GPU 连接到 CX7 InfiniBand 400 Gb/s RDMA 网卡(最大带宽约 50 GB/s),按 DeepSeek-V3/R1 预训练设置(每批 4096 个 token,7168 隐藏维度,top-4 组,top-8 专家,FP8 分发和 BF16 合并)进行测试。
内节点通信性能达到 153-158 GB/s 的 NVLink 带宽,而跨节点通信可达 43-47 GB/s 的 RDMA 带宽。
在低延迟核心测试中,使用纯 RDMA,按典型的 DeepSeek-V3/R1 生产设置(每批 128 个 token,7168 隐藏维度,top-8 专家,FP8 分发和 BF16 合并),分发操作延迟仅为 163-194 微秒,合并操作延迟为 318-369 微秒,同时保持 39-46 GB/s 的 RDMA 带宽。
02
什么是混合专家模型(MoE)?
混合专家模型是一种神经网络架构,将多个"专家"网络组合在一起,由"门控"网络决定将输入数据路由到哪些专家。 这种架构允许模型规模大幅增长,同时保持计算效率,因为每次处理只激活部分专家而非全部网络。
MoE 概念最早由 Jacobs、Jordan 和 Hinton 在 1991 年提出,但直到近年才在大型语言模型中得到广泛应用。谷歌的 Switch Transformers、微软的 Z-Code 以及 DeepSeek 的 DeepSeek-V3 都采用了 MoE 架构,通过专家稀疏激活实现了更大规模的模型训练和部署。
03
专家并行(EP)技术解析
专家并行是分布式训练的一种方式,将 MoE 中的不同专家分配到不同的计算设备上。 与数据并行、模型并行等其他分布式训练策略不同,专家并行利用 MoE 的稀疏激活特性,使模型规模能够随设备数量线性扩展,而不会相应地增加计算成本。
专家并行的核心挑战在于专家之间的通信效率,这正是 DeepEP 重点解决的问题。通过优化的通信方案,DeepEP 显著降低了专家之间数据交换的开销。
全对全 GPU 核心与 MoE 操作
在 MoE 架构中,两个关键操作是分发(dispatch)和合并(combine):
• 分发:根据门控网络的决策,将输入 token 路由到相应的专家
• 合并:收集各专家处理后的结果,并根据权重进行合并
这两个操作需要设备间的全对全(all-to-all)通信模式,即每个设备需要向其他所有设备发送和接收数据。DeepEP 提供的高效核心大幅优化了这一过程,减少了通信瓶颈。
NVLink 与 RDMA:两种通信域
DeepEP 优化了两种不同通信域之间的数据传输:
• NVLink 域:NVIDIA GPU 之间的高速直连通道,带宽可达约 160 GB/s,适合服务器内部 GPU 间通信
• RDMA 域:远程直接内存访问技术,允许计算机不经过操作系统直接访问远程内存,带宽约 50 GB/s,适合服务器间通信
理解并优化这两种域之间的数据传输对于大规模分布式 MoE 模型至关重要。DeepEP 专门为非对称域带宽转发场景提供了优化核心。
低精度运算与 FP8 格式
为提高性能和减少内存需求,DeepEP 支持低精度数值格式,特别是 FP8(8 位浮点数)。 与传统的 FP32(32 位)或 FP16(16 位)相比,FP8 精度虽然较低,但在许多深度学习任务中表现足够好,同时能显著提高计算效率和减少内存带宽需求。
组限制门控算法
DeepSeek-V3 论文中提出的组限制门控算法是一种改进的 MoE 路由策略。传统 MoE 可能导致负载不均衡,某些专家过度使用而其他闲置。
组限制门控通过将专家分组并限制每组内可选择的专家数量,更好地平衡了计算负载,提高了硬件利用率和训练效率。
Hopper GPU 架构
NVIDIA 的 Hopper GPU 架构(如 H100、H800)是专为 AI 和高性能计算设计的计算平台。
Hopper 引入了多项创新,包括 Transformer 引擎、更高的计算密度和增强的多 GPU 互连能力。DeepEP 专门针对 Hopper 架构进行了优化,以发挥其全部潜力。
流多处理器(SM)控制
流多处理器是 GPU 的基本计算单元。DeepEP 提供 SM 数量控制功能,允许开发者精确控制核心使用的计算资源,为不同工作负载找到最佳平衡点。
值得注意的是,DeepEP 的基于钩子的通信-计算重叠方法不占用任何 SM 资源,实现了通信和计算的真正并行。
04
快速上手 DeepEP
使用 DeepEP 需要 Hopper GPU、Python 3.8 以上、CUDA 12.3 以上、PyTorch 2.1 以上,以及用于内节点通信的 NVLink 和跨节点通信的 RDMA 网络。库依赖于一个修改版的 NVSHMEM,安装前需先配置此依赖。
DeepEP 提供了清晰的 Python API,使开发者能轻松地将其集成到现有 MoE 模型中。对于推理场景,DeepEP 的低延迟模式特别有价值,提供不占用 SM 资源的通信-计算重叠功能。
Development
# Build and make symbolic links for SO files NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py build# You may modify the specific SO names according to your own platform ln -s build/lib.linux-x86_64-cpython-38/deep_ep_cpp.cpython-38-x86_64-linux-gnu.so# Run test cases # NOTES: you may modify the `init_dist` function in `tests/utils.py` # according to your own cluster settings, and launch into multiple nodes python tests/test_intranode.py python tests/test_internode.py python tests/test_low_latency.py
Installation
NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py install
更多细节,可在官方 repo 里找
网络配置
对于生产环境,DeepEP 提供了详细的网络配置建议:
• 通过 InfiniBand 虚拟通道(VL)实现流量隔离,将不同类型的工作负载分配到不同虚拟通道
• 自适应路由配置(低延迟核心支持,标准核心暂不支持)
这些配置建议对于在大规模集群中发挥 DeepEP 的最佳性能至关重要。
05
回顾
DeepEP 作为 DeepSeek 开源周的第二日发布,为混合专家模型提供了高效的通信解决方案。通过优化的全对全 GPU 核心、低延迟 RDMA 操作和创新的不占用计算资源的通信-计算重叠方法,DeepEP 大幅提升了 MoE 模型在训练和推理阶段的性能。
DeepEP 当前完全支持 Hopper GPU 架构,主要在 InfiniBand 网络环境中测试,但理论上也兼容 RoCE(RDMA over Converged Ethernet)。