一种神经网络加速装置、方法、设备和计算机存储介质制造方法及图纸

技术编号:38081778 阅读:8 留言:0更新日期:2023-07-06 08:48
本申请实施例公开了一种神经网络加速装置、方法、设备和计算机存储介质,该神经网络加速装置包括若干个运算单元,每一个运算单元包括存内计算阵列和第一算子模块,且第一算子模块中包括若干个第一类算子;其中,存内计算阵列,用于获取输入特征数据,并对输入特征数据进行卷积操作,得到初始计算结果;第一算子模块,用于通过第一类算子对初始计算结果进行算子操作,得到中间计算结果,并将中间计算结果作为下一个运算单元的输入特征数据。这样,不仅可以减少处理器与存储器之间的数据传输量,降低数据搬运开销,而且利用该存内计算阵列还能够降低计算的复杂度,进而提高了系统的整体性能。性能。性能。

【技术实现步骤摘要】
一种神经网络加速装置、方法、设备和计算机存储介质


[0001]本申请涉及存内计算
,尤其涉及一种神经网络加速装置、方法、设备和计算机存储介质。

技术介绍

[0002]近年来,神经网络在实际应用中取得了显著的成功,如图像分类和图标检测等,但这些成果在很大程度上依赖于具有大量参数和计算的复杂神经网络模型。目前,将这些需要大量计算和数据搬移的复杂神经网络模型,部署到基于冯.诺依曼架构的神经网络加速器上,将会出现所谓的存储墙(Memory Wall)问题,即数据搬移速度跟不上数据处理速度。
[0003]在冯.诺依曼架构中,虽然实现了计算单元和内存相分离,但是计算单元需要从内存中读取数据,然后再把计算结果写回到存储器。这样,即使增加再多的计算能力,由于读取数据速度的限制,整个系统的性能提升并不明显,而且大量的数据传输也将带来大量的功耗消耗。

技术实现思路

