专用神经网络训练芯片制造技术

技术编号:38642903 阅读:14 留言:0更新日期:2023-08-31 18:35
描述了一种使用专用硬件芯片训练神经网络的方法,包括:由专用硬件芯片的矢量处理器接收表示激活输入的多个二维矩阵的数据,每个激活输入的二维矩阵具有特定形状并且包括神经网络的相应网络层的输入激活矩阵的一部分激活输入,由矩阵乘法单元为多个二维矩阵中的每一个生成相应的乘法结果;和基于相应的乘法结果,通过反向传播来更新神经网络的权重值。通过反向传播来更新神经网络的权重值。通过反向传播来更新神经网络的权重值。

【技术实现步骤摘要】
专用神经网络训练芯片
[0001]相关申请的交叉引用
[0002]本申请是申请日为2018年5月17日、申请号为201880018006.8、专利技术名称为“专用神经网络训练芯片”的专利技术专利申请的分案申请,其要求2017年5月17日提交的题为“专用神经网络训练芯片”的美国专利申请No.62/507,771的优先权,在此将其全文引入作为参考。

技术介绍

[0003]本说明书涉及在硬件中执行神经网络计算。神经网络是机器学习模型,每个模型采用一个或多个模型层来为接收的输入生成例如分类的输出。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中的下一层(即,网络的下一个隐藏层或输出层)的输入。网络的每个层根据相应参数集的当前值,从接收的输入生成输出。

技术实现思路

[0004]本说明书描述了与专用硬件芯片相关的技术,该专用硬件芯片是针对,特别是训练阶段的机器学习工作负载优化的可编程线性代数加速器。
[0005]通常,本说明书中描述的主题的一个创新方面可以体现在专用的硬件芯片中。
[0006]该方面的其他实施例包括记录在一个或多个计算机存储设备上的相应计算机系统,装置和计算机程序,每个计算机系统,装置和计算机程序被配置为执行方法的动作。对于要配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已在其上安装了软件,固件,硬件或它们的组合,在操作中使系统执行操作或动作。对于要配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。
[0007]前述和其他实施方案可以各自任选地包括一个或多个以下特征,单独或组合。特别地,一个实施例包括组合的所有以下特征。
[0008]一种用于训练神经网络的专用硬件芯片,专用硬件芯片包括:标量处理器,被配置为控制所述专用硬件芯片的计算操作;矢量处理器,被配置为具有矢量处理单元的二维阵列,所述矢量处理单元全部以单指令、多数据方式执行相同的指令,并且通过所述矢量处理器的加载和存储指令彼此通信;以及矩阵乘法单元,被耦合到所述矢量处理器,所述矩阵乘法单元被配置为将至少一个二维矩阵与另一个一维矢量或二维矩阵相乘,以便获得乘法结果。
[0009]矢量存储器,被配置为向所述矢量处理器提供快速专用存储器。标量存储器,被配置为向所述标量处理器提供快速专用存储器。转置单元,被配置为进行矩阵的转置操作。归约和置换单元,被配置为进行数的归约并且对矢量阵列的不同通道之间的数进行置换。高带宽存储器,被配置为存储所述专用硬件芯片的数据。专用硬件芯片还包括稀疏计算核。
[0010]专用硬件芯片还包括:接口;以及芯片间互连,用于将所述专用硬件芯片上的所述
接口或资源连接到其他专用硬件芯片或资源。
[0011]专用硬件芯片还包括高带宽存储器。芯片间互连将所述接口和所述高带宽存储器连接到其他专用硬件芯片。该接口可以是主计算机的主机接口。该接口可以是主计算机网络的标准网络接口。
[0012]本说明书中描述的主题可以在特定实施例中实施,以便实现以下优点中的一个或多个。专用硬件芯片包含除了传统的0维和1维张量计算之外本身支持更高维度张量(即2维和更高)的处理器,同时还针对机器学习的32位或更低精度计算进行了优化。
[0013]在附图和以下描述中阐述了本说明书的主题的一个或多个实施例的细节。根据说明书,附图和权利要求,本主题的其他特征,方面和优点将变得显而易见。
附图说明
[0014]图1示出了连接专用硬件芯片的示例组合的高速连接的示例拓扑,专用硬件芯片在板上以环形拓扑连接。
[0015]图2示出了用于训练神经网络的示例专用硬件芯片的高级图。
[0016]图3示出了计算核的高级示例。
[0017]图4示出了进行神经网络训练的芯片的更详细的图。
[0018]各种附图中相同的附图标记和名称表示相同的元件。
具体实施方式
[0019]可以训练具有多个层的神经网络,然后将神经网络用于计算推理。通常,神经网络的一些或所有层具有在神经网络训练期间被调整的参数。例如,一些或所有层可以将层的也称为权重的参数矩阵与层的输入相乘,作为生成层输出的一部分。在训练神经网络期间调整矩阵中的参数值。
[0020]特别地,在训练期间,训练系统进行神经网络训练过程,以调整神经网络的参数值,例如,以便从参数的初始值确定训练的参数值。训练系统使用称为反向传播的误差反向传播,结合优化方法来计算关于神经网络的每个参数的目标函数的梯度,并使用该梯度来调整参数的值。
[0021]然后,训练的神经网络可以使用正向传播来计算推断,即,处理通过神经网络的层的输入以生成用于输入的神经网络输出。
[0022]例如,给定输入,神经网络可以计算输入的推断。神经网络通过处理经过神经网络的每个层的输入来计算该推断。在一些实施方式中,神经网络的层按序列排列。
[0023]因此,为了从接收的输入计算推断,神经网络接收输入,并通过序列中的每个神经网络层来进行处理,以产生推断,其中,来自一个神经网络层的输出作为输入提供给下一个神经网络层。神经网络层的数据输入可以被称为层的激活输入,数据输入例如为神经网络的输入或到神经网络层的序列中的层下面的层的输出。
[0024]在一些实施方式中,神经网络的层布置在有向图中。也就是说,任何特定层都可以接收多个输入,多个输出或两者。还可以布置神经网络的层,使得层的输出可以作为输入被发送回先前层。
[0025]示例系统是高性能多芯片张量计算系统,该系统针对多维阵列的矩阵乘法和其他
计算进行了优化。这些操作对于训练神经网络是重要的,以及可选地,对于使用神经网络来计算推断是重要的。
[0026]在示例系统内,布置多个专用芯片以分发操作,以便系统有效地进行训练和推断计算。在一个实施方式中,板上有四个芯片,以及在较大的系统中,许多板在机架中彼此相邻或者在其他情况下许多板彼此进行数据通信。
[0027]图1示出了连接专用硬件芯片101a

