使用矩阵计算单元的深度级联制造技术

技术编号:19023315 阅读:18 留言:0更新日期:2018-09-26 19:02
用于使用矩阵计算单元进行深度级联的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。其中一种方法包括:接收使用集成电路处理到神经网络的网络输入的请求,所述神经网络包括深度级联神经网络层;以及生成指令,所述指令在由所述集成电路执行时使所述集成电路执行操作,所述操作包括:针对到所述深度级联层的第一输入张量和到所述深度级联层的第二输入张量中的每个空间位置:使用所述矩阵计算单元,将该空间位置的第二深度矢量与所述深度级联层的移位权重矩阵相乘以生成移位的第二深度矢量;以及将所述移位的第二深度矢量和该空间位置的第一输入深度矢量相加以生成级联深度矢量。

【技术实现步骤摘要】
使用矩阵计算单元的深度级联
本说明书涉及用硬件执行神经网络计算。
技术介绍
神经网络是采用模型的一个或多个层来针对接收到的输入生成输出(例如,分类)的机器学习模型。一些神经网络除了包括输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中一个或多个其它层(即,网络的一个或多个其它隐藏层或输出层)的输入。网络的每层依照相应的参数集合的当前值从接收到的输入生成输出。一些神经网络包括深度级联层,所述深度级联层是接收为神经网络中的其它层的输出的两个或更多个张量(即,两个或更多个多维矩阵)作为输入并且沿着深度维度级联输入张量的层。特别地,每个输入张量具有两个空间维度x和y及深度维度z。通过沿着深度维度z级联两个输入张量(一个具有维度x1乘y1乘z1而另一个具有维度x1乘y1乘z2),所述深度级联层生成具有维度x1乘y1乘(z1+z2)的输出张量。该输出张量然后可被神经网络的另一层用作输入。
技术实现思路
本说明书描述用于使用矩阵计算单元来沿着深度维度执行两个张量的级联的技术。这些技术通常涉及接收要在用于执行神经网络计算的集成电路上处理到包括深度级联层的神经网络的网络输入的请求。所述集成电路包括用硬件执行矢量-矩阵乘法但是不能直接地用硬件执行深度级联操作的矩阵计算单元。替代地,神经网络处理系统生成指令,所述指令当由所述集成电路执行时,使所述集成电路用硬件执行操作,所述操作使用所述矩阵计算单元来生成满足所述深度级联层的规范的输出。可在特定实施例中实现本说明书中所描述的主题以便实现以下优点中的一个或多个。即使所述集成电路不能直接地用硬件执行深度级联操作,也可通过专用集成电路用硬件生成满足深度级联层的规范的输出。通过在所述集成电路上用硬件生成令人满意的输出,即使所述集成电路不直接地支持所述深度级联操作,也可执行针对包括深度级联层的神经网络的推理的处理,而无需将数据传回到主机,即,而无需在片外执行计算的一部分。换句话说,与计算所述深度级联层的输出有关的所有计算都发生在所述专用集成电路上。特别地,通过使用如本说明书中所描述的移位矩阵来对来自所述两个输入张量的深度矢量执行矩阵乘法,所述集成电路能够在片上用硬件计算所述深度级联层的输出。这允许在无需修改所述集成电路的硬件架构的情况下高效地执行针对这种神经网络的推理的处理。特别地,所述系统可高效地处理神经网络推理,而不需要向所述专用电路添加深度级联硬件或者向所述专用电路的矢量单元添加移位支持。也就是说,避免了由于需要在片外、用软件或两者执行计算的一部分而导致的处理延迟。在下面的附图和描述中阐述了本说明书的主题的一个或多个实施例的细节。主题的其它特征、方面和优点将根据说明书、附图和权利要求书变得显而易见。附图说明图1示出示例神经网络处理系统。图2示出示例专用集成电路。图3是用于生成使专用集成电路为深度级联层生成输出张量的指令的示例过程的流程图。图4是用于沿着深度维度级联两个张量的示例过程的流程图。图5是用于沿着深度维度级联两个张量的另一示例过程的流程图。图6是用于沿着深度维度级联两个张量的又一个示例过程的流程图。图7示出需要单个移位矩阵的深度级联计算的示例。图8示出需要两个移位矩阵的深度级联计算的实例。在各个附图中相同的附图标记和名称指示类似的元件。具体实施方式图1示出示例神经网络处理系统100。神经网络处理系统100是作为可实现在下面所描述的系统、组件和技术的一个或多个位置中的一个或多个计算机而实现的系统的示例。神经网络处理系统100是使用专用集成电路110来执行神经网络计算的系统。集成电路110是用于执行神经网络计算的专用集成电路并且包括用硬件执行矢量矩阵乘法的矩阵计算单元120。在下面参考图2更详细地描述这种专用集成电路的示例。特别地,神经网络处理系统100接收要在专用集成电路110上实现神经网络的请求,在专用集成电路110上实现神经网络,并且,一旦给定神经网络被实现,就使用专用集成电路110来处理到神经网络的输入以生成神经网络推理。也就是说,神经网络处理系统100可接收为将用于处理输入的神经网络规范神经网络架构的请求。神经网络架构定义神经网络中的层的数量和配置以及用于具有参数的每个层的参数的值。为了在专用集成电路110上实现神经网络,神经网络处理系统100包括作为一个或多个计算机程序被实现在一个或多个物理位置中的一个或多个计算机上的神经网络实现引擎150。神经网络实现引擎150生成指令,所述指令当由集成电路110执行时,使集成电路110执行由神经网络规范的操作以从接收到的神经网络输入生成神经网络输出。一旦指令已由神经网络实现引擎150生成并被提供给集成电路110,神经网络处理系统100就可接收神经网络输入并且可通过使集成电路110执行所生成的指令使用神经网络来处理神经网络输入。然而,一些神经网络包括一个或多个不相容神经网络层。如本说明书中所使用的术语“不相容神经网络层”指代规范不能由集成电路110直接地用硬件执行的操作的神经网络层。为了在集成电路上实现这些神经网络,神经网络实现引擎150生成指令,所述指令当由集成电路110执行时,使集成电路110通过用硬件执行与由神经网络层规范的那些操作不同但是导致生成满足不相容神经网络层的规范的层输出即与本来通过直接地执行由层规范的操作而生成的输出相同的层输出的操作来生成不相容神经网络层的输出。特别地,一些神经网络包括深度级联层。所述深度级联层是接收为神经网络中的其它层的输出的两个或更多个张量(即,两个或更多个多维矩阵)作为输入并且沿着深度维度级联输入张量的层。特别地,每个输入张量具有两个空间维度x和y及深度维度z。通过沿着深度维度z级联一个具有维度x1乘y1乘z1而另一个具有维度x1乘y1乘z2的两个输入张量,所述深度级联层生成具有维度x1乘y1乘(z1+z2)的输出张量。该输出张量然后可被神经网络的另一层用作输入。可以被实现在集成电路110上并且包括一个或多个深度级联层的神经网络的示例是在https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45169.pdf处可得到的ChristianSzegedy、SergeyIoffe、VincentVanhoucke的“Inception-v4,Inception-ResNetandtheImpactofResidualConnectionsonLearning”中所描述的图像识别神经网络。包括深度级联层的神经网络的其它示例是长短期记忆(LSTM)神经网络,例如在http://193.6.4.39/~czap/letoltes/is14/is2014/pdf/author/is141304.pdf处可得到的HasimSak、AndrewSenior、FrancoiseBeaufays的LongShort-TermMemoryRecurrentNeuralNetworkArchitecturesforLargeScaleAcousticModeling中所描述的LSTM神经网络。因为在集成电路110上执行矩阵操作的主要硬件单元是矩阵计算单元120,所以集成电路不能直接地用硬本文档来自技高网...

