一、什么是 DeepEP?
DeepEP 是 DeepSeek 推出的开源通信库,专为混合专家模型(MoE)的训练和推理设计。它提供了高吞吐量和低延迟的全对全 GPU 内核,支持节点内 NVLink 和节点间 RDMA 通信。DeepEP 针对 DeepSeek-V3 论文中的组限制门控算法进行了优化,支持 FP8 数据格式调度,并引入了基于 Hook 的通信-计算重叠方法,显著提升计算效率。
二、DeepEP 的主要功能
-
高效通信内核 DeepEP 提供高吞吐量和低延迟的全对全 GPU 内核,适用于 MoE 的分发(dispatch)和合并(combine)操作,优化了节点内和节点间的通信效率。
-
低精度计算支持 支持 FP8 和 BF16 等低精度数据格式,显著提升计算效率并降低内存需求,适用于大规模模型训练。
-
优化的通信机制 针对 DeepSeek-V3 论文中的组限制门控算法,DeepEP 提供了优化的内核,支持从 NVLink 到 RDMA 的非对称带宽转发,适用于训练和推理预填充任务。
-
低延迟推理解码 提供纯 RDMA 的低延迟内核,特别适合对延迟敏感的推理解码场景,延迟低至 163 微秒。
-
通信与计算重叠 引入基于 Hook 的通信-计算重叠方法,不占用 GPU 的流多处理器(SM)资源,最大化计算效率。
-
灵活的资源管理 支持灵活的 GPU 资源管理,允许用户控制 SM 的使用数量,适应不同的工作负载。
-
网络配置优化 DeepEP 在 InfiniBand 网络上进行了全面测试,支持通过虚拟通道(VL)实现流量隔离,防止不同类型流量之间的干扰。
三、DeepEP 的性能表现
-
高吞吐量内核
-
内节点通信:使用 NVLink 的内节点通信中,分发和合并操作的瓶颈带宽分别达到 153 GB/s 和 158 GB/s。
-
跨节点通信:使用 RDMA 的跨节点通信中,分发和合并操作的瓶颈带宽分别达到 43-47 GB/s。
-
-
低延迟内核
-
在处理 8 个专家时,分发操作的延迟为 163 微秒,合并操作的延迟为 318 微秒,RDMA 带宽为 46 GB/s。
-
随着专家数量增加,延迟略有上升,但在 256 个专家时,分发和合并操作的延迟分别为 194 微秒和 360 微秒。
-
-
系统兼容性
-
主要与 InfiniBand 网络兼容,也支持在收敛以太网(RoCE)上运行。
-
需要 Hopper 架构 GPU(如 H100、H800)、Python 3.8 及以上版本、CUDA 12.3 及以上版本以及 PyTorch 2.1 及以上版本。
-
四、DeepEP 的系统要求
-
硬件要求
-
支持 Hopper 架构的 GPU(如 H100、H800),未来可能会支持更多架构。
-
需要支持 GPUDirect RDMA 的设备,具体要求可参考 NVSHMEM 的硬件规格。
-
节点内通信需要 NVLink,节点间通信需要 RDMA 网络。
-
-
软件要求
-
Python 3.8 及以上版本。
-
CUDA 12.3 及以上版本。
-
PyTorch 2.1 及以上版本。
-
需要安装修改版的 NVSHMEM,具体安装指南可参考相关文档。
-
推荐安装 GDRCopy(v2.4 及以上版本),用于低延迟 GPU 内存拷贝。
-
-
网络要求
-
主要测试环境为 InfiniBand 网络,兼容 RDMA over Converged Ethernet (RoCE)。
-
支持通过虚拟通道(VL)进行流量隔离,以防止不同工作负载之间的干扰。
-
-
其他要求
-
在容器化环境中,需要确保主机加载了必要的内核模块(如
gdrdrv
),正确安装了相关 DEB 包。 -
安装完成后,需要设置环境变量(如
NVSHMEM_DIR
)以供 DeepEP 使用。
-
五、DeepEP 的应用场景
-
大规模模型训练 DeepEP 提供高效的并行通信支持,适用于混合专家模型(MoE)的训练,显著提升训练效率。
-
推理任务 适合对延迟敏感的推理解码场景,能显著降低延迟,提高推理吞吐量。
-
高性能计算 支持多种硬件平台,包括 Hopper GPU 架构,优化了 NVLink 和 RDMA 网络的通信性能。
-
智能客服 通过优化推理过程,DeepSeek 的智能客服系统能快速响应用户问题,提升服务效率。
-
金融领域 用于风险评估、自动化报告生成等,通过分析企业财报和舆情数据,预测违约概率。
六、如何获取 DeepEP?
DeepEP 的 Github 仓库地址为:https://github.com/deepseek-ai/DeepEP。开发者可以在此找到详细的文档和安装指南。