System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 将数据存储在缓冲器中的方法、介质、逻辑及集成电路技术_技高网

将数据存储在缓冲器中的方法、介质、逻辑及集成电路技术

技术编号:42861286 阅读:15 留言:0更新日期:2024-09-27 17:25
本申请涉及将数据存储在缓冲器中的方法、介质、逻辑及集成电路。一种将卷积神经网络的层的输入数据存储在包括N<subgt;B</subgt;个组的缓冲器中用于处理的方法,每个组包括多个字,所述方法包括:接收输入数据,所述输入数据包括将在所述卷积神经网络的层中被处理的输入数据值,所述输入数据包括P个平面,每个平面具有X列和Y行;识别值WordsPerLine,所述值WordsPerLine指示存储所述输入数据的一行所需要的每个组的字的数目;基于所述WordsPerLine以及将应用于所述输入数据的滤波器的滤波器宽度m或滤波器高度N,来确定所述缓冲器中的将存储所述输入数据值中的每一个的地址;以及将所接收的输入数据值存储在所述缓冲器中的所确定的地址处用于检索以在所述层中处理。

【技术实现步骤摘要】

本申请涉及用于卷积神经网络的缓冲器寻址。


技术介绍

1、卷积神经网络(cnn)是一种可以用于机器学习应用的人工神经网络。特别地,cnn可以用于信号处理应用,包括图像处理和计算机视觉应用。

2、为了实施cnn,可以生产硬件加速器。硬件加速器可以是被配置为实施特定cnn的特定硬件实施方式,或者可以是被配置为实施不同cnn(或任何cnn)的通用硬件实施方式。在用于实施cnn的一些硬件加速器中,可能需要硬件来以高速率的吞吐量来处理大量的输入数据。因此,硬件必须以确保维持被输入到硬件的计算部分中的数据的速率恒定的方式来缓冲输入数据。理想的是,cnn的每个层由硬件以相对相似的时间量来处理。这对于实施cnn的硬件来说是特别有挑战性的,因为在典型的cnn应用中,输入数据在每一层都具有不同的维度。用于确定用于在缓冲器中存储输入数据用于在输入数据由cnn处理时取回的存储器地址的寻址方案可以被配置为有效地存储用于一些层的输入数据,但是可能不适合于其他层的数据格式。

3、因此,需要一种改进的方法来改进被配置为实施cnn的硬件的性能和数据吞吐量。


技术实现思路

1、提供本
技术实现思路
以便以简化的形式介绍将在下面的详细描述中进一步描述的一些概念。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。

2、诸如硬件加速器等硬件逻辑可以被配置为能够实施一个或多个卷积神经网络(cnn)。为了使到用于实施cnn的硬件的计算部分中的输入数据吞吐量最大化,期望在处理之前缓冲从存储器读取的输入数据。为了提升数据吞吐量,可以基于其将被取回的方式将数据均匀地存储在存储器组中。本文中描述了一种寻址方案,其按照以下方式来将输入数据分配给输入数据缓冲器:该方式使得能够基于与输入数据的格式和用于处理输入数据的滤波器相关的格式参数,跨越多个数据分组均匀地分布输入数据。因此,数据以高吞吐量从分组存储器被取回。更具体地,当用于每次传递的滤波器数目很少时,例如,在一次需要处理一个大的滤波器尺寸(由于系数缓冲器约束)的情况下,输入缓冲器性能可能是至关重要的。以这种方式,对于一些层,将数据传送到计算部分中可能比在卷积引擎中执行的处理花费更长的时间。因此,将输入数据加载到卷积引擎中可能是用于实施cnn的硬件性能的限制因素。

3、提供了一种用于接收用于卷积神经网络“cnn”的层的输入数据用于处理的方法,该方法包括:接收包括输入数据,输入数据要在cnn的层中被处理的输入数据值;基于格式数据确定缓冲器的分组存储器中要存储所接收的数据值的地址,该格式数据指示层中的输入数据的格式参数以及指示要用于在层中处理输入数据的滤波器的格式参数;以及将所接收的输入数据值存储在缓冲器中的所确定的地址处用于取回以在层中处理。

