多层神经网络的计算方法、装置、设备及计算机可读介质制造方法及图纸

技术编号:33624493 阅读:10 留言:0更新日期:2022-06-02 00:52
本申请涉及一种多层神经网络的计算方法、装置、设备及计算机可读介质。该方法包括:将目标神经网络各个网络层的中间数据保存在边缘缓冲区,中间数据为各个网络层相邻输入分割区域之间的重叠部分进行计算得到的数据,边缘缓冲区为用于缓存中间数据的区域;装载目标网络层的输入数据至神经网络处理器时,从边缘缓冲区将中间数据装载至神经网络处理器,以利用神经网络处理器对目标网络层进行计算。本申请采用在每层网络层输入区域增补输入补边区域,可以使得多层卷积神经网络运算没有重复计算,并且增补的少量中间数据保存在边缘缓冲区,大大降低了内存带宽压力,从而解决了多层神经网络计算效率低的技术问题。计算效率低的技术问题。计算效率低的技术问题。

【技术实现步骤摘要】
多层神经网络的计算方法、装置、设备及计算机可读介质


[0001]本申请涉及神经网络
,尤其涉及一种多层神经网络的计算方法、装置、设备及计算机可读介质。

技术介绍

[0002]神经网络加速运算处理器(NPU)一般包含大量的MAC运算单元和较大的SRAM缓冲区,在只含神经网络推理部分的终端应用中,NPU缓冲区的典型大小为1-4MByte不等,缓冲区面积比MAC运算单元面积更大。
[0003]目前,相关技术中,为了提高单位面积的计算能力,可以减少NPU SRAM缓冲区大小用来增加更多的MAC运算单元。但是缓冲区面积减小,将导致每层中间层数据需要在NPU缓冲区和内存缓冲区之间导入导出,还会引起每层权重参数多次重载,不仅计算效率低,还给内存带宽带来很大压力,使得神经网络芯片的“存储墙”问题愈发严重。
[0004]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0005]本申请提供了一种多层神经网络的计算方法、装置、设备及计算机可读介质,以解决多层神经网络计算效率低的技术问题。
[0006]根据本申请实施例的一个方面,本申请提供了一种多层神经网络的计算方法,包括:
[0007]将目标神经网络各个网络层的中间数据保存在边缘缓冲区,中间数据为各个网络层相邻输入分割区域之间的重叠部分进行计算得到的数据,边缘缓冲区为用于缓存中间数据的区域;
[0008]装载目标网络层的输入数据至神经网络处理器时,从边缘缓冲区将中间数据装载至神经网络处理器,以利用神经网络处理器对目标网络层进行计算。
[0009]可选地,装载目标网络层的输入数据至神经网络处理器时,从边缘缓冲区将中间数据装载至神经网络处理器,以利用神经网络处理器对目标网络层进行计算包括:
[0010]将目标神经网络的第一层网络层的输入分割区域从内存中装载至神经网络处理器的输入缓冲区,以利用神经网络处理器对第一层网络层进行计算,得到第一层网络层的输出分割区域,输出分割区域的边缘区域作为中间数据保存在边缘缓冲区,第一层网络层的相邻两个输入分割区域之间存在重叠区域,一个输入分割区域为目标行列的所有数据输入通道进行数据输入的数据;
[0011]从第二层网络层开始,在将上一层网络层的输出分割区域装载至神经网络处理器的输入缓冲区时,从边缘缓冲区中将上一层网络层的边缘区域作为当前层网络层的输入补边区域装载至神经网络处理器的输入缓冲区,以利用神经网络处理器对当前层网络层进行计算,得到由神经网络处理器的输出缓冲区输出的当前层网络层的输出分割区域,并保存当前层网络层的输出分割区域中的边缘区域,以作为下一层网络层的输入补边区域,直至
得到最后一层网络层的输出分割区域;其中,
[0012]目标网络层包括第二层网络层至最后一层网络层中任一网络层,输入数据包括上一层的输出分割区域。
[0013]可选地,将目标神经网络的第一层网络层的输入分割区域装载至神经网络处理器的输入缓冲区,以利用神经网络处理器对第一层网络层进行计算之前,该方法还包括:
[0014]确定目标神经网络中每一层网络层的整体输入分割区域和输出分割区域,输出分割区域中包括边缘区域,边缘区域用于表示下一层网络中相邻整体输入分割区域之间重叠的区域,整体输入分割区域包括目标网络层的上一层的输出分割区域、输入补边区域,在目标网络层为第一层网络层时,整体输入分割区域为第一层网络层的输入分割区域。
[0015]可选地,确定目标神经网络中每一层网络层的整体输入分割区域和输出分割区域包括:
[0016]确定目标神经网络的最后一层网络层的输出分割区域为最大分割区域;
[0017]从最后一层网络层开始,利用当前层网络层的输出分割区域按照感受野的大小确定当前层网络层的整体输入分割区域,并利用当前层网络层的相邻的整体输入分割区域之间重叠部分的大小,确定当前层网络层的输入补边区域,上一层网络层的输出分割区域、输出分割区域中的边缘区域,直至得到第一层网络层的输入分割区域;其中,
[0018]在任意层网络层的整体输入分割区域的大小大于神经网络处理器的输入缓冲区的大小时,减小最后一层网络层的输出分割区域的大小,并重新逐层确定每一层的整体输入分割区域、输入补边区域、上一层的输出分割区域及输出分割区域中的边缘区域。
[0019]可选地,保存当前层网络层的输出分割区域中的边缘区域,以作为下一层网络层的输入补边区域之后,该方法还包括:
[0020]在当前层网络层的计算结果未使神经网络处理器的输出缓冲区满载的情况下,将第一层网络层中与输入分割区域相邻的下一输入分割区域从内存中装载至神经网络处理器的输入缓冲区,以利用神经网络处理器得到下一输入分割区域对应的下一输出分割区域,并重新从第二层网络层开始,逐层确定每一层网络层的下一输入分割区域对应的下一输出分割区域、下一输出分割区域中的下一边缘区域,直至当前层网络层的计算结果使神经网络处理器的输出缓冲区满载后,继续计算下一层网络层。
[0021]可选地,在计算得到最后一层网络层的输出分割区域的情况下,该方法还包括:
[0022]按照神经网络处理器的输出缓冲区的大小确定最后一层网络层可容纳输出分割区域的多个输出通道,多个输出通道将输出分割区域分割为多个子输出分割区域;
[0023]逐个提取多个输出通道中的待处理通道,待处理通道为多个输出通道中未进行卷积运算的通道;
[0024]装载待处理通道的权重参数,并进行待处理通道对应的子输出缓冲区域的卷积运算;
[0025]在每个输出通道均完成卷积运算的情况下,得到最后一层网络层的卷积运算结果。
[0026]可选地,边缘区域包括以下区域中的至少一种:
[0027]上下相邻整体输入分割区域之间重叠的行区域;
[0028]左右相邻整体输入分割区域之间重叠的列区域;
[0029]相邻整体输入分割区域之间重叠的方形区域。
[0030]根据本申请实施例的另一方面,本申请提供了一种多层神经网络的计算装置,包括:
[0031]中间数据缓存模块,用于将目标神经网络各个网络层的中间数据保存在边缘缓冲区,中间数据为各个网络层相邻输入分割区域之间的重叠部分进行计算得到的数据,边缘缓冲区为用于缓存中间数据的区域;
[0032]补边计算模块,用于装载目标网络层的输入数据至神经网络处理器时,从边缘缓冲区将中间数据装载至神经网络处理器,以利用神经网络处理器对目标网络层进行计算。
[0033]根据本申请实施例的另一方面,本申请提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
[0034]根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
[0035]本申请实施例提供的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多层神经网络的计算方法,其特征在于,包括:将目标神经网络各个网络层的中间数据保存在边缘缓冲区,其中,所述中间数据为各个网络层相邻输入分割区域之间的重叠部分进行计算得到的数据,所述边缘缓冲区为用于缓存所述中间数据的区域;装载目标网络层的输入数据至神经网络处理器时,从所述边缘缓冲区将所述中间数据装载至所述神经网络处理器,以利用所述神经网络处理器对所述目标网络层进行计算。2.根据权利要求1所述的方法,其特征在于,装载目标网络层的输入数据至神经网络处理器时,从所述边缘缓冲区将所述中间数据装载至所述神经网络处理器,以利用所述神经网络处理器对所述目标网络层进行计算包括:将所述目标神经网络的第一层网络层的所述输入分割区域从内存中装载至所述神经网络处理器的输入缓冲区,以利用所述神经网络处理器对所述第一层网络层进行计算,得到所述第一层网络层的输出分割区域,其中,所述输出分割区域的边缘区域作为所述中间数据保存在所述边缘缓冲区,所述第一层网络层的相邻两个所述输入分割区域之间存在重叠区域,一个所述输入分割区域为目标行列的所有数据输入通道进行数据输入的数据;从第二层网络层开始,在将上一层网络层的输出分割区域装载至所述神经网络处理器的所述输入缓冲区时,从所述边缘缓冲区中将上一层网络层的所述边缘区域作为当前层网络层的输入补边区域装载至所述神经网络处理器的所述输入缓冲区,以利用所述神经网络处理器对所述当前层网络层进行计算,得到由所述神经网络处理器的输出缓冲区输出的所述当前层网络层的输出分割区域,并保存所述当前层网络层的输出分割区域中的边缘区域,以作为下一层网络层的所述输入补边区域,直至得到最后一层网络层的输出分割区域;其中,所述目标网络层包括所述第二层网络层至所述最后一层网络层中任一网络层,所述输入数据包括所述上一层的输出分割区域。3.根据权利要求2所述的方法,其特征在于,将所述目标神经网络的第一层网络层的输入分割区域装载至所述神经网络处理器的输入缓冲区,以利用所述神经网络处理器对所述第一层网络层进行计算之前,所述方法还包括:确定所述目标神经网络中每一层网络层的整体输入分割区域和所述输出分割区域,其中,所述输出分割区域中包括所述边缘区域,所述边缘区域用于表示下一层网络中相邻所述整体输入分割区域之间重叠的区域,所述整体输入分割区域包括所述目标网络层的上一层的输出分割区域、所述输入补边区域,在所述目标网络层为所述第一层网络层时,所述整体输入分割区域为所述第一层网络层的所述输入分割区域。4.根据权利要求3所述的方法,其特征在于,确定所述目标神经网络中每一层网络层的整体输入分割区域和所述输出分割区域包括:确定所述目标神经网络的最后一层网络层的所述输出分割区域为最大分割区域;从所述最后一层网络层开始,利用所述当前层网络层的所述输出分割区域按照感受野的大小确定所述当前层网络层的所述整体输入分割区域,并利用所述当前层网络层的相邻的所述整体输入分割区域之间重叠部分的大小,确定当前层网络层的所述输入补边区域,上一层网络层的所述输出分割区域、所述输出分割区域中的所述边缘区...

【专利技术属性】
技术研发人员:刘文峰
申请(专利权)人:珠海零边界集成电路有限公司
类型:发明
国别省市:

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

1