当前位置: 首页 > news >正文

DeepSeek开源周Day2:DeepEP - 专为 MoE 模型设计的超高效 GPU 通信库

项目地址:https://github.com/deepseek-ai/DeepEP
开源日历:2025-02-24起 每日9AM(北京时间)更新,持续五天 (2/5)!

引言

在大模型训练中,混合专家模型(Mixture-of-Experts, MoE)因其动态路由和高效计算特性备受关注。然而,随着模型规模的扩大,GPU 间的数据通信成为关键瓶颈——尤其是在专家并行(Expert Parallelism, EP)场景中,数据需要在多个 GPU 间高效分发与合并。传统通信库往往难以兼顾高吞吐与低延迟,而 DeepEP 的诞生正是为了解决这一难题。


核心功能与设计理念

1. 什么是 DeepEP?

DeepEP 是由 DeepSeek 开源的高性能通信库,专为 MoE/EP 场景设计。其核心目标是通过优化 GPU 间数据传输,实现:

  • 训练加速:提升多 GPU 协作效率
  • 推理降延迟:支持实时推理任务(如 ChatGPT)
  • 资源高效利用:减少 GPU 闲置时间

2. 技术亮点解析

(1)域间带宽优化

针对 MoE 的非对称通信场景(如 NVLink 域到 RDMA 域)深度优化:

  • NVLink(节点内 GPU 互联):带宽达 160 GB/s
  • RDMA(跨节点 GPU 互联):带宽达 50 GB/s
    通过定制内核实现数据转发路径优化,避免带宽浪费。
(2)低精度计算支持
  • FP8 分发 + BF16 合并:在保证精度的同时减少 50% 显存占用
  • 动态精度切换:适应不同阶段的计算需求
(3)通信-计算重叠


通过 Hook 机制实现:

  • 前向传播时后台预加载数据
  • 反向传播时异步传输梯度
    关键优势:零额外 SM 资源占用,最大化 GPU 利用率

性能实测

测试环境

  • 硬件:NVIDIA H800 GPU + CX7 InfiniBand 400Gb/s RDMA 网卡
  • 软件:CUDA 12.3 + PyTorch 2.1

性能数据

常规模式(训练/预填充推理)
场景通信类型吞吐量
节点内(8卡)NVLink153 GB/s
跨节点(64卡)RDMA46 GB/s
低延迟模式(推理生成)
专家数延迟RDMA 带宽
8163 μs46 GB/s
128192 μs39 GB/s

注:在 128 token 批处理下,延迟仅增加 18%,展现极强的扩展性


架构设计与关键技术

1. 分层通信模型

  • 分发阶段:通过原子操作动态分配 token 到专家
  • 组合阶段:基于元数据快速聚合结果

2. 推理优化黑科技

def low_latency_dispatch(hidden_states, topk_idx):# 后台启动 RDMA 传输recv_hidden, hook = _buffer.low_latency_dispatch(...)# 立即返回控制权,计算与传输并行return recv_hidden, hook

通过 纯 RDMA 传输 + 双缓冲机制,实现:

  • 163 μs 端到端延迟
  • 零 CUDA 核占用

快速入门指南

1. 环境要求

组件版本要求
GPUHopper 架构(H100/H800)
Python3.8+
CUDA12.3+
PyTorch2.1+
网络NVLink + RDMA
  • CUDA安装指南
  • GPU-pytorch 安装指南

2. 安装步骤

# 安装定制版 NVSHMEM
git clone https://github.com/NVIDIA/nvshmem
cd nvshmem && git apply DeepEP/third-party/nvshmem.patch
make -j 16 && make install# 安装 DeepEP
NVSHMEM_DIR=/path/to/nvshmem python setup.py install

3. 基础使用示例

