专栏名称: SDNLAB
SDNLAB是专注网络创新技术的先锋媒体社区和实践应用平台,涵盖AI 网络、DPU/智能网卡、SD-WAN/SASE、Web3.0、零信任、云网融合等相关领域,提供新闻资讯、技术交流、在线实验、行业分析、求职招聘、教育培训等多元服务。
目录
相关文章推荐
51好读  ›  专栏  ›  SDNLAB

DeepSeek开源第三弹:高性能计算库DeepGEMM

SDNLAB  · 公众号  ·  · 2025-02-26 10:45

正文

图片


DeepGEMM 是一个专门为实现简洁、高效的 FP8 通用矩阵乘法(GEMM)而设计的库。它具备细粒度缩放功能,支持普通和混合专家(MoE)分组 GEMM。DeepGEMM使用 CUDA 编写,安装时无需预先编译,而是借助轻量级即时(JIT)模块在运行时对所有内核进行编译。



目前,DeepGEMM 仅支持 NVIDIA Hopper 张量核心。为解决 FP8 张量核心累积不精确的问题,它采用了 CUDA 核心两级累积(提升)的方法。虽然 DeepGEMM 借鉴了 CUTLASS 和 CuTe 的一些概念,但避免了对它们的模板或代数过度依赖。该库的设计十分简洁,仅包含一个核心内核函数,代码量约 300 行。这使得它成为学习 Hopper FP8 矩阵乘法及优化技术的优质且易于上手的资源。尽管 DeepGEMM 设计轻量化,但其性能足以与甚至超越经过专家调整的库。



DeepGEMM的创新:


  • Hopper TMA加速:利用Tensor Memory Accelerator实现更快的数据异步传输。

  • 全JIT设计:运行时编译内核,将矩阵形状等参数作为常量,显著提升小形状矩阵的性能。

  • 非对齐块大小:打破传统2的幂对齐限制,提升SM利用率。

  • FFMA指令交错:通过自定义脚本优化汇编代码,进一步提升计算并行性。



表现


DeepGEMM在搭载 NVCC 12.8 的 H800 上测试了 DeepSeek - V3/R1 推理过程中可能会用到的所有矩阵形状(包括预填充和解码,但未涉及张量并行性)。所有加速指标都是与基于CUTLASS 3.6的内部优化实现相比计算得出的。


需要说明的是,DeepGEMM 在部分矩阵形状上的表现欠佳。如果您对此感兴趣,欢迎提交优化PR。


密集模型的正常 GEMM



用于 MoE 模型的分组 GEMM(连续布局)



用于 MoE 模型的分组 GEMM(掩蔽布局)









请到「今天看啥」查看全文


推荐文章
健康养身  ·  拜年红包,大吉大利!
8 年前
画廊  ·  陈逸飞作品欣赏(79幅高清)
7 年前
有点自卑  ·  对付伪君子,不妨做个真小人
7 年前