0

0

DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法

雪夜

雪夜

发布时间:2025-04-23 14:24:02

|

679人浏览过

|

来源于php中文网

原创

deepseek开源周的第三天,deepgemm库被隆重推出。这是一个专注于fp8精度的通用矩阵乘法的高性能库,它不仅以极致性能著称,还保持了令人惊讶的代码简洁性。

DeepGEMM因其轻量级设计和出色性能在加速大模型计算方面脱颖而出。该库不仅支持常规的密集矩阵乘法,还特别针对混合专家模型(MoE)场景下的分组GEMM计算进行了优化,成为DeepSeek-V3/R1训练和推理的核心动力。

在技术实现上,DeepGEMM采用了细粒度缩放的FP8计算,在Hopper GPU上可达到惊人的1350+ TFLOPS。更值得注意的是,它的核心逻辑仅约300行代码,却能在大多数矩阵尺寸上超越专家调优的内核性能。

DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法DeepGEMM还具有无需预编译、完全即时(JIT)编译、无重度依赖等特点,使其既可作为生产环境中的高性能组件,也是学习现代GPU优化技术的理想教程。

矩阵乘法GEMM通用矩阵乘法 (GEMM) 是线性代数、机器学习、统计学和许多其他领域的常见算法。它提供了比上一个教程更有趣的权衡空间,因为有很多方法可以分解计算。这包括使用阻塞、内积、外积和脉动阵列技术。可以说,矩阵乘法是科学计算和深度学习中最广泛的运算符之一。

A \in \mathbb{R}^{n \times l},和

B \in \mathbb{R}^{l \times m},如果

C = AB,则

C \in \mathbb{R}^{n \times m},并且

C_{i,j} = \sum_{k=1}^{l} A_{i,k} B_{k,j}访问计算的元素

C_{i,j}如图所示。

DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法C_{x,y}在矩阵乘法中的过程。

为什么GEMM 是深度学习的核心GEMM(General Matrix Multiply,通用矩阵乘法)是深度学习神经网络优化中的一个关键函数。自1979年作为BLAS(Basic Linear Algebra Subprograms,基本线性代数子程序)库的一部分首次提出以来,GEMM就成为了科学计算和高效矩阵运算的核心工具。尽管许多人在开始深入研究神经网络优化时并不熟悉GEMM,但它却在深度学习的计算效率和能效提升中扮演着至关重要的角色。

GEMM的核心任务是执行矩阵乘法操作,这在神经网络的训练过程中频繁出现,尤其是在全连接层和卷积层中。神经网络的计算大多依赖于大量的矩阵乘法,因此优化这一操作就直接关系到网络的运行效率。在大规模神经网络中,如何提高矩阵乘法的计算速度,减少功耗,已成为研究的重点之一。

DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法为了更直观地理解GEMM的影响,我们可以参考贾扬清在其论文中的一张图表。该图表展示了在不同硬件平台上执行矩阵乘法时,GEMM优化带来的性能提升。通过高效实现GEMM,深度学习的计算资源可以被更充分地利用,从而显著提高训练和推理过程的速度,同时降低功耗。

DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法 这打破了使用 Alex Krizhevsky 的 Imagenet 架构进行图像识别的典型深度卷积神经网络的时间分配。所有以 fc(全连接)或 conv(卷积)开头的层都是使用 GEMM 实现的,几乎所有时间(GPU 版本的 95%,CPU 版本的 89%)都花在这些层上。

那么什么是 GEMM?它代表通用矩阵到矩阵乘法,它本质上就是按照字面意思来做,将两个输入矩阵相乘得到一个输出矩阵。它与在 3D 图形世界中习惯的矩阵运算的区别在于,它处理的矩阵通常非常大 。例如,典型网络中的单个层可能需要将 256 行、1,152 列的矩阵与 1,152 行、192 列的矩阵相乘,以产生 256 行、192 列的结果。简单来说,这需要 5700 万次(256 x 1,152,x 192)浮点运算,现代架构中可能会有数十个这样的层,所以我经常看到网络需要数十亿次 FLOP 来计算单个帧。

DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法全连接层全连接层是经典的神经网络,已经存在了几十年,最简单的方法可能是先了解一下 GEMM 是如何应用于全连接层的。全连接层的每个输出值都会查看输入层中的每个值,将它们全部乘以该输入索引对应的权重,然后将结果相加以获得其输出。就上图而言,它看起来像这样:

BlackBox AI
BlackBox AI

AI编程助手,智能对话问答助手

下载

DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法 有“k”个输入值,有“n”个神经元,每个神经元对每个输入值都有自己的一组学习权重。有“n”个输出值,每个神经元一个,通过对其权重和输入值进行点积计算得出。

卷积层使用 GEMM 作为卷积层并不是一个显而易见的选择。卷积层将其输入视为二维图像,每个像素都有多个通道,就像具有宽度、高度和深度的经典图像一样。不过,与过去处理的图像不同,通道数量可以达到数百个,而不仅仅是 RGB 或 RGBA!

卷积运算通过获取多个权重“核”并将它们应用于整个图像来产生输出。输入图像和单个核如下所示:

DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法 每个核都是另一个三维数字数组,其深度与输入图像相同,但宽度和高度要小得多,通常为 7×7。为了产生结果,将核应用于输入图像上的点网格。在应用核的每个点上,所有相应的输入值和权重都会相乘,然后相加以产生该点的单个输出值。以下是视觉效果:

DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法MoE 的矩阵运算Transformer 是一种基于注意力机制的深度学习模型,其核心包括多头自注意力(Multi-Head Self-Attention, MHSA)和前馈神经网络(Feed-Forward Network, FFN)。这些层的计算大量依赖 GEMM,例如:

多头自注意力:计算过程包括查询(Query)、键(Key)和值(Value)的矩阵乘法。例如,输入矩阵 X \in \mathbb{R}^{n \times d} 通过线性变换生成

Q, K, V \in \mathbb{R}^{n \times d_k},然后计算注意力得分

Attention(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V其中

QK^T 是一个 GEMM 操作。

前馈神经网络:FFN 通常包括两个线性层和非线性激活函数,如FFN(x) = \max(0, xW_1 + b_1)W_2 + b_2其中

W_1, W_2 的矩阵乘法也是 GEMM。

DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法对于 MoE(混合专家模型),其计算涉及多个专家网络的选择和组合。MoE 层通常包括一个门控网络(Gating Network)决定哪个专家处理输入,然后对专家输出进行加权求和。分组 GEMM 在这里尤为重要,例如,对于输入

X \in \mathbb{R}^{n \times d} 和专家权重

W_e \in \mathbb{R}^{d \times d_e},计算

Y_e = XW_e是分组 GEMM 的典型场景。DeepGEMM 的优化使得这种计算在 MoE 场景下更加高效。

DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1501

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

232

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

87

2025.10.17

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

409

2023.08.14

Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

2

2026.01.29

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

446

2026.01.28

包子漫画在线官方入口大全
包子漫画在线官方入口大全

本合集汇总了包子漫画2026最新官方在线观看入口,涵盖备用域名、正版无广告链接及多端适配地址,助你畅享12700+高清漫画资源。阅读专题下面的文章了解更多详细内容。

145

2026.01.28

ao3中文版官网地址大全
ao3中文版官网地址大全

AO3最新中文版官网入口合集,汇总2026年主站及国内优化镜像链接,支持简体中文界面、无广告阅读与多设备同步。阅读专题下面的文章了解更多详细内容。

258

2026.01.28

php怎么写接口教程
php怎么写接口教程

本合集涵盖PHP接口开发基础、RESTful API设计、数据交互与安全处理等实用教程,助你快速掌握PHP接口编写技巧。阅读专题下面的文章了解更多详细内容。

9

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4.3万人学习

Pandas 教程
Pandas 教程

共15课时 | 1.0万人学习

ASP 教程
ASP 教程

共34课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号