加速嵌入层计算制造技术

技术编号:33517011 阅读:19 留言:0更新日期:2022-05-19 01:25
描述了用于使用被配置为在硬件电路上实现神经网络的系统来执行神经网络计算的方法、系统、设备、和计算机可读介质。该系统包括,主机接收到神经网络层的批次输入。每个输入被存储在由地址标识的存储器位置中。系统识别一个或多个输入的地址列表中的一个或多个重复地址。对于每个重复地址,系统生成标识地址列表中的重复地址的唯一标识符。系统(i)从由对应于唯一标识符的地址所标识的存储器位置获得第一输入;以及(ii)从所获得的第一输入生成层的输出。的输出。的输出。

【技术实现步骤摘要】
【国外来华专利技术】加速嵌入层计算
相关申请的交叉引用
[0001]本申请要求于2019年10月2日提交的美国申请62/909,667的优先权,该申请通过引用并入本文。

技术介绍

[0002]本说明书一般涉及使用电路来执行神经网络计算。
[0003]神经网络是机器学习模型,其采用一个或多个节点层来为接收到的输入生成输出,例如分类。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出被用作为网络中的一个或多个其它层的输入,例如网络的其它隐藏层或输出层。网络的一些层根据相应参数集的当前值从接收到的输入产生输出。
[0004]一些神经网络是卷积神经网络(convolutional neural networks,CNN)(例如,用于图像处理)或递归神经网络(recurrent neural network,RNN)(例如,用于语音和语言处理)。这些神经网络中的每一个都包括相应的卷积或递归神经网络层的集合。神经网络层可以具有相关的内核(Kernel)集以及用于处理输入以生成用于训练神经网络的向量集的嵌入层。内核可以表示为权重的张量(Tensor),即多维阵列。例如,嵌入层可以处理输入集合,输入例如为图像像素数据的输入或由神经网络层生成的激活值。输入集合或激活值集合也可以表示为张量。

技术实现思路