import deep_ep# 初始化通信缓冲区
buffer = deep_ep.Buffer(group=dist.group.WORLD,num_nvl_bytes=1e9,  # NVLink 缓冲区 1GBnum_rdma_bytes=2e9   # RDMA 缓冲区 2GB
)# MoE 分发数据
recv_data, metadata = buffer.dispatch(input_tensor, expert_indices, num_experts=64
)# 执行专家计算
expert_output = experts[metadata.expert_id](recv_data)# 合并结果
combined_result = buffer.combine(expert_output)

高级调优建议

1. 网络配置优化

参数推荐值说明
​NVSHMEM_IB_SL​1-3隔离不同类型流量
自适应路由高负载时启用避免网络拥塞
拥塞控制关闭DeepSeek 实测无显著影响

2. SM 资源分配

# 设置 24 个 SM 专供通信
Buffer.set_num_sms(24)

通过动态调整 SM 数量,平衡计算与通信资源。


应用场景与案例

1. 千卡级训练加速

在 2048 卡集群中:

  • 线性扩展效率 >92%
  • 训练吞吐量提升 3.8 倍(对比 Megatron-LM)

2. 实时推理服务

  • 70B 参数 MoE 模型
  • 单请求延迟 <200 ms(端到端)
  • 吞吐量 1200 token/s

注意事项

  1. 硬件限制:目前仅支持 Hopper 架构 GPU
  2. PTX 指令:使用未公开指令 ld.global.nc.L1::no_allocate​ 实现极致性能,可通过 DISABLE_AGGRESSIVE_PTX_INSTRS=1​ 禁用
  3. 缓冲区管理:低延迟模式需预留更大 RDMA 缓冲区

开源生态

  • GitHub Star:开源 3 小时即破 2k
  • 生态整合:vLLM 等框架正在适配
  • 许可证:核心代码 MIT 许可,NVSHMEM 部分遵循 NVIDIA SLA

参考引用:

  1. Github - DeepEP
  2. 开源周第二天 - DeepEP
  3. DeepEP 详解,GPU压榨计划启动!
  4. DeepSeek开源周第二天-DeepEP
  5. DeepSeek最新开源DeepEP技术深入分析

专业术语解释

  • 混合专家模型(Mixture-of-Experts, MoE)
    一种将复杂任务分配给多个专家模块进行处理的模型架构。类似于一个大型项目被分解给多个专业团队分别完成。
  • 专家并行(Expert Parallelism, EP)
    一种在模型训练中多个专家模块同时进行计算的模式。类似于多个工作小组同时开展不同部分的工作。
  • 非对称通信场景
    指通信双方在数据传输量、传输方向或性能要求等方面存在差异的情况。类似于两人交流时一方说得多另一方说得少。
  • NVLink
    用于节点内 GPU 互联的高速通信技术,具有高带宽。类似于房间内不同家具之间的快速通道。
  • RDMA
    一种跨节点 GPU 互联的通信技术。类似于不同房间之间的快捷通道。
  • 数据转发路径优化
    对数据传输的路径进行改进以提高效率和减少浪费。类似于优化物流运输的路线。
  • FP8 分发 + BF16 合并
    数据分发和合并时采用的不同精度格式,以平衡精度和资源占用。类似于根据物品的重要性选择不同大小的盒子来装。
  • 通信-计算重叠
    让数据通信和计算过程同时进行,以提高效率。类似于一边做饭一边收拾厨房。
  • 分层通信模型
    将通信过程分为不同层次进行处理和优化的模型。类似于把一个大工程分为不同的施工阶段。
  • 双缓冲机制
    使用两个缓冲区交替工作来提高数据传输效率。类似于两个工人交替工作,一个工作时另一个准备。
  • SM 资源
    指 GPU 中的流多处理器(Streaming Multiprocessor)相关的资源。类似于工厂里的生产车间资源。

DeepEP 的推出标志着 MoE 训练进入新纪元。通过硬件级通信优化,它成功将 GPU 集群的潜力压榨到极致——正如网友所言:"这才是真正的 GPU 起飞!"。随着生态的完善,我们有理由期待更多千亿级模型将借此突破训练效率的边界。

