组合多个整数和浮点数据类型的脉动阵列部件制造技术

技术编号:34424553 阅读:22 留言:0更新日期:2022-08-06 15:53
提供了用于在脉动阵列中执行多种数据类型的乘法累加运算以提高时钟速度和/或减少执行多种数据类型的乘法累加运算所需的脉动阵列的大小和数量的系统和方法。所述脉动阵列中的每个处理元件可以具有共享乘法器和一个或多个加法器。所述共享乘法器可以具有单独电路和/或共享电路,其中所述共享电路能够执行整数乘法的至少一部分和非整数乘法的至少一部分。所述一个或多个加法器可以是共享加法器或单独加法器。所述共享加法器可以具有单独电路和共享电路,其中所述共享电路能够执行整数加法的至少一部分和非整数加法的至少一部分。法的至少一部分和非整数加法的至少一部分。法的至少一部分和非整数加法的至少一部分。

【技术实现步骤摘要】
【国外来华专利技术】组合多个整数和浮点数据类型的脉动阵列部件

技术介绍

[0001]人工神经网络是具有基于生物神经网络的架构的计算系统。神经网络可以通过诸如脉动阵列之类的电路和数据路径来实现。脉动阵列可以加速人工神经网络的训练和推理阶段的性能。在训练阶段期间,可以提供输入数据来对模型进行训练。在推理阶段期间,可以根据模型处理新的输入以获得预测结果。用户应用程序通常在推理阶段使用模型,因此推理阶段通常可具有时间敏感性,而推理阶段期间的延时会对用户体验产生负面影响。
[0002]随着越来越多的应用程序使用人工神经网络,这些应用程序也使用范围广泛的输入数据类型和输入数据范围。提高数据类型兼容性和数据范围兼容性通常会导致脉动阵列中处理元件的复杂性、大小和成本增加。这些增加也会影响系统处理速度和系统功耗。当需要脉动阵列支持多种数据类型时,脉动阵列的功耗和大小可能成为重要的考虑因素。
附图说明
[0003]现在将参考以下附图描述各种特征。在所有附图中,附图标记可重复使用以指示所指代元件之间的对应关系。提供图式以说明本文描述的示例并且无意限制本公开的范围。
[0004]图1示出了示例性4
×
4脉动阵列。
[0005]图2A示出了根据所公开技术的某些示例的用于包括共享乘法器和共享加法器的神经网络计算的处理元件。
[0006]图2B示出了根据所公开技术的某些示例的用于包括共享乘法器和单独加法器的神经网络计算的处理元件。
[0007]图2C示出了根据所公开技术的某些示例的用于包括共享乘法器、共享加法器和延迟寄存器的神经网络计算的处理元件。
[0008]图2D示出了根据所公开技术的某些示例的用于包括共享乘法器、单独加法器和延迟寄存器的神经网络计算的处理元件。
[0009]图3示出了根据所公开技术的某些示例的设备,所述设备包括用于进入神经网络计算的脉动阵列的输入数据元素和权重的信号修改器和零检测器电路。
[0010]图4示出了根据所公开技术的第一示例的示出数据类型、零检测器、输入数据元素和权重值从一个处理元件到另一个处理元件的传播的设备。
[0011]图5示出了根据所公开技术的第二示例的示出零指示符、输入数据元素和权重值从一个处理元件到另一个处理元件的传播的设备。
[0012]图6示出了根据所公开技术的一些示例的用于神经网络计算的设备。
[0013]图7示出了根据所公开技术的一些示例的由用于神经网络计算的处理元件执行的方法。
[0014]图8示出了根据本公开的某些方面的计算装置的示例。
[0015]图9示出了由用于神经网络计算的处理元件执行的方法,所述计算涉及整数和非整数运算两者。
[0016]图10A示出了图2A的乘法累加(Multiply Accumulate)数据路径的附加细节的示例。
[0017]图10B示出了图2B的乘法累加数据路径的附加细节的示例。
[0018]图10C示出了图2C的乘法累加数据路径的附加细节的示例。
[0019]图10D示出了图2D的乘法累加数据路径的附加细节的示例。
具体实施方式
[0020]在以下描述中,将描述各种示例。出于解释的目的,将阐述具体的配置和细节,以便提供对示例的透彻理解。然而,对本领域的技术人员将显而易见的是,没有具体细节的情况下也可以实践示例。此外,为了不使所描述的示例变得模糊,可能会省略或简化众所周知的特征。
[0021]卷积神经网络(CNN)通常是前馈人工神经网络,其可以包括多个中间层并且来自一层的输出可以用作对下一层的输入。脉动阵列可用于通过从存储器中读取一次数据并将其重用于多次计算来加速神经网络中的工作负载。可以使用处理元件(PE)的二维阵列来实现脉动阵列。
[0022]通常,输入数据集(例如,输入特征图)可以被一次一个输入数据元素馈送到脉动阵列的其相应行中,并在给定行中从最左边的PE开始从一个PE传递到另一个PE。随着机器学习应用程序和神经网络应用程序的激增,输入数据集的值和数据类型的多样性同样激增。一些应用程序使用精度较高的浮点32位(FP32)或浮点64位(FP64)数据类型输入。一些应用程序使用浮点16位(FP16)、脑浮点16位(bfloat16或BF16)或16位整数或8位整数数据类型输入。
[0023]为较长输入(例如,64位或32位输入)提供支持会导致内存量更大、每个PE中和部件之间的通信带宽更大、电路复杂性更大、延时更大并且与支持较短数据类型(例如,16位或8位输入)相比成本更高。在数百或数千个PE的脉动阵列中,增加对较长数据类型的支持会导致成本、内存大小、通信带宽、电路复杂性和延时成倍增加。
[0024]根据本公开的实施方案,被设计或编程为使用较长数据类型的许多机器学习应用程序和神经网络应用程序可以实现改进的性能速度并在支持较短数据类型的更低成本、更简单的硬件上执行,同时几乎不牺牲诸如最终推理预测等最终结果的准确性。这种反直觉的结果可能会出现,因为更简单的硬件可以运行得更快,使用更少的内存,使用更少的带宽,使用更简单的电路,并且更成本有效地使用硅面积,并且因为许多应用程序对中间精度不敏感。
[0025]具体地,如本文所公开的,通过将较长的数据类型量化为较短的数据类型,较长的数据类型输入可以在支持较短数据类型的硬件上执行。对于许多机器学习应用程序和神经网络应用程序,由于量化而导致的过度中间精度损失对最终结果可能几乎没有影响。因此,可以使用更简单的硬件来改进由使用过分精确数据类型的程序员和设计人员编写的程序的执行。
[0026]由于机器学习应用程序和神经网络应用程序中使用的数据类型多种多样,包括例如16位整数、8位整数、FP16和bfloat16数据类型,因此希望支持这些数据类型中的各种数据类型。当输入数据被量化时,可能还希望支持这些数据类型中的各种数据类型。
[0027]当训练模型或进行推理时,输入值可以在很宽的范围内变化。在一些应用程序中,输入值基本上以零为中心。在其他应用程序中,输入值以从零的偏移为中心。在许多应用程序中,输入数据不是关于零对称分布的,因此可以应用非对称采样方案来更准确地反映输入数据的分布。在非对称采样之后,可以将为零的原始值量化为表示为非零二进制值的值或范围。
[0028]可以修改脉动阵列中的处理元件以对非对称量化数字执行算术运算。然而,此类修改会大大增加PE的复杂性。例如,特殊电路可以处理一个或多个零输入的乘法以生成零作为输出。如果根据非对称量化方案使零值发生了移位,那么添加这种特殊电路会增加每个PE的复杂性并增加大量成本。
[0029]作为替代解决方案,为了支持对非对称量化数据的处理,可以首先通过使数据移位来部分地反量化数据,以便将零表示为二进制零,并且算术电路可以通过将数字的位表示增加一位以保持量化的准确性来做到这一点。例如,为了处理量化的8位整数,脉动阵列可以通过将8位整数移位为对称的9位形式,来将8位整数部分地反量化为9位整数。这种部分反量化简化了接收输本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种脉动电路,其包括:处理元件,所述处理元件耦合在处理元件脉动阵列中并且被配置为与所述脉动阵列中的至少一个相邻处理元件传递数据,所述处理元件包括:共享乘法器,所述共享乘法器被配置为支持输入数据元素和权重的整数乘法和非整数乘法两者,其中所述共享乘法器的用于支持整数乘法的共享子电路也用于支持所述非整数乘法;一个或多个加法器,所述一个或多个加法器被配置为从所述共享乘法器接收一个或多个乘积,所述一个或多个加法器被配置为支持整数加法和非整数加法两者,其中所述一个或多个加法器被配置为将输入部分和与所述一个或多个乘积中的至少一个乘积相加以产生整数部分和以及非整数部分和中的至少一者;以及选择器电路,所述选择器电路被配置为至少在所述整数部分和以及所述非整数部分和中进行选择,以提供给输出端口作为输出部分和。2.根据权利要求1所述的脉动电路,其中所述共享乘法器被配置为至少执行浮点乘法和整数乘法。3.根据权利要求1或权利要求2所述的脉动电路,其还包括:多路复用器,所述多路复用器被配置为基于数据类型控制信号在由所述共享乘法器生成的多个乘积中进行选择以提供给所述一个或多个加法器,其中所述多个乘积至少包括整数乘积和浮点乘积;并且其中所述共享乘法器被配置为至少部分地基于所述数据类型控制信号,防止用于浮点乘法的电路促成运算。4.根据权利要求1至3中任一项所述的脉动电路,其中所述一个或多个加法器包括:浮点加法器,所述浮点加法器被配置为执行浮点加法;和整数加法器,所述整数加法器被配置为执行整数加法。5.根据权利要求1至4中任一项所述的脉动电路,其中:所述处理元件中的每一个还包括耦合在所述共享乘法器与所述一个或多个加法器之间的延迟寄存器;并且所述一个或多个加法器被配置为在后续脉动周期中从所述共享乘法器接收一个或多个乘积,其中所述一个或多个乘积由所述共享乘法器在先前脉动周期期间生成。6.根据权利要求1至5中任一项所述的脉动电路,其还包括跳过计算生成器,所述跳过计算生成器被配置为将跳过计算信号传播到多个处理元件,其中所述跳过计算信号被配置为防止用于脉动周期的所述共享乘法器或所述一个或多个加法器中的至少一者在所述脉动周期期间促成所述脉动阵列的算术计算。7.根据权利要求1至6中任一项所述的脉动电路,其中所述处理元件中的每一个还包括耦合在所述共享乘法器与所述一个或多个加法器之间的延迟寄存器。8.根据权利要求1至7中任一项所述的脉动电路,其中:所述共享乘法器可选...

【专利技术属性】
技术研发人员:托马斯
申请(专利权)人:亚马逊技术有限公司
类型:发明
国别省市:

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

1