刚刚,DeepSeek在开源周重磅发布MoE模型训练与推理EP通信库DeepEP,全面支持NVLink,真是太Open了!

DeepSeek 开源周推出高效通信库 DeepEP,推动 MoE 模型训练与推理创新

上周五,DeepSeek 宣布本周为开源周(OpenSourceWeek),并计划连续发布五个软件库。昨天,他们开源了第一个代码库——FlashMLA,这是一款专为 Hopper GPU 设计的高效 MLA 解码核,仅用 24 小时就获得了近 8,000 个 Star(详情请参见《刚刚,DeepSeek 开源 FlashMLA,推理加速核心技术,Star 量飞涨中》)。今天,DeepSeek 继续开源底层架构的创新,发布了首个用于 MoE 模型训练和推理的 EP 通信库 DeepEP。

在分布式系统中,如多 GPU 训练环境,处理单元之间需要高效传递数据。对于 MoE 模型来说,这一点尤为重要,因为不同的「专家」需要频繁交换信息。此外,MoE 模型容易在「专家并行」中出现负载不均衡的问题,导致每个「专家」分到的算力不均,影响性能。此次发布的 DeepEP 主要实现了以下功能:

1. 高效优化的 All-to-All 通信:显著提升数据传输效率。
2. 支持 NVLink 和 RDMA 的节点内/跨节点通信:充分利用高性能硬件资源。
3. 高吞吐量计算核心:适用于训练及推理预填充阶段。
4. 低延迟计算核心:特别针对推理解码阶段进行优化。
5. 原生支持 FP8 数据分发:提供更高的精度和性能。
6. 灵活控制 GPU 资源:实现计算与通信的高效重叠。

通过高效通信减少数据传输瓶颈,优化计算核心提升处理速度,灵活的资源调度让计算和通信不再互相等待。MLA 和 MoE 架构改进是 DeepSeek 的两大重要创新点。昨天是对 MLA 解码内核的优化,今天则公开了 MoE 模型高效通信和并行处理的技术细节,展现了 DeepSeek 在开放技术方面的决心。

项目链接:[https://github.com/deepseek-ai/DeepEP](https://github.com/deepseek-ai/DeepEP)

截至撰写本文时,DeepEP 已获得超过 1,000 个 Star。社区对 DeepEP 的评价非常积极,认为它在 MoE 模型的优化上达到了令人印象深刻的水平。特别是其利用 NVLink 和 RDMA 等尖端硬件技术,并支持 FP8 精度,以精确方式处理大规模 MoE 模型的挑战,被视为突破性的成就。

之前,有人质疑 DeepSeek-R1 是否只是通过模型蒸馏来实现性能提升,而非真正的技术创新。还有人怀疑 DeepSeek 低报了训练所需的 GPU 数量。然而,这次开源周的证明,DeepSeek 确实通过技术创新实现了训练效率的提升和成本的降低。

DeepEP 是什么?

DeepEP 是一个专为混合专家系统(MoE)和专家并行(EP)定制的通信库。它提供了高吞吐量和低延迟的 all-to-all GPU 内核,这些内核也被称为 MoE 分发和合并。该库还支持低精度操作,包括 FP8。为了与 DeepSeek-V3 论文中提出的 group-limited gating 算法保持一致,DeepEP 提供了一套针对非对称域带宽 forwarding 进行优化的内核,例如从 NVLink 域到 RDMA 域的数据转发。这些内核适用于训练和推理预填充任务,并且支持流式多处理器(SM)数量的控制。对于对延迟敏感的推理解码,DeepEP 包含一套使用纯 RDMA 的低延迟内核,以最小化延迟。该库还引入了一种 hook-based 的通信 – 计算重叠方法,不占用任何 SM 资源。

DeepEP 性能如何?

DeepSeek 在 H800 上测试了常规内核(NVLink 最大带宽约 160 GB/s),每个 H800 连接到一个 CX7 InfiniBand 400 Gb/s RDMA 网卡(最大带宽约 50 GB/s)。他们遵循 DeepSeek-V3/R1 预训练设置(每批次 4096 个 token,7168 隐藏维度,top-4 组,top-8 专家,FP8 分发和 BF16 合并)。对于低延迟内核,DeepSeek 在相同硬件配置下进行了测试,遵循典型的 DeepSeek-V3/R1 生产设置(每批次 128 个 token,7168 隐藏维度,top-8 专家,FP8 分发和 BF16 合并)。

为了极致性能,DeepSeek 发现并使用了一个未记录在文档中的 PTX 指令:ld.global.nc.L1::no_allocate.L2::256B。这个指令会导致未定义行为,但在 Hopper 架构上已测试确保正确性,并大幅提升性能。如果在其他平台上出现问题,可以在 setup.py 中添加 DISABLE_AGGRESSIVE_PTX_INSTRS=1 来禁用此功能,或提交 issue。为了在你的集群上获得更好的性能,建议运行所有测试并使用最佳的自动调优配置。

结尾再次强调一句:真正的 OpenAI 已经诞生!

最后,你觉得第三天会发布什么呢?24 小时后答案就会揭晓。

本文来源: 机器之心【阅读原文】
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...