首页> 中国专利> 分布式神经网络核心网络中的层级并行

分布式神经网络核心网络中的层级并行

摘要

分布式神经核网络具有分层并行性。在各个实施例中,提供了多个神经核。所述多个神经核中的每一个包括被配置为并行操作的多个矢量计算单元。所述多个神经核中的每一个被配置为通过将其多个矢量计算单元应用于输入激活来并行计算输出激活。所述多个神经核中的每一个被分配了神经网络的层的输出激活的子集用于计算。在接收到所述神经网络的所述层的输入激活的子集时,所述多个神经核中的每一个神经核为其分配的每一个输出激活计算部分和,并至少从计算出的部分和中计算其已分配的输出激活。

著录项

说明书

背景技术

本公开的实施例涉及神经计算,并且更具体地,涉及分布式神经核网络中的层级并行。

发明内容

根据本公开的实施例,提供了用于神经计算的系统。在各个实施例中,提供了多个神经核。所述多个神经核中的每一个包括被配置为并行操作的多个矢量计算单元。所述多个神经核中的每一个被配置为通过将其多个矢量计算单元应用于输入激活(inputactivation)来并行计算输出激活(output activation)。所述多个神经核中的每一个被分配神经网络的层的输出激活的子集用于计算。在接收到所述神经网络的所述层的输入激活的子集后,所述多个神经核中的每一个为其已分配的每一个输出激活计算部分和,并且从至少已计算出的部分和中计算其已分配的输出激活。

根据本公开的实施例,提供了用于神经计算的方法和计算机程序产品。在各个实施例中,在多个神经核中的每一个处接收神经网络层的输入激活的子集。所述多个神经核中的每一个包括被配置为并行操作的多个矢量计算单元。所述多个神经核中的每一个被配置为通过将其多个矢量计算单元应用于输入激活来并行计算输出激活。将神经网络的层的输出激活的子集分配给多个神经核中的每个以进行计算。在接收到所述神经网络的层的输入激活的子集后,所述多个神经核中的每一个:为其已分配的每一个输出激活计算部分和,并至少从计算出的部分和计算其分配的输出激活。

附图说明

图1示出了根据本公开的实施例的神经核。

图2示出了根据本公开的实施例的示例性神经核,其示出了核间并行性。

图3示出了根据本公开的实施例的示例性神经核,其示出了核内并行性。

图4示出了根据本公开的实施例的神经计算的方法。

图5描绘了根据本公开的实施例的计算节点。

具体实施方式

人工神经元是一种数学函数,其输出是其输入的线性组合的非线性函数。如果一个神经元的输出是另一神经元的输入,则两个神经元被连接。权重是一个标量值,它编码一个神经元的输出与另一神经元的输入之间的连接强度。

神经元通过将非线性激活函数应用于其输入的加权和来计算其输出,称为激活。加权和是通过将每个输入与相应的权重相乘并累加乘积而得出的中间结果。部分和是输入子集的加权和。所有输入的加权和可以通过累加一个或多个部分和来分阶段计算。

神经网络是一个或多个神经元的集合。神经网络通常分为称为层的神经元组。一层是一个或多个神经元的集合,它们都从同一层接收输入并且都将输出发送到同一层,并且通常执行类似的功能。输入层是从神经网络外部的源接收输入的层。输出层是将输出发送到神经网络外部目标的层。所有其他层都是中间处理层。多层神经网络是一层以上的神经网络。深度神经网络是具有许多层的多层神经网络。

张量是数值的多维阵列。张量块是张量中元素的连续子数组。

每个神经网络层与参数张量、权重张量、输入数据张量、输出数据张量和中间数据张量相关联。参数张量包含控制该层中神经元激活功能的所有参数。权重张量包含将输入连接到图层的所有权重。输入数据张量包含该层用作输入的所有数据。输出数据张量包含该层计算为输出的所有数据。中间数据张量包含该层作为中间计算产生的任何数据,例如部分和。

