DeepSeek-OpenSourceWeek-第二天-DeepEP
DeepSeek正在进行“开源周”活动,在第二天推出了DeepEP,这是一个面向混合专家(MoE)模型训练和推理的开源通信库。DeepSeek此前的成果已令人印象深刻,此次开源关键组件,体现了其对透明度、社区合作以及推动AI进步的决心,通过5个代码库(已发布2个)来展示这一承诺。
-
第一天成果回顾:在开源周第一天,DeepSeek发布了FlashMLA。可以参考之前的文章,方便读者进一步了解。
-
第二天成果详情 - DeepEP亮点:
-
高效全对全通信:DeepEP具备高效且经过优化的全对全通信功能,这在MoE模型的数据交互中非常关键,能让不同节点或组件间高效交换数据。
-
多场景支持:借助NVLink和RDMA技术,既支持节点内(Intranode)也支持节点间(internode)的通信,适应多种硬件部署场景。
-
高吞吐量内核:拥有用于训练和推理预填充阶段的高吞吐量内核,能够快速处理大量数据,加快模型训练和推理前的准备工作。
-
低延迟内核:针对推理解码环节,提供低延迟内核,减少模型生成结果所需的时间,提升用户体验。
-
原生FP8支持:原生支持FP8指令调度,这是一种低精度数据格式,有助于在不损失过多精度的前提下,提高计算效率并节省显存。
-
资源灵活控制:可以灵活控制GPU资源,实现计算与通信的重叠,即在GPU进行计算任务的同时处理通信任务,充分利用GPU资源,提高整体运行效率。
-
1 DeepEP: Optimized Communication Library for MoE and Expert Parallelism
DeepEP 是一款为 Mixture-of-Experts (MoE) 和 专家并行 (EP) 设计的高性能通信库。MoE 是一种在大规模深度学习模型中常用的技术,通过将模型分解为多个“专家”(Expert),每个专家处理一部分输入数据,从而实现模型的并行化和扩展性。专家并行(EP)则是 MoE 的一种扩展方式,通过在不同设备上并行处理这些专家,进一步提高模型的训练和推理效率。
目标:DeepEP 的主要目标是解决 MoE 和 EP 架构中的通信瓶颈,通过优化 GPU 和其他硬件之间的数据传输,提高模型的吞吐量(Throughput)和降低延迟(Latency)。
核心功能:高效的全互连 GPU 内核
DeepEP 的核心功能之一是其高效的 **全互连 GPU 内核**,通常称为 **MoE 分发(Dispatch)和合并(Combine)**。
-
MoE 分发(Dispatch):在 MoE 架构中,输入数据需要根据门控机制(Gating Mechanism)被分发到不同的专家。DeepEP 提供了高效的分发内核,能够快速将数据分配到对应的专家。
-
MoE 合并(Combine):在专家处理完数据后,需要将结果合并回输出。DeepEP 的合并内核能够高效地完成这一过程,确保数据的正确性和快速传输。
这些内核通过优化 GPU 的通信模式,实现了 高吞吐量(Exceptional Throughput) 和 **低延迟(Minimal Latency)**,从而显著提升了 MoE 模型的性能。
低精度计算支持
DeepEP 支持 **低精度计算**,包括 **FP8**(8位浮点数)。低精度计算的优势在于:
-
减少内存占用:低精度数据类型占用的内存更少,能够容纳更大的模型或数据。
-
加速计算:低精度计算通常比高精度计算更快,因为它们需要的计算资源更少。
-
灵活性:D