DeepSeek开源周第二弹:DeepEP如何用RDMA+FP8让MoE模型飞起来?
一、引言:MoE模型的通信瓶颈与DeepEP的诞生
在混合专家(MoE)模型训练中,专家间的全对全(All-to-All)通信成为性能瓶颈。传统方案在跨节点传输时带宽利用率不足50%,延迟高达300μs以上。DeepSeek推出的DeepEP作为首个开源EP通信库,通过软硬件协同优化,将节点内通信带宽压榨至158GB/s(接近NVLink极限),跨节点RDMA延迟降至46GB/s,成为大模型训练/推理的“通信加速器”。
二、核心功能解析
-
双模式通信内核
- 高吞吐量内核:训练/推理预填充阶段专用,支持NVLink(160GB/s)和RDMA(50GB/s)混合传输,节点内带宽达158GB/s,跨节点47GB/s。
- 低延迟内核:推理解码阶段采用纯RDMA技术,8专家并发时延迟仅163μs,带宽稳定在46GB/s。
-
FP8原生支持
通过动态位图压缩和流水线优化,FP8格式使显存占用减少50%,同时保持92%的注意力精度,显著降低计算开销。 -
通信-计算重叠技术
基于Hook机制实现后台数据传输,推理阶段计算与通信可并行执行,SM资源利用率提升至98%。
三、技术架构深度解析
-
分层优化设计
- 硬件层:深度适配Hopper GPU的异步拷贝引擎(ACE),显存带宽利用率达89.5%。
- 网络层:通过虚拟通道(VL)隔离RDMA流量,避免与计算任务争抢资源。
- 算法层:针对组限制门控(Group-Limited Gating)算法优化非对称域转发,实现NVLink到RDMA的零拷贝传输。
-
动态资源调度
支持SM数量控制(1-16个),可根据任务负载动态分配GPU资源。测试显示,64卡集群下训练吞吐量提升40%,显存占用减少35%。
四、性能实测与对比
| 指标 | DeepEP (H800) | 传统方案 (NCCL) | 提升幅度 |
|---|---|---|---|
| 节点内带宽 | 158GB/s | 60GB/s | 163% |
| 跨节点带宽 | 47GB/s | 15GB/s | 213% |
| 8专家延迟 | 163μs | 320μs | 490% |
| FP8吞吐量 | 580TFLOPS | 200TFLOPS | 190% |
测试环境:4096 token/batch,7168 hidden维度,top-8专家
五、典型应用场景
-
大规模训练加速
支持2048卡MoE模型训练,通信开销占比从35%降至12%,训练速度提升3倍。 -
实时推理优化
在智能客服场景中,128 token响应时间从500ms降至250ms,吞吐量提升至64QPS。 -
企业级部署
通过RDMA虚拟通道隔离技术,支持千卡级推理集群稳定运行,资源利用率提升25%。
六、代码示例:MoE训练中的DeepEP调用
from deep_ep import Buffer, dispatch_forward# 初始化通信缓冲区
buffer = Buffer(group="moe_group", hidden_bytes=7168*8)# 分发任务到专家
recv_x, handle = buffer.dispatch(x, topk_idx, num_experts=8)# 合并结果
_, _ = buffer.combine(recv_x, handle)
部署要求:
- 硬件:Hopper架构GPU + InfiniBand 400Gb/s网卡
- 软件:CUDA 12.3 + PyTorch 2.1 + Python 3.8
- 安装命令:
NVSHMEM_DIR=/path/to/nvshmem python setup.py install
七、未来展望
DeepEP已支持FP8/BF16混合精度,计划2025Q3推出多卡并行优化版本,并与DeepSeek-V3/R1模型生态深度集成。开发者可通过GitHub仓库体验极致性能。
结语
DeepEP不仅是通信库的迭代,更是**“专家并行计算范式”**的里程碑。通过软硬件协同优化,它让MoE模型从实验室走向工业级应用,开发者可通过GitHub仓库一键部署,体验从训练到推理的全链路加速。
相关文章:
DeepSeek开源周第二弹:DeepEP如何用RDMA+FP8让MoE模型飞起来?
一、引言:MoE模型的通信瓶颈与DeepEP的诞生 在混合专家(MoE)模型训练中,专家间的全对全(All-to-All)通信成为性能瓶颈。传统方案在跨节点传输时带宽利用率不足50%,延迟高达300μs以上。DeepSee…...
NLP学习记录十:多头注意力
一、单头注意力 单头注意力的大致流程如下: ① 查询编码向量、键编码向量和值编码向量分别经过自己的全连接层(Wq、Wk、Wv)后得到查询Q、键K和值V; ② 查询Q和键K经过注意力评分函数(如:缩放点积运算&am…...
【MySql】EXPLAIN执行计划全解析:15个字段深度解读与调优指南
文章目录 一、执行计划核心字段总览二、关键字段深度拆解1. type(访问类型)——查询性能的晴雨表典型场景分析: 2. key_len(索引使用长度)——索引利用率的检测仪计算示例: 3. Extra(附加信息&a…...
论文笔记(七十二)Reward Centering(五)
Reward Centering(五) 文章概括摘要附录B 理论细节C 实验细节D 相关方法的联系 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arX…...
Linux内核自定义协议族开发指南:理解net_device_ops、proto_ops与net_proto_family
在Linux内核中开发自定义协议族需要深入理解网络协议栈的分层模型。net_device_ops、proto_ops和net_proto_family是三个关键结构体,分别作用于不同的层次。本文将详细解析它们的作用、交互关系及实现方法,并提供一个完整的开发框架。 一、核心结构体的作用与层级关系 struct…...
SOME/IP-SD -- 协议英文原文讲解6
前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 5.1.3.1 E…...
【数据处理】COCO 数据集掩码 Run-Length Encoding (RLE) 编码转二进制掩码
输入:结果.json 输出:mask.jpg json内容示例如下: {"labels":[ # class_id 1,2,3,...],"scores":[ # 置信度0.2,0.7,0.3,...],"bboxes":[[1244.0,161.0,1335.0,178.0],[1243.0,161.0,1336.0,178.0],[1242.0,1…...
Java中的缓存技术:Guava Cache vs Caffeine vs Redis
在Java中,缓存技术是提升应用性能的重要手段。常见的缓存技术包括Guava Cache、Caffeine和Redis。它们各有优缺点,适用于不同的场景。以下是对它们的详细对比: 1. Guava Cache 类型: 本地缓存 特点: 基于内存的缓存,适用于单机应…...
Day8 蓝桥杯acw讲解
首先先给大家看一道这个题, 我真的是太喜欢y总了,如果大家也是最近在准备蓝桥杯或者计算机相关的比赛,但是得加一个前提就是必须最好基础真的很好,要不然其实买了课,也没啥太大的用处,其实就可以以我本人举…...
《Operating System Concepts》阅读笔记:p147-p158
《Operating System Concepts》学习第 15 天,p147-p158 总结,总计 12 页。 一、技术总结 1.socket (1)定义 A socket is defined as an endpoint for communication(socket 是用于通信的端点,或者说socket 是通信端点的抽象表示。). A s…...
JSON Schema 入门指南:如何定义和验证 JSON 数据结构
文章目录 一、引言二、什么是 JSON Schema?三、JSON Schema 的基本结构3.1 基本关键字3.2 对象属性3.3 数组元素3.4 字符串约束3.5 数值约束 四、示例:定义一个简单的 JSON Schema五、使用 JSON Schema 进行验证六、实战效果6.1 如何使用 七、总结 一、引…...
java后端开发day20--面向对象进阶(一)--static继承
(以下内容全部来自上述课程) 1.static–静态–共享 static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量。 1.静态变量 被static修饰的成员变量,叫做静态变量。 特点: 被该类…...
FastJSON 默认行为:JSON.toJSONString 忽略 null 字段
完整的 FakeRegistrationController 代码,这让我可以全面分析后端逻辑,特别是为什么空的字段(如 compareDate)不返回给前端。我将详细分析代码的每个接口,尤其是与 list 请求和字段返回相关的部分,并解释原…...
数据结构:基数排序(c++实现)
个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 基数排序的定义和基本原理基本原理具体步骤 基数排序的优缺点:代码实现总结 基数排序的定义和基本原理 基数排序(Radix Sort)是一…...
DOM 事件 HTML 标签属性速查手册
以下是一份 DOM 事件 & HTML 标签属性速查手册,涵盖常用场景和示例,助你快速查阅和使用: 一、DOM 事件速查表 1. 鼠标事件 事件名触发时机适用元素示例代码click元素被点击任意可见元素button.addEventListener(click, () > { ... …...
PhotoShop学习01
了解Photoshop 这里省略了Photoshop的软件安装,请自行查找资源下载。 1.打开图片 下图为启动photoshop后出现的界面,我们可以通过创建新文件或打开已有文件来启用photoshop的工作界面。 可以通过左边的按钮进行新文件的创建或打开已有文件。 也可以点…...
mongodb【实用教程】
MongoDB 是一个开源的文档型数据库管理系统 下载安装 Windows 系统 https://blog.csdn.net/weixin_41192489/article/details/126777309 GUI工具 【推荐】MongoDB Compass https://www.mongodb.com/zh-cn/docs/compass/current/ Robo 3T https://blog.csdn.net/weixin_4119248…...
C语言机试编程题
编写版本:vc2022 1.求最大/小值 #include<stdio.h> int main(){int a[50],n;int max, min;printf("请输入您要输入几个数");scanf_s("%d", &n);printf("请输入您要比较的%d个数\n",n);for (int i 0; i<n; i) {scanf_…...
threeJs+vue 轻松切换几何体贴图
嗨,我是小路。今天主要和大家分享的主题是“threeJsvue 轻松切换几何体贴图”。 想象一下,手头上正好有个在线3D家具商店,用户不仅可以看到产品的静态图片,还能实时更换沙发的颜色或材质,获得真实的购物体验。…...
Android ObjectBox数据库使用与集成指南
ObjectBox其核心特点ObjectBox与 SQLite 和 Realm 的对比Android集成ObjectBox创建ObjectBox实体对象创建ObjectBox操作管理类OBManager在Application初始化ObjectBox插入或更新数据查询数据统计数据分页数据查询删除数据总结今天分享一套Android另一个数据库ObjectBox。Object…...
AI原生研发的“道德悬崖”在哪?SITS2026首席伦理官亲授5步合规落地法(含GDPR-AI双轨 checklist)
第一章:AI原生研发的“道德悬崖”本质界定 2026奇点智能技术大会(https://ml-summit.org) “道德悬崖”并非指某次具体违规事件,而是AI原生研发范式中系统性失焦所导致的临界状态:当模型训练、提示工程、自动化代码生成与部署闭环高度耦合&…...
如何在3分钟内解决Windows系统ADB驱动安装难题?终极指南来了![特殊字符]
如何在3分钟内解决Windows系统ADB驱动安装难题?终极指南来了!🚀 【免费下载链接】Latest-adb-fastboot-installer-for-windows A Simple Android Driver installer tool for windows (Always installs the latest version) 项目地址: https…...
【UE4/UE5 萌新向】有C++基础如何快速入门虚幻引擎?超详细图文全揭秘!
观众老爷们大家好 我是邪修KING 欢迎来到我的TA->UE游戏引擎博客—入门篇! C!高门槛!精选学习!前言 如果你和我一样,刚刚啃完了C语言、数据结构,并且掌握了C的类和对象和STL,现在看着电脑里刚…...
JDK 21最新版安装配置全攻略:从Oracle账户获取到环境变量设置(附可用共享账号)
JDK 21高效安装与深度配置实战指南 Java开发环境的搭建是每位开发者入门的必修课,但Oracle官网的账户限制和复杂的配置流程常常让新手望而却步。本文将彻底解决这些问题,不仅提供绕过Oracle登录限制的实用方案,还会深入解析环境变量配置的底层…...
AI原生研发运维自动化成熟度评估矩阵(CMMI-AIOps 2.1版):含19项量化指标、自测工具包与TOP3瓶颈突破路线图
第一章:AI原生研发运维自动化成熟度评估矩阵(CMMI-AIOps 2.1版)概览 2026奇点智能技术大会(https://ml-summit.org) CMMI-AIOps 2.1版是面向AI原生系统全生命周期的评估框架,聚焦模型开发、训练调度、推理服务、可观测性治理与自…...
Superset开发环境搭建指南:从零开始本地部署
1. 认识Superset:为什么选择它? Superset是Apache基金会旗下的开源数据可视化工具,用Python编写,基于Flask框架。我第一次接触它是在2018年,当时团队需要替换昂贵的商业BI工具。经过对比测试,Superset的响…...
Betaflight Configurator 深度解析与实用配置指南
Betaflight Configurator 深度解析与实用配置指南 【免费下载链接】betaflight-configurator Cross platform configuration and management application for the Betaflight firmware 项目地址: https://gitcode.com/gh_mirrors/be/betaflight-configurator Betaflight…...
告别硬接线!用Wireshark抓包实战解析IEC 61850 GOOSE报文(附报文文件)
实战解析IEC 61850 GOOSE报文:从抓包到故障排查全流程 在变电站自动化系统中,GOOSE(Generic Object Oriented Substation Event)报文扮演着至关重要的角色。这种基于以太网多播的通信机制,已经彻底改变了传统IED&#…...
如何快速恢复损坏视频:开源修复工具UNTRUNC的完整指南
如何快速恢复损坏视频:开源修复工具UNTRUNC的完整指南 【免费下载链接】untrunc Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video. 项目地址: https://gitcode.com/gh_mirrors/unt/untrunc 你是否曾…...
C语言文件操作实战:读写YOLOv12模型权重与配置
C语言文件操作实战:读写YOLOv12模型权重与配置 如果你正在用C或C捣鼓YOLOv12模型,尤其是在那些没有现成Python库的嵌入式或高性能计算环境里,那么你很可能需要自己动手,从最底层的文件读写开始,把模型权重和配置“喂”…...
