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

【LLM】DeepSeek开源技术汇总

note

一、FlashMLA:MLA解码内核
二、DeepEP:针对MoE和EP的通信库
三、DeepGEMM:FP8 通用矩阵乘法(GEMM)库
四、DualPipe、EPLB:双向管道并行算法
五、3FS:一种高性能分布式文件系统

文章目录

  • note
  • 一、FlashMLA:MLA解码内核
  • 二、DeepEP:针对MoE和EP的通信库
  • 三、DeepGEMM:FP8 通用矩阵乘法(GEMM)库
  • 四、DualPipe、EPLB:双向管道并行算法
  • 五、3FS:一种高性能分布式文件系统
  • 附:LLM Infra资料
  • Reference

一、FlashMLA:MLA解码内核

DeepSeek开源周第一天-FlashMLA

链接:https://github.com/deepseek-ai/FlashMLA

FlashMLA 是一款高效的 MLA 解码内核,专为 Hopper GPU 优化,适用于变长序列服务。

在 H800 SXM5 上,使用 CUDA 12.6 时,内存受限配置下可实现高达 3000 GB/s 的带宽,计算受限配置下可达 580 TFLOPS 的算力。

二、DeepEP:针对MoE和EP的通信库

DeepSeek开源周第二天-DeepEP

链接:https://github.com/deepseek-ai/DeepEP

DeepEP 是一个针对混合专家(MoE)和专家并行(EP)的通信库,提高GPU内核之间的吞吐量并且降低延时,同时支持低精度操作(例如:FP8)。

但注意,依然仅支持Hopper GPU(例如:H100、H800等)。

  • 为了与DeepSeek-V3论文中提出的组限制门控算法保持一致,DeepEP 提供了一组针对非对称域带宽转发(例如将数据从 NVLink 域转发到 RDMA 域)进行优化的内核。这些内核提供高吞吐量,使其适合训练和推理预填充任务。此外,它们还支持 SM(流式多处理器)数量控制。
  • 对于延迟敏感的推理解码,DeepEP 包含一组具有纯 RDMA 的低延迟内核,以最大限度地减少延迟。该库还引入了一种基于钩子的通信计算重叠方法,该方法不占用任何 SM 资源。

三、DeepGEMM:FP8 通用矩阵乘法(GEMM)库

DeepSeek 开源周第三天(2025年2 月26 日)发布 DeepGEMM,为 DeepSeek-V3 打造的 FP8 通用矩阵乘法(GEMM)库。支持标准的 GEMM 计算,还能高效处理专家混合(Mix-of-Experts,MoE)架构的计算需求

链接:https://github.com/deepseek-ai/DeepGEMM

四、DualPipe、EPLB:双向管道并行算法

DeepSeek开源周第四天-DualPipe、EPLB 话不多说,直接上链接:
https://github.com/deepseek-ai/DualPipe
https://github.com/deepseek-ai/eplb

核心亮点:

  • DualPipe:双向流水线并行算法:DualPipe通过创新的流水线设计,让前向传播和反向传播的计算任务可以在独立的管道中并行执行,大幅提高计算效率。
  • 完全计算-通信重叠:DualPipe不仅能并行计算,还能实现计算和通信阶段的完美重叠,极大减少了GPU的空闲时间。
  • 高效的内存使用与低气泡时间:与传统方法相比,DualPipe显著减少了内存占用,并优化了流水线气泡问题,使得大规模分布式训练更加高效。

五、3FS:一种高性能分布式文件系统

DeepSeek开源周第五天-3FS,最后一天deepseek对存储下手啊!

链接:https://github.com/deepseek-ai/3FS

3FS,Fire-Flyer File System,是一种高性能分布式文件系统,利用现代SSD 和 RDMA 网络带全宽的并行文件系统,解决AI训练和推理存储问题。

峰值吞吐量:180个存储节点,每个存储节点配备2×200Gbps InfiniBand网卡和十六个14TiB NVMe SSD。测试使用大约500多个客户端节点,每个客户端节点配置了1x200Gbps InfiniBand网卡,最终的聚合读取吞吐量达到了约6.6 TiB/s,如图2。

排序性能:25个测试存储节点,对110.5 TiB的数据进行排序,分布在8192个分区中,耗时30分钟14秒完成,平均吞吐量为3.66 TiB/min,如图3。

KVCache:KVCache的峰值吞吐量达到了40 GiB/s,如图4。

附:LLM Infra资料