【技术保护点】
1.一种方法,包括:接收使用集成电路处理到神经网络的网络输入的请求,所述集成电路使用矩阵计算单元在硬件中执行神经网络计算,所述神经网络包括深度级联神经网络层,所述深度级联神经网络层规范具有维度x1乘y1乘z1的输入张量和具有维度x1乘y1乘z2的输入张量沿深度维度的级联以生成具有维度x1乘y1乘(z1+z2)的输出张量;以及生成指令,所述指令在由所述集成电路执行时使得所述集成电路在由所述神经网络处理网络输入期间,通过执行包括以下的操作来生成满足所述深度级联神经网络层的规范的层输出张量:针对到所述深度级联神经网络层的第一输入张量以及到所述深度级联神经网络层的第二输入张量中的每个空间位置:使用所述矩阵计算单元,将所述第二输入张量中的所述空间位置的第二深度矢量与所述深度级联神经网络层的移位权重矩阵相乘以生成移位的第二深度矢量,所述移位的第二深度矢量以零作为前z1项以及所述第二深度矢量的项作为后z2项;以及将所述移位的第二深度矢量和所述第一输入张量中的所述空间位置的第一输入深度矢量相加以生成级联深度矢量,所述级联深度矢量以所述第一输入深度矢量的项作为前z1项并且以零作为后z2项。

