当前位置: 首页 > 专利查询>南京大学专利>正文

用于Transformer类模型训练的矩阵乘法器制造技术

技术编号:38817155 阅读:13 留言:0更新日期:2023-09-15 19:56
本发明专利技术提供了用于Transformer类模型训练的矩阵乘法器,包括M行N列个脉动阵列,所述脉动阵列是二维的,通过R行C列个相互连接的处理单元PE构成,每个处理单元PE均包括1个乘法器、1个加法器、2个内部寄存器、1个左侧多路选择器,以及2个右侧多路选择器;所述左侧多路选择器能够选择乘法器的输入是来自处理单元PE外部或是保持上一周期的输入,当选择保持上一周期的输入时,处理单元PE以权重保持WS数据流工作;本发明专利技术设计了一种可重构的处理单元(PE),可以在训练的不同阶段和不同周期灵活地支持多种数据流,并根据需求选择数据来源。并根据需求选择数据来源。并根据需求选择数据来源。

【技术实现步骤摘要】
用于Transformer类模型训练的矩阵乘法器


[0001]本专利技术涉及用于Transformer类模型训练的矩阵乘法器。

技术介绍

[0002]Transformer是Google的团队在2017年提出的一种应用于NLP(NaturalLanguage Processing,自然语言处理)的经典模型,Transformer模型使用了Self

Attention(自注意力)机制,使得模型可以并行化训练,而且能够拥有样本的全局信息。现在比较流行的BERT和GPT等也是基于Transformer基础结构实现的模型。
[0003]近几年来,基于Transformer的深度神经网络(DNN)在自然语言处理(NLP)、计算机视觉(CV)和语音处理等领域取得了优异的成绩。基于Transformer的模型通常是在大规模数据集上预训练,然后针对下游任务进行微调。随着Transformer类模型应用场景的不断拓展,考虑到数据隐私和实时处理的要求,在边缘平台上训练(微调)此类模型变得十分重要。然而由于Transformer类模型的参数量巨大,计算复杂度较高,将微调的训练过程部署在资源有限的边缘平台上面临着诸多挑战。Transformer类模型的绝大部分计算由矩阵乘法构成,由于自然语言处理任务中样本长度的变化以及训练不同阶段的矩阵转置特点,模型训练过程中的矩阵乘法计算呈现出不规则特性。将这些计算部署到传统的矩阵计算架构上时,会出现资源利用率和计算吞吐量低的问题。

技术实现思路