[1] Attention is All you Need: https://proceedings.neurips.cc/paper/2017/hash/3f5ee243547dee91fbd053c1c4a845aa-Abstract.html
[2] ELMo: https://arxiv.org/abs/1802.05365
[3] MoE: https://arxiv.org/abs/1701.06538
[4] GShard: https://arxiv.org/abs/2006.16668
[5] MeshTensor: https://proceedings.neurips.cc/paper/2018/hash/3a37abdeefe1dab1b30f7c5c7e581b93-Abstract.html
[6] Gopher: https://arxiv.org/abs/2112.11446
[7] Chinchilla: https://arxiv.org/abs/2203.15556
[8] FlexFlow: https://proceedings.mlsys.org/paper_files/paper/2019/hash/b422680f3db0986ddd7f8f126baaf0fa-Abstract.htm
[9] GPipe: https://proceedings.neurips.cc/paper_files/paper/2019/hash/093f65e080a295f8076b1c5722a46aa2-Abstract.htm
[10] Parameter Server: https://proceedings.neurips.cc/paper/2014/hash/1ff1de774005f8da13f42943881c655f-Abstract.html
[11] Oneflow: https://arxiv.org/abs/2110.15032
[12] M6: https://arxiv.org/abs/2103.00823
[13] GLM: https://arxiv.org/abs/2210.02414
[14] Pangu-alpha: https://arxiv.org/abs/2104.12369
[15] PatrickStar: https://arxiv.org/abs/2108.05818
[16] FasterTransformers(FT): https://github.com/NVIDIA/FasterTransformer
[17] TurboTransformers: https://github.com/Tencent/TurboTransformers
[18] ORCA: https://www.usenix.org/conference/osdi22/presentation/yu
[19] Paged Attention: https://dl.acm.org/doi/abs/10.1145/3600006.3613165
[20] text-generation-inference: https://github.com/huggingface/text-generation-inference
[21] LMDelopyer: https://github.com/InternLM/lmdeploy
[22] vLLM: https://github.com/vllm-project/vllm

Reference

[1] FP8 训练的挑战及最佳实践,https://developer.nvidia.com/zh-cn/blog/fp8-challenges-best-practices/
[2] https://zhuanlan.zhihu.com/p/708594043
[3] DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法
[4] DeepSeek开源周 Day04:从DualPipe聊聊大模型分布式训练的并行策略

相关文章:

【LLM】DeepSeek开源技术汇总

note 一、FlashMLA:MLA解码内核 二、DeepEP:针对MoE和EP的通信库 三、DeepGEMM:FP8 通用矩阵乘法(GEMM)库 四、DualPipe、EPLB:双向管道并行算法 五、3FS:一种高性能分布式文件系统 文章目录 n…...

PostgreSQL10 逻辑复制实战:构建高可用数据同步架构!

PostgreSQL10 逻辑复制实战:打造高可用数据同步架构! 概述 PostgreSQL 10 引入了逻辑复制(Logical Replication),为数据库高可用和数据同步提供了更灵活的选择。PostgreSQL 复制机制主要分为物理复制和逻辑复制两种&…...

springboot之HTML与图片生成

背景 后台需要根据字段动态生成HTML&#xff0c;并生成图片&#xff0c;发送邮件到给定邮箱 依赖 <!-- freemarker模板引擎--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifa…...

455. 分发饼干(LeetCode)

题目来源&#xff1a; 455. 分发饼干 - 力扣&#xff08;LeetCode&#xff09; 题目内容&#xff1a; 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xf…...

go设计模式

刘&#xff1a;https://www.bilibili.com/video/BV1kG411g7h4 https://www.bilibili.com/video/BV1jyreYKE8z 1. 单例模式 2. 简单工厂模式 代码逻辑&#xff1a; 原始&#xff1a;业务逻辑层 —> 基础类模块工厂&#xff1a;业务逻辑层 —> 工厂模块 —> 基础类模块…...

基于STM32的智能家居能源管理系统

1. 引言 传统家庭能源管理存在能耗监控粗放、设备联动不足等问题&#xff0c;难以适应绿色低碳发展需求。本文设计了一款基于STM32的智能家居能源管理系统&#xff0c;通过多源能耗监测、负荷预测与优化调度技术&#xff0c;实现家庭能源的精细化管理与智能优化&#xff0c;提…...

win11编译pytorchaudio cuda128版本流程

1. 前置条件 本篇续接自 win11编译pytorch cuda128版本流程&#xff0c;阅读前请先参考上一篇配置环境。 访问https://kkgithub.com/pytorch/audio/archive/refs/tags/v2.6.0.tar.gz下载源码&#xff0c;下载后解压&#xff1b; 2. 编译 在visual studio 2022安装目录下查找…...

