基于Transformer架构的大模型推理硬件加速器设计

news2024/12/27 13:14:11

概述

当前大模型的基础架构正在向 Transformer 结构收敛1,Transformer架构自谷歌2017年提出后比较稳定,因此针对Transformer的计算设计专用的ASIC加速器很有必要。

尤其是“Attention is All you Need”==》“Money is All you Need”,哈哈哈。。。

推理加速、推理硬件加速的研究范畴

推理加速是指通过网络结构优化、模型剪枝、量化等手段加快模型收敛,减小模型推理时间

硬件推理加速指通过对模型网络及计算定制化设计硬件电路,从而加速模型计算过程;但由于原始网络规模较大,精度较高,直接设计电路需要的晶体管规模和芯片面积较大,因此需要对模型进行压缩,在精度不丢失的前提下高效地设计硬件电路。

二者虽然都是加速模型的推理过程,但研究重心不一样,前者关注模型全局计算过程的减少,后者关注模型局部计算过程的加速。

专用加速ASIC

范益波@知乎:Vision Transformer低功耗硬件加速器

Sohu

2024年,6 月 26 日,美国新兴的芯片创业公司 Etched 发布其首款 AI 芯片——Sohu,该芯片只能运行Transformer模型。
Etched官网
Etched官网:创始团队宣言
澎湃新闻报道

Transformer架构的计算特征

TransFormer的权重数据分为4类,包括:多头注意力输入线性层权重(Q, K, V)、多头注意力输出线性层权重(O)、前馈神经网络第1层线性层权重(FFN1)和第2层线性层权重(FFN2)。

在这里插入图片描述

计算行为

输入位置编码向量与词嵌入相加

矩阵的加法操作,矩阵元素是浮点数。

自注力矩阵的计算

Q K T QK^T QKT的矩阵乘计算, d k \sqrt{d_k} dk 的根号运算,以及两个结果相除计算
再将结果进行softmax函数计算,包括乘法、求和、除法运算。

softmax操作

s o f t m a x ( Q K T d k ) softmax(\frac{QK^T}{\sqrt{d_{k}}}) softmax(dk QKT)

指数操作可能导致数值溢出问题

maximum subtraction trick[^5]可以把
在这里插入图片描述
转变为:
在这里插入图片描述
其中 x m a x x_{max} xmax x j x_j xj中的最大值

multi-Head Attention的conact和linear操作

残差求和操作

层归一化

平均数求和和除法操作
求方差操作
归一化处理(求差、除法等)

FFN的两级线性乘加运算

总体特征

矩阵乘占据着大部分的计算时间

如下图所示是LLama7B模型,batch_size=1,输入长度为128场景下各transformer操作在GPU上的耗时结果。
在这里插入图片描述

MHA具有较强的并行计算能力

大量的缓存以及访存操作

大模型的权重数据多,计算过程中产生大量的中间数据,许多非线性函数的计算数据间存在调用依赖,这些操作都需要硬件大量的缓存数据,因此LLM运算硬件需要延迟小、容量大的存储器件。
例如GPU平台的计算过程,将权重数据从显存(HBM)加载至on-chip的SRAM中,然后由SM读取并进行计算。计算结果再通过SRAM返回给显存。

序列长度增加会导致自注意力计算的占比增加

图片来源于文章2
在这里插入图片描述

模型压缩与优化

由于芯片面积和成本的限制,现阶段的大模型很难在一颗ASIC上部署,因此需要对模型进行压缩。
除了通用的模型量化和剪枝方法,对Transformer架构的模型有专用的优化方法。

网络剪枝

移除网络中权重接近零的连接剪掉,是网络稀疏化的一种手段。

数据量化

数据量化通过将高精度的
人工智能和机器学习入门

将数据精度从浮点型变成int,例如I-bert[6],这是一个int版本的BERT,文章[7]又基于I-bert做了专用硬件上的适配(3.4章节)。
GitHub: kssteven418 / I-BERT

张量拆分

算子融合

将必要的算子操作都融合在一起,灵活性低,但是性能更好,因为访存减少了。
例如将multi-head attention中的线性运算和非线性运算融合在一起。

硬件架构设计

稀疏注意力

