DeepSeek开源高效MoE模型训推通信库DeepEP,支持英伟达Hopper GPU

DeepSeek开源DeepEP通信库,优化MoE模型训推,支持英伟达Hopper GPU,提升效率降低延迟。

原文标题:DeepSeek开源周第二弹:第一个用于MoE模型训推的EP通信库,暂只支持英伟达卡

原文作者:AI前线

冷月清谈:

DeepSeek 推出了一个名为 DeepEP 的通信库,专门用于优化混合专家模型 (MoE) 和专家并行 (EP) 的训练和推理。DeepEP 提升了 MoE 模型在GPU 上的通信效率,降低了延迟。它支持高吞吐量、低延迟的 GPU 通信,以及低精度计算(如 FP8)。针对 DeepSeek-V3 论文中的算法进行优化,DeepEP 提升了跨硬件域(如 NVLink 到 RDMA)的数据传输效率,并能控制 GPU 资源的使用。

怜星夜思:

1、DeepEP 目前只支持 Hopper GPU 和 RDMA 网络,这是否限制了它的应用范围?未来是否会支持例如 AMD 的 GPU 或其他网络互联技术?
2、DeepEP 如何在低延迟推理方面进行优化?除了纯 RDMA 通信和通信计算重叠,还有哪些关键技术?
3、相比其他 MoE 通信库,DeepEP 的优势和劣势分别是什么?在实际应用中,DeepEP 的性能表现如何?

原文内容

左右滑动查看更多图片

直接看,DeepEP 是一个专为混合专家模型(Mixture-of-Experts, MoE)和专家并行(Expert Parallelism, EP)设计的通信库。它的特点是:
 
[转圈]高效通信:提供了高吞吐量、低延迟的GPU通信功能(比如MoE中的分发和组合操作),还支持低精度计算(比如FP8)。

[转圈]优化带宽:针对DeepSeek-V3论文中的算法,优化了数据在不同硬件域(比如NVLink到RDMA)之间的传输,适合训练和推理任务,还能控制GPU资源(SM)的使用。

[转圈]低延迟推理:对推理任务特别优化,使用纯RDMA通信来减少延迟,还支持通信和计算重叠的技术,不占用额外GPU资源。
 
具体来讲,为了与DeepSeek-V3论文中提出的组限门控算法(group-limited gating algorithm)保持一致,DeepEP 提供了一组针对非对称域带宽转发优化的内核,例如从NVLink域转发数据到RDMA域。
 
DeepSeek在 H800 这种硬件设备上(NVLink 数据传输通道最大传输速度约每秒 160GB)测试那些常规的内核程序。每一个 H800 设备都连接了一张 CX7 InfiniBand 型号的 400 Gb/s 的 RDMA 网卡(每卡最大传输速度每秒约 50GB)。
 
再按照 DeepSeek-V3/R1 这个预训练的方案来操作(每次处理数据批次里有 4096 个数据单元,隐藏层有 7168 个节点,分组是取前 4 组,专家模块选前 8 个,用 FP8 格式来分配数据,用 BF16 格式来整合数据 )。
 
在 H800 上对低延迟内核进行测试时,每台 H800 都连接着一块 CX7 InfiniBand 400 Gb/s 的 RDMA 网卡(最大带宽约为 50 GB/s)。遵循 DeepSeek - V3/R1 的典型生产环境设置(每批次 128 个词元、7168 个隐藏单元、前 8 个专家、FP8 调度和 BF16 合并)。
 
目前,DeepEP需要的软硬件环境版本如下:
 
· Hopper GPUs(以后可能支持更多架构或设备)
· 用于节点内通信的NVLink
· 用于节点内通信的RDMA网络
· Python 3.8及更高版本
· CUDA 12.3及更高版本
· PyTorch 2.1及更高版本

关于DeepEP 与其他 MoE 通信库的比较,以及它的实际应用中的性能表现,目前还没有足够的信息可以进行判断。毕竟这个库才刚刚开源,需要更多的时间和实际案例来验证它的优缺点。我个人比较期待看到 DeepEP 与其他主流 MoE 通信库(如Megatron-LM)的性能对比测试结果。

目前来看,DeepEP 的硬件要求比较高,但这也是为了追求极致的性能。Hopper GPU 和 RDMA 网络都是目前高性能计算领域的佼佼者,DeepEP 选择它们也是为了更好地发挥 MoE 模型的优势。至于未来是否会支持其他硬件,我觉得可以期待一下,毕竟现在技术发展这么快,说不定很快就能看到 DeepEP 支持更多平台了。

关于“DeepEP 如何在低延迟推理方面进行优化”这个问题,除了文中提到的纯 RDMA 通信和通信计算重叠外,我觉得应该还有其他优化手段。例如模型量化、模型剪枝、缓存优化等技术,都有可能在降低延迟方面起到作用。具体细节可能需要等 DeepSeek 公布更多技术细节才能知晓。

DeepEP 的优势文中提到了,高效通信,低延迟等,应该算作是它相对于其他 MoE 通信库的优势吧。劣势嘛,我感觉是它目前只支持 nvidia 的卡,而且对 RDMA 网络也有要求,这在一定程度上限制了它的使用场景。至于实际应用中的性能表现,还需要更多测试数据来支撑。

纯 RDMA 通信和通信计算重叠的确是降低延迟的有效方法。我猜 DeepEP 可能还做了其他优化,比如针对 MoE 模型结构的特定优化,或者对 GPU 内存访问的优化。这些都需要进一步研究 DeepEP 的代码才能确定。

对于这个问题,文中提到了DeepEP 使用纯RDMA通信来减少延迟,还支持通信和计算重叠的技术,不占用额外GPU资源。我理解RDMA 应该减少了CPU 的参与,通信计算重叠可能用到了异步操作。为了不占用GPU资源,可能还做了GPU资源调度方面的优化。

支持的硬件种类确实会对应用范围造成影响,初期为了快速开发和验证,选择 Hopper GPU 和 RDMA 网络也无可厚非。后续如果要扩大 DeepEP 的影响力,兼容更多的硬件是必然趋势,例如支持 AMD GPU,以太网等。个人觉得可以参考其他深度学习框架的做法,逐步扩展支持的硬件。

DeepEP 限制在 Hopper GPU 和 RDMA 网络上,确实会限制一部分人的使用。未来如果要拓展用户群体,必然需要支持更多的硬件。现在很多AI开发者用的是AMD的显卡,如果DeepEP能支持AMD的显卡,应该能吸引不少用户。

“相比其他 MoE 通信库,DeepEP 的优势和劣势分别是什么?在实际应用中,DeepEP 的性能表现如何?” 这个问题提的很好。现在 DeepEP 刚开源,实际应用案例应该比较少,性能表现如何有待观察。优势文中也提到了,高效通信,低延迟等。劣势也比较明显,就是对硬件的依赖性比较强。