一种用于神经网络中反卷积计算的加速系统及方法
文献发布时间:2023-06-19 16:09:34
技术领域
本发明涉及神经网络中反卷积计算任务的硬件加速领域,更具体地,涉及一种用于神经网络中反卷积计算的加速系统及方法。
背景技术
反卷积也被称为转置卷积,广义上是卷积的一种逆运算,属于上采样的一种常用方法,目前是深度神经网络中的关键任务。与常规卷积计算相比,反卷积计算会产生更多额外操作,从而导致性能和能耗瓶颈。存储计算一体化(PIM)是一种部署深度神经网络的新范式,其中基于可变电阻式存储器(ReRAM)的PIM是一种强有效的方法,已被广泛应用于常规卷积计算任务中,但是由于计算的高度复杂性而没被大量应用于反卷积计算任务中。
为了进一步将ReRAM应用于深度神经网络的部署,前人研究设计基于ReRAM可变电阻式存储器的反卷积加速器RED,通过消除冗余和额外的操作以达到加速反卷积计算任务的结果。文献“Ziru Li,et al.RED:A ReRAM-Based Efficient Accelerator forDeconvolutional Computation”充分利用反卷积计算的不同计算模式,设计了一种新型输入缓冲器,并通过提供像素级映射和跳零数据流输入的方案,以加速深度神经网络中的反卷积计算。理想情况下,该方法同一计算模式下的反卷积可在一个周期中并行执行。但是,在卷积核较大情况下,需要将同一计算模式的计算量分成两份,各自分配一个计算周期,从而导致反卷积所需时间翻倍。此外,由于每个周期仅使用同一计算模式下的PE,所以该方法对PE的利用率不高。
现有技术中公开了一种基于Kmeans算法的神经网络卷积计算加速方法的专利,该专利,在神经网络卷积中添加一个Kmeans聚类层,通过Kmeans聚类层后的输入数据聚成了固定的k类;在卷积层中计算这k类数据和卷积核的相乘,将其结果做成一个查找表,原先所有输入数据与卷积核相乘的结果通过这个查找表得到。然而,该专利没有设计一系列法则来重新分配每个PE所包含的权重,使得任何情况下同一计算模式的反卷积计算仍可在一个周期内并行执行,反卷积的计算速度有较大提升;同时,通过重分配后的PE进行反卷积计算,在数据输入的缓冲时间得到优化;并且,通过结果融合模块很好地融合了不同处理单元PE的计算结果。
发明内容
本发明提供一种用于神经网络中反卷积计算的加速系统,该系统解决了基于ReRAM的反卷积加速器RED计算中存在对处理单元PE利用率低、反卷积计算时间长这一问题。
本发明的又一目的在于提供上述用于神经网络中反卷积计算的加速系统的加速方法。
为了达到上述技术效果,本发明的技术方案如下:
一种用于神经网络中反卷积计算的加速系统,包括:
原始特征图模块,用于存储待进行反卷积计算的原始特征图;
数据输入模块,用于按反卷积的计算模式,成批输送特征图待计算的像素值到下一模块;
反卷积计算模块,用于按特定法则重分配每个处理单元PE所含权重,进而加速并完成反卷积的计算;
结果融合模块,用于将不同计算模式的反卷积结果融合在同一输出特征图上。
进一步地,所述反卷积计算模块由多个按所提法则映射权重的处理单元PE组成,从数据输入模块的数据输入模块成批地接收同一计算模式下特征图特定位置的像素值,通过数据通路将不同位置的像素值分别分配给预先设置好的不同计算单元PE,在一个计算周期内并行计算出同一计算模式的所有特定位置像素值的反卷积结果。
进一步地,所述结果融合模块是一个反卷积计算结果处理装置,其通过数据通路将反卷积计算模块的同一计算模式下的反卷积结果汇聚到同一加法器中进行结果融合,然后按计算模式的顺序依次存放在输出特征图的特定位置,其中,加法器的数量和反卷积计算模式的种类数相等,即存在S
进一步地,所述反卷积的计算模式是:
计算模式1仅对(0,0)、(0,2)、(2,0)、(2,2)位置像素值进行反卷积计算,计算模式2仅对(0,1)、(2,1)位置像素值进行反卷积计算,计算模式3仅对(1,0)、(1,2)位置像素值进行反卷积计算,计算模式4仅对(1,1)位置像素值进行反卷积计算。
进一步地,所述的特定法则是:
首先将卷积核每个位置的权重分别分配给不同的PE,并将同一计算模式下的PE按卷积核位置从左至右从上至下顺序排列在同一行,即第一行包括PE1(0,0)、PE 2(0,2)、PE3(2,0)、PE 4(2,2),第二行包括PE 5(0,1)、PE 6(2,1),第三行包括PE 7(1,0)、PE 8(1,2),第四行包括PE 9(1,1);然后将同一行的PE两两合并,若PE数量为奇数则该行最后一个PE权重保持不变,即第一行包括PE1(0,0)+(0,2)、PE 2(0,2)+(2,2),第二行包括PE 3(0,1)+(2,1),第三行包括PE4(1,0)+(1,2),第四行包括PE 5(1,1);最后重分配所有PE的权重,应按列优先选择原有数据通路上同列不同行的空闲且还没被重分配的PE,若不符合则选择不同列的PE或复原已重分配的PE并重新分配;应优先选择PE的后半部分,若PE 1=(0,0)+(0,2),则优先选择改变(0,2)位置的权重分配,若不符合则选择PE前半部分的权重进行重分配。
一种用于神经网络中反卷积计算的加速方法,包括以下步骤:
S1:原始特征图模块存储待进行反卷积计算的原始特征图;
S2:数据输入模块按反卷积的计算模式成批输送特征图待计算的像素值到下一模块;
S3:反卷积计算模块按特定法则重分配每个处理单元PE所含权重,进而加速并完成反卷积的计算;
S4:结果融合模块将不同计算模式的反卷积结果融合在同一输出特征图上。
进一步地,所述反卷积计算模块由多个按所提法则映射权重的处理单元PE组成,从数据输入模块的数据输入模块成批地接收同一计算模式下特征图特定位置的像素值,通过数据通路将不同位置的像素值分别分配给预先设置好的不同计算单元PE,在一个计算周期内并行计算出同一计算模式的所有特定位置像素值的反卷积结果。
进一步地,所述结果融合模块是一个反卷积计算结果处理装置,其通过数据通路将反卷积计算模块的同一计算模式下的反卷积结果汇聚到同一加法器中进行结果融合,然后按计算模式的顺序依次存放在输出特征图的特定位置,其中,加法器的数量和反卷积计算模式的种类数相等,即存在S
进一步地,所述的反卷积计算模块是基于特定法则分配权重的计算单元PE集合,以边际额外成本构建反卷积计算模块。通过以同一计算模式下成批待计算的像素值作为输入,并以反卷积的方式在一个计算周期内输出计算结果。
进一步地,所述的结果融合模块支持将同一计算模式下的反卷积结果汇聚融合到输出特征图上,其中,该模块加法器的数量应和反卷积计算模式的种类数相等,即存在S
与现有技术相比,本发明技术方案的有益效果是:
本发明针对现有的基于ReRAM的反卷积加速器RED计算中存在对处理单元PE利用率低、反卷积计算时间长这一问题,通过利用所提特定法则来重分配处理单元PE所存权重,使得加速器支持在一个计算周期内配合数据输入模块完成同一计算模式下特定位置像素值的反卷积计算,以此提高反卷积计算速度以及处理单元PE的利用率,降低了硬件资源的空闲率,关键的是,数据输入模块的数据输入缓冲时间也因此得到优化。此外,通过结果融合模块能有效融合不同处理单元PE在同一计算周期中输出的结果,使得加速器的硬件工作性能得到优化,是一种更为可靠高效的加速器装置和设计方法。
附图说明
图1为本发明系统结构框图;
图2为本发明所涉及的反卷积计算的4种计算模式示意图;
图3为本发明提出的卷积核映射到处理单元PE的映射方式示意图;
图4为本发明提出的一种按特定法则重分配PE权重的反卷积计算模块结构框图;
图5为本发明提出的结果融合模块结构框图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
如图1所示,一种用于神经网络中反卷积计算的加速系统,包括:
原始特征图模块,用于存储待进行反卷积计算的原始特征图;
数据输入模块,用于按反卷积的计算模式,成批输送特征图待计算的像素值到下一模块;
反卷积计算模块,用于按特定法则重分配每个处理单元PE所含权重,进而加速并完成反卷积的计算;
结果融合模块,用于将不同计算模式的反卷积结果融合在同一输出特征图上。
反卷积计算模块由多个按所提法则映射权重的处理单元PE组成,从数据输入模块的数据输入模块成批地接收同一计算模式下特征图特定位置的像素值,通过数据通路将不同位置的像素值分别分配给预先设置好的不同计算单元PE,在一个计算周期内并行计算出同一计算模式的所有特定位置像素值的反卷积结果。
结果融合模块是一个反卷积计算结果处理装置,其通过数据通路将反卷积计算模块的同一计算模式下的反卷积结果汇聚到同一加法器中进行结果融合,然后按计算模式的顺序依次存放在输出特征图的特定位置,其中,加法器的数量和反卷积计算模式的种类数相等,即存在S
反卷积的计算模式是:
计算模式1仅对(0,0)、(0,2)、(2,0)、(2,2)位置像素值进行反卷积计算,计算模式2仅对(0,1)、(2,1)位置像素值进行反卷积计算,计算模式3仅对(1,0)、(1,2)位置像素值进行反卷积计算,计算模式4仅对(1,1)位置像素值进行反卷积计算。
特定法则是:
首先将卷积核每个位置的权重分别分配给不同的PE,并将同一计算模式下的PE按卷积核位置从左至右从上至下顺序排列在同一行,即第一行包括PE1(0,0)、PE 2(0,2)、PE3(2,0)、PE 4(2,2),第二行包括PE 5(0,1)、PE 6(2,1),第三行包括PE 7(1,0)、PE 8(1,2),第四行包括PE 9(1,1);然后将同一行的PE两两合并,若PE数量为奇数则该行最后一个PE权重保持不变,即第一行包括PE1(0,0)+(0,2)、PE 2(0,2)+(2,2),第二行包括PE 3(0,1)+(2,1),第三行包括PE4(1,0)+(1,2),第四行包括PE 5(1,1);最后重分配所有PE的权重,应按列优先选择原有数据通路上同列不同行的空闲且还没被重分配的PE,若不符合则选择不同列的PE或复原已重分配的PE并重新分配;应优先选择PE的后半部分,若PE 1=(0,0)+(0,2),则优先选择改变(0,2)位置的权重分配,若不符合则选择PE前半部分的权重进行重分配。
实施例2
一种用于神经网络中反卷积计算的加速方法,包括以下步骤:
S1:原始特征图模块存储待进行反卷积计算的原始特征图;
S2:数据输入模块按反卷积的计算模式成批输送特征图待计算的像素值到下一模块;
S3:反卷积计算模块按特定法则重分配每个处理单元PE所含权重,进而加速并完成反卷积的计算;
S4:结果融合模块将不同计算模式的反卷积结果融合在同一输出特征图上。
进一步地,所述反卷积计算模块由多个按所提法则映射权重的处理单元PE组成,从数据输入模块的数据输入模块成批地接收同一计算模式下特征图特定位置的像素值,通过数据通路将不同位置的像素值分别分配给预先设置好的不同计算单元PE,在一个计算周期内并行计算出同一计算模式的所有特定位置像素值的反卷积结果。
结果融合模块是一个反卷积计算结果处理装置,其通过数据通路将反卷积计算模块的同一计算模式下的反卷积结果汇聚到同一加法器中进行结果融合,然后按计算模式的顺序依次存放在输出特征图的特定位置,其中,加法器的数量和反卷积计算模式的种类数相等,即存在S
反卷积计算模块是基于特定法则分配权重的计算单元PE集合,以边际额外成本构建反卷积计算模块。通过以同一计算模式下成批待计算的像素值作为输入,并以反卷积的方式在一个计算周期内输出计算结果。
结果融合模块支持将同一计算模式下的反卷积结果汇聚融合到输出特征图上,其中,该模块加法器的数量应和反卷积计算模式的种类数相等,即存在S
实施例3
如图1所示,一种用于神经网络中反卷积计算的加速系统,包括:
原始特征图模块,用于存储待进行反卷积计算的原始特征图;
数据输入模块,用于按反卷积的计算模式,成批输送特征图待计算的像素值到下一模块;
反卷积计算模块,用于按特定法则重分配每个处理单元PE所含权重,进而加速并完成反卷积的计算;
结果融合模块,用于将不同计算模式的反卷积结果融合在同一输出特征图上。
反卷积计算模块由多个按所提法则映射权重的处理单元PE组成,从数据输入模块的数据输入模块成批地接收同一计算模式下特征图特定位置的像素值,通过数据通路将不同位置的像素值分别分配给预先设置好的不同计算单元PE,在一个计算周期内并行计算出同一计算模式的所有特定位置像素值的反卷积结果。
结果融合模块是一个反卷积计算结果处理装置,其通过数据通路将反卷积计算模块的同一计算模式下的反卷积结果汇聚到同一加法器中进行结果融合,然后按计算模式的顺序依次存放在输出特征图的特定位置,其中,加法器的数量和反卷积计算模式的种类数相等,即存在S
所述的反卷积计算模式,以输入特征图大小I=3(如图2a所示)、卷积核大小K=3(如图2b所示)和反卷积移动步幅S为例,假设输入特征图经过插0值处理,将会得到如图2c所示的插值特征图,其中,竖线填充部分为有效待计算区域。基于此,卷积核以不同起点在插值特征图上滑动的过程将会产生如图2d所示的4种计算模式,其中,每种计算模式的斜线填充部分为卷积核的有效计算区域,计算模式1仅对(0,0)、(0,2)、(2,0)、(2,2)位置进行反卷积计算,计算模式2仅对(0,1)、(2,1)位置进行反卷积计算,计算模式3仅对(1,0)、(1,2)位置进行反卷积计算,计算模式4仅对(1,1)位置进行反卷积计算。需要注意的是,实际过程中并不需要对原始特征图进行插0值操作,图2c所示的插值特征图仅用于说明图2d所示的4种计算模式。
所述的卷积核映射到处理单元PE的方式,支持将两个待计算像素值位置的权重映射到同一个PE上。如图3所示,以输入反卷积核大小为K=3、个数为M和通道数为C为例。基于此,PE仅存放一个像素值位置(图3a中交叉线部分)的权重时,权重映射到PE的方式为,将同一卷积核同一位置的所有通道的权重按行排放,不同卷积核同一位置的所有通道的权重按列排放,最后得到大小为C行M列的PE如图3a所示;PE存放两个像素值位置(图3b中交叉线部分和网格线部分)的权重时,相当于按通道方向合并两个仅存放一个像素值位置的PE,即合并后PE的大小为2C行M列如图3b所示,其中通道0~C和C+1~2C分别为PE前半部分和PE后半部分,分别存储卷积核两个位置所有通道的权重。
所述的特定法则,支持重分配每个PE所含权重,以输入特征图大小I=3、反卷积核大小K=3和反卷积移动步幅S=2为例,对应需要
所述的反卷积计算模块是基于特定法则分配权重的计算单元PE集合,以边际额外成本构建反卷积计算模块。通过以同一计算模式下成批待计算的像素值作为输入,并以反卷积的方式在一个计算周期内输出计算结果。基于此,我们通过一个简单的在ReRAM中计算反卷积的例子进行说明,其中,输入特征图大小I=3、反卷积核大小K=3和反卷积移动步幅S=2,对应需要
所述的结果融合模块,支持将同一计算模式下的反卷积结果汇聚融合到输出特征图上,其中,该模块加法器(Adder)的数量应和反卷积计算模式的种类数相等,即存在S
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
- 一种用于神经网络中反卷积计算的加速系统及方法
- 卷积神经网络加速引擎、卷积神经网络加速系统及方法