相关文章:

DeepSeek开源周Day2:DeepEP - 专为 MoE 模型设计的超高效 GPU 通信库

项目地址&#xff1a;https://github.com/deepseek-ai/DeepEP 开源日历&#xff1a;2025-02-24起 每日9AM(北京时间)更新&#xff0c;持续五天 (2/5)&#xff01; ​ ​ 引言 在大模型训练中&#xff0c;混合专家模型&#xff08;Mixture-of-Experts, MoE&#xff09;因其动…...

51单片机-串口通信编程

串行口工作之前&#xff0c;应对其进行初始化&#xff0c;主要是设置产生波特率的定时器1、串行口控制盒中断控制。具体步骤如下&#xff1a; 确定T1的工作方式&#xff08;编程TMOD寄存器&#xff09;计算T1的初值&#xff0c;装载TH1\TL1启动T1&#xff08;编程TCON中的TR1位…...

python实现基于文心一言大模型的sql小工具

一、准备工作 注册与登录&#xff1a; 登录百度智能云千帆控制台&#xff0c;注册并登录您的账号。 创建千帆应用&#xff1a; 根据实际需求创建千帆应用。创建成功后&#xff0c;获取AppID、API Key、Secret Key等信息。如果已有千帆应用&#xff0c;可以直接查看已有应用的AP…...

deepseek 导出导入模型(docker)

前言 实现导出导入deepseek 模型。deepseek 安装docker下参考 docker 导出模型 实际生产环境建议使用docker-compose.yml进行布局&#xff0c;然后持久化ollama模型数据到本地参考 echo "start ollama" docker start ollama#压缩容器内文件夹&#xff0c;然后拷贝…...

前言:什么是大模型微调

一、大模型微调的基础知识 1. 什么是大模型微调&#xff1f; 大模型微调&#xff08;Fine-tuning&#xff09;是指在预训练模型的基础上&#xff0c;针对特定的任务或数据集进行进一步训练的过程。预训练模型通常在大规模的通用数据上训练&#xff0c;具备广泛的语言理解和生…...

TCPDF 任意文件读取漏洞:隐藏在 PDF 生成背后的危险

在网络安全的世界里&#xff0c;漏洞就像隐藏在黑暗中的“定时炸弹”&#xff0c;稍有不慎就会引发灾难性的后果。今天&#xff0c;我们要聊的是一个与 PDF 生成相关的漏洞——TCPDF 任意文件读取漏洞。这个漏洞可能让攻击者轻松读取服务器上的敏感文件&#xff0c;甚至获取整个…...

unity学习53:UI的子容器:面板panel

目录 1 UI的最底层容器&#xff1a;canvas 1.1 UI的最底层容器&#xff1a;canvas 1.2 UI的合理结构 2 UI的子容器&#xff1a;面板panel 2.1 创建panel 2.2 面板的本质&#xff1a; image &#xff0c;就是一个透明的图片&#xff0c;1个空容器 3 面板的属性 4 面板的…...

水环境水质在线监测系统解决方案

在当今社会&#xff0c;水资源作为人类生存和发展的基础性资源&#xff0c;其质量的优劣直接关系到生态平衡、人类健康以及社会经济的可持续发展。然而&#xff0c;随着工业化、城市化的快速推进&#xff0c;各类污染物不断排入水体&#xff0c;导致水环境面临严峻挑战。水环境…...

HBuilder X中,uni-app、js的延时操作及定时器

完整源码下载 https://download.csdn.net/download/luckyext/90430165 在HBuilder X中&#xff0c;uni-app、js的延时操作及定时器可以用setTimeout和setInterval这两个函数来实现。 1.setTimeout函数用于在指定的毫秒数后执行一次函数。 例如&#xff0c; 2秒后弹出一个提…...

BigDecimal线上异常解决方案:避免科学计数法输出的坑

