CN116167419A - 一种兼容N:M稀疏的Transformer加速器的架构及加速方法 - Google Patents
一种兼容N:M稀疏的Transformer加速器的架构及加速方法 Download PDFInfo
- Publication number
- CN116167419A CN116167419A CN202111386001.0A CN202111386001A CN116167419A CN 116167419 A CN116167419 A CN 116167419A CN 202111386001 A CN202111386001 A CN 202111386001A CN 116167419 A CN116167419 A CN 116167419A
- Authority
- CN
- China
- Prior art keywords
- module
- matrix multiplication
- calculation
- memory
- softmax
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000001133 acceleration Effects 0.000 title claims abstract description 19
- 239000011159 matrix material Substances 0.000 claims abstract description 189
- 238000004364 calculation method Methods 0.000 claims abstract description 144
- 230000004913 activation Effects 0.000 claims abstract description 36
- 230000008707 rearrangement Effects 0.000 claims abstract description 28
- 230000006870 function Effects 0.000 claims description 47
- 238000009825 accumulation Methods 0.000 claims description 12
- 238000010606 normalization Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims description 6
- 238000003491 array Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Biophysics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Neurology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
本申请涉及人工智能算法硬件加速技术领域,提供一种兼容N:M稀疏的Transformer加速器的架构及加速方法,Transformer加速器的架构包括控制单元、储存单元和计算单元;计算单元包括多模兼容矩阵乘法计算模块、矢量计算模块、重排模块、Softmax计算模块。在实际应用中,多模兼容矩阵乘法计算模块负责Transformer模型中运算量密集的矩阵乘法的计算,根据控制信号动态配置,执行两个稠密矩阵的矩阵乘法计算,或者执行单个N:M结构化稀疏矩阵与单个稠密矩阵的矩阵乘法计算;Softmax计算模块负责计算Transformer模型中的Softmax算子,矢量计算模块用于累加多模兼容矩阵乘法计算模块的运算结果,并将累加的运算结果发送至重排模块;重排模块用于对累加的运算结果进行重排,并存储至中间数据存储器或激活存储器。
Description
技术领域
本申请涉及人工智能算法硬件加速技术领域,尤其涉及一种兼容N:M稀疏的Transformer加速器的架构及加速方法。
背景技术
目前,基于Transformer的深度神经网络模型(以下简称Transformer模型)已被广泛应用在机器翻译、语音识别、价格预测、自然语言处理或图像处理等技术领域,由于Transformer模型计算能力强,能够适用于计算量大、运算复杂的应用场景。
但是,Transformer模型会产生庞大的计算量以及参数量,故Transformer模型在运行过程中需要占用大量内存,需要消耗超高算力,从而导致Transformer模型无法直接部署在嵌入式设备上,极大的限制了Transformer模型的应用场景。
为了实现Transformer模型的高效部署,现有技术中提出一种加速Transformer模型中多头注意力模块以及前馈网络模块的计算架构,提升了Transformer的推理效率,但是该计算架构并不支持稀疏的Transformer模型推理,因此阻碍了性能的进一步提升,又或者,现有技术中还提出一种针对Transformer的模型进行压缩方案,并达到了较高的模型压缩率。但是,以上两种方案的架构并没有解决因稀疏而带来的负载不均衡的问题,导致计算架构实际的计算利用率相对较低。
发明内容
为了实现Transformer模型的高效部署,且解决因稀疏而带来的负载不均衡的问题,导致计算架构实际的计算利用率相对较低的问题,本申请实施例提供一种兼容N:M稀疏的Transformer加速器的架构及加速方法。
本申请实施例第一方面提供一种兼容N:M稀疏的Transformer加速器的架构;
所述Transformer加速器的架构包括控制单元、储存单元和计算单元;
控制单元,用于获取外部软件端的配置信息,以及外部软件端的运算任务,并根据所述运算任务,生成控制信号动态配置,以及,根据控制信号动态配置对加速器的架构的寄存器进行配置,并控制计算单元和存储单元的运行;
计算单元,包括多模兼容矩阵乘法计算模块、矢量计算模块、重排模块、Softmax计算模块;
储存单元,包括权重存储器、激活函数存储器和中间数据存储器;
所述多模兼容矩阵乘法计算模块,用于根据控制信号动态配置,执行两个稠密矩阵的矩阵乘法计算,或者,执行单个N:M结构化稀疏矩阵与单个稠密矩阵的矩阵乘法计算
Softmax计算模块,用于计算Transformer模型中的Softmax算子;
矢量计算模块,用于累加所述多模兼容矩阵乘法计算模块的运算结果,并将累加的运算结果发送至重排模块;
重排模块,用于对所述累加的运算结果进行重排,并存储至中间数据存储器或激活存储器;
权重存储器,用于获取外部存储器上存储的权重,并将权重输入至所述多模兼容矩阵乘法计算模块;
激活函数存储器,用于获取外部存储器上存储的激活函数;以及存储计算单元输出的计算结果,并将所述计算结果传输到外部存储器上;
中间数据存储器,存储计算单元产生的中间数据。
在一种实现方式中,所述控制单元包括总控制器、Softmax控制器、地址生成器和矩阵乘法控制器;
总控制器,用于获取外部软件端的配置信息,以及外部软件端的运算任务,并将运算任务分配至Softmax控制器、地址生成器和矩阵乘法控制器;
矩阵乘法控制器,用于控制所述多模兼容矩阵乘法计算模块进行矩阵运算任务;
Softmax控制器,用于控制Softmax模块进行Softmax算子运算任务;
地址生成器,用于生成访存/写入数据的存储地址。
在一种实现方式中,所述多模兼容矩阵乘法计算模块包括8个并行的8×8的二维计算阵列,单个二维计算阵列包括累加器和非零元素选择器,以及设置在输出端的多个多路选择器和寄存器;
非零元素选择器,用于选择非零权重对应的激活元素;
所述累加器用于对输入的16比特权重和16比特激活函数执行乘法运算后,并将运算获得的结果与存储在计算单元内部的局部结果进行累加。
在一种实现方式中,所述Softmax计算模块包括ex指数函数运算器、数据缓冲器、累加树模块和除法单元模块;
所述数据缓冲器和累加树模块均设置在所述ex指数函数运算器和除法单元模块之间;
ex指数函数运算器,用于对输入数据进行分割;
数据缓冲器,用于暂存ex指数函数运算器的分割结果;
累加树模块,用于对ex指数函数运算器的分割结果进行求和;
除法单元模块,用于对数据缓冲器暂存的ex指数函数的分割结果与累加树模块的求和结果进行除法运算。
在一种实现方式中,所述除法单元模块包括一个减法器、比较器以及移位器组成;多个除法单元模块通过流水线级联。
本申请第二方面还提供一种兼容N:M稀疏的Transformer加速器的加速方法,所述一种兼容N:M稀疏的Transformer加速器的加速方法采用本申请第一方面提供的兼容N:M稀疏的Transformer加速器的架构,对于本申请实施例第二方面未公开的细节,请参见本申请第一方面的技术方案。
一种兼容N:M稀疏的Transformer加速器的加速方法,包括:
S1,控制单元获取外部软件端加载的配置信息及运算任务,并根据运算任务生成控制信号动态配置,以及根据控制信号动态配置对加速器的架构的寄存器进行配置,并控制计算单元和存储单元的运行;
S2,若运算任务为多头注意力模块运算,则配置多头注意模块相关寄存器,则执行步骤S21至步骤S25;
S21,控制单元激活地址生成器,权重存储器从外部存储器存储获取WQ权重数据,总控制器获取完成层归一化计算的输入数据X;
S22,权重存储器从外部存储器存储获取下个阶段计算所需的WK权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WQ;
S23,权重存储器从外部存储器存储获取下个阶段所需的WV权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WK得到矩阵K,以及,执行稠密矩阵乘法S=Q·KT;
S24,权重存储器从外部存储器存储获取下个阶段所需的WO权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WV得到矩阵V,将矩阵V依次送进矢量计算模块,重排模块,然后重排后的结果写回到中间数据存储区,Softmax计算模块对矩阵S进行Softmax计算得到矩阵S′;
S25,多模兼容矩阵乘法计算模块执行稠密矩阵乘法S′·V得到矩阵Z,以及,执行稀疏矩阵乘法Z·WO;
S3,若运算任务为前馈网络模块运算,则配置前馈网络模块相关寄存器,则执行步骤S31至步骤S33;
S31,总控制器激活地址生成器,权重存储器从外部存储器存储获取WF1权重数据,总控制器获取完成层归一化计算的输入数据;
S32,权重存储器从外部存储器存储获取下个阶段计算所需的WF2权重数据,外部激活数据写入激活函数存储器相应的地址上,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WF1,以及,矢量计算模块对X·WF2完成激活函数ReLU计算;
S33,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WF2,以及,矢量计算模块对X·WF2完成激活函数ReLU计算。
由以上技术方案可知,本申请提供一种兼容N:M稀疏的Transformer加速器的架构及加速方法,所述Transformer加速器的架构包括控制单元、储存单元和计算单元;控制单元用于获取外部软件端的配置信息,以及外部软件端的运算任务,并根据所述运算任务,生成控制信号动态配置,以及,根据控制信号动态配置对加速器的架构的寄存器进行配置,并控制计算单元和存储单元的运行;计算单元,包括多模兼容矩阵乘法计算模块、矢量计算模块、重排模块、Softmax计算模块;储存单元包括权重存储器、激活函数存储器和中间数据存储器。
在实际应用过程中,所述多模兼容矩阵乘法计算模块负责Transformer模型中运算量密集的矩阵乘法的计算,根据控制信号动态配置,既可执行两个稠密矩阵的矩阵乘法计算,也可执行单个N:M结构化稀疏矩阵与单个稠密矩阵的矩阵乘法计算;所述灵活的Softmax计算模块负责计算Transformer模型中的Softmax算子,所述矢量计算模块负责累加、ReLU等激活函数的操作,用于累加所述多模兼容矩阵乘法计算模块的运算结果,并将累加的运算结果发送至重排模块;所述重排模块用于对所述累加的运算结果进行重排,并存储至中间数据存储器或激活存储器。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种兼容N:M稀疏的Transformer加速器的架构的整体结构示意图;
图2为本申请实施例提供的提供的多模兼容矩阵乘法计算模块的结构示意图;
图3为本申请实施例提供的提供的单个二维计算阵列的结构示意图;
图4为本申请实施例提供的多模兼容矩阵乘法计算模块计算稠密矩阵的过程示意图;
图5为本申请实施例提供的多模兼容矩阵乘法计算模块计算稀疏矩阵的过程示意图;
图6为本申请实施例提供的Softmax计算模块的结构示意图;
图7为本申请实施例提供的多头注意力模块计算和前馈网络模块计算的时序图;
图8为本申请实施例提供的一种兼容N:M稀疏的Transformer加速器的加速方法的流程示意图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。
为了实现Transformer模型的高效部署,且解决因稀疏而带来的负载不均衡的问题,导致计算架构实际的计算利用率相对较低的问题,本申请实施例提供一种兼容N:M稀疏的Transformer加速器的架构及加速方法。
参见图1,本申请实施例第一方面提供一种兼容N:M稀疏的Transformer加速器的架构,所述Transformer加速器的架构包括控制单元、储存单元和计算单元。
所述控制单元包括总控制器、Softmax控制器、地址生成器和矩阵乘法控制器。
所述总控制器用于获取外部软件端的配置信息,以及外部软件端的运算任务,并根据所述运算任务,生成控制信号动态配置,根据控制信号动态配置对加速器的架构的寄存器进行配置,并将算任务分配至Softmax控制器、地址生成器和矩阵乘法控制器,矩阵乘法控制器用于控制计算单元的多模兼容矩阵乘法计算模块进行矩阵运算任务,所述Softmax控制器用于控制计算单元的Softmax模块进行Softmax算子运算任务,所述地址生成器,用于生成访存/写入数据的存储地址,从而控制储存单元。
所述计算单元包括多模兼容矩阵乘法计算模块、矢量计算模块、重排模块、Softmax计算模块;所述储存单元包括权重存储器、激活函数存储器和中间数据存储器。
其中,所述多模兼容矩阵乘法计算模块负责Transformer模型中运算量密集的矩阵乘法的计算,根据控制信号动态配置,既可执行两个稠密矩阵的矩阵乘法计算,也可执行单个N:M结构化稀疏矩阵与单个稠密矩阵的矩阵乘法计算;所述灵活的Softmax计算模块负责计算Transformer模型中的Softmax算子,所述矢量计算模块负责累加、ReLU等激活函数的操作,用于累加所述多模兼容矩阵乘法计算模块的运算结果,并将累加的运算结果发送至重排模块;所述重排模块用于对所述累加的运算结果进行重排,并存储至中间数据存储器或激活存储器。
储存单元分为三个子模块,分别负责权重、激活数据以及中间数据的存储,具体为,所述权重存储器用于获取外部存储器上存储的权重,并将权重输入至所述多模兼容矩阵乘法计算模块;所述激活函数存储器用于获取外部存储器上存储的激活函数;以及存储计算单元输出的计算结果,并将所述计算结果传输到外部存储器上;所述中间数据存储器存储计算单元产生的中间数据。
参见图2,为本申请实施例提供的提供的多模兼容矩阵乘法计算模块的结构示意图,所述多模兼容矩阵乘法计算模块包括8个并行的8×8的二维计算阵列,单个二维计算阵列通过控制单元的配置,可以执行稠密矩阵乘法的运算,也可以执行稀疏矩阵乘法的运算。其多模运算兼容的底层计算单元如图3所示,单个二维计算阵列包括一个累加器、一个非零元素选择器,以及多个多路选择器和寄存器。累加器接受两个16比特的输入,首先执行乘法运算,然后得到32比特的乘法结果,并将得到的乘法结果与存储在计算单元内部的局部结果进行累加,得到累加的输出结果。非零元素选择器,只会在稀疏矩阵乘法的计算模式下被激活,用于选择非零权重对应的激活元素进行计算。
参见图4,为本申请实施例提供的多模兼容矩阵乘法计算模块计算稠密矩阵的过程示意图,参见图5,为本申请实施例提供的多模兼容矩阵乘法计算模块计算稀疏矩阵的过程示意图。
在稠密矩阵计算模式下,激活数据从多模兼容矩阵乘法计算模块的行方向送入,权重数据从多模兼容矩阵乘法计算模块的列方向送入块,每个周期,各送进8×8个计算数据,在稀疏矩阵计算模式下,激活数据与权重数据读入的位置保持不变,但是每个周期,需要送进多倍的计算数据,同时还需要读取稀疏权重数据的对应位掩码参与计算,在读入相同的权重数据的情况下,稀疏矩阵的计算周期要明显小于稠密矩阵的计算周期,体现了稀疏矩阵计算模式下的高效计算性能。
参见图6,为本申请实施例提供的Softmax计算模块的结构示意图,所述Softmax计算模块包括ex指数函数运算器、数据缓冲器、累加树模块和除法单元模块;所述数据缓冲器和累加树模块均设置在所述ex指数函数运算器和除法单元模块之间。
其中,ex指数函数运算器用于对输入数据进行分割,具体的,ex指数函数运算器混合采用了查找表和泰勒函数展开的方法,其输入将被分割成高比特段跟低比特段两份。对于结果精度影响更大的高比特段,将使用查找表直接获取结果,而低比特段,则使用一阶泰勒展开近似得到结果。数据缓冲器用于暂存ex指数函数运算器的分割结果,供后续除法单元模块使用。累加树模块用于对ex指数函数运算器的分割结果进行求和,其中,可配置累加长度的计数器可以适应不同矢量长度的输入,提升了硬件的灵活性。除法单元模块通过插入了多级流水线以提升并行性,一个简单的除法单元模块由一个减法器、比较器以及移位器组成,多个简单的除法单元模块通过流水线级联,可得到满足精度要求的除法结果。
为了更清楚的说明本申请实施例提供的一种兼容N:M稀疏的Transformer加速器的架构的实现过程,参见如图7,为本申请实施例提供的多头注意力模块计算和前馈网络模块计算的时序图。
图中展示了各个计算阶段中,Transformer加速器的架构与外部存储器存储的数据交互,以及Transformer加速器的架构内部计算单元所执行的运算。层归一化运算(LN)是在Transformer加速器的架构外部完成,而Transformer的其他关键算子都是在Transformer加速器的架构内部完成的。
其中,多头注意力模块的计算划分为五个阶段。
第一阶段:总控制器激活地址生成器,权重存储器从外部存储器存储获取WQ权重数据,总控制器获取完成层归一化计算的输入数据X。
第二阶段:权重存储器从外部存储器存储获取下个阶段计算所需的WK权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WQ,并将算出的矩阵Q=X·WQ依次送进矢量计算模块和重排模块,然后将重排后的矩阵Q临时存储在中间数据存储器。
第三阶段:权重存储器从外部存储器存储获取下个阶段所需的WV权重数据,与此同时,多模兼容矩阵乘法计算模块先执行稀疏矩阵乘法X·WK得到矩阵K,并将得到的矩阵K存储在中间数据存储器,接着多模兼容矩阵乘法计算模块从中间数据存储区分别取出矩阵Q和矩阵K,执行稠密矩阵乘法Q·KT,然后将获得的矩阵S=Q·KT依次送进矢量计算模块和重排模块,然后将重排后的矩阵S写回中间数据存储器。
第四阶段:权重存储器从外部存储器存储获取下个阶段所需的WO权重数据,在计算单元中,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WV得到矩阵V,将矩阵V依次送进矢量计算模块和重排模块,然后重排后的矩阵V写回到中间数据存储区,Softmax计算模块对矩阵S进行Softmax计算得到矩阵S′,结果将得到的矩阵S′写入中间数据存储器。
第五阶段:多模兼容矩阵乘法计算模块先执行稠密矩阵乘法S′·V得到矩阵Z,并将矩阵Z依次送进矢量计算模块和重排模块,然后将重排后的矩阵Z写回到中间数据存储区;接着执行稀疏矩阵乘法Z·WO,从矩阵乘法模块得出的运算结果,直接送进矢量计算模块完成残差计算,然后经过重排模块后写到激活存储分器。
其中,前馈网络模块的计算划分为三个阶段:
第一阶段:总控制器激活地址生成器,权重存储器从外部存储器存储获取WF1权重数据,总控制器获取完成层归一化计算的输入数据。
第二阶段:权重存储器从外部存储器存储获取下个阶段计算所需的WF2权重数据,外部激活数据写入激活函数存储器相应的地址上,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WF1,从矩阵乘法模块获得的运算结果,直接送进矢量计算模块完成激活函数ReLU计算,最终将结果F1依次送进矢量计算模块和重排模块,然后写入中间数据存储器;
第三阶段:多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WF2,直接送进矢量计算模块完成残差计算,最终将结果F2依次送进矢量计算模块和重排模块,然后写入激活存储器。
本申请实施例第二方面还提供一种兼容N:M稀疏的Transformer加速器的加速方法,所述一种兼容N:M稀疏的Transformer加速器的加速方法采用本申请实施例第一方面提供的兼容N:M稀疏的Transformer加速器的架构,对于本申请实施例第二方面未公开的细节,请参见本申请实施例第一方面的技术方案。
参见图8,所述一种兼容N:M稀疏的Transformer加速器的加速方法包括:
S1,控制单元获取外部软件端加载的配置信息及运算任务,并根据运算任务生成控制信号动态配置,以及根据控制信号动态配置对加速器的架构的寄存器进行配置,并控制计算单元和存储单元的运行。
S2,若运算任务为多头注意力模块运算,则配置多头注意模块相关寄存器,则执行步骤S21至步骤S25。
S21,控制单元激活地址生成器,权重存储器从外部存储器存储获取WQ权重数据,总控制器获取完成层归一化计算的输入数据X。
S22,权重存储器从外部存储器存储获取下个阶段计算所需的WK权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WQ。
S23,权重存储器从外部存储器存储获取下个阶段所需的WV权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WK得到矩阵K,以及,执行稠密矩阵乘法S=Q·KT。
S24,权重存储器从外部存储器存储获取下个阶段所需的WO权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WV得到矩阵V,将矩阵V依次送进矢量计算模块,重排模块,然后重排后的结果写回到中间数据存储区,Softmax计算模块对矩阵S进行Softmax计算得到矩阵S′。
S25,多模兼容矩阵乘法计算模块执行稠密矩阵乘法S′·V得到矩阵Z,以及,执行稀疏矩阵乘法Z·WO。
S3,若运算任务为前馈网络模块运算,则配置前馈网络模块相关寄存器,则执行步骤S31至步骤S33。
S31,总控制器激活地址生成器,权重存储器从外部存储器存储获取WF1权重数据,总控制器获取完成层归一化计算的输入数据。
S32,权重存储器从外部存储器存储获取下个阶段计算所需的WF2权重数据,外部激活数据写入激活函数存储器相应的地址上,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WF1,以及,矢量计算模块对X·WF2完成激活函数ReLU计算。
S33,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WF2,以及,矢量计算模块对X·WF2完成激活函数ReLU计算。
由以上技术方案可知,本申请实施例提供一种兼容N:M稀疏的Transformer加速器的架构及加速方法,所述Transformer加速器的架构包括控制单元、储存单元和计算单元;控制单元用于获取外部软件端的配置信息,以及外部软件端的运算任务,并根据所述运算任务,生成控制信号动态配置,以及,根据控制信号动态配置对加速器的架构的寄存器进行配置,并控制计算单元和存储单元的运行;计算单元,包括多模兼容矩阵乘法计算模块、矢量计算模块、重排模块、Softmax计算模块;储存单元包括权重存储器、激活函数存储器和中间数据存储器。
在实际应用过程中,所述多模兼容矩阵乘法计算模块负责Transformer模型中运算量密集的矩阵乘法的计算,根据控制信号动态配置,既可执行两个稠密矩阵的矩阵乘法计算,也可执行单个N:M结构化稀疏矩阵与单个稠密矩阵的矩阵乘法计算;所述灵活的Softmax计算模块负责计算Transformer模型中的Softmax算子,所述矢量计算模块负责累加、ReLU等激活函数的操作,用于累加所述多模兼容矩阵乘法计算模块的运算结果,并将累加的运算结果发送至重排模块;所述重排模块用于对所述累加的运算结果进行重排,并存储至中间数据存储器或激活存储器。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。
Claims (7)
1.一种兼容N:M稀疏的Transformer加速器的架构,其特征在于,Transformer加速器的架构包括控制单元、储存单元和计算单元;
控制单元,用于获取外部软件端的配置信息,以及外部软件端的运算任务,并根据所述运算任务,生成控制信号动态配置,以及,根据控制信号动态配置对加速器的架构的寄存器进行配置,并控制计算单元和存储单元的运行;
计算单元,包括多模兼容矩阵乘法计算模块、矢量计算模块、重排模块、Softmax计算模块;
储存单元,包括权重存储器、激活函数存储器和中间数据存储器;
所述多模兼容矩阵乘法计算模块,用于根据控制信号动态配置,执行两个稠密矩阵的矩阵乘法计算,或者,执行单个N:M结构化稀疏矩阵与单个稠密矩阵的矩阵乘法计算Softmax计算模块,用于计算Transformer模型中的Softmax算子;
矢量计算模块,用于累加所述多模兼容矩阵乘法计算模块的运算结果,并将累加的运算结果发送至重排模块;
重排模块,用于对所述累加的运算结果进行重排,并存储至中间数据存储器或激活存储器;
权重存储器,用于获取外部存储器上存储的权重,并将权重输入至所述多模兼容矩阵乘法计算模块;
激活函数存储器,用于获取外部存储器上存储的激活函数;以及存储计算单元输出的计算结果,并将所述计算结果传输到外部存储器上;
中间数据存储器,存储计算单元产生的中间数据。
2.根据权利要求1所述的一种兼容N:M稀疏的Transformer加速器的架构,其特征在于,所述控制单元包括总控制器、Softmax控制器、地址生成器和矩阵乘法控制器;
总控制器,用于获取外部软件端的配置信息,以及外部软件端的运算任务,并将运算任务分配至Softmax控制器、地址生成器和矩阵乘法控制器;
矩阵乘法控制器,用于控制所述多模兼容矩阵乘法计算模块进行矩阵运算任务;
Softmax控制器,用于控制Softmax模块进行Softmax算子运算任务;
地址生成器,用于生成访存/写入数据的存储地址。
3.根据权利要求1所述的一种兼容N:M稀疏的Transformer加速器的架构,其特征在于,所述多模兼容矩阵乘法计算模块包括8个并行的8×8的二维计算阵列,单个二维计算阵列包括累加器和非零元素选择器,以及设置在输出端的多个多路选择器和寄存器;
非零元素选择器,用于选择非零权重对应的激活元素;
所述累加器用于对输入的16比特权重和16比特激活函数执行乘法运算后,并将运算获得的结果与存储在计算单元内部的局部结果进行累加。
4.根据权利要求1所述的一种兼容N:M稀疏的Transformer加速器的架构,其特征在于,所述Softmax计算模块包括ex指数函数运算器、数据缓冲器、累加树模块和除法单元模块;
所述数据缓冲器和累加树模块均设置在所述ex指数函数运算器和除法单元模块之间;
ex指数函数运算器,用于对输入数据进行分割;
数据缓冲器,用于暂存ex指数函数运算器的分割结果;
累加树模块,用于对ex指数函数运算器的分割结果进行求和;
除法单元模块,用于对数据缓冲器暂存的ex指数函数的分割结果与累加树模块的求和结果进行除法运算。
5.根据权利要求4所述的一种兼容N:M稀疏的Transformer加速器的架构,其特征在于,所述除法单元模块包括一个减法器、比较器以及移位器组成;多个除法单元模块通过流水线级联。
6.一种兼容N:M稀疏的Transformer加速器的加速方法,其特征在于,采用权利要求1-5任一项所述的兼容N:M稀疏的Transformer加速器的架构,包括:
S1,控制单元获取外部软件端加载的配置信息及运算任务,并根据运算任务生成控制信号动态配置,以及根据控制信号动态配置对加速器的架构的寄存器进行配置,并控制计算单元和存储单元的运行;
S2,若运算任务为多头注意力模块运算,则配置多头注意模块相关寄存器,则执行步骤S21至步骤S25;
S21,控制单元激活地址生成器,权重存储器从外部存储器存储获取WQ权重数据,总控制器获取完成层归一化计算的输入数据X;
S22,权重存储器从外部存储器存储获取下个阶段计算所需的WK权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WQ;
S23,权重存储器从外部存储器存储获取下个阶段所需的Wv权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WK得到矩阵K,以及,执行稠密矩阵乘法S=Q·KT;
S24,权重存储器从外部存储器存储获取下个阶段所需的WO权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WV得到矩阵V,将矩阵V依次送进矢量计算模块,重排模块,然后重排后的结果写回到中间数据存储区,Softmax计算模块对矩阵S进行Softmax计算得到矩阵S′;
S25,多模兼容矩阵乘法计算模块执行稠密矩阵乘法S′·V得到矩阵Z,以及,执行稀疏矩阵乘法Z·WO;
S3,若运算任务为前馈网络模块运算,则配置前馈网络模块相关寄存器,则执行步骤S31至步骤S33;
S31,总控制器激活地址生成器,权重存储器从外部存储器存储获取WF1权重数据,总控制器获取完成层归一化计算的输入数据;
S32,权重存储器从外部存储器存储获取下个阶段计算所需的WF2权重数据,外部激活数据写入激活函数存储器相应的地址上,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WF1,以及,矢量计算模块对X·WF2完成激活函数ReLU计算;
S33,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法X·WF2,以及,矢量计算模块对X·WF2完成激活函数ReLU计算。
7.根据权利要求6所述的一种兼容N:M稀疏的Transformer加速器的加速方法,其特征在于,所述控制单元包括总控制器、Softmax控制器、地址生成器和矩阵乘法控制器;
总控制器,用于获取外部软件端的配置信息,以及外部软件端的运算任务,并将运算任务分配至Softmax控制器、地址生成器和矩阵乘法控制器;
矩阵乘法控制器,用于控制所述多模兼容矩阵乘法计算模块进行矩阵运算任务,所述矩阵运算任务包括稠密矩阵乘法和稀疏矩阵乘法;
Softmax控制器,用于控制Softmax模块进行Softmax算子运算任务;
地址生成器,用于生成访存/写入数据的存储地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111386001.0A CN116167419A (zh) | 2021-11-22 | 2021-11-22 | 一种兼容N:M稀疏的Transformer加速器的架构及加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111386001.0A CN116167419A (zh) | 2021-11-22 | 2021-11-22 | 一种兼容N:M稀疏的Transformer加速器的架构及加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116167419A true CN116167419A (zh) | 2023-05-26 |
Family
ID=86411797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111386001.0A Pending CN116167419A (zh) | 2021-11-22 | 2021-11-22 | 一种兼容N:M稀疏的Transformer加速器的架构及加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116167419A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116882468A (zh) * | 2023-09-05 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 一种硬件加速器、硬件加速方法和电子设备 |
-
2021
- 2021-11-22 CN CN202111386001.0A patent/CN116167419A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116882468A (zh) * | 2023-09-05 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 一种硬件加速器、硬件加速方法和电子设备 |
CN116882468B (zh) * | 2023-09-05 | 2024-01-16 | 苏州浪潮智能科技有限公司 | 一种硬件加速器、硬件加速方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6821002B2 (ja) | 処理装置と処理方法 | |
CN111897579A (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
CN113033765A (zh) | 用于实现卷积神经网络的可配置处理器元件阵列 | |
CN107085562B (zh) | 一种基于高效复用数据流的神经网络处理器及设计方法 | |
WO2019205617A1 (zh) | 一种矩阵乘法的计算方法及装置 | |
CN111105023B (zh) | 数据流重构方法及可重构数据流处理器 | |
CN111898733A (zh) | 一种深度可分离卷积神经网络加速器架构 | |
US20200226201A1 (en) | Methods and Apparatus for Constructing Digital Circuits for Performing Matrix Operations | |
CN110991619A (zh) | 神经网络处理器、芯片和电子设备 | |
CN115310037A (zh) | 矩阵乘法计算单元、加速单元、计算系统和相关方法 | |
WO2021036729A1 (zh) | 一种矩阵运算方法、运算装置以及处理器 | |
CN111047036A (zh) | 神经网络处理器、芯片和电子设备 | |
CN112559046A (zh) | 数据处理装置及人工智能处理器 | |
CN116710912A (zh) | 一种矩阵乘法器及矩阵乘法器的控制方法 | |
CN111091181B (zh) | 卷积处理单元、神经网络处理器、电子设备及卷积运算方法 | |
CN116167419A (zh) | 一种兼容N:M稀疏的Transformer加速器的架构及加速方法 | |
CN109389213B (zh) | 存储装置及方法、数据处理装置及方法、电子装置 | |
US11709783B1 (en) | Tensor data distribution using grid direct-memory access (DMA) controller | |
JPH06502265A (ja) | 信号処理におけるマトリクス演算の計算回路装置 | |
CN112639836A (zh) | 数据处理装置、电子设备和数据处理方法 | |
CN111047035A (zh) | 神经网络处理器、芯片和电子设备 | |
CN113762480B (zh) | 一种基于一维卷积神经网络的时间序列处理加速器 | |
de Dinechin et al. | Deep learning inference on the mppa3 manycore processor | |
CN111522776A (zh) | 一种计算架构 | |
CN109102074B (zh) | 一种训练装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |