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

神经网络指令集架构制造技术

技术编号:17913298 阅读:153 留言:0更新日期:2018-05-10 18:47
本申请涉及一种神经网络指令集架构。一种计算机实现方法包括由处理单元接收指定用于施行张量计算的数据值的指令。响应于接收到指令,所述方法可以包括通过执行包括多个循环的循环嵌套,由处理单元施行张量计算,其中循环嵌套的结构基于指令的数据值中的一个或多个来定义。张量计算能够至少是神经网络层的计算的部分。由指令指定的数据值能够至少包括指定神经网络层的类型的值,并且循环嵌套的结构可以至少部分地通过神经网络层的类型来定义。

【技术实现步骤摘要】
神经网络指令集架构
本说明书涉及一种用于深层神经网络(“DNN”)的计算的指令集。
技术介绍
神经网络是机器学习模型,其采用模型的一个或多个层以为接收的输入生成输出,例如分类。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出被用作到网络中的下一层的输入,即,网络的下一个隐藏层或输出层。网络的每个层根据相应参阵列的当前值,从接收到的输入生成输出。一些神经网络包括一个或多个卷积神经网络层。每个卷积神经网络层具有内核相关的集合。每个内核包括通过由用户创建的神经网络模型而建立的值。在一些实施方式中,内核识别特定图像轮廓、形状、或颜色。内核能够被表示为权重输入的矩阵结构。每个卷积层还能够处理激活输入的集合。该激活输入的集合还能够被表示为矩阵结构。
技术实现思路
本说明书中公开的主题的一个创造性方案能够在计算机实现方法中具体实施。该方法包括由处理单元接收指定用于施行张量计算的数据值的指令。该方法可以包括响应于接收所述指令,通过执行包括多个循环的循环嵌套,由所述处理单元施行所述张量计算,其中所述循环嵌套的结构基于所述指令的数据值中的一个或多个来定义。这些和其它实施方式能够各自选择性地包括以下特征的一个或多个。例如,张量计算能够至少是神经网络层的计算的部分。由指令指定的数据值包括指定神经网络层的类型的至少一个值,以及其中循环嵌套的结构至少部分地通过神经网络层的类型来定义。因此,执行包括多个循环的循环嵌套可以是指以由嵌套循环的结构指定的顺序,对张量的元素施行遍历,其中,所述结构例如通过循环嵌套的深度、以及每个循环的开始和结束索引、步幅和方向来指定。在一些实施方式中,张量计算至少是神经网络层的计算的部分。在一些实施方式中,由指令指定的数据值包括指定神经网络层的类型的至少一个值,以及其中循环嵌套的结构至少部分地通过神经网络层的类型来定义。在一些实施方式中,指令使处理单元访问张量的维度的至少一个元素,所述元素是在施行张量计算期间、执行循环嵌套时使用的至少一个索引的部分。在一些实施方式中,指令使处理单元访问存储介质中的阵列的至少一个存储器地址,所述阵列的存储器地址包括在施行张量计算期间通过处理单元读取的变量。在一些实施方式中,施行张量计算包括:通过处理单元向张量遍历单元(TTU)提供至少一个控制信号,以使TTU发出在施行张量计算期间、执行循环嵌套时使用的循环索引。在一些实施方式中,该方法进一步包括:通过处理单元向TTU提供至少一个控制信号,以使TTU的阵列参考生成用于在施行张量计算期间、执行循环嵌套时使用的所参考的阵列元素的地址。在一些实施方式中,指令指示与第二TTU计数器相加的第一TTU计数器,以生成用于与TTU相关联的阵列参考的地址。在一些实施方式中,施行张量计算包括:通过处理单元执行管理与施行张量计算相关联的一个或多个运算对象的第一同步程序,其中,管理运算对象包括基于同步标志条件停滞一个或多个循环嵌套。在一些实施方式中,施行张量计算包括:通过处理单元执行管理递增与循环嵌套的特性相关联的计数器的第二同步程序。本说明书中描述的主题的另一个创造性方案能够在电子系统中被实施,所述电子系统包括:处理单元,该处理单元被设置在电子系统中,该处理单元包括一个或多个处理装置;以及一个或多个机器可读存储装置,该一个或多个机器可读存储装置用于存储通过一个或多个处理装置可执行的指令,以施行操作,所述操作包括:由处理单元接收指定用于施行张量计算的数据值的指令;以及响应于接收到指令,通过执行包括多个循环的循环嵌套,由处理单元施行张量计算,其中循环嵌套的结构基于所述指令的数据值的一个或多个来定义。本说明书中描述的主题的另一个创造性方案能够在非暂时性计算机可读存储介质中被实施,所述介质包括通过处理单元的可执行的指令,所述指令在执行时使处理单元施行操作,所述操作包括:由处理单元接收指定用于施行张量计算的数据值的指令;以及响应于接收到的指令,通过执行包括多个循环的循环嵌套,由处理单元施行张量计算,其中,所述循环嵌套的结构基于所述指令的数据值的一个或多个来定义。这个和其它方案的其它实施方式包括被配置为施行在计算机存储装置上编码的方法的动作的系统、设备和计算机程序。能够凭借系统上安装的软件、固件、硬件或其组合来这样配置一个或多个计算机的系统,它们在操作时使系统施行所述动作。能够通过具有在凭借数据处理设备执行时使所述设备施行所述动作的指令来这样配置一个或多个计算机程序。本说明书中描述的主题可在特定实施例中实施,从而实现一个或多个以下优点。处理单元能够用一个指令启动程序,以重复深度嵌套循环。处理单元能够执行用数据值编码的接收指令,用于施行张量计算。通过减少在遍历张量以施行一个或多个计算时需要处理器执行的指令的数目,增加处理单元的计算带宽。用于施行给定神经网络层的张量计算的指令能够被编码,并且被分布在示例硬件计算系统的一个或多个计算系统中。将编码指令分配给各种计算系统允许在单个系统内增加计算带宽。因为单个系统仅对给定张量所需的总计算的子集负责,实施计算系统中的指令数目减少。本说明书中描述的主题的一个或多个实施方式的细节在以下附图和描述中给出。根据描述、附图和权利要求,主题的其它潜在特征、方案和优点将变得显而易见。附图说明图1是示例计算系统的方框图。图2示出示例张量遍历单元。图3示出包括操作码以及至少部分地通过图1的示例计算系统施行的相对应操作的示例表。图4A示出示例激活张量、示例权重张量、和示例输出张量。图4B示出能够通过图1的示例计算系统的处理单元执行的示例循环嵌套。图5是示出通过计算机实现方法的方式施行张量计算的处理的示例的流程图。各附图中相同的附图标记和标号表示相同的元件。具体实施方式本说明书中描述的主题涉及一种计算机实现处理或方法,以加速机器学习推理工作负载,使得施行工作负载的处理单元能够在执行计算时实现高性能。本说明书中描述的处理和方法能够在硬件计算系统内执行,该硬件计算系统被组织为模组(tile)的集合,该模组的集合中的每个是独立的,并且可独立地执行由神经网络层需要的计算的至少部分。在神经网络内执行的计算处理可以由在一个或多个周期上将输入张量与参数/权重张量相乘以及对许多循环施行乘积的累积组成。然后,可以将输入权重乘法撰写为每个权重元素乘以输入张量或矩阵中的行的乘积的总和。深层神经网络(DNN)包括互相馈入的多个层。通过本说明书中描述的方法加速包括用于给定层的张量计算的推理工作负载。本说明书中描述的主题还能够涉及使用所公开技术的图像识别和/或分类方法/系统以及使用神经网络指令集架构的硬件。通常,当软件算法通过处理N维张量来施行张量计算时,能够使用嵌套循环,其中每个循环负责遍历N维张量中的每个维度。多维张量能够是矩阵或多维矩阵。N维张量中的每个维度可以包括一个或多个元素,其中每个元素可以存储相应的数据值。例如,张量能够是程序中的变量,其中该变量可以具有三个维度。第一维度可以具有三百个元素的长度,第二维度可以具有上千个元素的长度,并且第三维度可以具有二十个元素的长度。遍历嵌套循环中的张量需要计算元素的存储器地址值,以加载或存储该元素的相对应数据值。例如,for-loop是嵌套循环,其中由三个循环索引变量追踪的三个循环能够被嵌套以本文档来自技高网...
神经网络指令集架构

