开源周的第三天,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真钱上分老虎机游戏app平台