当前位置: 首页 > 专利查询>谷歌公司专利>正文

用于神经网络处理器的预取权重制造技术

技术编号:16762387 阅读:66 留言:0更新日期:2017-12-09 06:21
一种用于对神经网络执行神经网络计算的电路,该电路包括:脉动阵列,该脉动阵列包括多个单元格;权重提取单元,对于多个神经网络层的每个神经网络层,该权重提取单元被配置为:对于该神经网络层,将多个权重输入发送到沿着脉动阵列的第一维度的单元格;以及多个权重定序器单元,每个权重定序器单元均耦合到沿着脉动阵列的第一维度的不同的单元格,对于多个神经网络层中的每个神经网络层,多个权重定序器单元被配置为:对于该神经网络层,在多个时钟周期中将多个权重输入转移到沿着脉动阵列的第二维度的单元格,并且其中各个单元格被配置为使用乘法电路计算激活输入与相应的权重输入的乘积。

【技术实现步骤摘要】
【国外来华专利技术】用于神经网络处理器的预取权重
本说明书涉及在硬件上计算神经网络推理。
技术介绍
神经网络是机器学习模型,其采用一层或多层模型来为接收的输入生成输出,例如分类。除了输出层以外,一些神经网络包括一个以上的隐藏层。各个隐藏层的输出被用作网络中下一层的输入,即网络的下一隐藏层或者输出层。网络的各层根据相应组的参数的当前值,从接收的输入生成输出。一些神经网络包括一个或多个卷积神经网络层。各个卷积神经网络层具有相关的一组核。各个核包括通过用户创建的神经网络模型所建立的值。在一些实现中,核识别特定的图像轮廓、形状或颜色。核能够被表示为权重输入的矩阵结构。各个卷积层还可以处理一组激活输入。所述一组激活输入也能够被表示为矩阵结构。一些现有的系统在软件中对给定的卷积层进行计算。例如,软件能够将用于层的各个核应用到所述一组激活输入。即,对于各个核,软件能够将能够多维地表示的核覆盖在能够多维地表示的激活输入的第一部分上。软件然后能够从重叠的元素中计算点积。点积能够对应于单个的激活输入,例如在重叠的多维空间中具有上左方位置的激活输入元素。例如,使用滑动窗,软件然后能够将核转移为覆盖激活输入的第二部分,并且计算与另一激活输入对应的另一点积。软件能够重复地执行该过程,直到各个激活输入具有对应的点积。在一些实现中,点积被输入到生成激活值的激活函数。激活值能够在发送到神经网络的下一层之前被组合,例如被合并。卷积计算的一种计算方式需要在大尺寸空间中的大量矩阵乘法。处理器能够通过穷举法计算矩阵乘法。例如,尽管是计算密集型的和时间密集型的,但处理器可以重复计算用于卷积计算的各个总和及乘积。由于该架构,限制了处理器的并行计算的程度。
技术实现思路
大体上,本说明书描述了一种计算神经网络推理的专用的硬件电路。大体上,本说明书中描述的本主题的一个创新性方面能够体现在用于对包括多个层的神经网络执行神经网络计算的电路中,所述电路包括:脉动阵列,该脉动阵列包括多个单元格;权重提取单元,对于多个神经网络层中的每个神经网络层,该权重提取单元被配置为:对于该神经网络层,将多个权重输入发送到沿着所述脉动阵列的第一维度的单元格;以及多个权重定序器单元,每个权重定序器单元均耦合到沿着所述脉动阵列的所述第一维度的不同的单元格,对于所述多个神经网络层中的每个神经网络层,所述多个权重定序器单元被配置为:对于该神经网络层,在多个时钟周期中将所述多个权重输入转移到沿着所述脉动阵列的第二维度的单元格,其中各个权重输入被存储在沿着所述第二维度的相应的单元格内,并且其中各个单元格被配置为使用乘法电路计算激活输入与相应的权重输入的乘积。实现可以包括以下中的一个或多个。值定序器单元,其配置为,对于所述多个神经网络层的每个神经网络层,将多个激活输入发送到沿着所述神经网络层的所述脉动阵列的所述第二维度的单元格。所述脉动阵列的所述第一维度对应于所述脉动阵列的行,并且其中所述脉动阵列的所述第二维度对应于所述脉动阵列的列。各个单元格被配置为将权重控制信号传递到相邻的单元格,所述权重控制信号使得相邻单元格中的电路为所述相邻单元格转移或加载权重输入。权重路径寄存器,其被配置为存储被转移到所述单元格的所述权重输入;权重寄存器,其耦合到所述权重路径寄存器;权重控制寄存器,其被配置为判定是否将所述权重输入存储在所述权重寄存器中;激活寄存器,其被配置为存储激活输入,并且被配置为将所述激活输入发送到沿着所述第一维度的第一相邻单元格中的另一激活寄存器;乘法电路,其耦合到所述权重寄存器和所述激活寄存器,其中,所述乘法电路被配置为输出所述权重输入与所述激活输入的乘积;加法电路,其耦合到所述乘法电路,并且被配置为接收所述乘积以及来自沿着所述第二维度的第二相邻单元格的第一局部和,其中,所述加法电路被配置为输出所述乘积与所述第一局部和的第二局部和;以及局部和寄存器,其耦合到所述加法电路,并且被配置为存储所述第二局部和,所述局部和寄存器被配置为将所述第二局部和发送到沿着所述第二维度的第三相邻单元格中的另一加法电路。各个权重定序器单元包括:暂停计数器,该暂停计数器与耦合到所述权重定序器单元的对应的单元格中的所述权重控制寄存器相对应;以及递减电路,该递减电路被配置为将到所述权重定序器单元的输入递减,以生成递减的输出,并且将所述递减的输出发送到所述暂停计数器。各个暂停计数器中的值是相同的,并且各个权重定序器单元被配置为将对应的权重输入加载到所述脉动阵列的对应的不同单元格,其中所述加载包括将所述权重输入发送到所述乘法电路。各个暂停计数器中的值达到了预定值,以使得多个权重定序器单元暂停多个权重输入沿着所述第二维度的转移。所述脉动阵列被配置为,对于所述多个神经网络层的每个神经网络层,从各个乘积生成用于所述神经网络层的累加输出。可以实现本说明书中描述的主题的特定实施例,以实现以下一个或多个优点。预取权重使神经网络处理器能够更有效地执行计算。处理器可以使用权重提取单元和权重定序器单元将加载权重输入协调到脉动阵列中,从而消除将外部存储器单元耦合到脉动阵列中的每个单元格的需要。处理器可以暂停,即,“冻结”,权重输入的转移,以同步执行多次卷积计算。本说明书的主题的一个或多个实施例的细节在附图和下面的描述中阐述。通过说明书、附图和权利要求,本主题的其它特征、方面和优点将变得显而易见。附图说明图1是用于对神经网络的给定层执行计算的示例性方法的流程图。图2示出示例性神经网络处理系统。图3示出包括矩阵计算单元的实例性架构。图4示出脉动阵列内部的单元格的示例性架构。图5示出具有空间维度和特征维度的示例性矩阵结构。图6示出如何将核矩阵结构发送到脉动阵列的示例性图示。图7示出在三个时钟周期之后,单元格内部的权重输入的示例性图示。图8是控制信号如何使得激活输入被转移或加载的示例性图示。相同的附图标记和标号表示相同的元件。具体实施方式具有多层的神经网络能够用于计算推理。例如,给定一个输入,神经网络能够计算该输入的推理。神经网络通过处理通过神经网络的各个层的输入来计算该推理。特别地,神经网络的层按顺序排列,分别具有相应的一组权重。各个层接收输入,并且根据用于该层的一组权重处理输入以生成输出。因此,为了从接收的输入计算推理,神经网络接收输入并且按顺序经过各个神经网络层处理该输入以产生推理,来自一个神经网络层的输出作为输入提供给下一神经网络层。输入到神经网络层的数据,例如或者是到神经网络的输入或者是按顺序在该层之下的层的、到神经网络层的输出,可以被称为对层的激活输入。在一些实现当中,神经网络的层布置在有向的图中。即,任何特定层都能够接收多个输入、多个输出或者二者均有。神经网络的层还能够布置成使得层的输出能够被作为输入发送回到在前的层。图1是使用专用的硬件电路执行对神经网络的给定层的计算的示例性过程100的流程图。为了方便,将关于具有执行方法100的一个或多个电路的系统来描述方法100。能够对神经网络的各层执行方法100,以便从接收的输入计算推理。系统接收给定层的权重输入的组(步骤102)以及激活输入的组(步骤104)。权重输入的组和激活输入的组能够分别从专用的硬件电路的动态存储器和统一缓冲器来接收。在一些实现中,权重输入的组和激活输入的组均从统一缓冲器接收本文档来自技高网
...
用于神经网络处理器的预取权重

