一种支持脉动阵列高效计算的方法及系统技术方案

技术编号:35697393 阅读:25 留言:0更新日期:2022-11-23 14:49
本发明专利技术属于高性能微处理器领域,涉及一种支持脉动阵列高效计算的方法及系统。方法包括:S1将第一矩阵数据中的行数据在二维脉动阵列中以第一方向进行传输,以将第一矩阵数据中的各行数据预加载至二维脉动阵列中的各行运算CU中;S2按时钟将第二矩阵数据中带有使能更新信号的列数据以自上而下延迟依次增加的模式在二维脉动阵列中以第二方向进行传输,以将第二矩阵数据中的各列数据实时输入至二维脉动阵列中的相应运算CU中;本发明专利技术将第一矩阵数据中的各行数据预加载至二维脉动阵列中的各行运算CU中,其次,第二矩阵数据中带有使能更新信号,并根据所述使能更新信号直接提取预加载在CU单元中的所需数据。实现了第一矩阵数据加载的无缝切换与实时更新。加载的无缝切换与实时更新。加载的无缝切换与实时更新。

【技术实现步骤摘要】
一种支持脉动阵列高效计算的方法及系统


[0001]本专利技术属于高性能微处理器领域,具体涉及一种支持脉动阵列高效计算的方法及系统。

技术介绍

[0002]脉动阵列为二维运算结构,以数据流驱动方式实现运算加速。脉动阵列各个运算单元(Computing Unit, CU)均可以与相邻CU进行数据交互,运算数据在脉动阵列中持续“流动”以实现数据重用,减少对输入/输出数据的存取次数,进而降低访存带宽需求。脉动阵列可以在较小的访存带宽下实现较高的运算吞吐率,解决多数处理器面临的访存瓶颈问题,特别是在深度神经网络这种高密集型计算和访存的处理中应用优势明显。
[0003]现有的脉动阵列实现主要以功能正确性为目的,围绕脉动阵列的数据流和运算模式进行设计,在硬件开销和实际计算效率方面未进行充分的优化,不能有效的节约脉动阵列的实现资源,也没有充分发挥出脉动阵列的计算效率。
[0004]因此,亟需设计一种数据加载和流动机制以满足脉动阵列数据流需求,从而有效实现脉动阵列高效计算。

技术实现思路

