DeepSeek 开源记-第2天-DeepEP
DeepSeek 开源工作第2天
🚀 Day 2 of #OpenSourceWeek: DeepEP
Excited to introduce DeepEP - the first open-source EP communication library for MoE model training and inference.
✅ Efficient and optimized all-to-all communication
✅ Both intranode and internode support with NVLink and RDMA
✅ High-throughput kernels for training and inference prefilling
✅ Low-latency kernels for inference decoding
✅ Native FP8 dispatch support
✅ Flexible GPU resource control for computation-communication overlapping
🔗 GitHub: https://github.com/deepseek-ai/DeepEP
🚀 第1天 #OpenSourceWeek:DeepEP
很高兴介绍DeepEP-第一个用于MoE模型训练和推理的开源EP通信库。
✅ 高效和优化的全方位通信
✅ NVLink和RDMA支持内节点和节点间
✅ 用于训练和推理预填充的高通量内核
✅ 用于推理解码的低延迟内核
✅ 原生FP8调度支持
✅ 灵活的GPU资源控制,computation-communication重叠
🔗 GitHub:https://github.com/deepseek-ai/DeepEP
DeepEP 开源项目介绍
DeepEP是一个高效的专家并行(Expert Parallel)通信库,主要用于大规模分布式机器学习系统中的MoE(Mixture of Experts)模型训练。
项目架构
DeepEP/
├── csrc/ # C++/CUDA 源代码
├── deep_ep/ # Python 包
├── tests/ # 测试用例
└── third-party/ # 第三方依赖
核心特性
-
多级通信支持
- 节点内通信(Intranode): 使用CUDA IPC实现
- 节点间通信(Internode): 基于NVSHMEM实现
- 低延迟模式(Low Latency): 针对性能优化的特殊模式
-
关键组件
-
: 核心实现文件,包含: - Buffer类:管理通信缓冲区
- 数据分发(Dispatch)和组合(Combine)操作
- 事件同步机制
-
: 配置相关定义 - 缓冲区大小配置
- 低延迟模式布局
- 内存对齐等参数
- 优化特性
- 异步操作支持
- 流水线优化
- 内存布局优化
- CUDA流管理
- 原子操作优化
- Python接口
通过
- Buffer类封装
- 事件重叠管理
- 配置接口
技术特点
- 高效通信
- 使用CUDA IPC实现节点内快速通信
- 采用NVSHMEM实现高效节点间通信
- 支持异步操作和事件同步
- 内存管理
- 精细的缓冲区管理
- 支持FP8/BF16等多种数据类型
- 内存对齐和缓存优化
- 性能优化
- 流水线并行
- 异步执行
- 低延迟模式
- 原子操作优化
许可证
该项目采用MIT许可证,但有一个例外:涉及NVSHMEM的代码(包括csrc/kernels/ibgda_device.cuh
和third-party/nvshmem.patch
)受NVSHMEM SLA约束。
使用场景
主要应用于大规模分布式机器学习系统中的MoE模型训练,特别适合:
- 多GPU训练环境
- 需要高效专家并行的场景
- 对通信延迟敏感的应用
这是一个专注于解决分布式机器学习中专家并行通信问题的专业库,通过多种优化手段实现了高效的数据交换和同步。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)