📌 项目地址:deepseek-ai/DeepGEMM | ⭐ 8,636 颗星 | 🔧 Cuda | 📜 未标注

先说结论

DeepGEMM 是 DeepSeek 开源的 CUDA 张量核计算库,8600 多个 star。它把 DeepSeek 模型里最吃算力的几类运算集中在一个代码库里:FP8/FP4/BF16 的 GEMM、带通信重叠的融合 MoE(Mega MoE)、给 lightning indexer 用的 MQA scoring、HyperConnection 等。

换句话说,这是 DeepSeek v3.2 这类模型实际在跑的 kernel 代码。想理解 DeepSeek 怎么把 FP8 训练效率做到那个水平,代码就在这里。

性能和定位

2025 年 4 月,DeepGEMM 在 H800 上跑到过 1550 TFLOPS。官方的说法是,在多种矩阵形状下,性能持平或超过专家调优的库。

这个数字值得记住,但更值得关注的是它的代码风格。DeepGEMM 借鉴了 CUTLASS 和 CuTe 的一些概念,没有重度依赖后者的模板和代数体系。核心 kernel 函数数量有限,官方明确把它定位成一份“干净的、可以用来学习 NVIDIA GPU kernel 优化技术的资源”。

用过 CUTLASS 的人都知道,那套模板有多难啃。一份性能打平专家库、代码量小到能读完的实现,对学 CUDA 优化的人来说是稀缺品。

DeepJIT:装的时候不编译

DeepGEMM 所有 kernel 都在运行时通过 DeepJIT 编译,安装阶段完全不需要 CUDA 编译。2025 年 7 月那次完整重构引入了低 CPU 开销的 JIT CPP 模块,后来的版本还继续加快了 JIT 编译速度。

这个设计对部署很友好:装起来快,升级 CUDA 相关代码也不用重新走一遍安装编译流程。

迭代节奏:跟着模型走

翻一遍 News 就能看出这个库的演进路径,基本和 DeepSeek 自家模型绑定:

  • 2025.04:H800 上 1550 TFLOPS
  • 2025.05:dense 和 MoE 反向的权重梯度 kernel(#95)
  • 2025.07:支持 SM90/SM100 双架构,重构出 JIT 模块(#112)
  • 2025.09:v3.2 lightning indexer 的 weighted ReLU MQA scoring kernel(#200)
  • 2026.04:Mega MoE、FP8xFP4 GEMM、FP4 Indexer、PDL(#304,benchmark 在 #316)
  • 2026.09:Sparse Indexer、Mega Gate、locality domain 优化等(#432、#462),另外推出了华为昇腾版 DeepGEMM-Ascend(独立仓库)

一个细节:NVCC 12.9 之后编译器会自动做 FFMA interleaving,所以早期版本里相关的手工优化被移除了。看代码学优化技巧时注意版本,别学已经被编译器吃掉的东西。

环境要求

README 列了三条:

  • NVIDIA SM90 或 SM100 架构 GPU,也就是 Hopper(H100/H800)和 Blackwell
  • Python 3.8 或更高
  • 支持 C++2 的编译器和标准库

硬件门槛是硬性的,没有这两代卡就不用看了。

和同类方案怎么选

GPU 上做矩阵乘,常见选择有 cuBLAS、CUTLASS,以及 vLLM、FlashInfer 这类推理框架自带的 kernel。DeepGEMM 的差异在两点:

一是为 DeepSeek 的模型形态深度定制。MoE 分组 GEMM、Mega MoE 的通信重叠、lightning indexer 的 scoring,这些场景通用库要么不支持,要么性能不够。官方 PR 里附有 benchmark,可以对着自己的矩阵形状判断。

二是通用性上的取舍。它只支持 SM90/SM100,功能围绕大模型计算原语展开,不是 cuBLAS 的替代品。

我的建议分人:做大规模训练或推理 infra、想把 FP8/FP4 硬件性能榨干的人,值得直接读代码;想学 CUDA kernel 优化的人,把它当参考实现读,比啃 CUTLASS 划算。如果只是想跑个推理 demo,用 vLLM 或 SGLang 更省事,它们底层已经在用类似的技术。

具体安装命令和 API 用法,README 的 Quick start 部分(此处截取不全)以官方仓库为准。每个大版本的实现细节和 benchmark,News 里链接的 PR(如 #432、#304、#112)写得很细,比 README 本身更有料。

这篇文章对你有帮助吗?

发表回复