[0004]本申请的目的在于提出一种神经网络加速装置、方法、设备和计算机存储介质。
[0005]为达到上述目的,本申请的技术方案是这样实现的:
[0006]第一方面,本申请实施例提供了一种神经网络加速装置,该神经网络加速装置包括若干个运算单元,每一个运算单元包括存内计算阵列和第一算子模块,且第一算子模块中包括若干个第一类算子;其中,
[0007]存内计算阵列,用于获取输入特征数据,并对输入特征数据进行卷积操作,得到初始计算结果;
[0008]第一算子模块,用于通过第一类算子对初始计算结果进行算子操作,得到中间计算结果,并将中间计算结果作为下一个运算单元的输入特征数据。
[0009]第二方面,本申请实施例提供了一种神经网络加速方法,应用于神经网络加速装置,该神经网络加速装置包括若干个运算单元,且每一个运算单元包括存内计算阵列和第一算子模块;该方法包括:
[0010]通过存内计算阵列获取输入特征数据,并对输入特征数据进行卷积操作,得到初始计算结果;
[0011]通过第一算子模块内的第一类算子对初始计算结果进行算子操作,得到中间计算结果;
[0012]将中间计算结果作为下一个运算单元的输入特征数据,直至若干个运算单元全部处理完成,确定目标输出结果。
[0013]第三方面,本申请实施例提供了一种芯片,该芯片包括如第一方面的神经网络加速装置。
[0014]第四方面,本申请实施例提供了一种电子设备,该电子设备包括存储器和处理器;
其中,
[0015]存储器,用于存储能够在处理器上运行的计算机程序;
[0016]处理器,用于在运行计算机程序时,执行如第二方面的方法。
[0017]第五方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如第二方面的方法。
[0018]本申请实施例所提供的一种神经网络加速装置、方法、设备和计算机存储介质,该神经网络加速装置包括若干个运算单元,每一个运算单元包括存内计算阵列和第一算子模块,且第一算子模块中包括若干个第一类算子;其中,存内计算阵列,用于获取输入特征数据,并对输入特征数据进行卷积操作,得到初始计算结果;第一算子模块,用于通过第一类算子对初始计算结果进行算子操作,得到中间计算结果,并将中间计算结果作为下一个运算单元的输入特征数据。这样,该神经网络加速装置使用了链式结构,即当前运算单元输出的中间计算结果作为下一个运算单元的输入特征数据,使得系统规模的扩展性好;另外,充分利用了智能算法结构与存内计算阵列的特点,从而不仅可以减少处理器与存储器之间的数据传输量,降低数据搬运开销,而且利用该存内计算阵列还能够降低计算的复杂度,进而提高了系统的整体性能。
附图说明
[0019]图1为一种人工智能加速器的架构示意图;
[0020]图2为本申请实施例提供的一种神经网络加速装置的组成结构示意图;
[0021]图3为本申请实施例提供的一种存内计算的基本结构示意图;
[0022]图4为本申请实施例提供的一种存内计算阵列的架构示意图;
[0023]图5为本申请实施例提供的一种运算单元的架构示意图;
[0024]图6为本申请实施例提供的一种神经网络加速装置的架构示意图;
[0025]图7为本申请实施例提供的一种神经网络结构的组成结构示意图;
[0026]图8为本申请实施例提供的一种神经网络加速方法的流程示意图;
[0027]图9为本申请实施例提供的一种电子设备的具体硬件结构示意图;
[0028]图10为本申请实施例提供的一种芯片的组成结构示意图;
[0029]图11为本申请实施例提供的一种芯片的具体硬件结构示意图。
具体实施方式
[0030]为了能够更加详尽地了解本申请实施例的特点与
技术实现思路
,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
[0031]除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
[0032]在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情
况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
[0033]应理解,存内计算(In

Memory Computing,CIM)是目前新兴的一种计算架构,其是为了解决内存墙问题而提出的技术方案。其中,基于冯.诺依曼架构的计算机系统把存储器和处理器分割成了两个部分,而处理器频繁访问存储器的开销就形成了内存墙。存内计算就是把计算和存储合二为一,即在存储器的内部完成计算,从而实现减少处理器访问存储器的频率。相比于传统架构,存内计算具有高并行度、高能量效率的特定,对于需要大量并行矩阵向量乘法操作的算法,特别是神经网络算法,是一种更优的替代方案。
[0034]具体来讲,人工智能(Artificial Intelligence,AI)场景依赖的算法是一个庞大而复杂的网络结构,有很多参数需要存储,也需要完成大量的计算,这些计算中又会产生大量数据。在完成大量计算的过程中,一般来说,为了增大计算能力,应对更加复杂的处理场景,需要在处理引擎阵列中不断扩充其计算单元或称为处理单元(Process Engine,PE),例如乘累加单元是其中的核心单元,但是,随着计算单元的增多,需要调用的存储资源也在增大,然而整个系统的性能受制于存储单元的性能。整个算法的运算过程中,需要不断地从外部存储器中读入数据并把结果数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络加速装置,其特征在于,所述神经网络加速装置包括若干个运算单元,所述运算单元包括存内计算阵列和第一算子模块,且所述第一算子模块中包括若干个第一类算子;其中,所述存内计算阵列,用于获取输入特征数据,并对所述输入特征数据进行卷积操作,得到初始计算结果;所述第一算子模块,用于通过所述第一类算子对所述初始计算结果进行算子操作,得到中间计算结果,并将所述中间计算结果作为下一个所述运算单元的输入特征数据。2.根据权利要求1所述的神经网络加速装置,其特征在于,所述存内计算阵列中预先存储有目标卷积层对应的权重参数;其中,所述存内计算阵列,用于在获取到所述目标卷积层对应的输入特征数据后,根据所述权重参数对所述输入特征数据进行卷积操作,得到所述初始计算结果。3.根据权利要求2所述的神经网络加速装置,其特征在于,所述存内计算阵列包括数模转换模块、存储阵列和模数转换模块;其中,所述数模转换模块,用于对所述输入特征数据进行数模转换,得到第一模拟信号;所述存储阵列,用于根据所述权重参数和所述第一模拟信号进行乘累加计算,得到第二模拟信号;所述模数转换模块,用于对所述第二模拟信号进行模数转换,得到目标数字信号,将所述目标数字信号确定为所述初始计算结果。4.根据权利要求2所述的神经网络加速装置,其特征在于,所述运算单元为第i个运算单元,且所述第i个运算单元中的存内计算阵列预先存储有第i卷积层对应的权重参数;其中,所述存内计算阵列,用于获取所述第i卷积层对应的输入特征数据,并根据所述第i卷积层对应的权重参数对所述第i卷积层对应的输入特征数据进行卷积操作,得到所述第i卷积层的初始计算结果;所述第一算子模块,用于通过所述第一类算子对所述第i卷积层的初始计算结果进行算子操作,得到所述第i卷积层的中间计算结果,并将所述第i卷积层的中间计算结果确定为第i+1卷积层对应的输入特征数据;其中,i为大于零且小于或等于N的整数;N表示所述运算单元的个数,且N为大于零的整数。5.根据权利要求1所述的神经网络加速装置,其特征在于,所述神经网络加速装置还包括接收单元;其中,所述接收单元,用于接收特征图像,并将所述特征图像分割为至少一个特征块,以及按照顺序依次将所述至少一个特征块读入到所述运算单元中。6.根据权利要求5所述的神经网络加速装置,其特征在于,在所述若干个运算单元中,第一个运算单元的输入特征数据为第一特征块,在得到第一个运算单元输出的中间计算结果之后,将所述第一个运算单元输出的中间计算结果作为下一个运算单元的输入特征数据,并将下一个特征块作为所述第一个运算单元的输入特征数据,直至所述若干个运算单元全部处理完成。7.根据权利要求1所述的神经网络加速装置,其特征在于,所述神经网络加速装置还包
括数字信号处理器;其中,所述数字信号处理器,用于在无法使用所述第一类算子的情况下,对所述初始计算结果进行处理,得到所述中间计算结果。8.根据权利要求7所述的神经网络加速装置,其特征在于,所述第一类算子对应于适用于专用数字电路的加速运算,所述数字信号处理器用于处理除所述第一类算子之外的不适用于专用数字电路的运算;所述第一类算子至少包括下述之一:用于执行池化操作的算子、用于执行激活函数操作的算子和用于执行加法操作的算子。9.一种神经网络加速方法,其特征在于,应用于神经网络加速装置,所述神经网络加速装置包括若干个运算单元,且每一个运算单元包括存内计算阵列和第一算子模块;所述方法包括:通过所述存内计算阵列获取输入特征数据,并对所述输入特征数据进行卷积操作,得到初始计算结果;通过所述第一算子模块内的第一类算子对所述初始计算结果进行算子操作,得到中间计算结果;将所述中间计算结果作为下一个所述运算单元的输入特征数据,直至所述若干个运算单元全部处理完成,确定目标输出结果。10.根据权利要求9所述的方法,其特征在于,所述存内计算阵列中预先存储有目标卷积层对应的权重参数;相应地,所述通过所述存内计算阵列获取输入特征数据,并对所述输入...

【专利技术属性】
技术研发人员:祝叶华孙炜
申请(专利权)人:哲库科技上海有限公司
类型:发明
国别省市:

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

1