【Day2】DeepEP - 第一个用于 MoE 模型训练和推理的开源 EP 通信库

DeepEP的关键技术

  1. 高效的all-to-all GPU通信,通过优化分布式设备间的全局数据交换策略,减少通信开销,提升多节点协作效率。

  2. 节点内和节点间均支持 NVLink 和 RDMA,支持单节点内(NVLink高速互联)与跨节点间(RDMA远程直接内存访问)的低延迟、高带宽通信。

  3. 用于训练和推理预填充的高吞吐量内核,针对训练和推理预填充阶段设计高吞吐量计算内核,最大化并行处理数据的能力。

  4. 用于推理解码的低延迟内核,为推理解码阶段优化低延迟计算内核,确保实时生成结果时的高响应速度。

  5. 原生FP8 调度支持,原生支持FP8(8位浮点)数据类型调度,降低显存占用并加速混合精度计算。

  6. 用于最大限度提升计算和通信重叠的GPU资源调度,动态分配GPU资源,使计算与通信任务重叠执行,减少空闲等待时间,提升利用率。

DeepEP是什么

DeepEP 是 DeepSeek 专为专家混合(MoE)和专家并行(EP)定制的通信库。它提供高吞吐量和低延迟的全 GPU 对全 GPU 内核,也就是所谓的 MoE 调度和组合。该库还支持低精度操作,包括 FP8。MoE是由多个专家子网络组成的大模型,通过门控网络决定输入分配给哪个专家。

DeepEP提供高吞吐量和低延迟的all-to-all GPU内核,包括MoE分发(dispatch)和合并(combine)。该库支持FP8等低精度运算,特别适用于DeepSeek 系列模型(如 DeepSeek-V2、V3 和 R1)。

MoE 示意图

很显然,MoE 会涉及将输入数据动态分配给最相关的专家以及整合选定专家的输出,生成最终结果。分发和合并的过程则需要涉及信道的数据传输。DeepEP 针对非对称域带宽转发设计和优化通信内核(例如将数据从NVLink域转发到RDMA域)并提供高吞吐量,使其适用于训练和推理预填充任务。总的来说 DeepEP 主要适用于大模型训练,特别是需要 EP 的集群训练。通过提升通信信道的使用率,提升训练效率。

CPU 将隐式地等待 GPU 接收到的计数信号

All-to-All通信

通信本身会占用一些计算能力-即 SM(Stream Multiprocessor)的能力,从而影响整体系统性能。DeepSeek V3/R1的训练框架定制了高效的跨节点All-to-All通信内核,以充分利用IB和NVLink带宽,并节约流式多处理器SM。

传统的基于NVSwitch的All-to-All通信结构

DeepSeek 采用了warp(线程束)专用化技术,将20个SM划分为10个通信信道。

  • 在调度过程中,(a)IB 发送、(b)IB 到NVLink 转发、(c) NVLink 接收由相应的warp处理。分配给每个通信任务的warp数量会根据所有SM的实际工作负载动态调整。

  • 在合并过程中,(1) NVLink 发送、(2)NVLink到IB的转发和累积、(3)IB接收和累积也由动态调整的warp处理。

  • dispatching 和combining kernel都与计算流重叠,采用定制的PTX(Parallel Thread Execution)指令以自动调整通信块大小,减少了对L2缓存的使用和对其他SM的干扰。

NVLink 是一种专门设计用于连接 NVIDIA GPU 的高速互联技术。 它允许 GPU 之间以点对点方式进行通信,绕过传统的PCIe总线,实现了更高的带宽和更低的延迟。NVLink提供高达300GB/s的带宽,是PCIe的10倍,可用于GPU间、GPU与CPU间的通信,甚至CPU互联 。

NVSwitch 是一款GPU桥接设备(芯片),可提供所需的NVLink交叉网络,以初代NVSwitch为例,每块NVSwitch提供18个NVLink端口,支持直连多块GPU,提供GPU之间的高速互联。

InfiniBand(直译为 “无限带宽” 技术,缩写为IB)是一个为大规模、易扩展机群而设计的网络通信技术协议。Infiniband是一种专为RDMA设计的网络,从硬件级别保证可靠传输。InfiniBand 最重要的一个特点就是高带宽低延迟,因此在高性能计算项目中广泛的应用。 主要用于高性能计算(HPC)、高性能集群应用服务器和高性能存储。在目前的大模型训练集群中 InfiniBand 通常用于不同计算节点之间的互联

RDMA(远程直接数据存取)就是为了解决网络传输中服务器端数据处理的延迟而产生的,无需使用CPU,就可以从一个主机或服务器的内存直接访问另一主机或服务器的内存。它释放了CPU去执行其应做的工作,比如:运行应用程序和处理大量数据。这既提高了带宽又降低了延迟、抖动和 CPU 消耗。RDMA的内核旁路机制,允许应用与网卡之间的直接数据读写,将服务器内的数据传输时延降低到1us以下。同时,RDMA的内存零拷贝机制,允许接收端直接从发送端的内存读取数据,极大的减少了CPU的负担,提升CPU的效率。

DeepEP 的性能表现

在 H800(约 160 GB/s NVLink 最大带宽)上测试普通内核,每个内核都连接到 CX7 InfiniBand 400 Gb/s RDMA 网卡(约 50 GB/s 最大带宽)。DeepSeek 采用 DeepSeek-V3/R1 预训练设置(每批 4096 个 Token、7168 个隐式 Token、前 4 组、前 8 个专家、FP8 调度和 BF16 组合)。

Pure RDMA 的低延迟内核

在 H800 上测试低延迟内核,每个内核都连接到 CX7 InfiniBand 400 Gb/s RDMA 网卡(最大带宽约为 50 GB/s)。采用典型的 DeepSeek-V3/R1 生产设置(每批 128 个 Token、7168 个隐藏 Token、前 8 名专家、FP8 调度和 BF16 组合)。