昨天是开源周的第三天,DeepSeek 正式发布了 DeepGEMM 开源库。
这是一个专为密集模型和 MoE 模型设计的 FP8 GEMM 计算库,为 DeepSeek - V3/R1 等 MoE FP8 量化模型的训练和推理提供了强有力的支持。
DeepGEMM 针对 NVIDIA Hopper 架构 GPU(如 H100、H200、H800)进行了深度优化。
主要特性包括代码简洁(核心部分仅约 300 行),但性能出色,在各种矩阵形状下可匹配甚至超越专家调优的库。
作为致力于提供高性能 AI 计算服务的云平台,Novita AI 已部署大量 MoE FP8 量化模型(如 DeepSeek FP8 版本)。
为了更好地利用 DeepGEMM 技术,提升这些模型的推理效率,Novita AI 在 DeepGEMM 发布后第一时间对其进行了全面的性能测试。
在深入介绍具体测试数据之前,我们先了解一些相关的基本概念。
什么是 GEMM?
GEMM(通用矩阵乘法,General Matrix Multiplication)是深度学习中最基础且最重要的计算算子,GEMM 优化是高性能 AI 计算的核心。
DeepGEMM 是一个专门用于加速深度学习中关键 GEMM 操作的开源库,通过提高 GEMM 计算效率来提升 AI 系统的整体性能。
DeepGEMM 的独特优势
与成熟的模板库(如 CUTLASS 和 CuTe)相比,DeepGEMM 采用轻量级设计思路:它并不追求对所有 GPU 和计算场景的广泛兼容,而是专注于充分利用 Hopper 架构的 FP8 计算能力,并为 DeepSeek R1 和 V3 等大型模型中常用的矩阵形状进行了精细优化。
DeepGEMM 的技术创新
DeepGEMM 通过以下四项核心技术革新实现了性能突破:
- 即时编译(JIT)
传统方法需要预先编译 CUDA 代码再进行调用,而 DeepGEMM 的 JIT 技术在运行时隐藏了编译过程,无需手动编译。
开发者无需创建复杂的 Python 接口,简化了开发流程,只需几行代码即可实现功能。
- 计算与传输重叠优化
DeepGEMM 同时执行数据传输和计算操作,充分利用 Hopper 架构的张量内存加速器(TMA)特性,进一步优化数据传输效率。此外,DeepGEMM 使用底层 PTX 指令实现极致性能。
- 支持任意矩阵大小
传统的 GEMM 实现要求矩阵大小为 2 的幂次(如 128、256),而 DeepGEMM 支持矩阵的非对齐块大小。此特性可避免内存浪费,提高整体计算效率。
- FFMA SASS 指令级优化
通过修改 FFMA 指令的 yield 和 reuse 位,为 MMA 指令与提升 FFMA 指令的重叠提供了更多机会,在部分场景下即使对底层架构了解有限,也能带来超过 10% 的性能提升。
Novita AI 一手评测:DeepGEMM 通用性
在 MoE 模型推理场景下,Novita AI 在 H100 和 H200 GPU 上对 DeepGEMM 进行了详细的性能测试,并将结果与官方 H800 基准数据进行了对比。
首先,我们总结了影响 DeepGEMM 性能的 H100、H200 和 H800 GPU 关键硬件参数:
| **指标 ** | H100 SXM | H200 SXM | H800 SXM |
|---|---|---|---|
| FP8 算力 | 3958 TFLOPS | 3958 TFLOPS | 3958 TFLOPS |
| 内存带宽 | 3.35 TB/s | 4.8 TB/s | 3.35 TB/s |
MoE 模型:连续存储布局的分组 GEMM(训练前向,推理 Prefill)
在采用连续存储布局的 MoE 网络中,H100、H200 和 H800(官方)之间的性能差异很小。
下图展示了内存带宽利用率对比测试。由于计算瓶颈以及三款 GPU 的 FP8 算力相近,它们的性能没有显著差异。

下图展示了计算性能对比。由于未达到内存访问瓶颈,三款 GPU 的性能也未表现出明显差异。

MoE 模型:掩码存储布局的分组 GEMM(推理解码)
在采用掩码存储布局的 MoE 网络中,H200 表现最佳,而 H100 和 H800 之间的差异非常小。
下图展示了内存带宽利用率对比测试。由于掩码存储布局比连续存储布局消耗更多内存带宽,部分场景达到了内存访问瓶颈,从而导致三款 GPU 之间出现性能差异:

下图是计算性能对比测试,突显了带宽差异带来的影响:

DeepGEMM 与 SGLang Triton 性能对比
目前,主流推理框架对 MoE 模块使用基于 SGLang Triton 开发的分组 GEMM 算子。我们在 H200 硬件条件下对 DeepGEMM 和 SGLang Triton 进行了性能对比测试:
DeepGEMM 在连续存储布局中表现出一定优势,但 SGLang Triton 在掩码存储布局中表现更好。目前,SGLang Triton 的部分算子主要应用于掩码存储场景。因此,DeepGEMM 需要进一步优化才能在推理框架中取代 SGLang Triton。
- 对于使用连续存储布局的 MoE 模型(训练前向,推理 Prefill),DeepGEMM 的优势更为明显。


- 对于使用掩码存储布局的 MoE 模型(推理解码),Triton 展现出更优的性能:


结论
评估结果表明,DeepGEMM 在包括 H100、H200 和 H800 在内的多款 GPU 上展现出显著的性能优化能力,凸显了其强大的通用性。
对于运行在 Hopper 架构上的 MoE 系列模型(如 DeepSeek V3 和 R1),通过将推理框架中原有的 CUTLASS 版本分组 GEMM 替换为 DeepGEMM,预计可在模型推理中实现约 1.2 倍的加速,提升整体性能。
目前,DeepGEMM 尚无法完全取代 SGLang Triton,需要进一步优化以扩大其应用范围。在推理解码阶段,SGLang Triton 仍然更高效,而 DeepGEMM 在训练前向和推理 Prefill 阶段更具优势。
Novita AI 是一个 AI 云平台,为开发者提供简单 API 部署 AI 模型的方式,同时也提供经济且可靠的 GPU 云用于构建和扩展。