4、提供了一种用于实施被配置为接收用于卷积神经网络“cnn”的层的输入数据的卷积神经网络的硬件逻辑,卷积神经网络被配置为:接收包括输入数据,输入数据要在cnn的层中被处理的输入数据值;基于格式数据确定缓冲器的分组存储器中要存储所接收的数据值的地址,该格式数据指示层中的输入数据的格式参数以及指示要用于在层中处理输入数据的滤波器的格式参数;以及将所接收的输入数据值存储在缓冲器中的所确定的地址处用于取回以在层中处理。

5、卷积神经网络可以在集成电路上的硬件中被具化。可以提供一种在集成电路制造系统处制造用于实施卷积神经网络的硬件的方法。可以提供一种集成电路限定数据集,其当在集成电路制造系统中被处理时将系统配置为制造用于实施卷积神经网络的硬件。可以提供一种其上存储有集成电路的计算机可读描述的非暂态计算机可读存储介质,计算机可读描述在被处理时使布局处理系统生成在集成电路制造系统中使用以制造用于实现卷积神经网络的硬件的电路布局描述。

6、可以提供一种集成电路制造系统,其包括:非暂态计算机可读存储介质,其具有存储于其上的描述用于实施卷积神经网络的硬件的计算机可读集成电路描述;被配置为处理集成电路描述以生成实施用于实施卷积神经网络的硬件的集成电路的电路布局描述的布局处理系统;以及被配置为根据电路布局描述来制造用于实施卷积神经网络的硬件的集成电路生成系统。

7、可以提供一种用于执行如前述权利要求中任一项所述的方法的计算机程序代码。可以提供一种其上存储有计算机可读指令的非暂态计算机可读存储介质,计算机可读指令当在计算机系统处被执行时使计算机系统执行如前述权利要求中任一项所述的方法。

8、如对本领域技术人员显而易见的,上述特征可以适当地组合,并且可以与本文中描述的实施例的任何方面组合。

本文档来自技高网...

【技术保护点】

1.一种将卷积神经网络的层的输入数据存储在包括NB个组的缓冲器中用于处理的方法,每个组包括多个字,所述方法包括:

2.根据权利要求1所述的方法,其中,所述WordsPerLine等于:

3.根据权利要求1或权利要求2所述的方法,其中,所述WordsPerLine被明确地提供。

4.根据任一前述权利要求所述的方法,其中,每个输入数据值在所述输入数据中具有由分别反映所述输入数据值的列、行和平面的x、y和p坐标限定的位置,并且所述缓冲器中的将存储输入数据值的地址进一步基于所述输入数据值的所述x、y和p坐标。

5.根据权利要求4所述的方法,其中,所述缓冲器中的每一个地址由指示所述缓冲器的组的第一值BANKSEL和指示所述组内的存储器位置的第二值MEMADDR限定,并且所述缓冲器中的将存储输入数据值的地址的所述MEMADDR由以下等式确定:

6.根据权利要求4所述的方法,其中,所述缓冲器中的每一个地址由指示所述缓冲器的组的第一值BANKSEL和指示所述组内的存储器位置的第二值MEMADDR限定,并且所述缓冲器中的将存储输入数据值的地址的所述MEMADDR由以下等式确定:

7.根据权利要求5或权利要求6所述的方法,其中,所述缓冲器中的存储输入数据值的地址的所述BANKSEL由以下等式确定:

8.根据权利要求5或权利要求6所述的方法,其中,所述缓冲器中的存储输入数据值的地址的所述BANKSEL由以下等式确定:

9.根据权利要求7或权利要求8所述的方法,其中,所述方法还包括:以平面、列、行顺序从所述缓冲器读取所述输入数据值,并且将所读取的输入数据值传递到卷积引擎以进行处理。

10.根据权利要求5所述的方法,其中,所述缓冲器中的存储输入数据值的地址的所述BANKSEL由以下等式确定:

11.根据权利要求10所述的方法,其中,所述方法还包括:以平面、行、列顺序从所述缓冲器读取所述输入数据值,并且将所读取的输入数据值传递到卷积引擎以进行处理。

12.根据任一前述权利要求所述的方法,所述方法还包括:

