DeepSeek开源DeepEP通信库,优化MoE模型训推,支持英伟达Hopper GPU,提升效率降低延迟。
原文标题:DeepSeek开源周第二弹:第一个用于MoE模型训推的EP通信库,暂只支持英伟达卡
原文作者:AI前线
冷月清谈:
怜星夜思:
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及更高版本