101d的示例性组合的高速连接的示例拓扑,专用硬件芯片101a

101d在板上以环形拓扑连接。每个芯片包含两个处理器(102a

h)。该拓扑是一维(1D)环面;在1D环面中,每个芯片直接连接到两个相邻芯片。如图所示,在一些实施方式中,芯片包含微处理器核,微处理器核已经用软件或固件指令编程以进行操作。在图1中,所有芯片都在单个模块100上。图中所示的处理器之间的线表示高速数据通信链路。处理器有利地在一个集成电路板上制造,但是它们也可以在多个板上制造。越过芯片边界,链路是芯片间网络链路;同一芯片上的处理器通过芯片内接口链路进行通信。链路可以是半双工链路或者全双工链路,在半双工链路上,一次只有一个处理器可以发送数据,在全双工链路上,可以同时在两个方向上发送数据。使用该示例拓扑等的并行处理在2017年2月21日提交的,题为“PAR本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种使用专用硬件芯片训练神经网络的方法,其特征在于,所述方法包括:由所述专用硬件芯片的矢量处理器接收表示激活输入的多个二维矩阵的数据,每个激活输入的二维矩阵具有特定形状并且包括神经网络的相应网络层的输入激活矩阵的一部分激活输入,其中所述矢量处理器包括:以二维结构设置的多个矢量处理单元,其中,所述二维结构包括多个通道和用于所述多个通道中的每个通道的多个子通道,位于所述多个子通道中的每个子通道中的相应矢量处理单元;以及一个或多个矢量寄存器,每个所述矢量寄存器被配置为存储所述激活输入的多个二维矩阵中的一个;由矩阵乘法单元为所述多个二维矩阵中的每一个生成相应的乘法结果,包括:在多个时钟周期的每个时钟周期中,将所述激活输入的二维矩阵中的所述激活输入的相应行的至少一部分加载到所述专用硬件芯片的所述矩阵乘法单元中,其中所述激活输入的二位矩阵存储在一个或多个所述矢量寄存器中的对应矢量寄存器中;在所述多个时钟周期的最后一个时钟周期结束之前,将权重值的二维矩阵加载到所述矩阵乘法单元中,其中所述权重值的二维矩阵中的所述权重值对应于所述激活输入的二维矩阵中的所述激活输入;和由所述矩阵乘法单元将所述激活输入的二维矩阵和所述权重值的二维矩阵相乘,以获得相应的乘法结果;和基于所述相应的乘法结果,通过反向传播来更新神经网络的所述权重值。2.根据权利要求1所述的方法,其特征在于,将所述激活输入的二维矩阵中的所述激活输入的相应行的至少一部分加载到所述矩阵乘法单元,还包括:至少将所述激活输入的相应行的部分从第一浮点格式转换为具有比第一浮点格式更小的比特数的第二浮点格式。3.根据权利要求1所述的方法,其特征在于,还包括:将相应的乘法结果存储在所述一个或多个矢量寄存器中的矢量寄存器中。4.根据权利要求1所述的方法,其特征在于,所述相应的乘法结果是二维矩阵,其中,存储所述相应的乘法结果包括:在另一组时钟周期中的每个时钟周期内,将所述相应的乘法结果的相应行的值临时存储到所述一个或多个矢量寄存器之一中的先进先出队列中。5.根据权利要求1所述的方法,其特征在于,进一步包括:由所述矢量处理器从所述专用硬件芯片的矢量存储器中接收表示所述激活输入的多个二维矩阵的数据,所述矢量存储器被配置为向所述矢量处理器提供快速专用存储器。6.根据权利要求1所述的方法,其特征在于,进一步包括:通过所述专用硬件芯片的转置单元执行所述激活输入的二维矩阵或所述权值的二维矩阵的转置操作。7.根据权利要求1所述的方法,其特征在于,进一步包括:由所述专用硬件芯片的规约单元对所述相应的乘法结果的数量进行规约,以及通过所述专用硬件芯片的排列单元,在所述多个矢量处理单元中的矢量处理单元的不同通道中排列所述数量。8.根据权利要求1所述的方法,其特征在于,进一步包括:
将各个乘法结果存储到所述专用硬件芯片的高带宽存储器中。9.根据权利要求1所述的方法,其特征在于,进一步包括:通过所述专用硬件芯片的稀疏计算核心使用预先构建的查找表将稀疏的高维数据映射为密集的低维数据。10.根据权利要求1所述的方法,其特征在于,进一步包括:使用所述专用硬件芯片的芯片间互连来将所述专用硬件芯片的接口或资源连接到其他专用硬件芯片或资源。11.根据权利要求10所述的方法,其特征在于,所述芯片间互连将所述专用硬件芯片的所述接口和高带宽存储器连接到其他专用硬件芯片。12.根据权利要求10所述的方法,其特征在于,所述接口是到主机计算机的主机接口,或者到主机计算机网络的标准网络接口。13.根据权利要求1所述的方法,其特征在于,所述一个或多个矢量寄存器包括32个矢量寄存器。14.根据权利要求1所述的方法,其中所述多个矢量处理单元中的每个矢量处理单元被配置为在每个时钟周期中执行两个相应的算术逻辑单元ALU的指令、相应的加载指令和相应的存储指令。15.根据权利要求14所述的方法,其特征在于,所述多个矢量处理单元中的每个矢量处理单元被配置为计算用于在每个时钟周期中执行所述相应的加载指令和所述存储指令所需的相应的存储器偏移地址。16.根据权利要求1所述的方法,其特征在于,位于同一通道中的所述多个矢量处理单元中的矢量处理单元被配置为通过相应的加载和存储指令彼此通信。17.一种系统,其特征在于,包括一个或多个计算机和一个或多个存储设备,在所述存储设备上存储可执行的指令,当所述指令由所述一个或多个计算机执行时,使得所述一个或多个计算机通过专用硬件芯片来执行训练神经网络的操作,所述操作包括:由所述专用硬件芯片的矢量处理器接收表示激活输入的多个二维矩阵的数据,每个激活输入的二维矩阵具有特定形状并且包括神经网络的相应网络层的输入激活矩阵的一部分激活输入,其中所述矢量处理器包括:以二维结构设置的多个矢量处理单元,其中,所述二维结构包括多个通道和用于所述多个通道中的每个通道的多个子通道,位于所述多个子通道中的每个子通道中的相应矢量处理单元;以及一个或多个矢量寄存器,每个所述矢量寄存器被配置为存储所述激活输入的多个二维矩阵中的一个;由矩阵乘法单元为所述多个二维矩阵中的每一个生成相应的乘法结果,包括:在多个时钟周期的每个时钟周期中,将所述激活输入的二维矩阵中的所述激活输入的相应行的至少一部分加载到所述专用硬件芯片的所述矩阵乘法单元中,其中所述激活输入的二位矩阵存储在一个或多个所述矢量寄存器中的对应矢量寄存器中;在所述多个时钟周期的最后一个时钟周期结束之前,将权重值的二维矩阵加载到所述矩阵乘法单元...

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

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

1