近日,DeepSeek在其备受瞩目的“开源周”活动中,迎来了第二天的重要发布——DeepEP,这是一个专为混合专家(MoE)模型训练和推理设计的开源EP通信库。
DeepEP的开源地址已经公布,感兴趣的开发者和研究人员可以访问此链接获取更多信息。
据官方介绍,DeepEP具备多项显著特征,使其成为处理MoE模型时的理想选择。首先,它采用了高效优化的全到全通信方式,确保了数据传输的高效性。其次,DeepEP支持节点内外的通信,并且兼容NVLink和RDMA技术,这为用户提供了更多的灵活性和兼容性。
DeepEP还提供了高吞吐量的内核,这些内核在训练和推理的前期填充阶段能够显著提升效率。同时,对于推理解码任务,DeepEP则提供了一套低延迟内核,这些内核采用纯RDMA技术,最大限度地减少了延迟,从而优化了推理解码速度。
DeepEP完全支持FP8数据格式的调度,这对于低精度计算的需求来说无疑是一个重要的优势。该库还提供了灵活的GPU资源管理功能,支持计算与通信的重叠执行,这进一步提高了资源利用效率和整体性能。
DeepEP的设计初衷是为了满足混合专家(MoE)和专家并行(EP)模型的特殊需求。它提供了高吞吐量和低延迟的all-to-all GPU内核,这些内核常用于MoE的派发和合并操作。为了与DeepSeek-V3论文中提出的组限制门控算法兼容,DeepEP还进行了一些针对不对称带宽转发优化的内核设计。
例如,它能够将数据从NVLink域转发到RDMA域,这些优化的内核提供了高吞吐量,非常适合用于训练和推理的预填充任务。同时,DeepEP还支持SM(流式多处理器)数量控制,这为用户提供了更多的控制和灵活性。
对于延迟敏感型的推理解码任务,DeepEP的低延迟内核无疑是一个重要的亮点。这些内核采用纯RDMA技术,最大限度地减少了延迟,从而确保了推理解码任务的高效执行。DeepEP还采用了一种基于Hook的通信与计算重叠方法,这种方法不会占用任何SM资源,进一步提高了整体性能。
当然,要使用DeepEP,还需要满足一些硬件和软件的要求。例如,需要配备Hopper GPUs(未来可能会支持更多架构或设备),以及Python 3.8及以上版本、CUDA 12.3及以上版本和PyTorch 2.1及以上版本。还需要使用NVLink或基于RDMA网络的节点间通信。