文章目录 问题背景为什么BigDecimal会输出科学计数法&#xff1f;线上异常场景场景1&#xff1a;数据传递异常场景2&#xff1a;日志记录异常场景3&#xff1a;数据存储异常 解决方案1. 使用toPlainString()方法2. 设置格式化输出3. 自定义工具类 代码示例总结 在Java开发中&am…...

【C语言】指针笔试题

前言&#xff1a;上期我们介绍了sizeof与strlen的辨析以及sizeof&#xff0c;strlen相关的一些笔试题&#xff0c;这期我们主要来讲指针运算相关的一些笔试题&#xff0c;以此来巩固我们之前所学的指针运算&#xff01; 文章目录 一&#xff0c;指针笔试题1&#xff0c;题目一…...

深入理解Redis:数据类型、事务机制及其应用场景

在当今快速发展的技术领域中&#xff0c;Redis作为一种高性能的内存数据库&#xff0c;已经被广泛应用于各种场景&#xff0c;从简单的缓存实现到复杂的数据处理任务。其灵活性和高效性主要来源于对多种数据结构的支持以及强大的功能特性&#xff0c;如事务处理、持久化选项、高…...

RGMII(Reduced Gigabit Media Independent Interface)详解

一、RGMII的定义与作用 RGMII&#xff08;精简版千兆介质无关接口&#xff09;是一种用于千兆以太网&#xff08;1Gbps&#xff09;的高效接口标准&#xff0c;旨在减少传统GMII接口的引脚数量&#xff0c;同时保持相同的传输速率。其核心作用包括&#xff1a; 减少引脚数量&a…...

学习Flask:Day 1:基础搭建

学习目标&#xff1a;完成第一个Flask应用 # app.py from flask import Flask app Flask(__name__)app.route(/) def home():return <h1>Hello Flask!</h1>app.route(/api/greet/<name>) def greet(name):return {message: fHello {name}!}if __name__ __…...

XTOM工业级蓝光三维扫描仪在笔记本电脑背板模具全尺寸检测中的高效精准应用

——某3C精密制造企业模具优化与质量管控案例 镁合金具有密度小、强度高、耐腐蚀性好等优点&#xff0c;成为笔记本电脑外壳主流材料。冲压模具作为批量生产笔记本电脑镁合金背板的核心工具&#xff0c;其精度直接决定了产品的尺寸一致性、结构可靠性与外观品质。微米级模具误…...

网络安全 机器学习算法 计算机网络安全机制

&#xff08;一&#xff09;网络操作系统 安全 网络操作系统安全是整个网络系统安全的基础。操作系统安全机制主要包括访问控制和隔离控制。 访问控制系统一般包括主体、客体和安全访问政策 访问控制类型&#xff1a; 自主访问控制强制访问控制 访问控制措施&#xff1a; 入…...

分享些常用的工具类

一、照片 1、Unsplash&#xff1a;https://unsplash.com/ 2、pixabay&#xff1a;https://pixabay.com/zh/ 二、壁纸 1、Wallpaper Engine 2、wallhaven&#xff1a;https://wallhaven.cc/ 3、极简壁纸&#xff1a;https://bz.zzzmh.cn/ 三、AI语音 1、微软Azure项目&…...

VUE四:Vue-cli

什么是Vue-cli vue-cli是官方提供的一个脚手架,用于快速生成一个vue的项目模板; 预先定义好的目录结构及基础代码&#xff0c;就好比咱们在创建 Maven项目时可以选择创建一个骨架项目&#xff0c;这个骨架项目就是脚手架,我们的开发更加的快速; 什么是web pack 本质上&#…...

以下是自定义针对 Vite + TypeScript 项目的完整路径别名配置流程:

以下是针对 Vite TypeScript 项目的完整路径别名配置流程&#xff1a; 1. 安装必要依赖 bash npm install -D types/node 2. 配置 vite.config.ts typescript // vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue import path from pat…...

LangGraph系列教程:基于状态构建上下文感知的AI系统