【技术特征摘要】
2017.03.07 US 15/452,624;2017.06.15 US 15/624,6291.一种方法,包括:接收使用集成电路处理到神经网络的网络输入的请求,所述集成电路使用矩阵计算单元在硬件中执行神经网络计算,所述神经网络包括深度级联神经网络层,所述深度级联神经网络层规范具有维度x1乘y1乘z1的输入张量和具有维度x1乘y1乘z2的输入张量沿深度维度的级联以生成具有维度x1乘y1乘(z1+z2)的输出张量;以及生成指令,所述指令在由所述集成电路执行时使得所述集成电路在由所述神经网络处理网络输入期间,通过执行包括以下的操作来生成满足所述深度级联神经网络层的规范的层输出张量:针对到所述深度级联神经网络层的第一输入张量以及到所述深度级联神经网络层的第二输入张量中的每个空间位置:使用所述矩阵计算单元,将所述第二输入张量中的所述空间位置的第二深度矢量与所述深度级联神经网络层的移位权重矩阵相乘以生成移位的第二深度矢量,所述移位的第二深度矢量以零作为前z1项以及所述第二深度矢量的项作为后z2项;以及将所述移位的第二深度矢量和所述第一输入张量中的所述空间位置的第一输入深度矢量相加以生成级联深度矢量,所述级联深度矢量以所述第一输入深度矢量的项作为前z1项并且以零作为后z2项。2.如权利要求1所述的方法,所述操作还包括:将所述第一输入深度矢量移动到所述矩阵计算单元的输出求和寄存器集合;以及其中,将所述移位的第二深度矢量和所述第一输入深度矢量相加包括:在将所述第一输入深度矢量存储在所述矩阵计算单元的所述输出求和寄存器集合中的同时,将所述移位的第二深度矢量移入所述矩阵计算单元的所述输出求和寄存器集合。3.如权利要求2所述的方法,其中,移动所述第一输入深度矢量包括:使用所述矩阵计算单元,将所述第一输入深度矢量与所述深度级联神经网络层的修改的单位权重矩阵相乘。4.如权利要求3所述的方法,还包括:为所述深度级联神经网络层生成所述修改的单位权重矩阵;以及将所述深度级联神经网络层的所述修改的单位权重矩阵存储在专用集成电路能访问的存储器中。5.如权利要求1所述的方法,还包括:为所述深度级联神经网络层生成所述移位权重矩阵;以及将所述深度级联神经网络层的所述移位权重矩阵存储在专用集成电路能访问的存储器中。6.如权利要求5所述的方法,还包括:确定所述输出张量中的深度维数不超过所述矩阵计算单元的最大矢量长度;以及响应于确定所述输出张量中的深度维数不超过所述矩阵计算单元的所述最大矢量长度,为所述深度级联神经网络层生成所述移位权重矩阵。7.如权利要求1所述的方法,其中,所述深度级联神经网络层的所述移位权重矩阵是(z1+z2)乘(z1+z2)的矩阵,该矩阵除了从该矩阵的第z2列的第一项开始的对角线上的项为一之外其余项均为零。8.一种系统,包括一个或多个计算机和存储第一指令的一个或多个存储设备,所述第一指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行第一操作,所述第一操作包括:接收使用集成电路处理到神经网络的网络输入的请求,所述集成电路使用矩阵计算单元在硬件中执行神经网络计算,所述神经网络包括深度级联神经网络层,所述深度级联神经网络层规范具有维度x1乘y1乘z1的输入张量和具有维度x1乘y1乘z2的输入张量沿深度维度的级联以生成具有维度x1乘y1乘(z1+z2)的输出张量;以及生成第二指令,所述第二指令在由所述集成电路执行时使得所述集成电路在由所述神经网络处理网络输入期间,通过执行第二操作来生成满足所述深度级联神经网络层的规范的层输出张量,所述第二操作包括:针对到所述深度级联神经网络层的第一输入张量以及到所述深度级联神经网络层的第二输入张量中的每个空间位置:使用所述矩阵计算单元,将所述第二输入张量中的所述空间位置的第二深度矢量与所述深度级联神经网络层的移位权重矩阵相乘以生成移位的第二深度矢量,所述移位的第二深度矢量以零作为前z1项随后是所述第二深度矢量的项;以及将所述移位的第二深度矢量和所述第一输入张量中的所述空间位置的第一输入深度矢量相加以生成级联深度矢量,所述级联深度矢量以所...

【专利技术属性】
技术研发人员:威廉·约翰·格兰德雷吉纳尔德·克利福德·扬
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国,US

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

1