论文解析——Full Stack Optimization of Transformer Inference: a Survey

作者及发刊详情

摘要

正文

主要工作贡献

这篇文章的贡献主要有两部分:

  1. 分析Transformer的特征,调查高效transformer推理的方法
  2. 通过应用方法学展现一个DNN加速器生成器Gemmini的case研究

1)分析和解析Transformer架构的运行时特性和瓶颈

2)Transformer推理的硬件架构

3)对特定Transformer架构的优化策略,比如剪枝和量化

4)Transformer架构下操作的映射和调度,以及相关挑战

5)通过自动化的神经架构搜索过程,设计和调整transformer架构,使其硬件更加高效

Transformer模型架构和性能瓶颈

transformer的基本架构

Transformer架构包含两个模块:MHA和FFN
在这里插入图片描述Transformer架构的参数如下:
在这里插入图片描述

对Transformer架构的输入序列包含l个token,每个值都由一个d维度的向量表示,构成了 d ∗ l d*l dl的矩阵。token可以是一个词或一个句子片段。

MHA的计算特征

MHA有三种不同的权重 W Q W_Q WQ W K W_K WK W V W_V WV,具体执行流如图1所示,这些权重将会产生三种不同的激活,每种激活会被分成h个块(chunk,有隐藏维度d/h),因此这些块都被分成了h个不同的注意力头。q块和k块沿着隐藏层相乘,生成 l ∗ l l*l ll 大小的激活矩阵,这些激活矩阵经过softmax操作,与v块相乘,得到attention头的激活,然后h个head组合生成结果 W o u t W_{out} Wout。每阶段的计算结果如Table2所示。最终线性层的输出经过残差链接和层归一化生成MHA模块的输出。

MHA总共有6个线性操作,其中4个是权重到激活的矩阵乘( W Q W_Q WQ W K W_K WK W V W_V WV W o u t W_{out} Wout),另外两个是激活到激活的矩阵乘( q u e r y ∗ k e y query*key querykey a t t e n t i o n . s c o r e ∗ v a l u e attention.score*value attention.scorevalue),本文将前者称为投影(projection),后者称为激活到激活矩阵乘。

FFN包含两个线性层操作, d F F N d_FFN dFFN通常是 d d d的四倍,在两个线性层间有一个非线性层。

在这里插入图片描述

非线性操作的特征

非线性操作,包括Softmax, LayerNorm, 和 GELU需要片外计算的支持,虽然全部操作中占据了较小部分,但比矩阵乘更具挑战,如果处理不当将会产生额外的开销。

在有效利用临时内存和高效计算方面提出了挑战

需要在运行时传递所有的输入值,这些值都会保存在临时存储中。
比如softmax操作包括求指数操作、跨序列长维度的求和、每个指数向除以求和结果的归一化操作,需要解决指数溢出问题。
计算LayerNorm函数还需要跨隐藏维度多次传递整个输入值,先计算平均值,再计算标准差,然后再使用层归一化

encoder和decoder架构

encoder可以并行处理输入序列
encoder-only适合用于自然语言理解任务(sentiment analysis、sentence similarity analysis)
decoder一次只能推理出一个token,适合用于生成式任务
在这里插入图片描述

产生token的共同优化方法:在后续的迭代中,缓存和复用之前生成的token中间的K和V值

生成的token后继续传入到decoder的输入,复用可以节省计算时间。

模型的算力密度

矩阵乘在encoder-only和decoder-only中消耗了99%的FLOPS。
在这里插入图片描述在这里插入图片描述

模型优化

硬件设计

参考文献

这是一篇关于Transformer推理的全栈技术综述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/784572.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人员定位系统的功能,你知道多少呢?

在此前的文章中,说到了人员定位系统用于化工厂定位这一用途来完善工厂管理,但同时,基于人员定位系统的强大功能,该系统的应用范围也要宽范的多,那么,本篇文章就来为大家介绍一下吧。 人员定位系统的功能简介…

阿里云存储的降本增效与运维

小浩负责公司存储架构层,需要确保存储层不会成为公司业务系统的性能瓶颈,让数据读写达到最佳性能。那么小浩可以从哪些方面着手优化性能呢?他继续求助系统架构师大雷。 小浩:雷哥,PD反馈公司系统最近响应很慢&#xff…

电子设备常用的胶水有哪些?

目录 1、502胶水 2、703胶水 3、704胶水 4、AB胶 5、红胶 6、Underfill 7、导电胶 8、UV胶 9、热熔胶 10、环氧树脂胶 11、硅酮胶 12、聚氨酯胶 13、丙烯酸胶 14、丁基胶 1、502胶水 502胶水,也被称为瞬间胶或快干胶,是一种非常常见的粘合…

加密与安全_密钥体系的三个核心目标之不可否认性解决方案

文章目录 Pre概述不可否认性数字签名(Digital Signature)证书是什么证书使用流程 PKICA证书层级多级证书证书链是如何完成认证的? 其他疑问1. Alice能直接获取Bob的公钥,是否还需要证书?2. 为什么即使能直接获取公钥也…

2-28 基于matlab提取出频域和时域信号的29个特征

基于matlab提取出频域和时域信号的29个特征,主运行文件feature_extraction,fre_statistical_compute和time_statistical_compute分别提取频域和时域的特征,生成的29个特征保存在生成的feature矩阵中。程序已调通,可直接运行。 2-2…