本文深入探讨LangGraph中的“状态”概念及其在AI工作流中的核心作用。通过基础状态&#xff08;如计数器&#xff09;和复杂状态&#xff08;含消息历史&#xff09;的定义&#xff0c;结合代码示例&#xff0c;演示如何通过函数式编程实现状态的不可变修改。然后进一步解析了如…...

# 发散创新:基于Rust的内存安全防御机制实战解析在现代软件开发中,**内存安全漏洞**(如缓冲区溢出

发散创新&#xff1a;基于Rust的内存安全防御机制实战解析 在现代软件开发中&#xff0c;内存安全漏洞&#xff08;如缓冲区溢出、空指针解引用、Use-After-Free等&#xff09;仍是导致系统崩溃甚至远程代码执行的核心风险点。传统语言如C/C因缺乏运行时保护机制而屡遭攻击&…...

理解 JavaScript 的单线程

简单来说&#xff1a;JavaScript 语言规范规定了它的执行模型是单线程的&#xff0c;但承载它的运行环境&#xff08;浏览器或 Node.js&#xff09;是多进程的。一、为什么说 JS 是“单线程”&#xff1f;这里的“单线程”指的是 JavaScript 的“执行上下文”和“内存模型”。 …...

重新理解基础数据结构(动态数组,链表)

1 最近在准备面试&#xff0c;发现 ArrayList 扩容机制总是死记硬背&#xff0c;过段时间就忘。索性花几小时彻底啃一遍源码&#xff0c;争取一次拿下、终身不忘。2 ArrayList 底层是动态数组。Java 原生数组一旦定义长度就不可变&#xff0c;使用场景受限。ArrayList 就是对数…...

CRLB求解中的Fisher信息阵:5个关键性质与推导技巧

CRLB求解中的Fisher信息阵&#xff1a;5个关键性质与推导技巧 在统计信号处理领域&#xff0c;Cramr-Rao下界&#xff08;CRLB&#xff09;是评估参数估计器性能的黄金标准。而Fisher信息矩阵作为CRLB的核心组成部分&#xff0c;其推导过程往往涉及复杂的矩阵运算和概率论知识。…...

2025届最火的十大AI论文方案实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 基于自然语言处理跟机器学习技术的智能工具是 AI 写作软件&#xff0c;它能够把文章、报告、…...

5分钟快速上手KeymouseGo:免费开源鼠标键盘录制工具完全指南

5分钟快速上手KeymouseGo&#xff1a;免费开源鼠标键盘录制工具完全指南 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo 还…...

DownKyi哔哩下载姬:B站视频下载的终极解决方案,轻松构建个人离线资源库

DownKyi哔哩下载姬&#xff1a;B站视频下载的终极解决方案&#xff0c;轻松构建个人离线资源库 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08…...

了解pic单片机UPS电源吗?pic单片机有哪些优势和应用

对于pic单片机&#xff0c;很多朋友存在浓厚兴趣&#xff0c;为增进大家对pic单片机的了解&#xff0c;本文将从3方面介绍pic单片机&#xff1a;1.pic单片机UPS电源&#xff0c;2.pic单片机优势介绍&#xff0c;3.pic单片机应用。如果你是pic单片机的学习者&#xff0c;不妨一起…...

2025年ejabberd发展趋势:实时通信技术的7大演进方向与创新突破

2025年ejabberd发展趋势&#xff1a;实时通信技术的7大演进方向与创新突破 ejabberd作为一款Robust, Ubiquitous and Massively Scalable Messaging Platform&#xff0c;在2025年将继续引领实时通信技术的发展潮流。这款基于Erlang/OTP的XMPP服务器凭借其卓越的性能和可扩展性…...

Zotero重复文献智能合并方案:解决学术文献库数据冗余问题的自动化工具

Zotero重复文献智能合并方案&#xff1a;解决学术文献库数据冗余问题的自动化工具 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 在学术研究过…...