稀疏注意力即让模型阈值低关联度的输入组合,并跳过注意力计算。该方法可以有效优化 O ( n 2 ) O(n^2) O(n2)的注意力算子,优化极长序列时的性能表现。
具体包括将计算中对最终结果影响不重要的数据查找,并近似为0,从而减少整体计算量。

  1. A3
    论文解析——A3: Accelerating Attention Mechanisms in Neural Networks with Approximation

  2. ELSA(ISCA’21)

  3. Sanger(MICRO’21)

  4. DOTA(ASPLOS’22)
    将输入采用低秩分解,通过低秩的近似完成系数法处理器

  5. 近似计算乘法器(ISSCC’22)

【论文解析】A 28nm 27.5TOPS/W Approximate-Computing-Based Transformer Processor with Asymptotic Sparsity…

  1. SpAtten(HPCA’21)

流水化的全Attention计算硬件加速

将加速器实现加速颗粒度不仅仅局限于矩阵运算、或其他非线性运算,将attention完整的计算通过流水化的方式实现。

临时存储硬件设计优化

对于专用加速器设计,通常会把权重、KV cache、Q、K、V矩阵等原数据的值存储到临时存储中,此时该存储的设计带宽、延迟等指标影响了整体计算的性能。

双缓冲可以使访存操作和计算执行操作重叠执行

乒乓策略等

参考文献


  1. AI云原生智能算力架构: AI智算及算力全产业链研究报告 2024 ↩︎

  2. DOTA: Detect and Omit Weak Attentions for Scalable Transformer Acceleration ↩︎

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

559. N 叉树的最大深度(递归法)

目录 一:题目: 二:代码: 三:结果: 一:题目: 给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N 叉树输入按层序遍历…

Android原生JobSchedulerContext内存泄漏导致设备重启的现象

一、现象:原生JobSchedulerContext内存泄漏占比 JobServiceContext内存泄露导致ServiceDispatcher也跟着一起内存堆积 二、现象日志: 内存泄漏的日志关键信息:ActivityManager: Unbind failed: could not find connection for android.app.LoadedApk$ServiceDispatcher$In…

聚星文社——Ai推文工具

聚星文社——Ai推文工具 聚星文社是一家提供AI推文工具的公司。他们的工具利用人工智能技术,能够自动生成高质量的推文内容。 聚星文社——Ai推文工具https://iimenvrieak.feishu.cn/docx/ZhRNdEWT6oGdCwxdhOPcdds7nof 这个工具可以为用户提供多种功能。首先&…

【Datawhale X 李宏毅苹果书 AI夏令营】《深度学习详解》Task1 打卡