Rust学习总结之-match

Rust 有一个叫做 match 的极为强大的控制流运算符&#xff0c;它允许我们将一个值与一系列的模式相比较&#xff0c;并根据相匹配的模式执行相应代码。模式可由字面量、变量、通配符和许多其他内容构成。 一&#xff1a;match定义 可以把 match 表达式想象成某种硬币分类器&a…...

基于Three.js的3D赛车游戏开发实战详解

目录 一、项目效果预览二、核心技术架构2.1 三维场景构建2.2 赛道与车辆模型2.3 光照系统三、核心运动系统3.1 车辆运动控制3.2 物理模拟公式3.3 边界限制四、摄像机控制系统4.1 第三人称视角数学原理4.2 鼠标交互实现五、星空背景特效5.1 点云生成算法5.2 动态闪烁效果六、性能…...

51单片机中reg52.h与regx52.h在进行位操作时的不同

reg52.h中不能使用例如 P2_0;这样的定义 而只能使用 P2^0;这样的定义 但是都不可以对位进行直接赋值操作&#xff1b; 而 regx52.h中可以使用 P2_0和P2^0&#xff1b;但是只有使用下划线的才可以对位进行赋值操作 例如P2_0 1; 但不可以是P2^0 1; 在 C 语言中&#xff0c;…...

Git GitHub基础

git是什么&#xff1f; Git是一个分布式版本控制系统&#xff0c;用于管理源代码的变更。它允许多个开发者在同一个项目上协作&#xff0c;同时跟踪每个修改的历史记录。 关键词&#xff1a; 分布式版本控制软件 软件 安装到我们电脑上的一个工具 版本控制 例如论文&…...

【Excel】 Power Query抓取多页数据导入到Excel

抓取多页数据想必大多数人都会&#xff0c;只要会点编程技项的人都不会是难事儿。那么&#xff0c;如果只是单纯的利用Excel软件&#xff0c;我还真的没弄过。昨天&#xff0c;我就因为这个在网上找了好久发好久。 1、在数据-》新建查询-》从其他源-》自网站 &#xff0c;如图 …...

视频批量分段工具

参考原文&#xff1a;视频批量分段工具 选择视频文件 当您启动这款视频批量分段工具程序后&#xff0c;有两种便捷的方式来选择要处理的视频文件。其一&#xff0c;您可以点击程序界面中的 “文件” 菜单&#xff0c;在下拉选项里找到 “选择视频文件” 按钮并点击&#xff1b…...

Redis 源码分析-内部数据结构 robj

Redis 源码分析-内部数据结构 robj Redis 中&#xff0c;一个 database 内的这个映射关系是用一个 dict 来维护的&#xff08;ht[0]&#xff09;。dict 的 key 固定用一种数据结构来表达就够了&#xff0c;即动态字符串 sds。而 value 则比较复杂&#xff0c;为了在同一个 dic…...

多通道数据采集和信号生成的模块化仪器如何重构飞机电子可靠性测试体系?

飞机的核心电子系统包括发电与配电系统&#xff0c;飞机内部所有设备和系统之间的内部数据通信系统&#xff0c;以及用于外部通信的射频设备。其他所有航空电子元件都依赖这些关键总线进行电力传输或数据通信。在本文中&#xff0c;我们将了解模块化仪器&#xff08;无论是PCIe…...

面试(进阶) —虚拟列表在什么场景使用,如何实现?

面试(进阶) —虚拟列表在什么场景使用&#xff0c;如何实现&#xff1f; 在前端开发中&#xff0c;当需要渲染大量数据时&#xff0c;传统的渲染方式往往会遇到性能瓶颈。一次性将大量数据渲染到DOM中&#xff0c;不仅会导致页面加载缓慢&#xff0c;还可能占用大量内存&#x…...

Python—Excel全字段转json文件(极速版+GUI界面打包)

目录 专栏导读1、背景介绍2、库的安装3、核心代码4、完整代码(简易版)5、进阶版(GUI)总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——…...

【Linux第一弹】Linux基础指令(上)

目录 1.ls指令 1.1 ls使用实例 2.pwd指令 3.cd指令 3.1 cd使用实例 4.touch指令 4.1touch使用实例 5.mkdir指令 5.1mkdir使用实例 6.rmdir指令和rm指令 6.1 rmdir指令使用实例->: 6.2 rm指令使用实例 7.man指令 8.cp指令 8.1 cp 使用实例 9.mv指令 9.1mv使用…...

DeepSeek教unity------UI元素长按响应

