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

利用神经网络计算单元中的输入数据稀疏制造技术

技术编号:17913296 阅读:76 留言:0更新日期:2018-05-10 18:47
本申请涉及利用神经网络计算单元中的输入数据稀疏。一种计算机实现的方法包括由计算设备接收输入激活并且由所述计算设备的控制器确定每个输入激活具有零值还是非零值。所述方法进一步包括在所述计算设备的存储器组中存储至少一个输入激活。存储至少一个输入激活包括生成索引,所述索引包括一个或多个存储器地址位置,该存储器地址位置具有非零值的输入激活值。所述方法仍进一步包括由控制器从存储器组提供至少一个输入激活到数据总线上,所述数据总线可由计算阵列的一个或多个单元来访问。激活至少部分从与索引相关联的存储器地址位置提供。

【技术实现步骤摘要】
利用神经网络计算单元中的输入数据稀疏
本申请涉及利用神经网络计算单元中的输入数据稀疏。
技术介绍
本说明书涉及使用专用计算单元执行机器学习计算。神经网络是利用模型的一个或多个层来生成对于接收到的输入的例如分类的输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作对网络中下一层的输入,即网络的下一隐藏层或输出层。网络的每一层根据相应的参数集的当前值从接收到输入生成输出。一些神经网络包括一个或多个卷积神经网络层。每个卷积神经网络层具有相关联的内核集。每个内核包括由用户创建的神经网络模型所建立的值。在一些实现中,内核识别特定图像轮廓、形状或颜色。内核可以被表示为权重输入的矩阵结构。每个卷积层还可以处理激活输入集。所述激活输入集也可以被表示为矩阵结构。
技术实现思路
计算卷积计算的一种方式需要在大维度空间中的许多矩阵乘法。计算单元的处理器或控制器设备可以通过强力法计算矩阵乘法。例如,尽管计算密集且时间密集,处理器可以为卷积计算重复地计算各自的和与积。处理器并行化计算的程度由于其架构而受限。本说明书中所述的主题的创新方面可以体现在一种计算机实现的方法。所述方法包括由计算设备接收多个输入激活,所述多个输入激活的至少部分从所述计算设备外部的源提供,以及由所述计算设备的控制器确定所述多个输入激活中的每个是否具有零值或非零值之一。所述方法进一步包括在所述计算设备的存储器组中存储至少一个所述输入激活,其中,存储至少一个所述输入激活包括由所述控制器生成索引,所述索引包括一个或多个存储器地址位置,该存储器地址位置具有非零值的输入激活值。所述方法还进一步包括由所述控制器从所述存储器组提供至少一个输入激活到数据总线上,所述数据总线能够由计算阵列的一个或多个单元访问,其中,所述激活至少部分从与所述索引相关联的存储器地址位置提供。在一些实现中,所述索引基于包括多个位的位图来创建,其中,所述位图的每个位指示非零输入激活值或零输入激活值中的至少一个。在一些实现中,所述方法进一步包括,提供具有非零值的第一输入激活以由至少一个单元使用所述非零值执行计算,并且随后提供具有零值的第二输入激活,以及在至少一个单元中阻止否则将使用所述零值来执行的计算。在一些实现中,响应于所述控制器确定所述输入激活从不与所述索引相关联的存储器地址位置提供而发生阻止。在一些实现中,所述方法进一步包括,由所述控制器检测所述输入激活从不与所述索引相关联的存储器地址位置提供,以及响应于检测,提供控制信号给所述计算阵列的至少一个单元以阻止与所述零输入激活值相关联的乘法操作。在一些实现中,所述方法进一步包括,由所述控制器向第一单元映射使用第一输入激活的张量计算的第一部分以及向与所述第一单元不同的第二单元映射也使用所述第一输入激活的所述张量计算的第二部分。在一些实现中,所述方法进一步包括,顺序地提供单个输入激活到所述数据总线上,所述单个输入激活从与所述索引相关联的存储器地址位置访问和选择。在一些实现中,提供进一步包括,不提供具有零值的输入激活。本说明书中所述的主题的另一创新方面可以体现为存储指令的一个或多个机器可读存储设备,所述指令能够由一个或多个处理设备执行以执行操作,所述操作包括:由计算设备接收多个输入激活,所述多个输入激活的至少部分从所述计算设备外部的源提供,以及由所述计算设备的控制器确定所述多个输入激活中的每个是否具有零值或非零值之一。所述操作进一步包括在所述计算设备的存储器组中存储至少一个所述输入激活,其中,存储至少一个所述输入激活包括由所述控制器生成索引,所述索引包括一个或多个存储器地址位置,该存储器地址位置具有非零值的输入激活值。所述操作还进一步包括由所述控制器从所述存储器组提供至少一个输入激活到数据总线上,所述数据总线能够由计算阵列的一个或多个单元访问,其中,所述激活至少部分从与所述索引相关联的存储器地址位置提供。本说明书中所述的主题的另一创新方面可以体现为一种电子系统,包括:置于计算设备中的控制器,所述控制器包括一个或多个处理设备;以及用于存储指令的一个或多个机器可读存储设备,所述指令能够由所述一个或多个处理设备执行以执行操作,所述操作包括:由所述计算设备接收多个输入激活,所述输入激活至少部分从所述计算设备外部的源提供;以及由所述控制器确定所述多个输入激活中每个是否具有零值或非零值之一。所述操作进一步包括,在所述计算设备的存储器组中存储至少一个所述输入激活,其中,存储至少一个所述输入激活包括由所述控制器生成索引,所述索引包括一个或多个存储器地址位置,该存储器地址位置具有非零值的输入激活值。所述操作还进一步包括,由所述控制器从所述存储器组提供至少一个输入激活到数据总线上,所述数据总线能够由计算阵列的一个或多个单元访问,其中,所述激活至少部分从与所述索引相关联的存储器地址位置提供。本说明书中所述的主题可以在特定实施例中实现,从而实现下面一个或多个优点。在单个计算系统中,可从第一存储器访问的激活和可从第二存储器访问的权重可以基于从寄存器中检索到的存储器地址值而遍历。计算系统的控制器可以通过只在第一存储器中存储非零值而压缩激活数据,由此节省了存储空间及对应带宽。在计算系统至少部分基于主要提供非零输入激活而发生矩阵乘法。而且,当计算系统使用主要包括非零激活值的通信方案时,通过用零来消除乘法,计算效率可以提高或加速。本方面及其他方面的其他实现包括对应系统、装置和计算机程序,所述计算机程序被配置为执行所述方法的动作,所述计算机程序被编码在计算机存储设备上。一个或多个计算机的系统可以利用安装在系统上且在操作中使得系统执行动作的软件、固件、硬件或它们的组合来进行这样的配置。一个或多个计算机程序可以通过利用具有当被数据处理装置执行时使得装置执行动作的指令而进行这样的配置。本说明书中所述的主题还涉及图像识别和/或分类方法/系统。当硬件计算系统的计算单元处理对于神经网络层的输入以执行推理计算时,可以使用所公开的用于利用输入数据稀疏的技术来实现系统。本说明书中所述的主题的一个或多个实现的细节在附图和下面的描述中阐述。通过说明书、附图和权利要求书,主题的其他潜在特征、方面和优点将变得显然。附图说明图1图示说明包括激活和参数的示例计算结构。图2图示说明包括输出深度大于一的激活和多个参数结构的示例计算结构。图3图示说明用于馈送输入激活到一个或多个参数的示例计算系统。图4图示说明包括提供输入激活给一个或多个乘法累加(MAC)运算器的存储器单元的示例架构。图5是用于降低参数计算以及利用输入数据稀疏的过程的示例流程图。各个附图中的相同的附图标记和名称指示相同的元素。具体实施方式本说明书中所述的主题涉及降低在示例神经网络硬件计算系统的计算单元或模组(tile)内发生的计算。通常,作为计算神经网络推理的一部分,输入激活与参数或权重值相乘以产生输出激活。这里,输入和输入激活可以指包括在诸如张量、矩阵和/或数据阵列的在神经网络中公共使用的多维数据结构中的数据元素。由于用于深度神经网络的计算推理的算法属性,大部分的输入激活是零。换句话说,当前计算单元执行大量不必要的计算,包括一个数(例如权重)乘零(输入激活值)。本说明书部分地描述了更有效的激活存储和通信方案以本文档来自技高网...
利用神经网络计算单元中的输入数据稀疏

