Novita AI 实测 DeepGEMM:能否取代 SGLang?

Novita AI 实测 DeepGEMM:能否取代 SGLang?

昨天是开源周的第三天,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 算力相近,它们的性能没有显著差异。

moe gemma bandwidth

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

moe gemma computation

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 的优势更为明显。

sglang

sglang

  • 对于使用掩码存储布局的 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 云用于构建和扩展。

try deepseek r1

获取 $20 额度,立即尝试 DeepSeek!

推荐阅读