【LLM】DeepSeek开源技术汇总

发布于:2025-03-01 ⋅ 阅读:(16) ⋅ 点赞:(0)

note

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

一、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聊聊大模型分布式训练的并行策略


网站公告

今日签到

点亮在社区的每一天
去签到