Deepseek 开源周第二天,DeepEP:首个面向MoE模型的开源EP通信库,支持实现了混合专家模型训练推理的全栈优化。DeepEP 提供高效且优化的全到全通信,支持节点内和节点间通信,兼容 NVLink 和 RDMA,用于训练和推理预填充的高吞吐量内核,用于推理解码的低延迟内核,原生 FP8 调度支持,灵活的 GPU 资源控制,实现计算与通信的重叠。
概述
DeepEP 是一个专为混合专家模型(Mixture-of-Experts, MoE)和专家并行(expert parallelism, EP)设计的通信库。它提供了高吞吐量和低延迟的全到全 GPU 内核,这些内核也被称为 MoE 分派和组合。该库还支持低精度操作,包括 FP8。
特性
- 高效且优化的全到全通信:DeepEP 提供了高效且优化的全到全通信内核,适用于 MoE 模型的分派和组合操作。
- 支持节点内和节点间通信:兼容 NVLink 和 RDMA,确保在不同节点和不同通信域之间高效传输数据。
- 高吞吐量内核:优化后的内核支持高吞吐量,适用于训练和推理预填充任务。
- 低延迟内核:用于推理解码,确保低延迟,适合对延迟敏感的应用场景。
- 原生 FP8 调度支持:支持低精度操作,提高计算效率。
- 灵活的 GPU 资源控制:支持 SM(Streaming Multiprocessors)数量控制,实现计算与通信的重叠,提高资源利用率。
性能测试
常规内核
在 H800 GPU 上测试(NVLink 最大带宽约为 160 GB/s),每个 GPU 连接一个 CX7 InfiniBand 400 Gb/s RDMA 网卡(最大带宽约为 50 GB/s)。测试设置遵循 DeepSeek-V3/R1 预训练设置(每批 4096 个 token,7168 个隐藏单元,4 个顶级组,8 个顶级专家,FP8 分派和 BF16 组合)。
类型 | 分派 #EP | 瓶颈带宽 | 组合 #EP | 瓶颈带宽 |
---|---|---|---|---|
节点内 | 8 | 153 GB/s (NVLink) | 8 | 158 GB/s (NVLink) |
节点间 | 16 | 43 GB/s (RDMA) | 16 | 43 GB/s (RDMA) |
节点间 | 32 | 44 GB/s (RDMA) | 32 | 47 GB/s (RDMA) |
节点间 | 64 | 46 GB/s (RDMA) | 64 | 45 GB/s (RDMA) |
低延迟内核
在 H800 GPU 上测试,每个 GPU 连接一个 CX7 InfiniBand 400 Gb/s RDMA 网卡(最大带宽约为 50 GB/s)。测试设置遵循 DeepSeek-V3/R1 生产设置(每批 128 个 token,7168 个隐藏单元,8 个顶级专家,FP8 分派和 BF16 组合)。
分派 #EP | 延迟 | RDMA 带宽 | 组合 #EP | 延迟 | RDMA 带宽 |
---|---|---|---|---|---|
8 | 163 us | 46 GB/s | 8 | 318 us | 46 GB/s |
16 | 173 us | 43 GB/s | 16 | 329 us | 44 GB/s |
32 | 182 us | 41 GB/s | 32 | 350 us | 41 GB/s |
64 | 186 us | 40 GB/s | 64 | 353 us | 41 GB/s |
128 | 192 us | 39 GB/s | 128 | 369 us | 39 GB/s |
256 | 194 us | 39 GB/s | 256 | 360 us | 40 GB/s |
快速开始
要求
- Hopper GPU(未来可能支持更多架构或设备)
- Python 3.8 及以上
- CUDA 12.3 及以上
- PyTorch 2.1 及以上
- NVLink 用于节点内通信
- RDMA 网络用于节点间通信
评论 (0)