层的数据张量(输入、输出和中间)可以是三维的,其中前两个维度可以解释为编码空间位置,第三个维可以解释为编码不同特征。例如,当数据张量表示彩色图像时,前两个维度对图像内的垂直和水平坐标进行编码,而第三个维度对每个位置的颜色进行编码。输入数据张量X的每个元素都可以通过单独的权重连接到每个神经元,因此权重张量通常具有6个维度,将输入数据张量的3个维度(输入行a,输入列b,输入特征c)与输出数据张量的3个维度(输出行i,输出列j,输出功能k)联系起来。中间数据张量Z具有与输出数据张量Y相同的形状。参数张量V将3个输出数据张量维度与索引激活函数σ的参数的附加维度o连接。

层的输出数据张量Y的元素可以如方程式1那样计算,其中神经元激活函数σ由激活函数参数V[i,j,k,:]的矢量构成,并且加权和可以如方程式2那样计算。

Y[i,j,k]=σ(V[i,j,k,:];Z[i,j,k])

等式1

为了简化表示,可以将等式2中的加权和称为输出,其等效于使用线性激活函数Y[i,j,k]=σ(Z[i,j,k])=Z[i,j,k],应理解的是,当使用不同的激活函数时,可以应用相同的语句而不会失去一般性。

在各个实施例中,如上所述的输出数据张量的计算被分解为较小的问题。然后可以在并行的常规多核系统的一个或多个神经核或一个或多个核上解决每个问题。

从以上显而易见,神经网络本质上是并行结构。给定层中的神经元接收输入,以及来自一个或多个层的具有元素x

因为给定层中的所有神经元都接收来自相同层的输入并独立地计算其输出,所以可以并行地计算神经元激活。由于整个神经网络的这一方面,在并行分布式核中执行计算可加速总体计算。此外,在每个核矢量内可以并行计算操作。即使使用了周期性的输入,例如当某个层返回自身时,所有神经元仍会同时更新。有效地,循环连接被延迟以与该层的后续输入对齐。

现在参考图1,描绘了根据本公开的实施例的神经核。神经核100是可拼接的计算单元,其计算输出张量的一个块。神经核100具有M输入和N输出。在各种实施例中,M=N。为了计算输出张量块,神经核将M×1输入张量块101与M×N权重张量块102相乘,并将乘积累加为加权和,这些加权和被存储在1×N中间张量块103中。O×N参数张量块包含指定被施加到中间张量块103以产生1×N输出张量块105的每个N神经元激活函数的O参数。

多个神经核可以平铺在神经核阵列中。在一些实施例中,阵列是二维的。

神经网络模型是一组常数,其共同指定由神经网络执行的整个计算,包括神经元之间的连接图以及每个神经元的权重和激活函数参数。训练是修改神经网络模型以执行所需功能的过程。推理是在不修改神经网络模型的情况下将神经网络应用于输入以产生输出的过程。

推理处理单元是执行神经网络推理的处理器类别。神经推理芯片是推理处理单元的特定物理实例。

在包括阵列中的多个核的实施例中,每个核实现整个神经网络的计算的一部分。在给定层具有由j=1:N

Y

方程式3

在一些实施例中,每个核计算一定数量的输出神经元。对于N

核1计算:针对j=1:N

Y

核2计算:针对j=N

核k计算:针对j=(k-1)N

核N

在一些实施例中,每个核计算所有输出神经元,但是仅针对输入的子集。对于N

核1计算:针对j=1:N

Y

核k计算:针对j=1:N

i=(k-1)N

核N