[0005]本文描述了用于加速人工神经网络的嵌入层的计算的技术。该技术可用于计算系统,例如大规模分布式系统,其包括配置为对地址列表执行去重复(deduplication)操作的电路。在处理神经网络的嵌入层处的输入的期间,例如在嵌入层的示例前向通过计算(forward pass compute)期间,执行去重复操作以减少分布式系统上的负载不平衡。
[0006]本说明书描述了用于使用被配置为在硬件电路上实现神经网络的系统来执行神经网络计算的方法,系统和设备,以及计算机可读介质。系统包括主机,主机接收到神经网络层的批次输入。每个输入被存储在由地址标识的存储器位置中。系统识别一个或多个输入的地址列表中的一个或多个重复地址。对于每个重复地址,系统生成标识地址列表中的重复地址的唯一标识符。系统(i)从由对应于唯一标识符的地址所标识的存储器位置获得第一输入;以及(ii)从所获得的第一输入生成层的输出。
[0007]本说明书中描述的主题的一个方面可以体现为一种方法,该方式使用被配置为在硬件电路上实现神经网络的系统来执行神经网络计算。方法包括:主机接收到神经网络层的批次输入,其中所述批次输入中的每个输入存储在由地址标识的存储器位置中;识别所述批次输入中的一个或多个输入的地址列表中的一个或多个重复地址。对于每个重复地址,所述方法包括:生成唯一标识符,所述唯一标识符标识所述地址列表中的所述重复地址;对于所述批次输入,从存储器位置获取第一输入,所述存储器位置由与所述唯一标识符相对应的地址标识;以及从获取的所述第一输入中生成所述神经网络层的嵌入输出。
[0008]这些及其它实施方式中的每一个可选地可以包括以下特征中的一个或多个。例如,在一些实施方式中,所述神经网络层是所述神经网络的嵌入层,所述嵌入输出包括嵌入特征向量,并且所述方法还包括系统的分散电路确定所述唯一标识符与到所述嵌入层的所述批次输入中的特定输入的重复地址的反向映射;并且基于所述唯一标识符与所述特定输入的所述重复地址的所述反向映射,生成一个或多个嵌入向量作为所述嵌入层的输出。
[0009]在一些实施方式中,所述方法包括:基于一个或多个唯一标识符生成所述批次输入的过滤后的地址列表;为所述过滤后的地址列表中的地址确定多个处理器中的每个处理器之间的地址分区;以及其中,获取所述第一输入包括:对于每一地址分区,使用经分配为从所述地址分区检索输入的相应处理器,从由所述地址分区中的地址标识的存储器位置获得第一输入。
[0010]在一些实施方式中,基于所述反向映射生成所述神经网络层的所述嵌入输出包括:解析包括所述重复地址的所述地址列表,以将为重复地址生成的与唯一标识符相对应的嵌入特征向量映射回到所述神经网络层的所述批次输入中的所述特定输入。
[0011]所述方法还包括:请求处理器向远程处理器提供与唯一标识符对应的第一输入的地址和对所述第一输入的请求;所述请求处理器从所述远程处理器接收所述第一输入,所述第一输入存储于被分配给所述远程处理器的数据分片的存储器位置;并且执行一个或多个减小操作,以从所述数据分片获得的第一输入生成所述神经网络层的所述嵌入输出。
[0012]在一些实施方式中,所述地址列表用于形成包括多组输入特征的输入特征样本的批次输入,并且生成所述唯一标识符包括:为所述输入特征样本中的各相应组输入特征上的每个重复地址生成所述唯一标识符。在一些实施方式中,确定所述唯一标识符与重复地址的所述反向映射包括:确定所述唯一标识符与所述多组输入特征的特定输入的重复地址的所述反向映射。
[0013]在一些示例中,将每个地址分区分配给对应于多维稀疏张量的向量元素的激活值或增益值的数据分片;并且激活或增益值的每个数据分片被分配给特定处理器,用于与相应的权重向量相乘以执行所述神经网络计算。在一些实施方式中,重复地址是存储到神经网络层的输入的存储器位置的特定地址,所述特定地址在所述多个处理器中的每个处理器的对应数据分片之间是公共的,并且在(i)一组输入特征集合、或(ii)所述输入特征样本之间,所述特定地址是重复的。
[0014]生成所述神经网络层的所述嵌入输出包括:从远程处理器向请求处理器提供多个输入,所述多个输入存储于被分配给所述远程处理器核的数据分片的存储器位置;并且执行查找以获得相应的权重向量,所述权重向量包括用于与所述多个输入中的输入相乘的相应权重值,以为后续神经网络层生成部分激活。在一些实施方式中,从由不存在重复地址的原始列表中的地址所标识的所述存储器位置,或者从由原始列表中不存在重复地址的地址所标识的存储器位置,接收多个输入的一部分。
[0015]本文的其它实施方式和其它方面包括相应的系统、装置、和计算机程序,它们被配置为执行被编码在计算机存储装置上的方法。一个或多个计算机的系统可以借助于安装在系统上的软件,固件,硬件或它们的组合来配置,使得在操作中使系统执行动作。一个或多个计算机程序可以通过具有指令来配置,所述指令在由数据处理设备执行时使所述设备执行所述动作。
[0016]本说明书中描述的主题可以在特定实施例中实现,以便实现以下优点中的一个或多个。一种计算系统包括可用于实现用于加速多批次输入的嵌入层处理的处理方案的电路。所述电路和处理方案可用于通过滤除用于检索对神经网络的嵌入层的输入的地址列表中的重复地址来减少或减轻多核处理单元上的负载不平衡,多核处理单元例如为处理器的分布式系统。
[0017]当计算或更新神经网络的嵌入时,具有多个重复地址可能是特别成问题的。例如,批次输入中的样本可以包括需要嵌入的可变数量的特征,例如在神经网络的嵌入层的特征空间中。每个特征(或输入)值具有嵌入,例如,表示存储在神经网络的嵌入表中的神经网络的可训练权重本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种使用系统执行神经网络计算的方法,所述系统被配置为在硬件电路上实现神经网络,其特征在于,所述方法包括:主机接收到神经网络层的批次输入,其中所述批次输入中的每个输入存储在由地址标识的存储器位置中;识别所述批次输入中的一个或多个输入的地址列表中的一个或多个重复地址;对于每个重复地址:生成唯一标识符,所述唯一标识符标识所述地址列表中的所述重复地址;对于所述批次输入,从存储器位置获取第一输入,所述存储器位置由与所述唯一标识符相对应的地址所标识;从获取的所述第一输入中生成所述神经网络层的嵌入输出。2.根据权利要求1所述的方法,其特征在于,所述神经网络层是所述神经网络的嵌入层,所述嵌入输出包括嵌入特征向量,并且所述方法还包括:所述系统的分散电路确定所述唯一标识符与到所述嵌入层的所述批次输入中的特定输入的重复地址的反向映射;并且基于所述唯一标识符与所述特定输入的所述重复地址的所述反向映射,生成一个或多个嵌入向量作为所述嵌入层的输出。3.根据权利要求2所述的方法,其特征在于,所述方法包括:基于一个或多个唯一标识符生成所述批次输入的过滤后的地址列表;为所述过滤后的地址列表中的地址确定多个处理器中的每个处理器之间的地址分区;以及其中,获取所述第一输入包括:对于每一地址分区,使用被分配为从所述地址检索输入的相应处理器,从由所述地址分区中的地址所标识的存储器位置获得第一输入。4.根据权利要求2所述的方法,其特征在于,其中基于所述反向映射生成所述神经网络层的所述嵌入输出包括:解析包括所述重复地址的所述地址列表,以将为重复地址生成的与唯一标识符相对应的嵌入特征向量映射回到所述神经网络层的所述批次输入中的所述特定输入。5.根据权利要求2所述的方法,其特征在于,所述方法包括:请求处理器向远程处理器提供与唯一标识符对应的第一输入的地址和对所述第一输入的请求;所述请求处理器从所述远程处理器接收所述第一输入,所述第一输入存储于被分配给所述远程处理器的数据分片的存储器位置;并且执行一个或多个减小操作,以从所述数据分片获得的第一输入生成所述神经网络层的所述嵌入输出。6.根据权利要求2所述的方法,其特征在于,所述地址列表用于形成包括多组输入特征的输入特征样本的批次输入,并且生成所述唯一标识符包括:为所述输入特征样本中的相应组输入特征上的每个重复地址生成所述唯一标识符。7.根据权利要求6所述的方法,其特征在于,确定所述唯一标识符与重复地址的所述反向映射包括:确定所述唯一标识符与所述多组输入特征的特定输入的重复地址的所述反向映射。
8.根据权利要求6所述的方法,其特征在于,其中:重复地址是存储到神经网络层的输入的存储器位置的特定地址,所述特定地址在所述多个处理器中的每个处理器的对应数据分片之间是公共的,并且在(i)一组输入特征、或(ii)所述输入特征样本之间,所述特定地址是重复的。9.根据权利要求2所述的方法,其特征在于,其中:将每个地址分区分配给对应于多维稀疏张量的向量元素的激活值或增益值的数据分片;并且激活值或增益值的每个数据分片被分配给特定处理器,用于与相应的权重向量相乘以执行所述神经网络计算。10.根据权利要求1所述的方法,其特征在于,生成所述神经网络层的所述嵌入输出包括:从远程处理器向请求处理器提供多个输入,所述多个输入存储于被分配给所述远程处理器核的数据分片的存储器位置;并且执行查找以获得相应的权重向量,所述权重向量包括用于与所述多个输入中的输入相乘的相应权重值,以为后续神经网络层生成部分激活。11.根据权利要求10所述的方法,其特征在于,其中:从由非重复地址标识的所述存储器位置;或从由原始列表中不存在重复地址的地址所标识的存储器位置,接收多个输入的一部分。12.一种在硬件电路上实现神经网络以执行神经网络计算的系统,其特征在于,所述系统包括:一个或多个处理装置;和一个或多个非暂态机器可读存储装置,用于存储指令,所述指令可由所述一个或多个处理装置执行,以执行包括以下的操作:主机接收到神经网络层的批次输入,其中所述批次输入中的每个输入存储在由地址...

【专利技术属性】
技术研发人员:拉胡尔
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:

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

1