DeepSeek 开源周技术总览:FlashMLA、DeepEP、DeepGEMM 与 3FS

汇总 DeepSeek 开源周发布的五个基础设施项目:面向 Hopper 架构的 MLA 解码内核 FlashMLA、专家并行通信库 DeepEP、FP8 GEMM 库 DeepGEMM、双向流水线 DualPipe 与专家负载均衡 EPLB,以及高性能分布式文件系统 3FS。

FlashMLA

DeepSeek “开源周” 今日正式开启,首个开源的代码仓库为 FlashMLA—— 针对 Hopper GPU(一种英伟达图形处理器架构)优化的高效 MLA(多头潜注意力) 解码内核,专为处理可变长度序列而设计,目前已投入生产环境。

据介绍,FlashMLA 专门针对多层注意力机制进行了优化,能够加速 LLM 的解码过程,从而提高模型的响应速度和吞吐量。FlashMLA 可在 H800 芯片上实现最高 3000GB/S 的带宽和 580 TFLOPS 的算力。

GitHub 地址:https://github.com/deepseek-ai/FlashMLA

FlashMLA 的主要应用场景包括:

  • 长序列处理:适合处理数千个标记的文本,如文档分析或长对话。
  • 实时应用:如聊天机器人、虚拟助手和实时翻译系统,降低延迟。
  • 资源效率:减少内存和计算需求,便于在边缘设备上部署。
    目前 AI 训练或推理主要依赖英伟达 H100 / H800,但软件生态还在完善。

由于 FlashMLA 的开源,未来它可以被集成到 vLLM(高效 LLM 推理框架)、Hugging Face Transformers 或 Llama.cpp(轻量级 LLM 推理) 生态中,从而有望让开源大语言模型(如 LLaMA、Mistral、Falcon)运行得更高效。

对于 AI 公司或者云计算服务商来说,使用 FlashMLA 也就意味着更低的成本、更快的推理,让更多 AI 公司、学术机构、企业用户直接受益,提高 GPU 资源的利用率。

DeepEP

发布专家并行通信库 DeepEP(expert parallelism):首个面向MoE模型的开源EP通信库,支持实现了混合专家模型训练推理的全栈优化!

GitHub 地址:https://github.com/deepseek-ai/DeepEP

DeepEP 的核心亮点

高效优化的 All-to-All 通信: DeepEP 提供了高性能、低延迟的 GPU 集群内和集群间 all-to-all 通信内核,这正是 MoE 模型中专家路由和组合的关键所在。 你可以把它理解为 MoE 模型数据高速公路的升级版!

集群内 (Intranode) 和集群间 (Internode) 全面支持: 无论是单机多卡,还是多机多卡,DeepEP 都能完美驾驭。 它充分利用 NVLink 和 RDMA 等高速互联技术,最大化通信带宽。

训练和推理预填充 (Prefilling) 的高性能内核: 对于模型训练和推理预填充阶段,DeepEP 提供了高吞吐量的内核,保证数据传输速度,加速模型迭代和部署。

推理解码 (Decoding) 的低延迟内核: 针对对延迟敏感的推理解码场景,DeepEP 也准备了低延迟内核,采用纯 RDMA 通信,最大限度减少延迟,让模型响应更快。

原生 FP8 精度支持: 紧跟前沿技术,DeepEP 原生支持 FP8 低精度运算,进一步提升计算效率,节省显存。

灵活的 GPU 资源控制,实现计算-通信重叠: DeepEP 支持精细化的 SM (Streaming Multiprocessors) 数量控制,并引入了基于 Hook 的通信-计算重叠方法,巧妙地在后台进行通信,不占用 GPU 计算资源。

DeepGEMM

DeepGEMM是一个专注于为FP8高效通用矩阵乘法(General Matrix Multiplications,GEMMs)库,支持普通及混合专家(Mix-of-Experts,MoE)分组的矩阵计算需求,可动态优化资源分配以提升算力效率。值得一提的是,DeepGEMM设计目标是为DeepSeek-V3/R1模型的训练与推理提供简洁高效的底层支持,尤其针对Hopper架构GPU(如H800)优化,兼顾高性能与低成本。

GitHub 地址:https://github.com/deepseek-ai/DeepGEMM

DeepGEMM 在各种计算场景下表现出色。 对于标准矩阵乘法,与基于 CUTLASS 3.6 的优化实现相比,速度提升 1.0 到 2.7 倍不等。小批量数据处理(M=64 或 128)获得了最显著的加速,最高达到 2.7 倍。

对于混合专家模型的计算,DeepGEMM 提供的两种特殊数据排列方式也有明显优势。 连续排列方式适用于训练和批量推理阶段,速度提升约 1.1 到 1.2 倍;掩码排列方式专为实时推理设计,支持与 CUDA 图技术配合使用,同样能提速 1.1 到 1.2 倍。

