DeepSeek开源周,第三弹再次来袭,DeepGEMM

embedded/2025/2/28 20:48:01/

图片


    在大型模型推理中,矩阵乘法(GEMM)是计算的核心瓶颈。DeepGEMM 应运而生——一款专为 FP8精度矩阵乘法 设计的轻量级CUDA库,由深度求索(DeepSeek)团队开源。它凭借极简代码(核心仅300行)、 无编译安装 的特性,以及针对Hopper架构的极致优化,性能超越主流库,为大模型推理提速高达 2.7倍



核心亮点

  1. 性能王者

    • FP8精度加速

              专为NVIDIA Hopper张量核心设计,支持普通GEMM和MoE分组GEMM,计算效率突破 1358 TFLOPS,带宽利用率高达 2668 GB/s

    • 速度碾压

      相比CUTLASS 3.6优化版本,在典型推理场景(如M=64, N=2112, K=7168)下速度提升 2.7倍,MoE场景下提升 1.2倍

  2. 极简设计

    • 轻量核心

      仅需1个核心函数,代码量约300行,学习FP8矩阵乘法优化的绝佳范本。

    • 零编译依赖

      基于JIT(即时编译)实现,安装即用,无需复杂环境配置。

  3. Hopper架构深度优化

    • TMA硬件加速

      利用Hopper的Tensor Memory Accelerator实现异步数据搬运,减少等待开销。

    • 创新指令调度

      通过FFMA指令交织、非对齐分块等黑科技,最大化SM利用率,解决小矩阵计算效率瓶颈。



适用场景

  • 大模型推理

    支持预填充(Prefilling)和解码(Decoding)阶段,适配Transformer和MoE结构。

  • MoE模型优化

    提供 连续布局(训练/预填充)和 掩码布局(解码)两种分组GEMM,灵活应对动态Token分配。



技术优势

  1. 持久化线程束 specialization

    异步重叠数据搬运、张量核心计算与CUDA核心提升,实现计算效率最大化。

  2. JIT极致优化

    矩阵形状、分块大小等参数编译期固定,寄存器占用更少,性能逼近手写汇编。

  3. 自适应调度器

    智能选择分块策略、流水线阶段和TMA集群规模,无需手动调参。



快速上手

 
# 克隆仓库(需递归拉取子模块)  
git clone --recursive git@github.com:deepseek-ai/DeepGEMM.git  
# 安装依赖  
python setup.py develop  
# 验证安装  
python tests/test_jit.py  

环境要求

  • GPU:NVIDIA Hopper架构(如H100)

  • CUDA 12.3+(推荐12.8)

  • Python 3.8+、PyTorch 2.1+


使用示例

 

import deep_gemm  
# 普通FP8 GEMM  
deep_gemm.gemm_fp8_fp8_bf16_nt(lhs, rhs, out, scale_lhs, scale_rhs)  
# MoE连续布局分组GEMM  
deep_gemm.m_grouped_gemm_fp8_fp8_bf16_nt_contiguous(...)  


🔗 项目地址:

https://github.com/deepseek-ai/DeepGEMM


http://www.ppmy.cn/embedded/168878.html

相关文章

解密ZAB协议:Zookeeper一致性的核心实现

一致性问题 设计一个分布式系统必定会遇到一个问题—— 因为分区容忍性(partition tolerance)的存在,就必定要求我们需要在系统可用性(availability)和数据一致性(consistency)中做出权衡 。这…

无人机 CAAC 执照考取全攻略

随着科技发展,无人机已在数十个行业领域中逐步替代人力劳动,并得到广泛的应用,各行业对于无人机专业人才的需求呈现指数级增长,行业薪资水平也在快速提升。CAAC无人机执照更成了飞手是否具备从业资格的“敲门砖”。 中国民航&…

昼夜掘金者(BTC)交易的智能领航者

在瞬息万变的比特币(BTC)交易领域,“昼夜掘金者” 智能交易策略横空出世,为投资者指明方向。 智能交易,双重模式捕捉机遇 “昼夜掘金者” 支持随机与挂单做单。随机做单如灵活猎手,迅速抓住市场闪现的机会&…

NGINX配置TCP负载均衡

前言 之前本人做项目需要用到nginx的tcp负载均衡,这里是当时配置做的笔记;欢迎收藏 关注,本人将会持续更新 文章目录 配置Nginx的负载均衡 配置Nginx的负载均衡 nginx编译安装需要先安装pcre、openssl、zlib等库,也可以直接编译…

【JavaEE进阶】Spring Boot配置文件

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗 如有错误,欢迎指出~ 目录 SpringBoot配置⽂件 举例: 通过配置文件修改端口号 配置⽂件的格式 properties基本语法 读取配置⽂件 properties配置文件的缺点 yml配置⽂件 yml基本语法 yml和proper…

Spring Boot文件上传

5.3.1文件上传 开发Web应用时,文件上传是很常见的一个需求浏览器通过表单形式将文件以流的形式传递给服务器,服务器再对上传的数据解析处理。下面我们通过一个案例讲解如何使用SpringBoot实现文件上传,具体步骤如下。 1.编写文件上传的表单…

四、 Spring Framework基础:Spring MVC

深入解析 Spring MVC:请求映射、数据绑定与验证、视图解析与模板引擎 Spring MVC 是 Spring 框架中用于构建 Web 应用的核心模块,它通过请求映射、数据绑定与验证、视图解析等功能,极大地简化了 Web 开发的复杂性。本文将深入探讨 Spring MV…

useLayoutEffect和useEffect有什么区别?

在 React 中,useEffect 和 useLayoutEffect 是两个用于处理副作用的 Hook。虽然它们在用法上相似,但在执行时间和适用场景上有显著的区别。以下是对这两个 Hook 的详细比较和解释。 1. 基本概念 useEffect 定义:useEffect 是一个 Hook&…