[0005]针对现有技术中存在的上述问题,本专利技术提供一种支持脉动阵列高效计算的方法及系统,设计了一种数据加载和流动机制以满足脉动阵列数据流需求,从而有效实现脉动阵列高效计算。
[0006]本专利技术采用以下技术方案:一种支持脉动阵列高效计算的方法,包括步骤:S1、将第一矩阵数据中的行数据在二维脉动阵列中以第一方向进行传输,以将第一矩阵数据中的各行数据预加载至二维脉动阵列中的各行运算CU中;S2、按时钟将第二矩阵数据中带有使能更新信号的列数据以自上而下延迟依次增加的模式在二维脉动阵列中以第二方向进行传输,以将第二矩阵数据中的各列数据实时输入至二维脉动阵列中的相应运算CU中;步骤S2中,运算CU根据当前时钟下实时接收到的列数据中带有的使能更新信号,提取预加载在其内部的行数据,并将所述预加载在其内部的行数据与当前时钟下其实时接收到的列数据进行第一类型计算,以得到第一计算结果,并将第一计算结果与当前时钟下由第一方向上与其连接的上一运算CU传输过来的运算结果进行第二类型计算,以得到第二计算结果,并在下一时钟时将第二计算结果传输至第一方向上与该CU单元连接的下一CU单元。
[0007]作为优选方案,步骤S2中,不论输入至二维脉动阵列中的运算CU的数据是否有效,运算CU均进行相应计算;所述第二矩阵数据中仅在其最底部的一行数据中带有有效信号,步骤S2之后,根
据二维脉动阵列最底部一行运算CU的运算结果带有的所述有效信号判断运算结果是否有效。
[0008]作为优选方案,步骤S2中,所述第二矩阵数据传输至二维脉动阵列的过程中,若出现断流现象,即传输至二维脉动阵列中相应运算CU的数据为无效数据,则该运算CU保持断流前传输至其内部的数据不变,以进行运算。
[0009]作为优选方案,所述第一类型计算为乘法计算。
[0010]作为优选方案,所述第二类型计算为加法计算。
[0011]还公开了一种支持脉动阵列高效计算的系统,基于上述的一种支持脉动阵列高效计算的方法,包括第一数据加载模块、第二数据加载模块、二维脉动阵列模块、累加结果写回模块,第一数据加载模块、二维脉动阵列模块、累加结果写回模块依次联接,第二数据加载模块与二维脉动阵列模块联接;第一数据加载模块,用于加载第一矩阵数据,以将第一矩阵数据中的行数据在二维脉动阵列中以第一方向进行传输,以将第一矩阵数据中的各行数据预加载至二维脉动阵列中的各行运算CU中;第二数据加载模块,用于加载第二矩阵数据,以按时钟将第二矩阵数据中带有使能更新信号的列数据以自上而下延迟依次增加的模式在二维脉动阵列中以第二方向进行传输,以将第二矩阵数据中的各列数据实时输入至二维脉动阵列中的相应运算CU中;累加结果写回模块,用于写回二维脉动阵列的最终运算结果。
[0012]作为优选方案,还包括本地局部存储器模块,本地局部存储器模块分别与第一数据加载模块、第二数据加载模块、累加结果写回模块联接。
[0013]作为优选方案,所述累加结果写回模块包括累加器缓冲单元、累加结果写回单元,二维脉动阵列模块、累加器缓冲单元、累加结果写回单元、本地局部存储器模块依次联接;所述累加器缓冲单元,用于缓冲存储二维脉动阵列模块输出的运算结果;所述累加结果写回单元,用于根据运算结果中带有的有效信号,判断是否将运算结果写回本地局部存储器模块。
[0014]作为优选方案,二维脉动阵列模块包括n*n个运算CU单元;运算CU单元包括第一矩阵数据影子寄存单元、第一矩阵数据寄存单元、累加数据寄存单元、更新使能寄存单元、第二矩阵数据寄存单元、运算单元,第一矩阵数据影子寄存单元、第一矩阵数据寄存单元、运算单元依次联接,累加数据寄存单元与运算单元联接,第二矩阵数据寄存单元与运算单元联接,更新使能寄存单元与第一矩阵数据寄存单元联接;累加数据寄存单元,用于寄存第一方向上上一运算CU单元中的运算单元传输过来的运算结果,第一方向上,相邻两联接的运算CU单元的两第一矩阵数据影子寄存单元联接,第二方向上,相邻两联接的运算CU单元的两更新使能寄存单元联接,第二方向上,相邻俩联接的运算CU单元的两第二矩阵数据寄存单元联接。
[0015]作为优选方案,所述运算单元包括相联的乘法运算子单元、加法运算子单元,第一矩阵数据寄存单元、第二矩阵数据寄存单元分别与乘法运算子单元联接,累加数据寄存单元与加法运算子单元联接。
[0016]本专利技术的有益效果是:首先,将第一矩阵数据中的各行数据预加载至二维脉动阵列中的各行运算CU中,
其次,第二矩阵数据中带有使能更新信号,并根据所述使能更新信号直接提取预加载在CU单元中的所需数据。实现了第一矩阵数据加载的无缝切换与实时更新。
[0017]所述第二矩阵数据传输至二维脉动阵列的过程中,若出现断流现象,即传输至二维脉动阵列中相应运算CU的数据为无效数据,则该运算CU保持断流前传输至其内部的数据不变,以进行运算,因此该运算CU进行运算时内部信号不会翻转,计算得到的结果和上一时钟相同。这样可以避免“断流”后二维脉动阵列内晶体管的无效翻转,从而降低脉动阵列的动态功耗。并且脉动阵列“断流”恢复到正常供数后,可以直接“无缝”恢复计算,不需要启动开销。
[0018]传统方法中在每个CU收到第二矩阵数据的同时也会收到数据有效信号,以指示当前CU的计算结果是否有效。这种传统的实现方式较为直观,但需要在每个CU中增加数据有效信号的连线,同时有效信号在脉动阵列需要跟随数据一起“流动”,导致一定的硬件开销。本专利技术步骤S2中,不论输入至二维脉动阵列中的运算CU的数据是否有效,运算CU均进行相应计算;所述第二矩阵数据中仅在其最底部的一行数据中带有有效信号,步骤S2之后,根据二维脉动阵列最底部一行运算CU的运算结果带有的所述有效信号判断运算结果是否有效。因此减少了有效信号的连线,也减少了数据的流动,降低了硬件的开销。
附图说明
[0019]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持脉动阵列高效计算的方法,其特征在于,包括步骤:S1、将第一矩阵数据中的行数据在二维脉动阵列中以第一方向进行传输,以将第一矩阵数据中的各行数据预加载至二维脉动阵列中的各行运算CU中;S2、按时钟将第二矩阵数据中带有使能更新信号的列数据以自上而下延迟依次增加的模式在二维脉动阵列中以第二方向进行传输,以将第二矩阵数据中的各列数据实时输入至二维脉动阵列中的相应运算CU中;步骤S2中,运算CU根据当前时钟下实时接收到的列数据中带有的使能更新信号,提取预加载在其内部的行数据,并将所述预加载在其内部的行数据与当前时钟下其实时接收到的列数据进行第一类型计算,以得到第一计算结果,并将第一计算结果与当前时钟下由第一方向上与其连接的上一运算CU传输过来的运算结果进行第二类型计算,以得到第二计算结果,并在下一时钟时将第二计算结果传输至第一方向上与该CU单元连接的下一CU单元。2.根据权利要求1所述的一种支持脉动阵列高效计算的方法,其特征在于,步骤S2中,不论输入至二维脉动阵列中的运算CU的数据是否有效,运算CU均进行相应计算;所述第二矩阵数据中仅在其最底部的一行数据中带有有效信号,步骤S2之后,根据二维脉动阵列最底部一行运算CU的运算结果带有的所述有效信号判断运算结果是否有效。3.根据权利要求1所述的一种支持脉动阵列高效计算的方法,其特征在于,步骤S2中,所述第二矩阵数据传输至二维脉动阵列的过程中,若出现断流现象,即传输至二维脉动阵列中相应运算CU的数据为无效数据,则该运算CU保持断流前传输至其内部的数据不变,以进行运算。4.根据权利要求1所述的一种支持脉动阵列高效计算的方法,其特征在于,所述第一类型计算为乘法计算。5.根据权利要求4所述的一种支持脉动阵列高效计算的方法,其特征在于,所述第二类型计算为加法计算。6.一种支持脉动阵列高效计算的系统,基于权利要求1

5任一项所述的一种支持脉动阵列高效计算的方法,其特征在于,包括第一数据加载模块、第二数据加载模块、二维脉动阵列模块、累加结果写回模块,第一数据加载模块、二维脉动阵列模块、累加结果写回模块依次联接,第二数据加载模块与二维脉动阵列模块联接;第一数据加载模块,用于加载第一矩阵数据,以将第一矩阵数...

【专利技术属性】
技术研发人员:谭弘兵陈庆强唐勇吴铁彬杨萱郝子宇李宏亮
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:

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

1