【技术保护点】
一种用于对包括多个层的神经网络执行神经网络计算的电路,所述电路包括:脉动阵列,所述脉动阵列包括多个单元格;权重提取单元,对于所述多个神经网络层中的每个神经网络层,所述权重提取单元被配置为:对于该神经网络层,将多个权重输入发送到沿着所述脉动阵列的第一维度的单元格;以及多个权重定序器单元,每个所述权重定序器单元均耦合到沿着所述脉动阵列的所述第一维度的不同的单元格,对于所述多个神经网络层中的每个神经网络层,所述多个权重定序器单元被配置为:对于该神经网络层,在多个时钟周期中将所述多个权重输入转移到沿着所述脉动阵列的第二维度的单元格,其中各个权重输入被存储在沿着所述第二维度的相应的单元格内,并且其中各个所述单元格被配置为使用乘法电路来计算激活输入与相应的权重输入的乘积。

【技术特征摘要】
【国外来华专利技术】2015.05.21 US 62/164,981;2015.09.03 US 14/844,6701.一种用于对包括多个层的神经网络执行神经网络计算的电路,所述电路包括:脉动阵列,所述脉动阵列包括多个单元格;权重提取单元,对于所述多个神经网络层中的每个神经网络层,所述权重提取单元被配置为:对于该神经网络层,将多个权重输入发送到沿着所述脉动阵列的第一维度的单元格;以及多个权重定序器单元,每个所述权重定序器单元均耦合到沿着所述脉动阵列的所述第一维度的不同的单元格,对于所述多个神经网络层中的每个神经网络层,所述多个权重定序器单元被配置为:对于该神经网络层,在多个时钟周期中将所述多个权重输入转移到沿着所述脉动阵列的第二维度的单元格,其中各个权重输入被存储在沿着所述第二维度的相应的单元格内,并且其中各个所述单元格被配置为使用乘法电路来计算激活输入与相应的权重输入的乘积。2.根据权利要求1所述的电路,还包括:值定序器单元,对于所述多个神经网络层中的每个神经网络层,所述值定序器单元被配置为:对于该神经网络层,将多个激活输入发送到沿着所述脉动阵列的所述第二维度的单元格。3.根据权利要求1或2所述的电路,其中所述脉动阵列的所述第一维度对应于所述脉动阵列的行,并且其中所述脉动阵列的所述第二维度对应于所述脉动阵列的列。4.根据前述权利要求中的任意一项所述的电路,其中每个单元格被配置为将权重控制信号传递到相邻的单元格,所述权重控制信号使得相邻单元格中的电路为所述相邻单元格转移或加载权重输入。5.根据权利要求1至3中的任意一项所述的电路,其中各个单元格包括:权重路径寄存器,所述权重路径寄存器被配置为存储被转移到所述单元格的权重输入;权重寄存器,所述权重寄存器耦合到所述权重路径寄存器;权重控制寄存器,所述权重控制寄存器被配置为判定是否将所述权重输入存储在所述权重寄存器中;激活寄存器,所述激活寄存器被配置为存储激活输入,并且被配置为将所述激活输入发送到沿着所述第一维度的第一相邻单元格中的另一激活寄存器;乘法电路,所述乘法电路耦合到所述权重寄存器和所述激活寄存器,其中所述乘法电路被配置为输出所述权重输入与所述激活输入的乘积;加法电路,所述加法电路耦合到所述乘法电路,并且被配置为接收所述乘积以及来自沿着所述第二维度的第二相邻单元格的第一局部和,其中,所述加法电路被配置为输出所述乘积与所述第一局部和的第二局部和;以及局部和寄存器,所述局部和寄存器耦合到所述加法电路,并且被配置为存储所述第二局部和,所述局部和寄存器被配置为将所述第二局部和发送到沿着所述第二维度的第三相邻单元格中的另一加法电路。6.根据权利要求5所述的电路,其中,每个权重寄存器单元包括:暂停计数器,所述暂停计数器对应于耦合到所述权重定序器单元的对应单元格中的所述权重控制寄存器;以及递减电路,所述递减电路被配置为将到所述权重定序器单元的输入递减,以生成递减的输出,并且将所述递减的输出发送到所述暂停计数器。7.根据权利要求6所述的电路,其中,各个暂停计数器中的值是相同的,并且各个权重定序器单元被配置为将对应的权重输入加载到所述脉动阵列的对应的不同单元格,其中所述加载包括将所述权重输入发送到所述乘法电路。8.根据权利要求6所述的电路,其中各个暂停计数器中的值是不同的,并且各个权重定序器单元被配置为将对应的权重输入转移到沿着所述第二维度的相邻的权重定序器单元。9.根据权利要求6所述的电路,其中各个暂停计数器中的值达到预定值,以使所述多个权重定序器单元暂停多个权重输入沿着所述第二维度的转移。10....

【专利技术属性】
技术研发人员:乔纳森·罗斯
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国,US

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

1