一键高效处理,批量缩放PNG图片,按比例轻松调整,高效工作从此开始!

在数字时代,图片已经成为我们生活中不可或缺的一部分。无论是工作汇报、项目展示还是日常分享,图片都扮演着至关重要的角色。然而,当面对大量需要调整尺寸的PNG图片时,你是否曾经感到过困扰和繁琐? 第一步,…

ViewPager

作用 实现翻页的效果。 1、在activity_main.xml中创建ViewPager <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"…

【Java14】构造器

Java中的构造器在创建对象&#xff08;实例&#xff09;的时候执行初始化。Java类必须包含一个或一个以上的构造器。 Java中的构造器类似C中的构造函数。 Java中对象&#xff08;object&#xff09;的默认初始化规则是&#xff1a; 数值型变量初始化为0&#xff1b;布尔型变量…

为什么KV Cache只需缓存K矩阵和V矩阵,无需缓存Q矩阵?

大家都知道大模型是通过语言序列预测下一个词的概率。假定{ x 1 x_1 x1​&#xff0c; x 2 x_2 x2​&#xff0c; x 3 x_3 x3​&#xff0c;…&#xff0c; x n − 1 x_{n-1} xn−1​}为已知序列&#xff0c;其中 x 1 x_1 x1​&#xff0c; x 2 x_2 x2​&#xff0c; x 3 x_3 x…

EAI四个层次服务-系统架构师(二十六)

1、&#xff08;重点&#xff09;系统应用集成提供了4个不同层次服务&#xff0c;最上层服务是&#xff08;&#xff09;服务。 解析: EAI&#xff08;Enterprise Application Integration&#xff09;系统应用集成&#xff0c;相关概念。 实施EAI必须保证&#xff1a;应用程…

2024年信息素养大赛图形化编程小低组复赛真题-附答案 6547网

2024年全国青少年信息素养大赛图形化编程小低组复赛真题 题目总数&#xff1a;6 总分数&#xff1a;100 第1部分 第 1 题 问答题 【编程实现】点击小绿旗&#xff0c;实现将鱼的所有造型印到舞台区 【具体要求】 1. 将鱼显示出来 全部擦除所有内容 2. 将鱼的造型设…

202488读书笔记|《365日创意文案》——无聊的 到底是这世间, 还是自己?懂得忘却的人才能前进

202488读书笔记|《365日创意文案》——无聊的 到底是这世间&#xff0c; 还是自己&#xff1f;懂得忘却的人才能前进 1月2月3月4月5月6月7月8月9月10月11月12月 《365日创意文案》WRITES PUBLISHING&#xff0c;一些日常&#xff0c;是烟火&#xff0c;也是幸福的印记。 当下也…

二次元转向SLG,B站游戏的破圈之困

文 | 螳螂观察 作者 | 夏至 2023年是B站游戏的滑铁卢&#xff0c;尽管这年B站的游戏营收还有40多亿&#xff0c;但相比去年大幅下降了20%&#xff0c;整整少了10亿&#xff0c;这是过去5年来的最大跌幅&#xff0c;也是陈睿接管B站游戏业务一年以来&#xff0c;在鼻子上碰的第…

超详细版阿里云控制台环境配置+数据库配置

一、登录阿里云控制台 登录阿里云控制台&#xff0c;找到实例&#xff0c;切到阿里云服务器所在地址 &#x1f36d;不知道自己的服务器地址在哪边也没有关系&#xff0c;随便选择一个&#xff0c;查询不到记录的话会有以下提示&#xff0c;可以根据提示进行切换&#xff08;适…

基于docker的prometheus+grafana+altermanager+prometheus-webhook-dingtalk钉钉报警

一、各软件功能简介 prometheus&#xff1a;Prometheus(是由go语言(golang)开发)是一套开源的监控&报警&时间序列数 据库的组合。主要优点&#xff1a;外部依赖安装使用超简单、系统集成 多等 grafana&#xff1a;Grafana 是一款采用 go 语言编写的开源应用&#xff0…

APP明暗主题设置

1.preference.xml 增加一个暗色主题 SwitchPreference 2.每个 Activity 的 setContentView 前面增加 setTheme SharedPreferences sharedPreferences PreferenceManager.getDefaultSharedPreferences(this); if (sharedPreferences.getBoolean("switch_dark_theme"…

uniapp-小程序获取用户位置

1. 需要在微信公众平台进行接口的申请。选择自己需要用的接口。 2. 在app.json文件中配置permission和requiredPrivateInfos。requiredPrivateInfos里面是你需要使用的接口。 3. 配置完成后&#xff0c;就可以使用了。 相关获取位置API的链接 4. 如果要获取当前位置到某一个指…

电商数据仓库

目录 1.数据仓库的数据来源为业务数据库&#xff08;mysql&#xff09; 初始化脚本 2.通过sqoop将mysql中的业务数据导入到大数据平台&#xff08;hive&#xff09; 在hive中建立映射的数据库 导入数据 3.通过hive进行数据计算和数据分析 形成数据报表 补全用户信息表中的…

DNS知识点

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 ​ 目录 一、DNS概念 二hosts 文件 DNS优缺点 三客户端域名解析顺序(优先级) 四原…

数据结构--堆,堆排序

1.树概念及结构 1.1树的概念 树是一种 非线性 的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的 。 有一个 特殊的结…