一种脉动矩阵单元及脉动矩阵计算装置制造方法及图纸

技术编号:33968864 阅读:25 留言:0更新日期:2022-06-30 02:00
本发明专利技术涉及一种脉动矩阵单元及脉动矩阵计算装置,属于人工智能领域。该单元中乘法器与权重寄存器和数据寄存器连接;乘法器使权重和输入数据相乘;累加器与乘法器和二选一选择器连接;累加器对相乘后的结果与上一时钟周期的累加后的结果进行累加,将累加器的输出值发送至二选一选择器;二选一选择器与部分和寄存器连接;二选一选择器当输入数据输入完成之前,根据第一控制信号进行累加器的输出值的输出;二选一选择器当输入数据输入完成之后,根据第二控制信号停止累加器的输出值的输出;部分和寄存器当输入数据输入完成之前,对累加器的输出值进行存储,当输入数据输入完成之后,将累加器的输出值进行输出。本发明专利技术能够同时节省时间和硬件开销。省时间和硬件开销。省时间和硬件开销。

【技术实现步骤摘要】
一种脉动矩阵单元及脉动矩阵计算装置


[0001]本专利技术涉及人工智能领域,特别是涉及一种脉动矩阵单元及脉动矩阵计算装置。

技术介绍

[0002]随着人工智能的兴起,深度学习在各个领域中的应用也越来越多。而深度学习中,与矩阵相乘相关的运算使用率极高。目前比较方便快捷的矩阵运算方式是用脉动阵列。脉动阵列的基本思路为:在A*B=Y的矩阵乘法运算中,固定矩阵B,使A在脉动矩阵单元中流动而连续输出Y;或者是使A和B在脉动矩阵单元中流动而将结果Y存储于脉动矩阵单元中。
[0003]脉动阵列的一种计算方法为:在脉动阵列进行矩阵乘法的过程中,输入数据在脉动阵列单元中从左到右传输,权重数据在脉动阵列单元中从上到下传输,最终计算结果则存储于每个脉动阵列单元中。而计算结果而在计算结束后是要取出来进行后续计算的,在矩阵较大时,这些最终计算结果的取出若是用总线传输,虽然时间消耗较短,但总线的硬件开销较大;若是在计算结束后再让计算结果如权重数据和输入数据一样在阵列中逐个移动输出,则会消耗较多的时间。

技术实现思路

[0004]本专利技术的目的是提供一种脉动矩阵单元及脉动矩阵计算装置,能够同时节省时间和硬件开销。
[0005]为实现上述目的,本专利技术提供了如下方案:一种脉动矩阵单元,包括:权重寄存器、数据寄存器、乘法器、累加器、二选一选择器以及部分和寄存器;所述权重寄存器用于存储权重;所述数据寄存器用于存储输入数据;所述乘法器分别与所述权重寄存器和所述数据寄存器连接;所述乘法器用于使权重和输入数据相乘;所述累加器分别与所述乘法器和所述二选一选择器连接;所述累加器用于对相乘后的结果与上一时钟周期的累加后的结果进行累加,将累加器的输出值发送至所述二选一选择器;所述二选一选择器与部分和寄存器连接;所述二选一选择器用于当输入数据输入完成之前,根据第一控制信号进行所述累加器的输出值的输出;所述二选一选择器还用于当输入数据输入完成之后,根据第二控制信号停止所述累加器的输出值的输出;所述部分和寄存器用于当输入数据输入完成之前,对累加器的输出值进行存储,并当输入数据输入完成之后,将累加器的输出值进行输出。
[0006]可选地,所述权重为3*3矩阵。
[0007]可选地,所述输入数据为3*3矩阵。
[0008]一种脉动矩阵计算装置,用于实现所述的一种脉动矩阵单元,包括:阵列控制器、
权重存储单元、输出数据存储单元、输入数据存储单元、脉动阵列以及多个延迟器;所述脉动阵列包括多个脉动矩阵单元;所述权重存储单元分别与阵列控制器和脉动阵列连接;所述阵列控制器分别与所述输出数据存储单元、输入数据存储单元以及脉动阵列连接;所述脉动阵列分别与所述输入数据存储单元和所述输出数据存储单元连接;所述延迟器设置在两个相邻的脉动矩阵单元之间;所述输入数据存储单元根据每个脉动矩阵单元的输入数据的完成情况生成发送信号;所述阵列控制器用于根据发送信号生成第一控制信号和第二控制信号;所述阵列控制器还用于当发送信号为脉动矩阵单元的输入数据输入完成时,控制所述输出数据存储单元接收相应的脉动矩阵单元的累加器的输出值。
[0009]可选地,所述脉动阵列为3*3矩阵。
[0010]根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果:本专利技术所提供的一种脉动矩阵单元及脉动矩阵计算装置,通过二选一选择器和部分和寄存器,在计算还未完全结束时就开始将先计算完成的脉动阵列单元中的数据取出,比之计算全部结束后逐个取出节省了时间,比之总线取出节省了硬件开销。
附图说明
[0011]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0012]图1为本专利技术所提供的一种脉动矩阵单元结构示意图;图2为本专利技术所提供的一种脉动矩阵计算装置结构示意图;图3为同一列的脉动阵列单元间的输出结果传输情况示意图;图4

