本申请实施例公开了一种神经网络加速方法、加速器、电子设备及存储介质,该方法应用的卷积处理单元阵列包括M行N列的卷积处理单元,卷积处理单元包括X个乘加单元,乘加单元包括Y个乘法器、一个加法器和一个控制器;Y个乘法器的输出端与加法器的Y个输入端相连;控制器确定所有输入通道未遍历完成,将累加结果送入加法器的第Y+1个输入端;控制器确定所有输入通道遍历完成,控制输出累加结果。这样,控制乘加单元分段实现所有输入通道的乘累加操作,使乘加单元最终输出是同时在卷积核的平面方向和深度方向进行累加的结果,降低卷积核大小和深度对乘法器利用率的影响。且通过多行卷积处理单元实现并行卷积运算,加快卷积运算速度。加快卷积运算速度。加快卷积运算速度。
【技术实现步骤摘要】
一种神经网络加速方法、加速器、电子设备及存储介质
[0001]本申请涉及图像处理技术,尤其涉及一种神经网络加速方法、加速器、电子设备及存储介质。
技术介绍
[0002]卷积运算的基本运算是乘累加运算,卷积运算可以由处理元件(ProcessingElement,PE)阵列实现,其中PE阵列包括m行n列的PE单元,每个PE在横向级联,进行特征图的传输,每个PE在纵向级联,进行乘累加操作。
[0003]对于卷积神经网络来说,输入特征图数据是一个宽*高*通道的立体数据阵列,定义为IW*IH*IC,在实际的卷积计算过程中,还需要考虑深度方向,也就是IC方向,卷积计算需要针对每个平面卷积窗口的计算结果在深度方向再进行累加,最终的每个输出像素点都是同时在卷积核的平面方向和深度方向进行累加的结果。对于实际的人工智能网络,每个卷积计算层的卷积核大小和深度都不同,卷积核的平面尺寸一般以1*1,3*3,5*5等经典值构成,卷积核的深度则差异很大,而深度对PE中的乘法器的利用率存在较大的影响,导致PE中的乘法器很难达到高利用率。
技术实现思路
[0004]为解决上述技术问题,本申请实施例期望提供一种神经网络加速方法、加速器、电子设备及存储介质。
[0005]本申请的技术方案是这样实现的:
[0006]第一方面,提供了一种神经网络加速方法,所述方法包括:
[0007]获取输入特征图数据;
[0008]将所述输入特征图数据输入到卷积处理单元阵列中进行卷积运算,得到输出特征图数据;
[0009]其中,所述卷积处理单元阵列包括M行N列的卷积处理单元,每个卷积处理单元包括X个乘加单元,每个乘加单元包括Y个乘法器、一个加法器和一个控制器;
[0010]所述乘法器的两个输入端分别输入特征图数据和权重数据,所述Y个乘法器的输出端与所述加法器的Y个输入端相连,所述加法器用于对所有输入端数据进行累加,输出累加结果;
[0011]所述控制器确定所有输入通道未遍历完成,将所述加法器的累加结果送入所述加法器的第Y+1个输入端;
[0012]所述控制器确定所有输入通道遍历完成,控制输出所述加法器的累加结果。
[0013]第二方面,提供了一种神经网络加速器,包括:
[0014]卷积处理单元阵列,用于对输入特征图数据进行卷积运算得到输出特征图数据;
[0015]其中,所述卷积处理单元阵列包括M行N列的卷积处理单元,每个卷积处理单元包括X个乘加单元,每个乘加单元包括Y个乘法器、一个加法器和一个控制器;
[0016]所述乘法器的两个输入端分别输入特征图数据和权重数据,所述Y个乘法器的输出端与所述加法器的Y个输入端相连,所述加法器用于对所有输入端数据进行累加,输出累加结果;
[0017]所述控制器确定输入特征图数据的所有通道未遍历完成,将所述加法器的累加结果送入所述加法器的第Y+1个输入端;
[0018]所述控制器确定输入特征图数据的所有通道遍历完成,控制输出所述加法器的累加结果。
[0019]第三方面,提供了一种电子设备,包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
[0020]其中,所述存储器用于存储计算机程序,所述处理器配置为运行所述计算机程序时,执行前述方法的步骤。
[0021]第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现前述方法的步骤。
[0022]本申请实施例中提供了一种神经网络加速方法、加速器、电子设备及存储介质,该方法应用的卷积处理单元阵列包括M行N列的卷积处理单元,卷积处理单元包括X个乘加单元,乘加单元包括Y个乘法器、一个加法器和一个控制器;Y个乘法器的输出端与加法器的Y个输入端相连;控制器确定所有输入通道未遍历完成,将累加结果送入加法器的第Y+1个输入端;控制器确定所有输入通道遍历完成,控制输出累加结果。这样,控制乘加单元分段实现所有输入通道的乘累加操作,使乘加单元最终输出是同时在卷积核的平面方向和深度方向进行累加的结果,降低卷积核大小和深度对乘法器利用率的影响。且通过多行卷积处理单元实现并行卷积运算,加快卷积运算速度。
附图说明
[0023]图1为本申请实施例中神经网络加速方法的第一流程示意图;
[0024]图2为本申请实施例中卷积处理单元阵列的第一组成结构示意图;
[0025]图3为本申请实施例中卷积处理单元的第一组成结构示意图;
[0026]图4为本申请实施例中卷积处理单元阵列的第二组成结构示意图;
[0027]图5为本申请实施例中卷积处理单元的第二组成结构示意图;
[0028]图6为本申请实施例中神经网络加速方法的第二流程示意图;
[0029]图7为本申请实施例中特征图输入顺序示意图;
[0030]图8为本申请实施例中特征图输出顺序示意图;
[0031]图9为本申请实施例中卷积处理单元实现3*3卷积运算的流程示意图;
[0032]图10为本申请实施例中神经网络加速方法的第三流程示意图;
[0033]图11为本申请实施例中卷积处理单元实现1*1卷积运算的流程示意图;
[0034]图12为本申请实施例中卷积处理单元实现2*2卷积运算的流程示意图;
[0035]图13为本申请实施例中电子设备的组成结构示意图。
具体实施方式
[0036]为了能够更加详尽地了解本申请实施例的特点与
技术实现思路
,下面结合附图对本申
请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
[0037]目前PE阵列包括m行n列的PE单元,每个PE在横向级联,进行特征图的传输,每个PE在纵向级联,进行乘累加操作。PE阵列中乘法器的利用率依赖于卷积核大小和深度。例如,假设PE单元内部尺寸为x=8,y=8,即PE单元内部横向包括8个乘加单元,每个乘加单元包括8个乘法器,总共包含64个乘法器,PE阵列尺寸为m=8,n=8,在PE阵列中,竖直方向有64个乘法器,级联后进行累加操作,横向共有64列,对应64个卷积核。那么对于卷积核的深度不是64的倍数或者卷积核数量不是64的倍数的情况下,会造成PE阵列中很多乘法器浪费,导致PE阵列的乘法器很难达到高利用率。
[0038]鉴于此,本申请提供了一种神经网络加速方法,应用到一种新的PE阵列结构。图1为本申请实施例中神经网络加速方法的第一流程示意图,如图1所示,该方法具体可以包括:
[0039]步骤101:获取输入特征图数据;
[0040]步骤102:将所述输入特征图数据输入到卷积处理单元阵列中进行卷积运算,得到输出特征图数据;
[0041]对于卷积神经网络来说,输入特征图数据(Feature map data)是一个宽*高*通道的立体数据阵列,定义为IW*IH*IC。输入特征图数据可以为单通道、三通道、四通道等。
[0042]本申请实施例提供本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种神经网络加速方法,其特征在于,所述方法包括:获取输入特征图数据;将所述输入特征图数据输入到卷积处理单元阵列中进行卷积运算,得到输出特征图数据;其中,所述卷积处理单元阵列包括M行N列的卷积处理单元,每个卷积处理单元包括X个乘加单元,每个乘加单元包括Y个乘法器、一个加法器和一个控制器;所述乘法器的两个输入端分别输入特征图数据和权重数据,所述Y个乘法器的输出端与所述加法器的Y个输入端相连,所述加法器用于对所有输入端数据进行累加,输出累加结果;所述控制器确定所有输入通道未遍历完成,将所述加法器的累加结果送入所述加法器的第Y+1个输入端;所述控制器确定所有输入通道遍历完成,控制输出所述加法器的累加结果。2.根据权利要求1所述的方法,其特征在于,一个卷积处理单元中所有乘加单元共享一个卷积核的权重数据。3.根据权利要求2所述的方法,其特征在于,M和N取大于1的整数时,同一行卷积处理单元中每个卷积处理单元的卷积核不同,同一列卷积处理单元中每个卷积处理单元的卷积核相同。4.根据权利要求1所述的方法,其特征在于,所述将所述输入特征图数据输入到卷积处理单元阵列中进行卷积运算,包括:从所述输入特征图数据获取M个搜索窗口;在每个时钟周期,按照通道顺序将所述M个搜索窗口并行输入到M行卷积处理单元中;所述卷积处理单元获取所述搜索窗口的X个卷积窗口,将X个卷积窗口展平映射到X个乘加单元的乘法器的输入端。5.根据权利要求1所述的方法,其特征在于,所述将所述输入特征图数据输入到卷积处理单元阵列中进行卷积运算,包括:从所述输入特征图数据中获取M个搜索窗口;每个时钟周期,在所述搜索窗口的X个卷积窗口中沿深度方向取Y个点,组成X组特征图数据;将所述M个搜索窗口各自对应的X组特征图数据并行输入到M行卷积处理单元中;所述卷积处理单元将X组特征图数据映射到X个乘加单元的乘法器的输入端。6.根据权利要求4或5所述的方法,其特征在于,N取大于1的整数时,同一行卷积处理单元中相邻两个卷积处理单元相连,所述将所述输入特征图数据输入到卷积处理...
【专利技术属性】
技术研发人员:祝叶华,孙炜,
申请(专利权)人:OPPO广东移动通信有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。