主要功能说明&#xff1a; ​长按检测&#xff1a;通过记录指针按下的时间&#xff0c;判断是否达到 longClickTime&#xff0c;从而触发长按事件。​状态管理&#xff1a;使用 StateEnum 枚举管理点击项的当前状态&#xff08;未按下、按下等待长按、长按已触发&#xff09;。…...

Netty为什么性能很高?

大家好&#xff0c;我是锋哥。今天分享关于【Netty为什么性能很高?】面试题。希望对大家有帮助&#xff1b; Netty为什么性能很高? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Netty是一款高性能的网络通信框架&#xff0c;主要用于构建高性能的网络应用程序。…...

[深度学习] 大模型学习2-提示词工程指北

在文章大语言模型基础知识里&#xff0c;提示词工程&#xff08;Prompt Engineering&#xff09;作为大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;应用构建的一种方式被简要提及&#xff0c;本文将着重对该技术进行介绍。 提示词工程就是在和LLM聊…...

MySQL 和 PostgreSQL 的详细对比

以下是 MySQL 和 PostgreSQL 的详细对比&#xff0c;帮助您根据需求选择合适的数据库&#xff1a; 1. 核心特性对比 特性MySQLPostgreSQL数据库类型关系型数据库 (RDBMS)关系型数据库 (RDBMS)&#xff0c;支持部分 NoSQL 特性SQL 标准兼容性部分兼容&#xff08;简化语法&…...

基于POI的Excel下拉框自动搜索,包括数据验证的单列删除

目录 目标 例子 1.搜索下拉框页 2.数据源页 3.效果 代码以及注意事项 1.代码 2.注意事项 1.基于Excel的话&#xff0c;相当于加入了一个【数据验证】 2.代码中的一些方法说明 目标 期望在Excel利用代码创建具备自动搜索功能的下拉框 例子 1.搜索下拉框页 2.数据源…...

Android中使用Robolectric测试点击事件(不需要手机)

文章目录 一、前言二、简单示例三、参考文档 一、前言 Robolectric 是一个由 Google 维护的开源 Android 测试框架&#xff0c;它允许你以 Android 运行时环境运行单元测试。 Robolectric 提供了一个模拟 Android 运行时环境&#xff0c;允许你测试你的代码是否正确地使用 And…...

C++Primer学习(4.7 条件运算符)

4.7 条件运算符 条件运算符( ? :)允许我们把简单的if-else逻辑嵌入到单个表达式当中&#xff0c;条件运算符按照如下形式使用: cond ? exprl : expr2; 其中cond是判断条件的表达式&#xff0c;而expr1和expr2是两个类型相同或可能转换为某个公共类型的表达式。条件运算符的执…...

Python 数据可视化(一)熟悉Matplotlib

目录 一、安装包 二、先画个折线图 1、修改标签文字和线条粗细 2、内置样式 3、scatter() 绘制散点图 4、scatter() 绘制多个点 5、设置样式 6、保存绘图 数据可视化指的是通过可视化表示来探索和呈现数据集内的规律。 一、安装包 win R 打开终端 安装 Matplotlib&…...

c#实现485协议

在C#中实现RS-485协议通信,需要结合串口(SerialPort)操作和硬件收发控制(如RTS信号切换)。以下是详细的步骤和示例代码: 1. RS-485通信原理 物理层:RS-485是差分信号标准,支持多点通信(半双工)。 收发控制:通过控制RTS(Request to Send)或DTR引脚切换发送/接收模式…...

考研出分24小时,人类精神状态图鉴

2月24日&#xff0c;上午10点起&#xff0c;各省考研初试成绩陆续公布&#xff0c;考生们或紧张的输入准考证号&#xff0c;或抱团等待“审判”。然而更魔幻的还在后头——下午4点&#xff0c;教育部竟在同一天直接发布了《2025年研考国家分数线》。 不少网友表示&#xff1a;…...

神经网络AI原理回顾

长期记忆存储在大模型的参数权重中&#xff0c;不经过推理和编码无法读取&#xff0c;且必须依赖输入的提示&#xff0c;因为大模型不会无缘无故的自言自语&#xff0c;毕竟输入层是它唯一 与外界交互的窗口。 目前个性化大模型的局限就是训练成本过高&#xff0c;除非使用RAG&…...

不同数据类型在数据库和编程语言之间的对应关系表

不同数据类型在数据库和编程语言之间的对应关系表 MySql 与 C# MySqlC#varcharstringbigintlongbigint unsignedulongintintint unsigneduintsmallintshortsmallint unsignedushortVARCHAR(36)GuidsmalldatetimeDateTimedateDateTimedatetimeDateTimetimestampDateTimefloatf…...