栏目分类
PRODUCT CENTER

新闻动态

你的位置:亚博买球「中国」yabo官方网站-登录入口 > 新闻动态 > 亚博体育是以 GEMM 的性能优化是至关要害的少量-亚博买球「中国」yabo官方网站-登录入口

亚博体育是以 GEMM 的性能优化是至关要害的少量-亚博买球「中国」yabo官方网站-登录入口

发布日期:2025-08-09 08:49    点击次数:178

亚博体育是以 GEMM 的性能优化是至关要害的少量-亚博买球「中国」yabo官方网站-登录入口

开源周的第三天亚博体育,DeepSeek把查抄推理 V3/R1 背后的"能源"给亮出来了——

DeepGEMM:一个 FP8 GEMM(通用矩阵乘法)库,解救密集(dense)和搀杂群众(MoE)矩阵乘法运算。

咱们先来简便了解一下 GEMM。

GEMM,即通用矩阵乘法,是线性代数中的基本运算,是科学筹画、机器学习、深度学习等领域中"常客",亦然许多高性能筹画任务的中枢。

但由于它的筹画量时常都比较大,是以 GEMM 的性能优化是至关要害的少量。

而 DeepSeek 此次开源的 DeepGEMM,依旧是保抓了"高性能 + 低资本"的特质,亮点如下:

高性能:在 Hopper 架构的 GPU 上,DeepGEMM 能够杀青高达 1350+FP8 TFLOPS 的性能。

粗略性:中枢逻辑仅约 300 行代码,但性能却优于群众调优的内核。

即时编译(JIT):秉承所有这个词即时编译的方式,这意味着它不错在运行时动态生成优化的代码,从而符合不同的硬件和矩阵大小。

无重依赖:这个库野心得尽头轻量级,莫得复杂的依赖探求,不错让部署和使用变得简便。

解救多种矩阵布局:解救密集矩阵布局和两种 MoE 布局,这使得它能够符合不同的应用场景,包括但不限于深度学习中的搀杂群众模子。

简便来说,DeepGEMM 主要用于加快深度学习中的矩阵运算,额外是在大畛域模子查抄和推理中,它额外适用于需要高效筹画资源的场景,能够权贵陶冶筹画收尾。

许多网友们对此次的开源都比较"买单",有东谈主将 DeepGEMM 比作数学界的超等英豪,合计它比飞速的筹画器还要快,比多项式方程还要普遍。

也有东谈主将 DeepGEMM 的发布譬如为量子态默契到一个新的践诺,齰舌其即时编译的干净利落。

天然……也有东谈主运转总结起我方手上的英伟达股票了……

深切了解 DeepGEMM

DeepGEMM 是一个特地为杀青粗略高效的 FP8 通用矩阵乘法(GEMMs)而打造的库,它还具备细粒度缩放功能,这一野心源于 DeepSeek V3。

它既能处理平淡的通用矩阵乘法,也能解救 MoE 分组的通用矩阵乘法。

这个库是用 CUDA 编写的,安设的时候不需要编译,因为它会在运行时通过一个轻量级的即时编译(JIT)模块来编译通盘的内核范例。

当今,DeepGEMM 只解救英伟达的 Hopper 张量中枢。

为了措置 FP8 张量中枢在筹画集会时不够精准的问题,它秉承了 CUDA 中枢的两级集会(陶冶)步调。

固然 DeepGEMM 鉴戒了 CUTLASS 和 CuTe 里的一些理念,但并莫得过度依赖它们的模板或代数运算。

相背,这个库野心得很粗略,唯有一个中枢内核函数,代码量简略 300 行傍边。

这使得它成为一个粗略易懂的资源,便捷寰宇学习 Hopper 架构下的 FP8 矩阵乘法和优化时候。

尽管其野心轻巧,但 DeepGEMM 的性能不错匹配或稀奇多样矩阵阵势的群众调优库。

那么具体性能如何呢?

团队在 H800 上使用 NVCC 12.8 测试了 DeepSeek-V3/R1 推理中可能使用的通盘阵势(包括预填充息争码,但莫得张量并行)。

底下这张图展示的是用于密集模子的平淡 DeepGEMM 的性能:

从测试收尾来看,DeepGEMM筹画性能最高可达 1358 TFLOPS,内存宽带最高可达 2668 GB/s。

加快比方面,与基于 CUTLASS 3.6 的优化杀青比较,最高可达 2.7 倍。

再来看下 DeepGEMM 解救 MoE 模子的连气儿布局(contiguous layout)的性能:

以及解救 MoE 模子掩码布局(masked layout)的性能是这么的:

如何使用?

要思使用 DeepGEMM,需先提防一下几个依赖项,包括:

必须解救 Hopper 架构的 GPU,sm_90a。

Python 3.8 及以上。

CUDA 12.3 及以上(保举 12.8)。

PyTorch 2.1 及以上。

CUTLASS 3.6 及以上

Development 代码如下:

# Submodule must be clonedgit clone --recursive git@github.com:deepseek-ai/DeepGEMM.git

# Make symbolic links for third-party ( CUTLASS and CuTe ) include directoriespython setup.py develop

# Test JIT compilationpython tests/test_jit.py

# Test all GEMM implements ( normal, contiguous-grouped and masked-grouped ) python tests/test_core.py

安设代码如下:

python setup.py install

在上述智商之后,您的 Python 面容中导入 deep_gemm 即可。

在接口方面,关于平淡的 DeepGEMM,可调用 deep_gemm.gemm_fp8_fp8_bf16_nt 函数,解救 NT 格式(非转置 LHS 和转置 RHS)。

关于分组的 DeepGEMM,连气儿布局情况下是 m_grouped_gemm_fp8_fp8_bf16_nt_contiguous;掩码布局情况下是 m_grouped_gemm_fp8_fp8_bf16_nt_masked。

DeepGEMM 还提供竖立最大 SM 数目、取得 TMA 对王人大小等器具函数;解救环境变量,如 DG_NVCC_COMPILER、DG_JIT_DEBUG 等。

除此以外,DeepSeek 团队还提供了几种优化的方式,包括:

JIT 野心:通盘内核在运行时编译,无需安设时编译;解救动态聘用最优块大小和活水线阶段。

细粒度缩放:通过 CUDA 中枢两层累加措置 FP8 精度问题;解救非 2 的幂次方块大小,优化 SM 运用率。

FFMA SASS 交错:通过修改 SASS 提醒的 yield 和 reuse 位,提高性能。

感趣味的小伙伴不错戳文末 GitHub 连气儿稽查细目哦 ~

One More Thing

英伟达这几天的股票……嗯……一直再跌:

不外在北京时间 27 日凌晨,英伟达 2025 财年第四季度功绩讲明也行将出炉,咱们不错期待一下它的发扬 ~

扫码备注「DeepSeek- 行状 / 姓名」加入群聊,沿途跟踪 DeepSeek 开源周!

DeepGEMM GitHub 进口:

https://github.com/deepseek-ai/DeepGEMM亚博体育