【技术保护点】
一种计算机实现的方法,包括:由计算设备接收多个输入激活,所述多个输入激活至少部分从所述计算设备外部的源提供;由所述计算设备的控制器确定所述多个输入激活中的每个输入激活是否具有零值或非零值之一;在所述计算设备的存储器组中存储所述多个输入激活中的至少一个;由所述控制器生成索引,所述索引包括具有非零值的输入激活值的一个或多个存储器地址位置;以及由所述控制器从所述存储器组提供至少一个输入激活到数据总线上,所述数据总线能够由计算阵列的一个或多个单元访问,其中,所述至少一个激活至少部分从与所述索引相关联的存储器地址位置提供。

【技术特征摘要】
2016.10.27 US 15/336,066;2017.03.22 US 15/465,7741.一种计算机实现的方法,包括:由计算设备接收多个输入激活,所述多个输入激活至少部分从所述计算设备外部的源提供;由所述计算设备的控制器确定所述多个输入激活中的每个输入激活是否具有零值或非零值之一;在所述计算设备的存储器组中存储所述多个输入激活中的至少一个;由所述控制器生成索引,所述索引包括具有非零值的输入激活值的一个或多个存储器地址位置;以及由所述控制器从所述存储器组提供至少一个输入激活到数据总线上,所述数据总线能够由计算阵列的一个或多个单元访问,其中,所述至少一个激活至少部分从与所述索引相关联的存储器地址位置提供。2.如权利要求1所述的方法,其中,所述索引基于包括多个位的位图来创建,并且其中,所述位图的每个位指示非零输入激活值和零输入激活值中的一个。3.如权利要求1所述的方法,进一步包括:提供具有非零值的第一输入激活以由所述计算阵列的至少一个单元使用所述非零值执行计算,并且随后提供具有零值的第二输入激活,以及阻止在所述计算阵列的至少一个单元中否则将使用所述零值来执行的计算。4.如权利要求3所述的方法,其中,所述阻止是响应于所述控制器确定所述第二输入激活是从不与所述索引相关联的存储器地址位置提供而发生的。5.如权利要求4所述的方法,进一步包括:由所述控制器检测所述第二输入激活是从不与所述索引相关联的存储器地址位置提供的,以及响应于所述检测,提供控制信号给所述计算阵列的至少一个单元以阻止与所述第二输入激活的所述零值相关联的乘法操作。6.如权利要求1所述的方法,进一步包括:由所述控制器向所述计算阵列的第一单元映射使用第一输入激活的张量计算的第一部分以及向与所述第一单元不同的所述计算阵列的第二单元映射也使用所述第一输入激活的所述张量计算的第二部分。7.如权利要求1所述的方法,进一步包括,顺序地提供单个输入激活到所述数据总线上,所述单个输入激活从与所述索引相关联的存储器地址位置被访问和被选择。8.如权利要求1所述的方法,其中,所述提供进一步包括:不提供具有零值的输入激活。9.存储指令的一个或多个机器可读存储设备,所述指令在由计算设备的一个或多个处理设备执行时使所述一个或多个处理设备执行操作,所述操作包括:接收多个输入激活,所述多个输入激活至少部分从所述计算设备外部的源提供;确定所述多个输入激活中的每个输入激活是否具有零值或非零值之一;在所述计算设备的存储器组中存储所述多个输入激活中的至少一个;由所述计算设备的所述控制器生成索引,所述索引包括具有非零值的输入激活值的一个或多个存储器地址位置;以及由所述控制器从所述存储器组提供至少一个输入激活到数据总线上,所述数据总线能够由计算阵列的一个或多个单元访问,其中,所述至少一个输入激活至少部分从与所述索引相关联的存储器地址位置提供。10.如权利要求9所述的一个或多个机器可读存储设备,其中,所述索引基于包括多个位的位图来创建,并且其中,所述位图的每...

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

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

1