13.一种用于实现卷积神经网络的硬件逻辑,所述硬件逻辑被配置为:

14.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令在被计算机系统执行时使得所述计算机系统执行根据权利要求1至12中任一项所述的方法。

15.一种计算机可读存储介质,所述计算机可读存储介质上存储有集成电路的计算机可读描述,所述计算机可读描述当在集成电路制造系统中被处理时,使所述集成电路制造系统制造根据权利要求13所述的硬件逻辑。

16.一种将卷积神经网络的层的输入数据存储在包括NB个组的缓冲器中用于处理的方法,每个组包括多个字,所述方法包括:

17.一种将卷积神经网络的层的输入数据存储在包括NB个组的缓冲器中用于处理的方法,每个组包括多个字,所述方法包括:

18.一种将卷积神经网络的层的输入数据存储在包括NB个组的缓冲器中用于处理的方法,每个组包括多个字,所述方法包括:

19.根据权利要求16、权利要求17或权利要求18所述的方法,其中,所述WordsPerLine被明确地提供。

20.根据权利要求16或权利要求17所述的方法,其中,所述缓冲器中的存储输入数据值的地址的所述BANKSEL由以下等式确定:

21.根据权利要求16或权利要求17所述的方法,其中,所述缓冲器中的存储输入数据值的地址的所述BANKSEL由以下等式确定:

22.根据权利要求16、权利要求17或权利要求18所述的方法,所述方法还包括:

23.根据权利要求16、权利要求17或权利要求18所述的方法,所述方法还包括:从外部存储器接收所述输入数据。

24.一种用于实现卷积神经网络的集成电路,所述集成电路被配置为执行权利要求16、权利要求17或权利要求18所述的方法。

25.一种计算机可读存储介质,所述计算机可读存储介质上存储有根据权利要求24所述的集成电路的计算机可读描述,所述计算机可读描述当在集成电路制造系统中被处理时,使得所述集成电路制造系统制造所述集成电路。

...

【技术特征摘要】

1.一种将卷积神经网络的层的输入数据存储在包括nb个组的缓冲器中用于处理的方法,每个组包括多个字,所述方法包括:

2.根据权利要求1所述的方法,其中,所述wordsperline等于:

3.根据权利要求1或权利要求2所述的方法,其中,所述wordsperline被明确地提供。

4.根据任一前述权利要求所述的方法,其中,每个输入数据值在所述输入数据中具有由分别反映所述输入数据值的列、行和平面的x、y和p坐标限定的位置,并且所述缓冲器中的将存储输入数据值的地址进一步基于所述输入数据值的所述x、y和p坐标。

5.根据权利要求4所述的方法,其中,所述缓冲器中的每一个地址由指示所述缓冲器的组的第一值banksel和指示所述组内的存储器位置的第二值memaddr限定,并且所述缓冲器中的将存储输入数据值的地址的所述memaddr由以下等式确定:

6.根据权利要求4所述的方法,其中,所述缓冲器中的每一个地址由指示所述缓冲器的组的第一值banksel和指示所述组内的存储器位置的第二值memaddr限定,并且所述缓冲器中的将存储输入数据值的地址的所述memaddr由以下等式确定:

7.根据权利要求5或权利要求6所述的方法,其中,所述缓冲器中的存储输入数据值的地址的所述banksel由以下等式确定:

8.根据权利要求5或权利要求6所述的方法,其中,所述缓冲器中的存储输入数据值的地址的所述banksel由以下等式确定:

9.根据权利要求7或权利要求8所述的方法,其中,所述方法还包括:以平面、列、行顺序从所述缓冲器读取所述输入数据值,并且将所读取的输入数据值传递到卷积引擎以进行处理。

10.根据权利要求5所述的方法,其中,所述缓冲器中的存储输入数据值的地址的所述banksel由以下等式确定:

11.根据权利要求10所述的方法,其中,所述方法还包括:以平面、行、列顺序从所述缓冲器读取所述输入数据值,并且将所读取的输入数据值传递到卷积引擎以进行处理。

12.根据任一前述权利要求所述的方法,所述方法...

【专利技术属性】
技术研发人员:C·麦奎兰D·巴纳德C·吉布森
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:

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

1