【技术保护点】
一种计算机实现方法,包括:由处理单元接收指定用于施行张量计算的多个数据值的指令;以及响应于接收所述指令,通过执行包括多个循环的循环嵌套,由所述处理单元施行所述张量计算,其中,所述循环嵌套的结构基于所述指令的所述多个数据值中的一个或多个来定义。

【技术特征摘要】
2016.10.27 US 15/336,216;2017.03.10 US 15/455,6851.一种计算机实现方法,包括:由处理单元接收指定用于施行张量计算的多个数据值的指令;以及响应于接收所述指令,通过执行包括多个循环的循环嵌套,由所述处理单元施行所述张量计算,其中,所述循环嵌套的结构基于所述指令的所述多个数据值中的一个或多个来定义。2.根据权利要求1所述的方法,其中,所述张量计算至少是神经网络层的计算的一部分。3.根据权利要求2所述的方法,其中,由所述指令指定的所述多个数据值包括指定所述神经网络层的类型的至少一个值,以及其中,所述循环嵌套的结构至少部分地通过所述神经网络层的所述类型来定义。4.根据权利要求2所述的方法,其中,所述指令使所述处理单元访问张量的维度的至少一个元素,所述元素是在施行所述张量计算期间执行所述循环嵌套时使用的至少一个索引的一部分。5.根据权利要求2所述的方法,其中,所述指令使所述处理单元访问存储介质中的阵列的至少一个存储器地址,所述阵列的所述存储器地址包括在施行所述张量计算期间由所述处理单元读取的变量。6.根据权利要求5所述的方法,其中,施行所述张量计算包括:由所述处理单元向张量遍历单元(TTU)提供至少一个控制信号,以使所述张量遍历单元发出在施行所述张量计算期间执行所述循环嵌套时使用的循环索引。7.根据权利要求5所述的方法,进一步包括:由所述处理单元向所述张量遍历单元提供至少一个控制信号,以使所述张量遍历单元的阵列参考生成用于在施行所述张量计算期间执行所述循环嵌套时使用的所参考的阵列元素的地址。8.根据权利要求7所述的方法,其中,所述指令指示与第二张量遍历单元计数器相加的第一张量遍历单元计数器,以生成与所述张量遍历单元相关联的阵列参考的地址。9.根据权利要求1所述的方法,其中,施行所述张量计算包括:由所述处理单元执行管理与施行所述张量计算相关联的一个或多个运算对象的第一同步程序,其中,管理运算对象包括基于同步标志条件停滞一个或多个循环嵌套。10.根据权利要求9所述的方法,其中,施行所述张量计算包括:由所述处理单元执行管理递增与所述循环嵌套的特性相关联的计数器的第二同步程序。11.一种电子系统,包括:处理单元,所述处理单元被设置在所述电子系统中;以及一个或多个机器...

【专利技术属性】
技术研发人员:拉维·纳拉亚纳斯瓦米禹同爀奥利维尔·泰马姆哈西特·哈伊坦
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国,US

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

1