i=(N

为了得到一个完整的结果,针对j=1:N

在一些实施方式中,每个核计算一定数量的输出神经元,但是每个核都不能访问所有输入神经元。在这样的实施例中,每个核计算部分输出并将其传递,直到每个核具有其完全计算其神经元集合所需的所有部分。在这样的实施例中,核仅需要传递非零的信息(部分和),从而允许阵列利用神经网络层的高级结构。例如,卷积神经网络需要较少的用于输入、输出和部分和的计算和通信。例如:

核1计算:针对j=1:N

核2计算:针对j=1:N

核k计算:针对j=1:N

i=(k-1)N

核N

i=(N

然后,依次或重叠地计算完整结果。针对j=1:N

核1计算:针对j=1:N

Y

核2计算:针对j=N

核k计算:针对j=(k-1)N

核N

现在参考图2,其示出了显示核间并行性的示例性神经核。芯201包括交叉开关(crossbar)202,其包括平行的矢量计算单元,其接收输入203

如上所述,阵列中的每个核包括并行/并发神经网络计算元件。例如,给定的核k计算:

针对j=1:N

和/或计算

针对j=(k-1)N

所述的N

现在参考图3,其示出了显示核内并行性的示例性神经核。核301包括矢量乘法/求和单元302(其对应于图2中的单元202之一),其接收输入303[x

如上所述,矢量单元各自以并行/并发方式计算。例如,k

参照表1,针对核阵列尺寸(列1x1…64x64)和交叉开关尺寸(行1x1…1024x1024)给出了各种总的核阵列并行度值。总并行度是核阵列大小和交叉开关大小的乘积。

表1

参照图4,示出了根据本公开的实施例的神经计算的方法。在401处,在多个神经核中的每一个处接收神经网络的层的输入激活的子集。多个神经核中的每一个包括被配置为并行操作的多个矢量计算单元。多个神经核中的每一个被配置为通过将其多个矢量计算单元应用于输入激活来并行计算输出激活。在402,将神经网络的层的输出激活的子集分配给多个神经核中的每个以进行计算。在接收到神经网络的层的输入激活的子集时,多个神经核中的每一个:在403处为其分配的输出激活中的每一个计算部分和,并至少从所计算的部分和405计算其分配的输出激活。在一些实施例中,在404处多个核中的每个核从多个神经核中的另一个接收针对其分配的输出激活中的至少一个的部分和,并在405从所计算的部分和和所接收的部分和中计算其分配的输出激活。

应当理解,本文提供的神经网络可以用作分类器或生成器。

现在参考图5,示出了计算节点的示例的示意图。计算节点10仅是合适的计算节点的一个示例,并且无意于暗示对本文所述实施例的使用范围或功能的任何限制。无论如何,计算节点10能够被实现和/或执行以上阐述的任何功能。

在计算节点10中,存在计算机系统/服务器12,该计算机系统/服务器12可与许多其他通用或专用计算系统环境或配置一起操作。可能适合与计算机系统/服务器12一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型机计算机系统以及包括上述任何系统或设备的分布式云计算环境,等等。

可以在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述计算机系统/服务器12。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式云计算环境中实践计算机系统/服务器12,在分布式云计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括内存存储设备的本地和远程计算机系统存储介质中。

如图5所示,以通用计算设备的形式示出了计算节点10中的计算机系统/服务器12。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16,系统存储器28以及将包括系统存储器28的各种系统组件耦合到处理器16的总线18。

总线18代表几种类型的总线结构中的任何一种或多种,包括使用各种总线体系结构中的任何一种的存储器总线或存储器控制器、外围总线、加速图形端口以及处理器或本地总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线、外围组件互连(PCI)总线、外围组件互连Express(PCIe)和高级微控制器总线体系结构(AMBA)。

计算机系统/服务器12通常包括各种计算机系统可读介质。这样的介质可以是计算机系统/服务器12可访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统34以用于读取和写入不可移动的非易失性磁性介质(未示出并且通常称为“硬盘驱动器”)。尽管未显示,但磁盘驱动器用于读写可移动的非易失性磁盘,例如,可以提供一种用于从诸如CD-ROM、DVD-ROM或其他光学介质的可移动非易失性光盘读取或写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线18。如将在下面进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有被配置为执行本公开的实施例的功能的一组程序模块(例如,至少一个)。

具有一组(至少一个)程序模块42的程序/实用工具40可以作为示例而非限制地存储在存储器28中,以及操作系统、一个或多个应用程序、其他程序模块和程序数据。操作系统、一个或多个应用程序、其他程序模块以及程序数据或它们的某种组合中的每一个可以包括联网环境的实现。程序模块42通常执行本文所述的实施例的功能和/或方法。

计算机系统/服务器12还可以与一个或多个外部设备14通信,诸如键盘、指示设备、显示器24等;一个或多个使用户能够与计算机系统/服务器12交互的设备;和/或使计算机系统/服务器12与一个或多个其他计算设备进行通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由输入/输出(I/O)接口22发生。仍然,计算机系统/服务器12可以通过网络适配器20与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网)的一个或多个网络通信。如图所示,网络适配器20经由总线18与计算机系统/服务器12的其他组件通信。应当理解,尽管未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码,设备驱动程序,冗余处理单元,外部磁盘驱动器阵列,RAID系统,磁带驱动器和数据档案存储系统等。

本公开可以体现为系统、方法和/或计算机程序产品。该计算机程序产品可以包括其上具有用于使处理器执行本公开的各方面的计算机可读程序指令的计算机可读存储介质。

计算机可读存储介质可以是有形的设备,其可以保留和存储由指令执行设备使用的指令。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)、记忆棒、软盘、机械编码设备例如上面记录了指令的打孔卡或凹槽中的凸起结构,以及上述内容的任何合适组合。本文所使用的计算机可读存储介质不应被解释为本身是瞬时信号,例如无线电波或其他自由传播的电磁波、通过波导传播的电磁波或其他传输介质(例如,穿过的光脉冲)光纤电缆或通过电线传输的电信号。

本文所述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者可以经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。该网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应的计算/处理设备内的计算机可读存储介质中。

用于执行本公开的操作的计算机可读程序指令可以是汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或任一源以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和常规过程编程语言(例如“C”编程语言或类似编程语言)的任何组合编写的代码或目标代码。计算机可读程序指令可以完全在用户计算机上、部分在用户计算机上、作为独立软件包执行、部分在用户计算机上并且部分在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者可以与外部计算机建立连接(用于例如,通过使用互联网服务提供商的互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令来个性化电子电路,以执行本公开的方面。

在此参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。将理解流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以通过计算机可读程序指令来实现。

可以将这些计算机可读程序指令提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器,以产生机器,使得该指令经由计算机或其他处理器执行可编程数据处理设备,创建用于实现流程图和/或框图方框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以指导计算机、可编程数据处理装置和/或其他设备以特定方式起作用,从而使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或方框图或多个方框中指定的功能/动作的各方面的指令。

计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生实现的计算机处理过程,以使在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图方框中指定的功能/动作。

附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。就这一点而言,流程图或框图中的每个方框可以代表指令的模块、片段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,方框中指出的功能可以不按图中指出的顺序发生。例如,取决于所涉及的功能,实际上可以基本上同时执行连续示出的两个框,或者有时可以以相反的顺序执行这些框。还应注意,框图和/或流程图的每个方框以及框图和/或流程图的方框的组合可以由执行指定功能或动作或基于特定目的的基于硬件的专用系统来实现。执行特殊用途的硬件和计算机指令的组合。

在各个实施例中,一个或多个推理处理单元(未示出)耦合到总线18。在这样的实施例中,推理处理单元(IPU)可以经由总线18从存储器28接收数据或向存储器28写入数据。同样,如本文所述,IPU可以经由总线18与其他组件交互。

已经出于说明的目的给出了对本公开的各种实施例的描述,但是这些描述并不旨在是穷举的或限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。这里选择使用的术语是为了最好地解释实施例的原理、对市场上发现的技术的实际应用或技术上的改进或者使本领域的其他普通技术人员能够理解本申请所公开的实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号