System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 使用共享便笺式存储器的向量简化制造技术_技高网

使用共享便笺式存储器的向量简化制造技术

技术编号:40198406 阅读:14 留言:0更新日期:2024-01-27 00:02
描述了用于使用硬件电路的共享便笺式存储器来执行向量简化的方法、系统和装置,该硬件电路具有与共享存储器进行通信的处理器核。对于每个处理器核,基于在处理器核处执行的计算来生成相应的值向量。共享存储器使用共享存储器的直接存储器存取(DMA)数据路径从处理器核的相应资源接收值的相应向量。共享存储器使用耦合到共享存储器的运算符单元对值的各个向量执行累加运算。运算符单元被配置为基于在运算符单元处编码的算术运算来累加值。基于使用相应值向量执行累加运算而生成结果向量。

【技术实现步骤摘要】

本说明书一般涉及用于执行神经网络计算的硬件电路的电路。


技术介绍

1、神经网络是采用一层或多层节点来为接收到的输入生成输出(例如,分类)的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的一个或多个其他层的输入,例如,网络的其他隐藏层或输出层。网络的一些层根据相应的一组参数的当前值从接收到的输入生成输出。一些神经网络可以是被配置为用于图像处理的卷积神经网络(cnn)或被配置为用于语音和语言处理的递归神经网络(rnn)。不同类型的神经网络架构可以用于执行与分类或模式识别、涉及数据建模的预测以及信息聚类相关的各种任务。

2、cnn的神经网络层可以具有相关联的一组内核,其可以对应于参数或权重。相关联的一组内核用于通过神经网络层处理输入(例如,一批输入)以生成该层的对应输出以用于计算神经网络推断。一批输入和一组内核可以被表示为输入和权重的张量,即多维阵列。实现神经网络的硬件电路包括具有由地址值标识的位置的存储器。存储器位置可以对应于张量的元素,并且可以使用电路的控制逻辑来遍历或访问张量元素。例如,控制逻辑可以确定或计算元素的存储器地址值以加载或存储元素的对应数据值。


技术实现思路

1、本文描述了用于在大型共享便笺式存储器中执行数据累加和向量简化的技术。具体地,这些技术用于减少执行向量简化所需的运算的总量,该向量简化涉及简化作为在计算系统的相应处理器核处发生的计算的结果而生成的值或输出。例如,该系统包括硬件电路,该硬件电路可以具有多个处理器核以及结合了静态随机存取存储器(sram)的存储器资源的架构。sram的存储器资源被分配用于在电路的多个相应处理器核之间共享。

2、在计算系统中发生的计算组可以分布在一个或多个硬件电路的相应核中,以生成相应的值向量。共享存储器使用共享存储器的直接存储器存取(dma)数据路径从处理器核的相应资源接收值的相应向量。共享存储器使用耦合到共享存储器的运算符单元对值的各个向量执行累加运算。运算符单元被配置为基于在运算符单元处编码的算术运算来累加值。基于累加运算生成结果向量。

3、本说明书中描述的主题的一个方面可以体现为使用硬件电路执行的方法,该硬件电路具有共享存储器和与该共享存储器通信的多个处理器核。该方法包括:基于在第一处理器核处执行的计算来生成第一值向量;由该共享存储器并且使用该共享存储器的直接存储器访问(dma)数据路径从该第一处理器核接收该第一值向量;以及在共享存储器处,在值的第一向量和存储在共享存储器中的向量之间执行累加运算。使用运算符单元执行累加运算,该运算符单元:i)耦合到该共享存储器,以及ii)被配置为累加多个向量。该方法包括基于累加运算生成结果向量。

4、这些和其他实现方式可以各自可选地包括以下特征中的一个或多个。例如,在一些实现方式中,存储在共享存储器中的向量是从第二处理器核接收的,并且该方法包括:由该第一处理器核处执行累加到存储器运算以在该共享存储器的存储器位置处累加该第一值向量的相应值;以及由第二处理器核处执行累加到存储器运算以在共享存储器的存储器位置处累加第二值向量的相应值,其中第二值向量对应于存储在共享存储器中的向量。在一些情况下,第二处理器设置标志(例如,初始向量/值标志)使得第二值向量的值被写为初始值,而第一处理器核将不同的标志(例如,累加标志)设置为使得第一值向量的值与第二值向量的值累加。

5、在一些实现方式中,基于累加运算生成结果向量包括:在该第一处理器核不执行预先累加从在该第一处理器核处执行的计算得到的乘积的步骤的情况下生成该结果向量;以及在该第二处理器核不执行对由在该第二处理器核处执行的计算得到的乘积进行预累加的步骤的情况下生成该结果向量。

6、在一些实现方式中,生成结果向量包括:作为对该第一值向量执行该累加运算的结果而产生累加值向量;将激活函数应用于该累加值向量中的每个值;以及作为将激活函数应用于累加值向量中的每个值的结果,生成结果向量。该累加可以发生在该第一向量的值上,或者该累加可以涉及该第一向量的值和存储在共享存储器中的该向量的值的成对累加。

7、在一些实现方式中,第一处理器核的相应资源是第一矩阵计算单元,并且该方法还包括:基于使用该第一处理器核的该第一矩阵计算单元执行的矩阵乘法,生成与该第一值向量相对应的第一累加值向量。