[0004]专利技术目的:本专利技术所要解决的技术问题是针对现有技术的不足,提供用于Transformer类模型训练的矩阵乘法器,包括M行N列个脉动阵列,所述脉动阵列是二维的,通过R行C列个相互连接的处理单元PE(Processing Element,处理单元)构成,M,N,R,C均为正整数,M通常设置为2的整数幂;
[0005]每个处理单元PE均包括1个乘法器、1个加法器、2个内部寄存器、1个左侧多路选择器,以及2个右侧多路选择器;
[0006]通过所述左侧多路选择器,能够选择乘法器的输入b是来自处理单元PE外部或是保持上一周期的输入,当选择保持上一周期的输入时,处理单元PE以权重保持WS数据流工作;
[0007]通过所述右侧多路选择器,能够选择加法器的输入c是来自其他处理单元PE或是本处理单元PE上一周期加法器的输出,当选择本处理单元PE上一周期加法器的输出时,处理单元PE以输出保持OS数据流工作。
[0008]所述处理单元PE内的右侧多路选择器用于将计算结果在处理单元PE之间传递以输出到脉动阵列外部。
[0009]所述脉动阵列中同一行的各处理单元PE的a_in输入来自脉动阵列左侧的广播输入,即各处理单元PE的输入端口a_in均连接到脉动阵列左侧的数据输入,各列之间的由输入端口a_in输入的数据不传递;不同行的输入数据来自脉动阵列左侧不同的输入端口,即
第一行的各处理单元PE共享一个输入端口a_in输入,第二行的各处理单元PE共享一个输入端口a_in输入,第三行的各处理单元PE共享一个输入端口a_in输入;
[0010]位于同一列的各处理单元PE,其输入b_in来自脉动阵列上方的广播输入,或者来自上方处理单元PE的b_out输出,由处理单元PE之间的多路选择器控制;
[0011]当选择脉动阵列上方的广播输入时,脉动阵列以输出保持OS数据流工作,当选择来自上方处理单元PE的b_out输出时,脉动阵列用于输入数据预加载,以进行权重保持WS数据流的后续计算;
[0012]位于同一列的各处理单元PE,除了第一行的处理单元PE,其余行的处理单元PE的输入c_in来自其上方处理单元PE的c_out输出,第一行的输入c_in来自脉动阵列外部,各行之间数据c的传输能够用于权重保持WS数据流下的部分和传递和输出保持OS数据流下的结果传递。
[0013]第一行处理单元PE的c_in输入来自脉动阵列上方。
[0014]当脉动阵列以权重保持WS数据流工作时,包括权重数据预加载和权重保持阶段;
[0015]权重数据预加载阶段:当计算处于权重数据预加载阶段时,脉动阵列内部的结构和连接方式按照下面的方式组织:来自脉动阵列上方的权重数据输入到第一行处理单元PE的b_in输入端口,其余行的处理单元PE的b_in输入来自上方处理单元PE上一周期的b_in输入,当前周期的b_out输出;权重加载到所有处理单元PE需要N个时钟周期。设定输入矩阵表示4行3列的实数矩阵,权重矩阵输出矩阵在权重加载阶段,权重矩阵的元素逐行加载到脉动阵列中对应的处理单元PE,则权重加载到所有处理单元PE需要3个时钟周期。
[0016]权重保持阶段:当权重矩阵的元素加载到脉动阵列中对应的处理单元PE后,进入权重保持阶段,此时,脉动阵列内部的结构和连接方式按照下面的方式组织:处理单元PE内乘法器的b输入端口一直保持为对应的权重数据;输入矩阵沿着脉动阵列的每一行广播输入,各行之间的输入数据有一个周期的时间差;部分和沿着c_in和c_out端口在各行之间传播,计算结果沿着脉动阵列下方的处理单元PE输出;设定输入矩阵权重矩阵经过各行之间部分和的累加,最终结果y
11
=x
11
w
11
+x
12
w
21
+x
13
w
31
,从左下角PE3的c_out端口输出,PE
31
表示第3行第1列的处理单元PE;x
13
是输入矩阵x中第1行第3列的元素,w
31
是权重矩阵W中第3行第1列的元素。
[0017]当脉动阵列以输出保持OS数据流工作时,包括处理单元PE内乘累加和结果传出阶段;
[0018]处理单元PE内乘累加阶段:在输出保持OS数据流的处理单元PE内乘累加阶段,脉动阵列内部的结构和连接方式按照下面的方式组织:来自脉动阵列上方的权重数据同时广播到一列的所有处理单元PE的b_in输入,来自脉动阵列左侧的输入数据同时广播到同一行所有处理单元PE的a_in输入;处理单元PE内部加法器的c输入连接到上一周期加法器的输出,形成一个累加器;权重数据和输入数据每个周期更新,权重数据和输入数据的乘积在处理单元PE内部累加直到计算得到最终结果;在输出保持OS数据流的处理单元PE内乘累加阶段,各行与各列之间的输入和权重数据没有时间差;设定输入矩阵权重矩阵输出矩阵在乘累加阶段内的各个周期,脉动阵列内部各处
理单元PE的有效输入数据和权重数据按照下面的方式组织:每个周期输入和权重数据都会更新并同时广播到其所在行或列的所有处理单元PE单元乘法器的输入,计算结果y
11
=x
11
w
11
+x
12
w
21
+x
13
w
31
+x
14本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.用于Transformer类模型训练的矩阵乘法器,其特征在于,包括M行N列个脉动阵列,所述脉动阵列是二维的,通过R行C列个相互连接的处理单元PE构成,M,N,R,C均为正整数;每个处理单元PE均包括1个乘法器、1个加法器、2个内部寄存器、1个左侧多路选择器,以及2个右侧多路选择器;通过所述左侧多路选择器,能够选择乘法器的输入是来自处理单元PE外部或是保持上一周期的输入,当选择保持上一周期的输入时,处理单元PE以权重保持WS数据流工作;通过所述右侧多路选择器,能够选择加法器的输入是来自其他处理单元PE或是本处理单元PE上一周期加法器的输出,当选择本处理单元PE上一周期加法器的输出时,处理单元PE以输出保持OS数据流工作。2.根据权利要求1所述的用于Transformer类模型训练的矩阵乘法器,其特征在于,所述处理单元PE内的右侧多路选择器用于将计算结果在处理单元PE之间传递以输出到脉动阵列外部。3.根据权利要求2所述的用于Transformer类模型训练的矩阵乘法器,其特征在于,所述脉动阵列中同一行的各处理单元PE的a_in输入来自脉动阵列左侧的广播输入,即各处理单元PE的输入端口a_in均连接到脉动阵列左侧的数据输入,各列之间的由输入端口a_in输入的数据不传递;不同行的输入数据来自脉动阵列左侧不同的输入端口,即第一行的各处理单元PE共享一个输入端口a_in输入,第二行的各处理单元PE共享一个输入端口a_in输入,第三行的各处理单元PE共享一个输入端口a_in输入;位于同一列的各处理单元PE,其输入b_in来自脉动阵列上方的广播输入,或者来自上方处理单元PE的b_out输出,由处理单元PE之间的多路选择器控制;当选择脉动阵列上方的广播输入时,脉动阵列以输出保持OS数据流工作,当选择来自上方处理单元PE的b_out输出时,脉动阵列用于输入数据预加载,以进行权重保持WS数据流的后续计算;位于同一列的各处理单元PE,除了第一行的处理单元PE,其余行的处理单元PE的输入c_in来自其上方处理单元PE的c_out输出,第一行的输入c_in来自脉动阵列外部,各行之间数据c的传输能够用于权重保持WS数据流下的部分和传递和输出保持OS数据流下的结果传递;第一行处理单元PE的c_in输入来自脉动阵列上方。4.根据权利要求3所述的用于Transformer类模型训练的矩阵乘法器,其特征在于,当脉动阵列以权重保持WS数据流工作时,包括权重数据预加载和权重保持阶段;权重数据预加载阶段:当计算处于权重数据预加载阶段时,脉动阵列内部的结构和连接方式按照下面的方式组织:来自脉动阵列上方的权重数据输入到第一行处理单元PE的b_in输入端口,其余行的处理单元PE的b_in输入来自上方处理单元PE上一周期的b_in输入,当前周期的b_out输出;权重加载到所有处理单元PE需要N个时钟周期;设定输入矩阵当前周期的b_out输出;权重加载到所有处理单元PE需要N个时钟周期;设定输入矩阵表示4行3列的实数矩阵,权重矩阵输出矩阵在权重加载阶段,权重矩阵的元素逐行加载到脉动阵列中对应的处理单元PE,则权重加载到所有处理单元PE需要3个时钟周期;权重保持阶段:当权重矩阵的元素加载到脉动阵列中对应的处理单元PE后,进入权重保持阶段,此时,脉动阵列内部的结构和连接方式按照下面的方式组织:处理单元PE内乘法
器的b输入端口一直保持为对应的权重数据;输入矩阵沿着脉动阵列的每一行广播输入,各行之间的输入数据有一个周期的时间差;部分和沿着c_in和c_out端口在各行之间传播,计算结果沿着脉动阵列下方的处理单元PE输出;设定输入矩阵权重矩阵经过各行之间部分和的累加,最终结果y
11
=x
11
w
11
+x
12
w
21
+x
13
w
31
,从左下角PE
31
的c_out端口输出,PE
31
表示第3行第1列的处理单元PE;x
13
是输入矩阵X中第1行第3列的元素,w
31
是权重矩阵W中第3行第1列的元素。5.根据权利要求4所述的用于Transformer类模型训练的矩阵乘法器,其特征在于,当脉动阵列以输出保持OS数据流工作时,包括处理单元PE内乘累加和结果传出阶段;处理单元PE内乘累加阶段:在输出保持OS数据流的处理单元PE内乘累加阶段,脉动阵列内部的结构和连接方式按照下面的方式组织:来自脉动阵列上方的权重数据同时广播到一列的所有处理单元PE的b_in输入,来自脉动阵列左侧的输入数据同时广播到同一行所有处理单元PE的a_in输入;处理单元PE内部加法器的c输入连接到上一周期加法器的输出,形成一个累加器;权重数据和输入数据每个周期更新,权重数据和输入数据的乘积在处理单元PE内部累加直到计算得到最终结果;在输出保持OS数据流的处理单元PE内乘累加...

【专利技术属性】
技术研发人员:王中风邵海阔鲁金铭
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1