文章目录 前言学习目标 一、机器学习二、案例学习三、隐藏任务隐藏任务①:1. **回归 (Regression)**2. **分类 (Classification)**3. **模型 (Model)**4. **特征 (Feature)**5. **超参数 (Hyperparameter)**6. **训练集 (Training Set)**7. **验证集 (Validation Se…

Seata(简单配置就能使用,含下载)

Seata参考资料和下载 Seata官网: Apache Seata Seata中文开发文档: Seata 是什么? | Apache Seata Seata下载地址: 这里提供一个最新版的 seata-server-2.0.0.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 Seata的配置 第一步解压Seat…

Vue笔记总结(Xmind格式):第一天

Xmind鸟瞰图: 简单文字总结: vue知识总结: vue的优点: 1.体积小 2.更高的运行效率 3.双向数据绑定 4.生态丰富,学习成本低 vue指令: 1.指令:带有v-前缀的特殊属性 2…

基于SSM的学生管理系统的设计与实现(包含源码、sql脚本、导入视频教程)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的学生管理系统2拥有三种角色 管理员:学生管理、教师管理、课程管理、个人信息管理等教师:添加课程、录入成绩、查看选课名单和结课、个人信息等学生&…

关于Linux sudo授权的那点事

sudo可以让我们以其他用户的身份执行命令,而只需要自己的密码(甚至不需要密码)。这比su切换用户需要目标用户的密码要方便。 从授权角度来审视,sudo比su的授权粒度要细很多,su属于大放权,例如:s…

STM32——PWR电源控制的低功耗模式

1、理论知识 本节主要学习配置低功耗模式:防止在空闲时候耗电(关闭/唤醒哪些硬件很重要) 虽然STM32外部需要使用3.3V供电,但内部核心电路CPU、外设和存储器使用1.8V供电即可,这3者需要与外界交流时才需要3.3V供电 从上…

第一课,认识C++,和计算机对话

一,编程是什么?C是什么? 编程是编写代码来实现需要的功能,C就是用来编程的语言,计算机没法直接听懂人类的语言,需要用编程语言C来和计算机交流。 二,编程能做哪些事情? ①让机器人…

openwrt系统通过ZeroTier插件实现远程管理

OpenWrt是一款开源的路由器系统,可以自由安装各种插件,但由于是非商业化的系统,没有统一的云管理平台,所以远程管理相对麻烦,需要借助于第三方服务器。当然如果家里宽带有独立公网ip,还可以通过ddns实现远程…

只用一个 HTML 元素可以写出多少形状?——不规则图形篇(序)

上一篇章,我们的不规则图形篇发了之后,我一个朋友说我“良心发现”了,不提供新的知识点了,而是实实在在的一些案例直接丢给大家。 的确,前面的每一个篇章,我都有引入新的知识点。 规划这个系列&#xff0…

某系统接入网关任意文件读取漏洞

当你征服一座山峰时,它已经在你脚下了,你必须再找一座山峰去征服,否则,你只有下山,走下坡路了 漏洞描述 某系统接入网关存在任意文件读取漏洞,攻击者通过构造请求可以读取服务器任意文件 漏洞复现 访问…

“智能安全新防线:深信达软加密狗的全面防护功能解析“

在智能安全设备领域,深信达的CBS赛博锁以其独特的软加密狗技术,为设备提供了全面的安全保障。CBS赛博锁通过以下几个核心功能来保障智能设备的安全性: 1. **许可管理**:CBS赛博锁通过硬件唯一身份ID和许可授权管理,确保…

云匹面粉直供小程序的设计

管理员账户功能包括:系统首页,个人中心,用户信息管理,种植基地管理,云匹小麦采收管理,云匹面粉加工,面粉分类管理,云匹面粉管理,系统管理 微信端账号功能包括&#xff1…

Redis数据的持久化是如何做的?(面试版)

在Redis中提供了两种数据持久化的方式:RDB、AOF RDB快照 RDB全称Redis Database Backup file(Redis快照),也被叫做Redis数据快照。简单来说就是创建快照来获取内存中某个时间点上的副本。当Redis实例故障重启后,从磁盘读取快照文件&#xf…

[java][代码]使用java在mongodb上传下载文件

建立java项目新建lib包&#xff0c;导入jar包 3.链接mongdo数据库代码 /** * 1.获取连接 * 2.上传文件 * 3.下载文件 * 4.删除文件 * */ public static GridFS GetMongoGridFS(){ List<ServerAddress> adds new ArrayList<>(); ServerAddress serverAddress new…

根据数据库设计开发一套通用的电子商务平台

目录 案例 【题目】 【问题 1】(9 分) 【问题 2】(9 分) 【问题 3】(7 分) 【答案】 【问题 1】解析 【问题 2】解析 【问题 3】解析 相关推荐 案例 阅读以下关于数据库设计的叙述&#xff0c;在答题纸上回答问题 1 至问题 3。 【题目】 某制造企业为拓展网上销售业…

如何从零开始在 Vue 3 项目中引入 Element Plus

如果想在 Vite 生成的 Vue 3 下项目中&#xff0c;从头开始使用 Element Plus UI 库&#xff0c;并成功展示到页面&#xff0c;可以按照如下步骤操作&#xff1a; 1. 创建 Vue 3 项目&#xff08;如果还没有&#xff09; 使用 vite 创建 npm create vitelatest my-vue-app -…

vue3 内置的特殊属性ref

Vue 3 中的数据绑定是通过模板语法实现的。开发者可以在模板中使用特殊的语法来绑定数据&#xff0c;例如使用双花括号 {{}} 来显示数据&#xff0c;或者使用 v-bind 指令来绑定属性。 当数据发生变化时&#xff0c;Vue 会自动更新绑定的数据在模板中的显示&#xff0c;实现页面…