在 Hopper GPU 上最高可达 1350+FP8 TFLOPS。其他优点包括:

✅没有过多的依赖,像教程一样简洁

✅完全即时编译

✅核心逻辑约为 300 行,但在大多数矩阵大小上均优于专家调优的内核

✅支持密集布局和两种 MoE 布局

遵循CUTLASS的设计,DeepGEMM中的内核采用线程束(warp)专用化技术,实现了数据移动、张量核心MMA(矩阵乘累加)指令和CUDA核心提升操作的重叠执行。下图简要说明了这个过程:

TMA线程主要负责数据加载(Data load)和任务分发(TMA issue),用黄色和蓝色表示。数学线程则交替执行WGMA(Wavefront Matrix Multiply-Accumulate)计算(绿色)和数据提升(Promotion,黄色),展示了一种并行计算策略,其中数据加载与矩阵计算和优化操作协同工作,以提高效率和性能。

DualPipe、EPLB和profile-data

开源最新优化并行策略,包括DualPipe、专家并行负载均衡器(EPLB)和全流程性能数据(profile-data)。

https://github.com/deepseek-ai/DualPipe

https://github.com/deepseek-ai/eplb

https://github.com/deepseek-ai/profile-data

据介绍,DualPipe和EPLB是面向大规模AI模型训练的两项核心技术,分别聚焦于分布式训练效率优化和专家并行负载均衡,均为V3/R1而设计

上图展示了在8个流水线并行阶段和20个micro-batches情况下,DualPipe在两个方向上的调度示例。

具体而言,DualPipe是一种双向流水线并行算法,它通过“双向管道调度”和“计算通信重叠”,旨在减少分布式训练中的流水线“气泡”(空闲时间),让训练过程像流水线一样顺畅,提升GPU利用率。

架构适配:专为英伟达 Hopper 架构 GPU 定制,深度契合其特性,大幅提升运行效率。

分页 KV 缓存:创新分页存储关键数据,GPU 可快速精准定位,减少读取延迟,加速计算流程。

BF16 精度:平衡计算准确性与内存占用,降低内存负担,提升数据传输效率,节约硬件资源成本。

可变序列处理:能灵活应对自然语言处理、视频分析等场景中输入数据长度的差异,高效完成任务,拓展应用场景。

高性能表现:在 H800 GPU 上实现 3000GB/s 内存带宽与 580 TFLOPS 计算性能,轻松应对复杂模型训练与实时推理任务。

负载均衡算法提供了两种策略,适用于不同场景:

层次负载均衡(Hierarchical Load Balancing)

  • 当服务器节点数量能够整除专家组数量时,研究人员采用层次负载均衡策略,来充分利用组内限制专家路由机制。首先,他们将专家组均匀分配到各节点,确保节点间负载平衡;
  • 然后,在每个节点内部复制专家模型;
  • 最后,将复制后的专家打包分配到各个GPU上,实现GPU间的负载均衡。这种层次化策略特别适用于预填充阶段(prefilling stage),此时专家并行规模较小。

全局负载均衡(Global Load Balancing)

在其他情况下,研究人员采用全局负载均衡策略,不考虑专家组的限制,直接在全局范围内复制专家并分配到各个GPU上。这种策略更适合解码阶段使用,此时专家并行规模较大。

3FS

DeepSeek开源周第五天,DeepSeek在官方X账号宣布开源3FS(The Fire-Flyer File System),它是所有Deepseek数据访问的助推器。

GitHub 地址:https://github.com/deepseek-ai/3FS

萤火虫文件系统(3FS)是一个高性能的分布式文件系统,旨在应对AI训练和推理工作负载的挑战。它利用现代SSD和RDMA网络,提供一个共享存储层,简化分布式应用程序的开发。3FS的主要特性和优势包括:

性能与易用性

  • 解耦架构:结合数千个SSD的吞吐量和数百个存储节点的网络带宽,使应用程序能够以无位置感知的方式访问存储资源。
  • 强一致性:通过链式复制与分配查询(CRAQ)实现强一致性,使应用程序代码简单且易于理解。
  • 文件接口:开发了由事务性键值存储(如FoundationDB)支持的无状态元数据服务。文件接口广为人知且无处不在,无需学习新的存储API。

多样化工作负载

  • 数据准备:将数据分析管道的输出组织成层次化的目录结构,并高效管理大量中间输出。
  • 数据加载器:通过跨计算节点随机访问训练样本,消除了预取或混排数据集的需求。
  • 检查点:支持大规模训练的高吞吐量并行检查点。
  • 推理的KVCache:提供了一种经济高效的替代方案,替代基于DRAM的缓存,提供高吞吐量和显著更大的容量。
本文结束 感谢您的阅读