用于卷积神经网络的装置制造方法及图纸

技术编号:21687065 阅读:25 留言:0更新日期:2019-07-24 14:55
一种用于卷积神经网络的装置,包括处理引擎二维阵列。处理引擎二维阵列配置为接收输入数据和权重数据,包括:N个处理引擎行和M个处理引擎列的阵列,其中N和M均为大于等于2的正整数。处理引擎二维阵列对输入数据和权重数据进行卷积运算后输出中间结果。处理引擎二维阵列的处理引擎配置为在所述卷积运算后自带池化处理。处理引擎二维阵列还可能具有全连接结构,中间结果在处理引擎二维阵列内部叠传。该装置实现了高速处理输入张量数据且能灵活地应对不同维度的输入张量数据。

Devices for Convolutional Neural Networks

【技术实现步骤摘要】
用于卷积神经网络的装置
本公开涉及神经网络卷积运算张量处理器,更具体地,涉及用于卷积神经网络的装置。
技术介绍
神经网络通过模拟人类大脑的神经连接结构来建立模型结构,是目前学术研究和企业研发的热点。当前的神经网络,特别是用于图像处理和对象识别的卷积神经网络,需要处理大量表示为三阶或者更高阶张量的数据,也需要处理具有不同形状和大小的张量数据。因此需要能够高速处理不同形状的三阶或更高阶张量数据的神经网络专用计算装置。此外,二值化神经网络指的是对权重值和/或输入数据进行二值化处理后的神经网络。当前还没有针对二值化神经网络的高精度计算装置。
技术实现思路
基于此,有必要提供能够高速处理三阶或更高阶张量数据的神经网路专用计算装置,也有必要提供针对二值化神经网络的高精度计算装置。为此,本公开提供一种张量处理器,该张量处理器包括多个处理引擎(ProcessingEngine,以下简称PE)以及与多个PE相连的乒乓控制器。该张量处理器能根据实际需要(比如根据输入的张量数据的维度和卷积核的维度等信息)确定要调用的PE的个数以及由被调用的PE所组成的二维阵列的维度,调用多个PE的全部或一部分来组成PE二维阵列。进一步地,该张量处理器配置PE二维阵列的PE彼此之间的连接关系和数据流向,还可以根据PE二维阵列的维度来切割输入的张量数据,从而实现了高速处理输入张量数据且能灵活地应对不同维度的输入张量数据。针对二值神经网络的推导运算,该张量处理器用硬件方式取代卷积运算,还有对卷积运算结果进行门限操作,从而实现了兼具高速度和高精度优势的二值神经网络计算装置。根据本公开的一个方面,提供了一种用于卷积神经网络的装置,所述装置包括处理引擎二维阵列,所述处理引擎二维阵列配置为接收输入数据和权重数据,所述处理引擎二维阵列包括:N个处理引擎行和M个处理引擎列的阵列,其中N和M均为大于等于2的正整数;所述处理引擎二维阵列对所述输入数据和所述权重数据进行卷积运算后输出中间结果;其中所述处理引擎二维阵列的处理引擎配置为在所述卷积运算后自带池化处理。根据本公开的另一个方面,提供了一种用于卷积神经网络的装置,所述装置包括处理引擎二维阵列,所述处理引擎二维阵列配置为接收输入数据和权重数据,所述处理引擎二维阵列包括:N个处理引擎行和M个处理引擎列的阵列,其中N和M均为大于等于2的正整数;所述处理引擎二维阵列对所述输入数据和所述权重数据进行卷积运算后输出结果;其中所述处理引擎二维阵列具有全连接结构,所述中间结果在所述处理引擎二维阵列内部叠传。附图说明本公开的实施例具有其他优点和特征,当结合附图时,从以下详细描述和所附权利要求中将更容易明白这些优点和特征,其中:图1示出了一种实施方式的张量处理器的架构,该张量处理器包括输入输出总线、乒乓控制器和PE二维阵列。图2示出了一种实施方式的张量处理器的PE二维阵列的架构和数据流向。图3示出了另一种实施方式的张量处理器的PE二维阵列的架构和数据流向。图4示出了图3所示的实施方式里的张量处理器的PE二维阵列推导出运算结果第一行。图5示出了图3所示的实施方式里的张量处理器的PE二维阵列推导出运算结果第二行。图6示出了图3所示的实施方式里的张量处理器的PE二维阵列推导出运算结果第三行。图7示出了一种实施方式的张量处理器配置PE二维阵列的PE以适应输入数据矩阵的维度。图8示出了一种实施方式的张量处理器切割输入数据矩阵以适应PE二维阵列的维度。图9示出了一种实施方式的张量处理器切割输入数据矩阵后的第一种匹配卷积核与图像数据输入的方式。图10示出了一种实施方式的张量处理器切割输入数据矩阵后的第二种匹配卷积核与图像数据输入的方式。图11示出了一种实施方式的张量处理器切割输入数据矩阵后的第三种匹配卷积核与图像数据输入的方式。图12示出了一种实施方式的张量处理器通过Multicast配置数据。图13示出了一种实施方式的张量处理器进行全连接运算的数据流向。图14示出了一种实施方式的张量处理器的PE配置参数。图15示出了一种实施方式的张量处理器的PE进行二值神经网络卷积运算和门限操作。图16示出了另一种实施方式的张量处理器的架构。图17示出了一种实施方式的张量处理器的乒乓控制器的架构。具体实施方式附图和以下描述仅为举例说明。应当理解,从下面的讨论中,这里公开的结构和方法的替代实施例将容易地被认为是可以采用的可行替代方案,而不偏离所要求保护的原理。参见图1,一种实施方式的张量处理器包括输入输出总线100、多个PE以及与多个PE相连的乒乓控制器102。输入输出总线100从外部接收输入数据(比如表示为三阶或者更高阶张量的图像数据或者包含图像特征值的特征张量),将输入数据传输到乒乓控制器102并从乒乓控制器102接收输出数据后输出到外部。输入输出总线100可以从外部接收卷积核数据(卷积核数据可以为一组权重值也可以仅为单个权重值,也可以是卷积核张量)。在另外一些实施方式中,卷积核数据也可以来自于该张量处理器本身,比如将卷积核数据预先存储在乒乓控制器102的PE配置参数寄存器里(未示出)。乒乓控制器102根据输入数据和卷积核数据的信息(比如输入数据的维度和卷积核数据的维度)来确定要调用的PE的个数,以及被调用的PE所组成的二维阵列的维度,然后调用与乒乓控制器相连的多个PE的全部或者一部分来组成PE的二维阵列。图1所示的实施方式中,乒乓控制器102确定了由16个PE组成的4行4列的二维阵列(未示出可能存在的未调用的PE)。进一步地,乒乓控制器102配置该16个PE彼此之间的连接关系和数据流向(例如,如图1所示,运算结果自上而下垂直地传输到最下面一行的PE)。在另外一些实施方式中,乒乓控制器102确定需要N(N为大于等于2的正整数)乘以M(M为大于等于2的正整数)个的PE来组成一个N行M列或M行N列或者其他维度的PE二维阵列,并配置N乘以M个的PE彼此之间的连接关系及数据流向(包括但不限于图像数据的数据流向、权重数据的数据流向和运算结果的数据流向)。继续参见图1,乒乓控制器102将卷积核数据配置到PE二维阵列中的PE,也将输入数据传输到PE二维阵列中的PE。对于PE二维阵列中的特定PE,该PE根据传输到该PE的输入数据以及配置到该PE的卷积核数据进行卷积运算后得到运算结果。特别地,配置卷积核数据到该PE发生在传输输入数据到该PE之前,也即是先配置好卷积核数据再开始传输输入数据。因为卷积核数据或者权重值在卷积运算中有很高的复用性,通过事先配置好卷积核数据或者权重值,可以不停歇地传输输入数据比如图像特征值到PE二维阵列中进行运算,从而增加张量处理器每一个批次处理数据的数量。在另外一些实施方式中,配置卷积核数据也可以跟传输输入数据同时发生,或者发生在传输输入数据之后。根据配置好的PE彼此之间的连接关系和数据流向,乒乓控制器102选择一些PE的运算结果作为输出结果。图1所示的实施方式中,乒乓控制器102选择了最下面一行的4个PE的运算结果作为输出结果。在另外一些实施方式中,根据实际需要,PE二维阵列可以具有不同的维度或者架构,而PE彼此之间的连接关系和数据流向也可以有不同的配置,PE二维阵列中的每一个PE都有可能在某个特定的架构中被指定来提供输出结果。另外本文档来自技高网...

【技术保护点】
1.一种用于卷积神经网络的装置,所述装置包括处理引擎二维阵列,所述处理引擎二维阵列配置为接收输入数据和权重数据,所述处理引擎二维阵列包括:N个处理引擎行和M个处理引擎列的阵列,其中N和M均为大于等于2的正整数;所述处理引擎二维阵列对所述输入数据和所述权重数据进行卷积运算后输出中间结果;其中所述处理引擎二维阵列的处理引擎配置为在所述卷积运算后自带池化处理。

【技术特征摘要】
1.一种用于卷积神经网络的装置,所述装置包括处理引擎二维阵列,所述处理引擎二维阵列配置为接收输入数据和权重数据,所述处理引擎二维阵列包括:N个处理引擎行和M个处理引擎列的阵列,其中N和M均为大于等于2的正整数;所述处理引擎二维阵列对所述输入数据和所述权重数据进行卷积运算后输出中间结果;其中所述处理引擎二维阵列的处理引擎配置为在所述卷积运算后自带池化处理。2.根据权利要求1所述的装置,其特征在于,所述输入数据和所述权重数据均为三阶或更高阶的张量,所述处理引擎二维阵列中的处理引擎之间的连接关系和数据流向是根据所述输入数据的维度和所述权重数据的维度来配置。3.根据权利要求1所述的装置,其特征在于,所述处理引擎二维阵列中的一部分处理引擎根据所述输入数据的维度和所述处理引擎二维阵列的维度被设置为待机状态。4.根据权利要求1所述的装置,其特征在于,所述输入数据为三阶或更高阶的张量,所述输入数据根据所述处理引擎二维阵列的维度被切割。5.根据权利要求1所述的装置,其特征在于,当所述处理引擎二维阵列中的第一部分处理引擎的权重数据被改变的时候,所述处理引擎二维阵列中的第二部分处理引擎的权重数据保持不变,并且所述第二部分处理引擎的的输入数据被改变。6.根据权利要求1所述的装置,其特征在于,所述处理引擎二维阵列的输出结果为对所述中间结果进行正则化操作后得到的正则化结果。7.根据权利要求1所述的装置,其特征在于,所述处理引擎二维阵列中的每一个处理引擎分配一个输入数据本地ID和一个权重数据本地ID,所述输入数据的每一个分量分配一个输入数据ID,所述权重数据的每一个分量分配一个权重数据ID,所述处理引擎二维阵列中的每一个处理引擎通过比较该处理引擎的输入数据本地ID和输入数据ID而匹配地接收所述输入数据的分量,所述处理引擎二维阵列中的每一个处理引擎通过比较该处理引擎的权重数据本地ID和权重数据ID而匹配地接收所述权重数据的分量。8.根据权利要求1所述的装置,其特征在于,所述输入数据和所述权重数据均进行了二值化处理,所述处理引擎二维阵列进行二值化神经网络卷积运算得到二值化神经网络卷积运算中间结果。9.根据权利要求8所述的装置,其特征在于,所述二值化神经网络卷积运算中间结果与训练好的门限值阈值进行比较。10.根据权利要求8所述的处理引擎二维阵列,其特征在于,所述二值化神经网络卷积运算的相乘操作通过异或非逻辑门操作实现,所述二值化神经网络卷积运算的相加操作通过数1的个数的操作实现。11.一种用于卷...

【专利技术属性】
技术研发人员:陈柏纲许喆丁雪立
申请(专利权)人:北京异构智能科技有限公司
类型:发明
国别省市:北京,11

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

1