图14为本专利技术所提供的一种脉动矩阵计算装置的运算流程示意图。
具体实施方式
[0013]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0014]本专利技术的目的是提供一种脉动矩阵单元及脉动矩阵计算装置,能够同时节省时间和硬件开销。
[0015]为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。
[0016]图1为本专利技术所提供的一种脉动矩阵单元结构示意图,如图1所示,本专利技术所提供的一种脉动矩阵单元,包括:权重寄存器、数据寄存器、乘法器、累加器、二选一选择器以及
部分和寄存器;所述权重寄存器用于存储权重;所述数据寄存器用于存储输入数据;所述乘法器分别与所述权重寄存器和所述数据寄存器连接;所述乘法器用于使权重和输入数据相乘;所述累加器分别与所述乘法器和所述二选一选择器连接;所述累加器用于对相乘后的结果与上一时钟周期的累加后的结果进行累加,将累加器的输出值发送至所述二选一选择器;所述二选一选择器与部分和寄存器连接;所述二选一选择器用于当输入数据输入完成之前,根据第一控制信号进行所述累加器的输出值的输出;所述二选一选择器还用于当输入数据输入完成之后,根据第二控制信号停止所述累加器的输出值的输出;所述部分和寄存器用于当输入数据输入完成之前,对累加器的输出值进行存储,并当输入数据输入完成之后,将累加器的输出值进行输出。
[0017]其中,第一控制信号和第二控制信号为高电平信号或低电平信号;如图1所示,权重数据从上至下传输,输入数据从左至右传输,权重与输入数据相乘后经累加器与上一时钟周期的部分和相加,这些特点与传统的脉动阵列单元相同,不同点在于右侧的结构。在第一行的输入数据全部输入之前,阵列控制单元通过第一控制信号使二选一选择器选择同单元内的累加器的输出值输出,并将结果存储于部分和寄存器。
[0018]作为一个具体的实施例,所述权重为3*3矩阵。
[0019]作为一个具体的实施例,所述输入数据为3*3矩阵。
[0020]如图2所示,本专利技术所提供的一种脉动矩阵计算装置,用于实现上述所述的一种脉动矩阵单元,包括:阵列控制器、权重存储单元、输出数据存储单元、输入数据存储单元、脉动阵列以及多个延迟器;所述脉动阵列包括多个脉动矩阵单元;所述权重存储单元分别与阵列控制器和脉动阵列连接;所述阵列控制器分别与所述输出数据存储单元、输入数据存储单元以及脉动阵列连接;所述脉动阵列分别与所述输入数据存储单元和所述输出数据存储单元连接;所述延迟器设置在两个相邻的脉动矩阵单元之间;每向右或向下一个单元,计算结果会迟一个周期,因此二选一选择器也应该迟一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种脉动矩阵单元,其特征在于,包括:权重寄存器、数据寄存器、乘法器、累加器、二选一选择器以及部分和寄存器;所述权重寄存器用于存储权重;所述数据寄存器用于存储输入数据;所述乘法器分别与所述权重寄存器和所述数据寄存器连接;所述乘法器用于使权重和输入数据相乘;所述累加器分别与所述乘法器和所述二选一选择器连接;所述累加器用于对相乘后的结果与上一时钟周期的累加后的结果进行累加,将累加器的输出值发送至所述二选一选择器;所述二选一选择器与部分和寄存器连接;所述二选一选择器用于当输入数据输入完成之前,根据第一控制信号进行所述累加器的输出值的输出;所述二选一选择器还用于当输入数据输入完成之后,根据第二控制信号停止所述累加器的输出值的输出;所述部分和寄存器用于当输入数据输入完成之前,对累加器的输出值进行存储,并当输入数据输入完成之后,将累加器的输出值进行输出。2.根据权利要求1所述的脉动矩阵单元,其特征在于,所述权重为3*3矩阵。3.根据权利要求1所述的脉动矩阵单元,其特征在...

【专利技术属性】
技术研发人员:乔树山张默寒尚德龙周玉梅
申请(专利权)人:中科南京智能技术研究院
类型:发明
国别省市:

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

1