8、在一些实现方式中,第二处理器核的相应资源是第二矩阵计算单元,并且该方法还包括:基于使用该第二处理器核的该第二矩阵计算单元执行的矩阵乘法,生成与该第二值向量相对应的第二累加值向量。硬件电路可以是被配置为实现具有多个神经网络层的神经网络的硬件加速器;并且该方法包括基于结果向量生成神经网络的层的输出。

9、该方法还可包括:基于在该第一处理器核处执行的计算产生该第一值向量;以及基于在该第二处理器核处执行的计算生成该第二值向量。在第一处理器核处执行的计算和在第二处理器核处执行的计算可以是由可交换属性支配的数学运算的一部分。在一些实现方式中,该数学运算是:浮点乘法运算;浮点加法运算;整数加法运算;或最小-最大运算。在一些实现方式中,数学运算包括浮点加法运算和整数加法运算。第一处理器核和第二处理器核可以是相同的处理器核。

10、在一些实现方式中,共享存储器被配置为用作共享全局存储空间,该共享全局存储空间包括在硬件电路的两个或多个处理器核之间共享的存储体和寄存器。

11、这个和其他方面的其他实现方式包括被配置为执行在计算机存储设备上编码的方法的动作的相应系统、装置和计算机程序。可通过安装在系统上的软件、固件、硬件或它们的组合来配置一个或多个计算机的系统,这些软件、固件、硬件或它们的组合在操作中使系统执行动作。可以通过具有指令来配置一个或多个计算机程序,该指令在由数据处理设备执行时致使该装置执行该动作。

12、可以在特定实施例中实现本说明书中描述的主题,以便实现以下优点中的一个或多个。

13、本文档中描述的技术利用支持dma模式的大型共享便笺式存储器的能力,该dma模式以原子方式简化进入共享存储器位置的向量数据,而不是简单地重写数据。换言之,多个处理器核或处理器可以并发地执行更新相同的共享存储器位置的归约运算,使得即使运算涉及与相同的存储器位置相关联的值,也计算所得到的归约值,就好像归约运算按顺序发生一样。相反,如果每个处理器将简单地重写共享存储器位置,则可能无意中丢失(例如,对应于丢失的更新问题)由另一处理器写入的先前值。基于控制循环,系统可以检测数据的“原子”缩减,并允许以一种或另一种方式重写共享存储器位置中的值,以使存储器位置保持(或存储)归约运算的最终结果。在一些情况下,可将本说明书中所描述的各种技术扩展到跨系统存在的其他存储器类型,包括片上和片外存储器。

14、运算符单元紧邻共享存储器耦合,以支持用于将向量值累加到共享存储器单元/位置的各种算术运算。算术运算可以基于任何归约运算符,比如,浮点原子加法、整数加法、最大、最小、最本文档来自技高网...

【技术保护点】

1.一种使用用于硬件机器学习加速器的集成电路执行的方法,其特征在于,所述硬件机器学习加速器包括多个核和与所述多个核中的每个核通信的共享存储器,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,执行所述多个累加包括:

3.根据权利要求2所述的方法,其特征在于,执行所述多个累加包括:

4.根据权利要求2所述的方法,其特征在于,执行所述多个累加包括:

5.根据权利要求4所述的方法,其特征在于,所述存储器单元是在所述多个核中的每个核之间共享的共享存储器单元。

6.根据权利要求1所述的方法,其特征在于,基于所述多个累加生成所述结果向量包括:

7.根据权利要求1的方法,其特征在于,:

8.根据权利要求7所述的方法,其特征在于,所述运算符单元和所述共享存储器中的每一个位于所述多个核中的每一个核中的相应的所述向量处理单元的外部。

9.一种用于硬件机器学习加速器的集成电路,其特征在于,所述集成电路包括:

10.根据权利要求9所述的集成电路,其特征在于,执行所述多个累加包括:

<p>11.根据权利要求10所述的集成电路,其特征在于,执行所述多个累加包括:

12.根据权利要求10所述的集成电路,其特征在于,执行所述多个累加包括:

13.根据权利要求12所述的集成电路,其特征在于,所述存储器单元是在所述多个核中的每个核之间共享的共享存储器单元。

14.根据权利要求9所述的集成电路,其特征在于,:

15.根据权利要求14所述的集成电路,其特征在于,所述运算符单元和所述共享存储器中的每一个位于所述多个核中的每一个核中的相应的所述向量处理单元的外部。

16.根据权利要求9所述的集成电路,其特征在于,基于所述多个累加生成所述结果向量包括:

...

【技术特征摘要】

1.一种使用用于硬件机器学习加速器的集成电路执行的方法,其特征在于,所述硬件机器学习加速器包括多个核和与所述多个核中的每个核通信的共享存储器,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,执行所述多个累加包括:

3.根据权利要求2所述的方法,其特征在于,执行所述多个累加包括:

4.根据权利要求2所述的方法,其特征在于,执行所述多个累加包括:

5.根据权利要求4所述的方法,其特征在于,所述存储器单元是在所述多个核中的每个核之间共享的共享存储器单元。

6.根据权利要求1所述的方法,其特征在于,基于所述多个累加生成所述结果向量包括:

7.根据权利要求1的方法,其特征在于,:

8.根据权利要求7所述的方法,其特征在于,所述运算符单元和所述共享存储器中的每一个位于所述多个核中的每一个核中的相应的所述向量处理单元...

【专利技术属性】
技术研发人员:托马斯·诺里古鲁尚卡尔·拉贾马尼安德鲁·埃弗里特·菲尔普斯马修·利弗·海德伦德诺曼·保罗·约皮
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:

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

1