网站首页 > 编程文章 正文
标题:《DeepEP: an efficient expert-parallel communication library》
机构:DeepSeek团队(Chenggang Zhao、Shangyan Zhou等)
地址:DeepEP[1]
背景与亮点
在大规模模型训练和推理中,Mixture-of-Experts (MoE) 和专家并行(Expert Parallelism, EP)是提升效率的重要技术。然而,通信瓶颈一直是制约性能的关键问题。为此,DeepSeek团队推出了DeepEP,一个专为MoE和专家并行设计的高性能通信库,具备以下亮点:
高吞吐低延迟:支持NVLink和RDMA网络,提供高效的all-to-all GPU通信内核,适用于训练和推理任务。
低精度优化:支持FP8和BF16数据类型,进一步提升计算效率。
跨域带宽优化:针对NVLink到RDMA的非对称带宽转发场景进行了深度优化。
低延迟解码:提供纯RDMA低延迟内核,特别适合推理解码阶段。
灵活配置:支持自适应路由、虚拟通道隔离和流多路复用,满足不同场景需求。
核心功能与设计
高效通信内核
DeepEP的核心在于其优化的通信内核,分为普通内核和低延迟内核两种模式:
普通内核
适用场景:训练和推理预填充(prefilling)阶段。
特点:
- 支持高吞吐量的NVLink和RDMA通信。
- 在H800 GPU上测试,最大带宽可达153 GB/s (NVLink) 和**46 GB/s (RDMA)**。
- 提供SM(Streaming Multiprocessors)数量控制功能,可根据硬件资源动态调整。
低延迟内核
适用场景:推理解码(decoding)阶段。
特点:
- 纯RDMA实现,最小化延迟,典型场景下延迟仅163微秒。
- 引入基于hook的通信-计算重叠方法,无需占用GPU SM资源,最大化计算效率。
- 支持CUDA Graph兼容性,便于流水线优化。
性能表现
以下是DeepEP在实际测试中的性能数据:
特色功能
自适应路由
- 低延迟内核支持自适应路由,可有效消除网络拥塞,但会引入少量额外延迟。
- 推荐在高负载环境下启用,在低负载环境下使用静态路由以获得最佳性能。
流量隔离
- 使用InfiniBand的虚拟通道(Virtual Lanes, VL)实现流量隔离,避免不同类型任务间的干扰。
- 可通过NVSHMEM_IB_SL环境变量配置虚拟通道分配。
拥塞控制
- 当前未启用拥塞控制,因生产环境中未观察到显著拥塞现象。
快速上手
环境要求
- 硬件:Hopper架构GPU(未来可能支持更多架构)。
- 软件:Python 3.8+、CUDA 12.3+、PyTorch 2.1+。
- 网络:节点内通信需NVLink,节点间通信需RDMA网络。
安装步骤
- 下载并安装依赖库NVSHMEM[2]。
- 构建DeepEP:
NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py install - 在Python项目中导入deep_ep模块即可使用。
示例代码
♂ 训练或推理预填充阶段
from deep_ep import Buffer
# 初始化通信缓冲区
buffer = Buffer(group, num_nvl_bytes, num_rdma_bytes)
# MoE分发操作
recv_x, recv_topk_idx, recv_topk_weights, _, _, _ = buffer.dispatch(x, topk_idx, topk_weights)
# MoE合并操作
combined_x, _ = buffer.combine(recv_x, handle)
♀ 推理解码阶段
from deep_ep import Buffer
# 初始化低延迟通信缓冲区
buffer = Buffer(group, 0, num_rdma_bytes, low_latency_mode=True)
# 低延迟分发操作
recv_hidden_states, recv_expert_count, _, _, _ = buffer.low_latency_dispatch(hidden_states, topk_idx)
# 低延迟合并操作
combined_hidden_states, _, _ = buffer.low_latency_combine(hidden_states, topk_idx, topk_weights)
总结
DeepEP作为一款专为MoE和专家并行设计的通信库,凭借其高吞吐、低延迟的特性,以及对低精度操作和跨域带宽优化的支持,为大规模模型训练和推理提供了强有力的技术支撑。无论是训练还是推理场景,DeepEP都能显著提升性能,助力开发者更高效地构建和部署模型。
如果你对MoE和专家并行感兴趣,或者正在寻找提升模型性能的工具,不妨试试DeepEP吧!
参考资料
[1]DeepEP: https://github.com/deepseek-ai/DeepEP
[2]NVSHMEM: third-party/README.md
猜你喜欢
- 2025-03-19 肺癌马上手术,什么方法能预防术后复发?来自亚洲共识的最新建议
- 2025-03-19 欧盟的下一代机翼生产线都藏了哪些黑科技?
- 2025-03-19 刚刚,DeepSeek开源DeepEP通信库,千亿MoE训推颠覆级创新!
- 2025-03-19 DeepSeek开源为MoE和EP量身定制的通信库!暂和英伟达显卡绑定
你 发表评论:
欢迎- 最近发表
-
- 90岁老人科目三一把过火爆网络!考驾照、爱美甲……这群“90后”比年轻人潮
- DNF:遗忘之地任务流程,适用于新手起小号,装备修理白漂
- dnf手游:“首款流拍宝珠”,6位玩家眼睁睁看着500万泰拉丢失!
- dnf手游:小熊卡正式升级!可附魔到工会勋章,千万别卖!
- dnf手游:首张“涨抗魔”粉卡火了!以前3万没人要现在准备断货!
- dnf手游:团本币增加!3月26号打团有坑提前避开,浪费门票?
- dnf手游:涨价20倍!曾经没人要的,如今已是妥妥的T0材料!
- dnf手游:“官方鼓励回归”火了,白送玩家+20装备和王子卡等!
- dnf手游:无根之源千万别用!竞拍系统一定要抢否则错过崛起机会
- dnf手游:DNF手游各职业技能加点攻略、装备推荐!小白一看就会
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)