CN109284821A - 一种神经网络运算装置 - Google Patents

一种神经网络运算装置 Download PDF

Info

Publication number
CN109284821A
CN109284821A CN201710593218.6A CN201710593218A CN109284821A CN 109284821 A CN109284821 A CN 109284821A CN 201710593218 A CN201710593218 A CN 201710593218A CN 109284821 A CN109284821 A CN 109284821A
Authority
CN
China
Prior art keywords
vector
neural network
computing device
input
computing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710593218.6A
Other languages
English (en)
Other versions
CN109284821B (zh
Inventor
费旭东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710593218.6A priority Critical patent/CN109284821B/zh
Publication of CN109284821A publication Critical patent/CN109284821A/zh
Application granted granted Critical
Publication of CN109284821B publication Critical patent/CN109284821B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例公开了一种神经网络运算装置,用于线性扩展大规模系统的处理能力。本申请实施例中所提及的神经网络运算装置包括:向量输入接口、向量输出接口及至少n*m个计算单元,其中,n为神经网络运算装置中输入向量的份数,m为神经网络运算装置中输出向量的份数,输入向量的份数与计算单元的行数相对应,输出向量的份数与计算单元的列数相对应;向量输入接口,用于输入输入向量;计算单元,用于获取与计算单元的行数相对应的输入向量,并将获取到的输入向量与计算单元中内置的权参数作矩阵运算,得到运算结果;向量输出接口,用于输出输出向量,输出向量为根据相同列的计算单元所得出的运算结果的和。

Description

一种神经网络运算装置
技术领域
本申请涉及电子芯片领域,尤其设计一种神经网络运算装置。
背景技术
神经网络及深度学习算法已经获得了非常成功的应用,并处于迅速发展的过程中,业界普遍预期新的计算方式有助于实现更为普遍、复杂的智能应用。神经网络或深度学习算法等近年来在图像识别应用领域取得了非常突出的成就。与此同时,神经网络算法的硬件加速,芯片的研究与开发也迅速发展,包括IBM,qualcomm,Intel,Nvidia等诸多公司开始投入研究与开发。
随着技术的发展和应用的普及,神经网络的算法和硬件被用来解决越来越复杂的问题。因此,不仅仅是诸如手机,摄像头等单芯片(System on Chip,SOC)的解决方案得到普遍的应用。在系统层面,无论是网络边缘,还是云端,都涉及到多芯片的系统集成问题。期待通过N个芯片的板级,系统级集成应用,获得N倍的加速比,或者在同等时间下,能解决N倍复杂的问题。
在现有技术中,为了实现复杂算法的切分,如图1所示,著名的Alexnet,设计了一种特殊的网络结构,把原本是一体化的网络分成上下2个相对独立的部分,以便将网络运行在2个GPU芯片上。但是,由于上下两个独立的部分还是会有参数的交互,使得整体的性能降低,不能实现线性扩展大规模系统的处理能力。
发明内容
本申请实施例提供了一种神经网络运算装置,用于线性扩展大规模系统的处理能力。
本申请实施例的第一方面提供一种神经网络运算装置,所述神经网络运算装置包括向量输入接口、向量输出接口及至少n*m个计算单元,所述n为所述神经网络运算装置中输入向量的份数,所述m为所述神经网络运算装置中输出向量的份数,所述输入向量的份数与所述计算单元的行数相对应,所述输出向量的份数与所述计算单元的列数相对应;所述向量输入接口,用于输入所述输入向量;所述计算单元,用于获取与所述计算单元的行数相对应的所述输入向量,并将获取到的输入向量与所述计算单元中内置的权参数作矩阵运算,得到运算结果;所述向量输出接口,用于输出所述输出向量,所述输出向量为根据相同列的所述计算单元所得出的运算结果的和。本申请实施例中提供了一种神经网络运算装置,可以线性扩展大规模系统的处理能力。
在一种可能的设计中,在本申请实施例第一方面的第一种实现方式中,所述神经网络运算装置还包括至少m个累加单元,所述累加单元用于累加对应列的所述计算单元的运算结果,得到累加结果。本申请实施例中还至少包括m个累加单元,增加了本申请实施例的可实现性和完整性。
在一种可能的设计中,在本申请实施例第一方面的第二种实现方式中,所述计算单元还用于累加对应列的所述计算单元的运算结果,得到累加结果。本申请实施例中的计算单元还具有累加功能,丰富了实施例。
在一种可能的设计中,在本申请实施例第一方面的第三种实现方式中,每一列都有一个所述计算单元还用于对所述累加结果进行映射变换,得到映射结果。本申请实施例说明了神经网络运算装置最后还需要对累加结果进行映射变换,增加了本申请实施例的可实现性和完整性。
在一种可能的设计中,在本申请实施例第一方面的第四种实现方式中,所述神经网络运算装置还包括参数输入接口,所述参数输入接口用于向所述计算单元输入所述权参数。本申请实施例追加了神经网络运算装置还包括参数输入接口,增加了本申请实施例的可实现性和完整性。
在一种可能的设计中,在本申请实施例第一方面的第五种实现方式中,所述计算单元包括向量输入子接口和向量输出子接口。本申请实施例细化了计算单元的结构,增加了本申请实施例的可操作性。
在一种可能的设计中,在本申请实施例第一方面的第六种实现方式中,所述神经网络运算装置通过所述向量输入子接口及所述向量输出子接口行方向传输所述输入向量。本申请实施例说明了输入向量的一种传输方式,增加了本申请实施例的可操作性。
在一种可能的设计中,在本申请实施例第一方面的第七种实现方式中,所述神经网络运算装置通过所述向量输出子接口列方向传输所述运算结果。本申请实施例说明了运算结果的一种传输方式,增加了本申请实施例的可操作性。
在一种可能的设计中,在本申请实施例第一方面的第八种实现方式中,所述神经网络运算装置还可以通过广播传输所述输入向量,使得所述计算单元同时接收到所述输入向量。本申请实施例说明了计算单元获取输入向量的另一种方式,丰富了实施例。
在一种可能的设计中,在本申请实施例第一方面的第九种实现方式中,所述矩阵运算具体为:Yji=Xi*Wji;其中,所述Yji为所述运算结果,所述j为所述计算单元的列数,所述i为所述计算单元的行数或所述输入向量的序数;所述Xi为所述输入向量;所述Wji为所述权参数。本申请实施例具体说明了矩阵运算的具体方式,增加了本申请实施例的可操作性。
在一种可能的设计中,在本申请实施例第一方面的第十种实现方式中,所述权参数为参数矩阵。本申请实施例具体说明了权参数的类型,增加了本申请实施例的完整性。
在一种可能的设计中,在本申请实施例第一方面的第十一种实现方式中,所述向量输入接口及所述向量输出接口均具有双向性。本申请实施例具体说明了接口的双向性,增加了本申请实施例的可操作性。
在一种可能的设计中,在本申请实施例第一方面的第十二种实现方式中,当所述向量输入接口用于输出所述输出向量,所述向量输出接口用于输入所述输入向量时,上面实施例所提及的行与列概念互换。增加了本申请实施例的可实现性和完整性。
本申请实施例提供的技术方案中,提供了一种神经网络运算装置,所述神经网络运算装置包括向量输入接口、向量输出接口及至少n*m个计算单元,所述n为所述神经网络运算装置中输入向量的份数,所述m为所述神经网络运算装置中输出向量的份数,所述输入向量的份数与所述计算单元的行数相对应,所述输出向量的份数与所述计算单元的列数相对应;所述向量输入接口,用于输入所述输入向量;所述计算单元,用于获取与所述计算单元的行数相对应的所述输入向量,并将获取到的输入向量与所述计算单元中内置的权参数作矩阵运算,得到运算结果;所述向量输出接口,用于输出所述输出向量,所述输出向量为根据相同列的所述计算单元所得出的运算结果的和。本申请实施例中的计算单元之间的参数关系完全解耦,可以线性扩展大规模系统的处理能力。
附图说明
图1为现有技术中的一个网络结构示意图;
图2为本申请实施例提供的一种神经网络运算装置的一个结构示意图;
图3为本申请实施例提供的一种计算单元的一个结构示意图;
图4为本申请实施例提供的一种神经网络运算装置另一个结构示意图。
具体实施方式
本申请实施例提供了一种神经网络运算装置,用于线性扩展大规模系统的处理能力。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
如图2所示,图2为本申请神经网络运算装置200的一个结构示意图。该神经网络运算装置200包括至少n*m个计算单元201(计算单元201在图中表示为Pij,其中,j为计算单元201的列数,i为计算单元201的行数)、向量输入接口及向量输出接口,n为神经网络运算装置中输入向量的份数,M为神经网络运算装置中输出向量的份数,输入向量的份数与计算单元201的行数相对应,输出向量的份数与计算单元201的列数相对应。
其中,如图3所示,每个计算单元201都包括向量输入子接口2011和向量输出子接口2012,向量输入接口包括计算单元201的向量输入子接口2011,向量输出接口包括计算单元201的向量输出子接口2012,向量输入接口,用于输入输入向量;计算单元201,用于获取与计算单元201的行数相对应的输入向量,并将获取到的输入向量与计算单元201中内置的权参数作矩阵运算,得到运算结果;向量输出接口,用于输出输出向量,输出向量为根据相同列的计算单元201所得出的运算结果的和。
需要说明的是,本申请实施例中所提及的行与列只是为了说明计算单元201的方位关系,行与列也可以调换,具体本申请实施例以输入向量行方向传输,运算结果列方向累加为例进行说明。
需要说明的是,当神经网络运算装置200得到每一列的计算单元201的运算结果的累加结果之后,会对该累加结果作进一步处理,如,对该累加结果进行映射变换,得到映射结果,最后输出该映射结果。
需要说明的是,神经网络运算装置200对同一列中的计算单元201所得出的的运算结果作累加时,累加方法有两种。第一种,逐级累加,即将每一列的计算单元201所对应的运算结果从上到下依次相加,如,神经网络运算装置200将第一行的运算结果传输到第二行的计算单元201中,第二行的计算单元201将接收到的运算结果及本身的运算结果作累加,得到中间累加结果,然后再将该中间累加结果传输到第三行的计算单元201中,第三行的计算单元201再将得到的中间累加结果与本身的运算结果作累加,再依次往下传递,直到同列中所有的运算结果都被累加进去;需要说明的是,除了从上到下累加,还可以从下到上累加,具体累加方向此处不做限定;第二种集中累加,此时神经网络运算装置200的每一列都还包括一个累加单元202,如图4所示,此时每一列中的所有计算单元201都会将自身的运算结果传送至累加单元202,再由累加单元202进行集中累加。其中,累加单元202可以位于每一列计算单元201的底部,也可以位于其他位置,例如每一列计算单元201的顶部,具体位置此处不做限定。
需要说明的是,向对应行的计算单元201传输输入向量也有两种方式,第一种,逐级传输,即,向对应行的计算单元201传入输入向量之后,每一行的计算单元201通过向量输入子接口2011和向量输出子接口2012行方向依次传递输入向量。第二种,神经网络运算装置还可以通过广播传输输入向量,同时将输入向量传递到所有计算单元201上。
需要说明的是,计算单元201内的矩阵运算具体为:Yji=Xi*Wji;其中,Yji为运算结果,j为计算单元201的列数,i为计算单元201的行数或输入向量的序数;Xi为输入向量;Wji为权参数,其中,权参数为参数矩阵。
下面对本申请中的一个实施例进行具体说明:
如表1所示,神经网络运算装置200将输入向量分成n份,记为:[X1,X2,...Xn],其中,此时输入向量X为行向量,为了使得描述更加清楚,故在表中画成列向量;输出向量分成m份,记为:[Y1,Y2,…Ym]。需要说明的是,X1、X2…Xn每一个包含的元素个数不一定相同,例如X1有2个元素,X2有3个元素,Y1、Y2…Ym每一个包含的元素个数也不一定相同。
神经网络运算装置200根据X向量和Y向量的划分方式,参数矩阵W分成了n*m份,每一行作为一个集合,分别表示为:[W11,W21,…Wm1],[W12,W22,…Wm2],…[W1n,W2n,…Wmn](第一个下标表示列号,第二个下标表示行号)。总共有n*m个计算单元201参与计算工作,表示为:[P11,P21,…Pm1],[P12,P22,…Pm2],…[P1n,P2n,…Pmn]。其中,参数矩阵W的每一份都对应于一个计算单元201,即每个计算单元201内都存有一份参数矩阵W。
其中,网络运算装置200的具体计算步骤如下:
步骤一,网络运算装置200将[X1,X2,...Xn]中的每一份行向量分别传递给对应行的所有计算单元201。例如,X1传递给[P11,P21,…Pm1],X2传递给[P12,P22,…Pm2],Xn传递给[P1n,P2n,…Pmn]。
步骤二,每个计算单元Pji进行各自的矩阵运算:Yji=Xi*Wji,i=1,2…n,j=1,2…m。其中Yji是每一个分块,它是输入Xi和参数Wji相乘的结果。
步骤三,神经网络运算装置200从上到下,完成每一列中所有Yji的累加。例如:计算单元P11的运算结果Y11传递到计算单元P12,计算单元P12将其与自己的运算结果Y12相加并输出,依次类推,最后在计算单元P1n的位置,得到Y1。从左到右,通过同样的方法获得Y2,Y3,…Ym。可选的,从下到上累加也可以得到相同的结果。
步骤四,可选地,在最后一行的计算单元201处,可以对Y1,Y2,…Ym做一个映射计算,映射可以是神经网络算法通常所采用的各种映射,例如RELU,Sigmoid映射等,从而获得Z1,Z2,…Zm,其中Zk=f(Yk),k=1,2,…,m。一般地,这个映射计算可以使用传递到这个计算单元201的本地数据。
表1:
需要说明的是,以上计算步骤只是本申请实施例中的一个例子,在同样的划分方式下,也可以把Y方向作为输入向量的输入方向,X方向作为输出向量的输出方向,执行类似的计算过程,具体计算过程和上面实施例所提及的过程类似,具体此处不做赘述。
下面对本申请实施例中计算单元201的功能进行归纳,其中,计算单元201可以有5个接口,包括上下左右的数据接口,用来接收输入向量和相邻计算单元传递过来的中间结果,以及一个读取本地参数W的接口:
功能1:根据输入向量X,及本地参数矩阵W,计算出本地的结果Yji=Xi*Wji;
功能2:将输入向量X直接输出给相邻的其他计算单元201使用,例如从左到右传递,将Xn传递给[P1n,P2n,…Pmn];
功能3:将上面接口的输入和本地的结果相加,并向下输出;
功能4:可选地,将最终的累加结果通过一个映射计算后再输出;
功能5:将输入向量从下到上直接输出,例如将Um传递给[Pm1,Pm2,…Pmn];
功能6:将右边接口的输入和本地的结果相加,并向左输入;
其中2,3,5,6可以进一步归纳为:
功能7:从一个接口到另一个接口的直通模式,用来传递输入向量;
功能8:从一个接口到另一个接口的累加模式,用来累加中间结果。
下面,列举一个具体的示例对本发明实施例进行说明:
神经网络运算装置200可以把X分成2份,Y也分成2份,这样权参数W就分成了4份。计算的实施步骤如前所提及的具体计算步骤中的步骤一至步骤三,具体此处不再赘述,数据X从左到右分别传递到4个计算单元201,独立进行计算以后,从上往下累加,形成Y的结果。当然,数据X还可以从右往左传递,计算单元201的运算结果也可以从下到上进行累加,具体步骤与数据X从左往右传递,运算结果从上到下进行累加时类似,具体此处不做赘述。
下面结合具体的矩阵计算来说明:
如果X=[1,2,3,4],将X划分为两个部分X1=[1,2]和X2=[3,4],将W划分为4个子矩阵,每个都是2x2维度, 分配四个计算单元来执行矩阵乘法,排列成
按照步骤一,将X1传递给P11和P21,X2传递给P12和P22。
按照步骤二,每个计算单元201分别进行本地的矩阵乘法,即:
Y11=X1*W11=[11,14],由P11执行;
Y21=X1*W21=[17,20],由P21执行;
Y12=X2*W12=[79,86],由P12执行;
Y22=X2*W22=[93,100],由P22执行;
按照步骤三,将从上到下累加,即Y11加到Y12上得到Y1,由P11将中间结果Y11传递给P12并由P12执行;Y21加到Y22上得到Y2,由P21将中间结果Y21传递给P22并由P22执行,最终得到[Y1,Y2]=[90,100,110,120],它就是Y=X*W的输出结果。
可选的,计算单元201的输出也可以是从下到上传递,例如P12将中间结果Y12传递给上面的P11并由P11负责累加。
一般而言,计算单元201中的接口的输入输出定义是可以灵活配置的,这样可以满足大量计算单元201并行工作的需要。
需要说明的是,根据不同的实际应用场景,本方案可以有不同的具体实施例,本申请所提及的神经网络运算装置200可以应用在以下提及的情景,包括:
1、一个大规模的多核处理器方案。
一个多核的处理器,可以采纳本方案所定义的结构来实施。核与核之间的通信采取本方案所描述的邻域通信。通常,权参数需要存储在外部存储器,由处理器的内部总线将权参数从外部存储器传递到多核平面结构。
2、一个包括多个芯片的单板或模块。
可以由一个处理芯片及配合其工作的存储芯片构成一个计算单元201。在一个单板上,包括多个这样的计算单元201,形成一个平面布局。例如可以是16*16=256个计算单元201,或者更多的单元构成的单板或PCIe插卡。
单板内部的数据通信,可以建立在单个元件的邻域通信基础上,也可以通过物理上的交换网芯片来实现所需要的硬件互连。
3、一个包括多个单板的框级、柜级系统。
一个机框或机柜系统由多个单板组成,例如,可以由16个单板来构成一个系统。除了采用传统的背板架构来建立任意的交换互连以外,本方案还提供一种可能性是单板间只需要建立相邻的连接就可以满足主要的通信需求。
4、数据中心的多个柜级系统。
数据中心的机房基本上也是平面布局,这和微观的芯片布局是类似的。因此,机柜和机柜间的邻域连接也为建立超高性能系统创造了条件。
5、网络级分布式处理系统。
目前已经存在的网络通信,基于平面分布的现实,也会形成自然的树形结构。地理概念本身是平面的,本方案的概念也对网络发展有一定启发意义。
6、网络级海量终端的分布式处理。
无论具体的网络架构是什么,最终对海量终端而言,当前网络总体上提供了终端和终端之间的远距离对等互连,同时我们也知道,邻域互连总是有更好的效率。如果用海量终端来协同进行智能处理、推理或训练,也可以参考本专利的逻辑概念,将海量终端通过一个平面逻辑结构组织起来,从而获得好的综合效率。
在本方案的各种具体实施过程中,它们的共同特征是一个逻辑上的平面划分结构及通信逻辑关系。在工程上,通信可以采用不同的方式来实现,包括片内互连和总线,单板上的芯片间互连和总线,框级、柜级的背板互连结构,或者数据中心之间的远程互连等。
本申请实施例中,将神经网络的计算过程从2个维度分解到n*m个计算单元201,其中输入输出数据分别分解为n份和m份,对应地,参数矩阵按2个维度分解成n*m份。一个大规模的计算过程因此分解为相互独立的n*m个计算过程,相互之间不需要传递参数及参数的更新,只传递输入输出数据以及与n或m成比例的中间结果,计算单元201之间的参数关系完全解耦,故本申请实施例中所提及的神经网络运算装置200可以线性扩展大规模系统的处理能力,且大规模海量低成本计算节点可以构成超高性能的业务能力,包括推理和学习,单节点的功能定义是简单的,局部的,从每个计算单元201的角度看,只对局部的数据输入输出关系负责,不需要有全局概念。
需要说明的是,如果把Y转移到X方向作为输入计算,则每个计算单元201所对应的权参数会发生相应调整,需要在不同计算单元201之间完成权参数的转移。在这种情况下,架构上虽然完成了计算的并行分解,但是正向和逆向计算过程中,权参数的归属发生了变化,因此每个计算单元201的逻辑功能发生了变化。如果逆向计算过程按原路返回,则每个计算单元201对外界数据的关系没有发生变化,仅与输入、输出及权参数这三个局部可见的数据相关,而不与任何全局数据相关。所以在本申请实施例中网络运算装置200在逆向运算时,只是改变数据传递的方向,不改变计算单元201的物理连接关系,也不需要把输出数据转移到X输入方向来进行计算,本申请实施例中每个计算单元201的参数,无论其使用,还是训练更新,都是本计算单元201的局部特性,不需要在计算单元201之间传递参数。
需要说明的是,本申请实施例中建立标准计算节点的功能和接口定义,这种标准节点有非常大的普适性。每个计算单元201的逻辑功能包括:矩阵计算,输出映射,数据接力,数据累加,其中,统一定义的计算节点结构,可以支持低成本的大规模部署。
需要说明的是,本申请实施例中的神经网络运算装置200还可以一次性将输入向量数据全部发送至所有相关计算单元201,所有计算单元201可以同步开始工作。广播模式代替逐级接力的数据传播方式,可以降低数据传输的延迟,简化同步关系。
需要说明的是,本申请实施例中的神经网络运算装置200可以在最后一个计算单元201集中完成累加及映射计算,简化了逐级累加的计算过程及同步关系,其他独立计算部件不需要累加功能及映射计算功能,集中完成中间运算结果的累加及映射输出,代替逐级累加,并在最后完成映射的输出。简化每个计算单元201的功能,简化输出的数据同步关系。
需要说明的是,数据的输入输出方向可以灵活配置,通过不同方向的基本元件,可以实现单元和单元之间的无缝连接。即,每个计算单元201具有五个接口,除了获取权参数的接口之外,其余四个接口可以是灵活定义的双向接口,因此计算单元201的输入输出不限于左进右出,还可以是其他方式,例如左进上出,上进左出/右出,右进上出/下出,下进左出/右出等。故本申请实施例中所提及的计算单元201之间的连接,可以在一个平面结构中高效衔接。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (13)

1.一种神经网络运算装置,其特征在于,所述神经网络运算装置包括向量输入接口、向量输出接口及至少n*m个计算单元,所述n为所述神经网络运算装置中输入向量的份数,所述m为所述神经网络运算装置中输出向量的份数,所述输入向量的份数与所述计算单元的行数相对应,所述输出向量的份数与所述计算单元的列数相对应;
所述向量输入接口,用于输入所述输入向量;
所述计算单元,用于获取与所述计算单元的行数相对应的所述输入向量,并将获取到的输入向量与所述计算单元中内置的权参数作矩阵运算,得到运算结果;
所述向量输出接口,用于输出所述输出向量,所述输出向量为根据相同列的所述计算单元所得出的运算结果的和。
2.根据权利要求1所述的神经网络运算装置,其特征在于,所述神经网络运算装置还包括至少m个累加单元,所述累加单元用于累加对应列的所述各个计算单元的运算结果,得到累加结果。
3.根据权利要求1所述的神经网络运算装置,其特征在于,所述计算单元还用于累加对应列的所述计算单元的运算结果,得到累加结果。
4.根据权利要求2或3所述的神经网络运算装置,其特征在于,每一列都有一个所述计算单元还用于对所述累加结果进行映射变换,得到映射结果。
5.根据权利要求1至3中任一项所述的神经网络运算装置,其特征在于,所述神经网络运算装置还包括参数输入接口,所述参数输入接口用于向所述计算单元输入所述权参数。
6.根据权利要求1至3中任一项所述的神经网络运算装置,其特征在于,所述计算单元包括向量输入子接口和向量输出子接口。
7.根据权利要求6所述的神经网络运算装置,其特征在于,所述神经网络运算装置通过所述向量输入子接口及所述向量输出子接口行方向传输所述输入向量。
8.根据权利要求6所述的神经网络运算装置,其特征在于,所述神经网络运算装置通过所述向量输出子接口列方向传输所述运算结果。
9.根据权利要求1至3中任一项所述的神经网络运算装置,其特征在于,所述神经网络运算装置还可以通过广播传输所述输入向量,使得所述计算单元同时接收到所述输入向量。
10.根据权利要求1至3中任一项所述的神经网络运算装置,其特征在于,所述矩阵运算具体为:
Yji=Xi*Wji;
其中,所述Yji为所述运算结果,所述j为所述计算单元的列数,所述i为所述计算单元的行数或所述输入向量的序数;
所述Xi为所述输入向量;
所述Wji为所述权参数。
11.根据权利要求1至3中任一项所述的神经网络运算装置,其特征在于,所述权参数为参数矩阵。
12.根据权利要求1至3中任一项所述的神经网络运算装置,其特征在于,所述向量输入接口及所述向量输出接口均具有双向性。
13.根据权利要求12所述的神经网络运算装置,其特征在于,当所述向量输入接口用于输出所述输出向量,所述向量输出接口用于输入所述输入向量时,权利要求1-3任意一项所述的行与列概念互换。
CN201710593218.6A 2017-07-19 2017-07-19 一种神经网络运算装置 Active CN109284821B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710593218.6A CN109284821B (zh) 2017-07-19 2017-07-19 一种神经网络运算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710593218.6A CN109284821B (zh) 2017-07-19 2017-07-19 一种神经网络运算装置

Publications (2)

Publication Number Publication Date
CN109284821A true CN109284821A (zh) 2019-01-29
CN109284821B CN109284821B (zh) 2022-04-12

Family

ID=65184270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710593218.6A Active CN109284821B (zh) 2017-07-19 2017-07-19 一种神经网络运算装置

Country Status (1)

Country Link
CN (1) CN109284821B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111279364A (zh) * 2019-01-31 2020-06-12 深圳市大疆创新科技有限公司 卷积计算的装置、方法、处理器和可移动设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105913119A (zh) * 2016-04-06 2016-08-31 中国科学院上海微系统与信息技术研究所 行列互联的异构多核心类脑芯片及其使用方法
CN105976022A (zh) * 2016-04-27 2016-09-28 清华大学 电路结构、人工神经网络及用电路结构模拟突触的方法
CN106203621A (zh) * 2016-07-11 2016-12-07 姚颂 用于卷积神经网络计算的处理器
US20170103315A1 (en) * 2015-05-21 2017-04-13 Google Inc. Vector computation unit in a neural network processor
CN106844294A (zh) * 2016-12-29 2017-06-13 华为机器有限公司 卷积运算芯片和通信设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170103315A1 (en) * 2015-05-21 2017-04-13 Google Inc. Vector computation unit in a neural network processor
CN105913119A (zh) * 2016-04-06 2016-08-31 中国科学院上海微系统与信息技术研究所 行列互联的异构多核心类脑芯片及其使用方法
CN105976022A (zh) * 2016-04-27 2016-09-28 清华大学 电路结构、人工神经网络及用电路结构模拟突触的方法
CN106203621A (zh) * 2016-07-11 2016-12-07 姚颂 用于卷积神经网络计算的处理器
CN106844294A (zh) * 2016-12-29 2017-06-13 华为机器有限公司 卷积运算芯片和通信设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111279364A (zh) * 2019-01-31 2020-06-12 深圳市大疆创新科技有限公司 卷积计算的装置、方法、处理器和可移动设备
WO2020155044A1 (zh) * 2019-01-31 2020-08-06 深圳市大疆创新科技有限公司 卷积计算的装置、方法、处理器和可移动设备

Also Published As

Publication number Publication date
CN109284821B (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN109189474A (zh) 神经网络处理装置及其执行向量加和指令的方法
CN110231958A (zh) 一种矩阵乘向量运算方法及装置
CN109522052A (zh) 一种计算装置及板卡
US9025595B2 (en) Unified network architecture for scalable super-calculus systems
CN105760324A (zh) 数据处理装置和服务器
CN109993301A (zh) 神经网络训练装置及相关产品
CN110163358A (zh) 一种计算装置及方法
CN108960418A (zh) 神经网络处理装置及其执行矩阵向量乘指令的方法
CN111047022B (zh) 一种计算装置及相关产品
CN107102964A (zh) 一种利用高速率连接器进行gpu集群拓展的方法
WO2023040197A1 (zh) 一种跨节点通信方法、装置、设备及可读存储介质
CN109041012A (zh) 基于综合通信与计算能力的基站选择方法和系统
CN110909872B (zh) 集成电路芯片装置及相关产品
CN106776461A (zh) 数据处理装置和服务器
CN108038815A (zh) 集成电路
CN106528490A (zh) 一种fpga异构加速计算装置及系统
CN110163349A (zh) 一种网络模型的计算方法及装置
CN109284821A (zh) 一种神经网络运算装置
CN107492887A (zh) 一种广域能源互联网的区域划分方法和系统
CN109740729B (zh) 运算方法、装置及相关产品
CN107690799B (zh) 一种数据同步的方法、装置、服务器及计算机可读存储介质
CN205827367U (zh) 数据处理装置和服务器
CN206100022U (zh) 一种基于无限带宽的直连架构计算集群系统
CN111260046B (zh) 运算方法、装置及相关产品
CN110472734B (zh) 一种计算装置及相关产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant