CN112805727A - 分布式处理用人工神经网络运算加速装置、利用其的人工神经网络加速系统、及该人工神经网络的加速方法 - Google Patents
分布式处理用人工神经网络运算加速装置、利用其的人工神经网络加速系统、及该人工神经网络的加速方法 Download PDFInfo
- Publication number
- CN112805727A CN112805727A CN201980065991.2A CN201980065991A CN112805727A CN 112805727 A CN112805727 A CN 112805727A CN 201980065991 A CN201980065991 A CN 201980065991A CN 112805727 A CN112805727 A CN 112805727A
- Authority
- CN
- China
- Prior art keywords
- neural network
- artificial neural
- acceleration
- slave
- input
- 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.)
- Pending
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 357
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 318
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000012545 processing Methods 0.000 title claims abstract description 57
- 230000015654 memory Effects 0.000 claims abstract description 258
- 230000000946 synaptic effect Effects 0.000 claims abstract description 117
- 238000004891 communication Methods 0.000 claims abstract description 91
- 210000002364 input neuron Anatomy 0.000 claims abstract description 81
- 230000008569 process Effects 0.000 claims abstract description 43
- 210000000225 synapse Anatomy 0.000 claims abstract description 21
- 239000002131 composite material Substances 0.000 claims description 15
- 230000002093 peripheral effect Effects 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 9
- 239000003795 chemical substances by application Substances 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 27
- 238000013527 convolutional neural network Methods 0.000 description 9
- 210000002569 neuron Anatomy 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Multi Processors (AREA)
- Image Analysis (AREA)
Abstract
根据本发明的分布式处理用人工神经网络运算加速装置可以具有:外部主存储器,存储针对输入神经元的输入数据和突触权重;内部缓冲存储器,存储构成所述人工神经网络运算的各个循环所需的突触权重和输入数据;DMA模块,用于与所述外部主存储器及内部缓冲存储器直接发送和接收数据;神经网络运算装置,针对构成人工神经网络运算的各个循环重复地处理以下一系列顺序过程:读取存储在所述内部缓冲存储器的突触权重和输入数据、执行人工神经网络运算、将运算结果存储在所述外部主存储器;CPU,用于控制在所述外部主存储器和内部缓冲存储器存储针对输入神经元的输入数据和突触权重的操作和所述神经网络运算装置的运行;及通用通信中介块,可以与无关集成电路的类型地以物理方式连接的其他加速装置发送和接收针对所述输入神经元的输入数据和突触权重以及在所述神经网络运算装置执行的运算结果。
Description
技术领域
本发明涉及一种分布式处理用人工神经网络运算加速装置、利用其的人工神经网络加速系统、及该人工神经网络的加速方法。更详细地,涉及通过将人工神经网络运算所需的针对输入神经元的数据和突触权重在具有通用通信中介块的多个分布式处理用人工神经网络运算加速装置以分布的方式进行处理,从而即使不使用诸如GPGPU的大功率、高成本的硬件,也可以不仅能够满足人工神经网络运算所需的性能,还可以根据目标性能灵活地设计人工神经网络的人工神经网络运算加速装置、加速系统、及其加速方法。
背景技术
近来,随着人工智能技术的发展,人工智能技术被引入各种工业领域。
在如上所述的人工智能技术中,深度学习(Deep Learning;深度学习)技术起着重要的作用,它基于接收多个信号作为输入而输出一个信号的感知器算法发展成为由神经元网络构成的人工神经网络技术。
其中,为了执行诸如深度学习技术的人工神经网络技术,需要很多针对输入神经元的权重和运算,因此在根据现有技术的与人工神经网络有关的加速技术的情况下,如果不使用利用GPU(Graphics Processing Unit;图形处理装置)的资源进行除图形作业之外的通用作业的诸如GPGPU(General-Purpose computing on Graphics Processing Unit;通用图形处理装置)的昂贵的硬件,则存在很难满足所需运算性能的问题。
不仅如此,由于运行所述GPGPU需要高功率,因此很难应用于诸如IoT(InternetOf Things;物联网)的需要低功率的领域,在为了用深度学习技术处理大数据而设置有大型计算机系统的数据中心的情况下,由于实现人工神经网络技术所需的加速装置由GPGPU构成且需要大量的电力,因此存在不仅是初始构筑成本而且维护成本也呈几何级数增加的问题。
因此,在实现与人工神经网络有关的加速技术的情况下,迫切需要一种可以满足运算性能而无需诸如GPGPU的昂贵的硬件,且进一步可以降低电力消耗的既现实且可以适用的技术。
发明内容
要解决的技术问题
本发明是为了解决上述问题点而提出的,本发明提供通过将人工神经网络运算所需的针对输入神经元的数据和突触权重在具有通用通信中介块的多个分布式处理用人工神经网络运算加速装置以分布的方式进行处理,从而即使不使用诸如GPGPU的大功率、高成本的硬件,也可以不仅能够满足人工神经网络运算所需的性能,还可以根据目标性能灵活地设计人工神经网络的人工神经网络运算加速装置、加速系统、及其加速方法。
解决问题的方法
根据本发明实施例的分布式处理用人工神经网络运算加速装置,其作为用于处理输入神经元由层构成而形成的人工神经网络运算的加速装置具有:外部主存储器,所述外部主存储器存储针对所述输入神经元的输入数据和突触权重;内部缓冲存储器,所述内部缓冲存储器对存储在所述外部主存储器的突触权重和输入数据中的构成所述人工神经网络运算的各个循环所需的突触权重和输入数据进行存储;DMA模块,所述DMA模块用于与所述外部主存储器及内部缓冲存储器直接发送和接收数据;神经网络运算装置,所述神经网络运算装置针对构成人工神经网络运算的每个循环重复地处理以下一系列顺序过程:读取存储在所述内部缓冲存储器的突触权重和输入数据、执行人工神经网络运算、将运算结果存储在所述外部主存储器;CPU,所述CPU用于控制在所述外部主存储器和内部缓冲存储器存储针对输入神经元的输入数据和突触权重的操作和所述神经网络运算装置的操作;及通用通信中介块,所述通用通信中介块可以与无关集成电路的类型地以物理方式连接的其他加速装置发送和接收针对所述输入神经元的输入数据和突触权重以及在所述神经网络运算装置执行的运算结果。
根据本发明实施例的用于处理针对输入神经元的输入数据具有多个深度的人工神经网络运算的加速系统具有:主机加速装置,所述主机加速装置与存储有所述人工神经网络运算所需的所有突触权重的闪存连接,且具有所述多个深度的个数以上的主机用通信中介块;及多个从机加速装置,所述多个从机加速装置分别具有一个以上的以物理方式连接到所述主机加速装置的主机用通信中介块的从机用通信中介块,且所述多个从机加速装置与所述多个深度的个数一对一相对应地形成,所述主机加速装置可以通过将突触权重和输入数据以并行方式分布到与所述多个深度的各个深度相关的从机加速装置来处理人工神经网络运算,且可以汇总所述从机加速装置的中间运算结果来执行最终运算。
根据本发明实施例的用于处理输入神经元由多个层构成的人工神经网络运算的加速系统具有:主机加速装置,所述主机加速装置与存储有所述人工神经网络运算所需的所有突触权重的闪存连接,且具有一对以上的主机用通信中介块以用于进行发送和接收;及多个从机加速装置,为了与所述主机加速装置顺序地连接而整体上呈流水线形态,所述从机加速装置具有一对以上的从机用通信中介块以用于进行发送和接收,可以通过将针对构成所述人工神经网络运算的输入神经元的突触权重和输入数据顺序地分布到所述主机加速装置和所述从机加速装置来处理人工神经网络运算。
根据本发明实施例的用于处理针对输入神经元的输入数据由多个(M)深度及多个(N)层构成的人工神经网络运算的加速系统可以具有:主机加速装置,所述主机加速装置与存储有所述人工神经网络运算所需的所有突触权重的闪存连接,且具有所述多个(N)层的层数以上的主机用通信中介块;及多个从机加速装置,所述从机加速装置具有一个以上的从机用通信中介块,以用于与所述主机加速装置的主机用通信中介块连接或与其他加速装置连接,且与所述多个(M)深度及多个(N)层所需的神经网络运算的循环数(M×N)一对一相对应地形成。
根据本发明实施例的利用由单个集成电路构成的分布式处理用人工神经网络运算加速装置来对包括输入层和N个隐藏层而具有层结构的人工神经网络处理进行加速的方法,包括以下步骤:a1:当向所述加速装置施加电源,则将存储在外部闪存的针对用于人工神经网络运算的输入神经元的所有突触权重存储在外部主存储器;a2:将通过数据输入装置输入的初始输入数据经由DMA模块存储在外部主存储器;a3:按照构成人工神经网络的输入层的各个循环所需将存储在所述外部主存储器的输入数据和与所述输入数据相对应的突触权重存储在内部缓冲存储器;a4:神经网络运算装置对应于与构成所述人工神经网络的各个循环并读取存储在所述内部缓冲存储器的突触权重和输入数据以执行人工神经网络运算,直至完成针对整个层的运算为止,并为了将该运算结果用作下一层的输入数据而存储在外部主存储器;a5:按照各个循环所需,从所述外部主存储器读取用于针对隐藏层的人工神经网络运算的针对输入神经元的突触权重和输入数据存储在内部缓冲存储器之后,针对N个隐藏层重复执行所述步骤a4的过程。
根据本发明实施例的针对输入神经元的输入数据具有多个深度的人工神经网络的加速方法,可以在与所述多个深度相对应的每个加速装置以分布的方式处理针对输入神经元的输入数据和突触权重。
根据本发明实施例的针对输入神经元由多个层结构构成的人工神经网络的加速方法,可以在与所述多个层相对应的各个加速装置以分布的方式处理针对输入神经元的输入数据和突触权重。
根据本发明实施例的针对输入神经元的输入数据由多个深度和多个层结构构成的人工神经网络的加速方法,可以在与分别构成多个层的多个深度相对应的各个加速装置以分布的方式处理针对输入神经元的数据和突触权重。
发明的效果
如上所述,本发明提供的人工神经网络运算加速装置、加速系统及其加速方法,通过将人工神经网络运算所需的针对输入神经元的数据和突触权重,无关集成电路的类型地在具有能够进行通信中介的通用通信中介块的多个分布式处理用人工神经网络运算加速装置以分布的方式进行处理,从而即使不使用诸如GPGPU的大功率、高成本的硬件,也可以不仅能够满足人工神经网络运算所需的性能,还可以根据目标性能灵活地设计人工神经网络。
附图说明
图1是概略性地示出应用本发明实施例的包括输入层、隐藏层及输出层的人工神经网络模型的概念图。
图2是概略性地示出扩展了图1所示的人工神经网络的深度神经网络的图。
图3是概略性地示出根据本发明实施例的分布式处理用人工神经网络运算加速装置的集成电路构成的框图。
图4是示出构成图3所示的加速装置的通用通信中介块的详细构成的图。
图5是概略性地示出根据本发明实施例的用于处理具有多个深度的输入数据的人工神经网络运算的加速系统的多重集成电路构成的框图。
图6是概略性地示出根据图5所示的加速系统的一实施例的人工神经网络模型的图。
图7是概略性地示出根据图5所示的加速系统的另一实施例的人工神经网络模型的图。
图8是概略性地示出根据本发明实施例的用于处理输入神经元由多个层构成的人工神经网络运算的加速系统的多重集成电路构成的框图。
图9是概略性地示出根据图8所示的加速系统的实施例的人工神经网络模型的图。
图10是概略性地示出用于处理由多个(M)深度及多个(N)层构成的人工神经网络运算的加速系统的多重集成电路构成的框图。
图11是概略性地示出根据图10所示的加速系统的实施例的人工神经网络模型的图。
图12是概略性地示出根据本发明实施例的由多个人工神经网络构成的复合人工神经网络模型的图。
最佳实施方式
以下,将参照附图说明本发明实施例。
图1是概略性地示出应用本发明实施例的包括输入层、隐藏层及输出层的人工神经网络模型的概念图。
如图所示,图1的人工神经网络模型由包括输入层(Input Layer)、多个隐藏层(Hidden Layer)及输出层(Ouput Layer)的层结构构成。
其中,各层的圆称为神经元(Neuron),从各神经元连接到下一层神经元的箭头称为突触(Synapse),表示神经元之间的连接。
例如,x1表示输入层的神经元中的一个,而a1表示隐藏层-1的神经元中的一个。
另一方面,为了在数学上表示图1的神经网络模型,当A是运算结果,W是权重(Weight),X是输入(Input)及B是偏转(Bias)时,可以分别用以下的[数学式1]表示。
[数学式1]
A=|a1 a2 a3|,X=|x1 x2|,B=|b11 b12 b13|
另外,当利用矩阵的内积将[数学式1]简化表示为数学式时,可以用以下的[数学式2]表示。
[数学式2]
AXW+B
图2是概略性地示出扩展图1所示的人工神经网络的深度神经网络的图。
如图2所示,将隐藏层为两个以上的人工神经网络称为深度神经网络。
应用于本发明实施例的人工神经网络由主要应用于图像领域的深度神经网络构成,通常,针对输入神经元的数据可以由相当于使用图像特征的矢量形态的多维(N-Tensor)的特征图来简化表示。
即,如图所示,在本发明实施例中,构成各个层的特征图可以用由宽度(Width),高度(Height)及深度(Depth)构成的维度来表示,此时,深度(Depth)表示由宽度(Width)和高度(Height)构成的维度的扩展,在本说明书中,可以用术语“深度”将扩展的维度数值化为深度(Depth)表示。
更具体地,在应用了本发明实施例的卷积神经网络(ConvNet;ConvolutionalNeural Network)中处理维度的扩展时使用“深度”,在一般神经网络中,例如表示图像时,当图像形态是一般的RGB(红色(Red)、绿色(Green)、蓝色(Blue))的情况下,表示为224×224×3(水平、垂直、颜色通道),这分别与卷积神经网络的水平、垂直及深度相对应,可以使用通道这一术语代替深度。
即,在根据本发明实施例的卷积神经网络中,当输入是图像时,每个层具有水平、垂直及深度三个维度,在这里,深度不是指整个神经网络的深度,而是指相当于针对输入神经元的数据的激活体积(Activation Volume)中的第三个维度。
另外,在图2所示的每个层之间表示的箭头是将各层的运算结果作为相邻下一层的输入进行传送的简化表示。
其中,层N(Layer N)表示的是全连接层(Fully Connected Layer),作为针对将先前层的维度重构为一维的输入的输出,可以用[输入(input),输出(output)]的维度表示,输出层(Output Layer)的输出可以被用作最终运算结果。
图3是概略性地示出根据本发明实施例的分布式处理用人工神经网络运算加速装置的集成电路构成的框图。
图3的加速装置是一种用于实现作为本发明核心思想的人工神经网络的分布式处理的装置,该装置可以将针对输入神经元分层构成而形成的人工神经网络的输入数据和突触权重的运算以分布的方式处理,且由于具有后述的通用通信中介块100,从而能够无关集成电路的类型地进行连接,因此可以将FPGA或SoC方式的多种集成电路彼此间相互连接,从而能够根据所需性能进行灵活的设计。
参照附图,详细说明根据本发明实施例的分布式处理用人工神经网络运算加速装置。
如图所示,根据本发明实施例的分布式处理用人工神经网络运算加速装置10可以具有闪存1,外部主存储器11,内部缓冲存储器12,DMA模块13,神经网络运算装置14,CPU15,数据输入装置16及通信中介块100。
更详细地,所述闪存1由诸如SD(Secure Digital,安全数字)卡的非易失性存储器构成,且存储有根据本发明实施例的人工神经网络运算所需的所有突触权重,当向加速装置施加电源,则可以被CPU的操作控制信号经由所述DMA模块13传送到外部主存储器11。
另外,所述外部主存储器11作为为了执行根据本发明实施例的人工神经网络运算而能够在操作系统的管理下存储针对所述输入神经元的输入数据和突触权重的通用存储装置,由诸如DDR-SDRAM(Dual Data Rate SDRAM,双数据速率同步动态随机存取存储器)的易失性存储器构成,从而仅在向加速装置施加电源时才可以使用,当在本说明书中记载为“外部存储器”时,可以是指外部主存储器11。
另一方面,如图所示,可以具备具有用于在所述闪存1和所述外部主存储器11写入或读取数据的控制逻辑的存储器接口2。
另外,所述内部缓冲存储器12作为用于将存储在所述外部主存储器11的突触权重和输入数据中的构成所述人工神经网络运算的每个循环所需的突触权重和输入数据像缓冲器一样临时存储的装置而使用,且根据构成的存储容量,可以将存储在所述外部主存储器11的输入数据和突触权重中的全部或部分存储。
另外,所述DMA模块13作为用于与所述外部主存储器11及内部缓冲存储器12直接发送和接收数据的构成,可以支持外围装置直接访问存储器以执行写入或读取功能的DMA(Direct Memory Access,直接内存访问)功能。
其中,将更具体地说明应用于本发明实施例的所述DMA模块13,例如,为了避免诸如后述的CPU15的中央处理装置在与处理速度相对慢的外围装置完成数据的读取/写入为止无法执行其他运行而等待,从而提高硬件运算资源的利用率,代替数据的读取/写入为目的而使用。
尤其,如上所述,在本发明实施例中,可以用作以下目的。
1)将存储在外部闪存1的权重存储在外部主存储器11;
2)将存储在外部主存储器11的权重及输入数据存储在内部缓冲存储器12;
3)将存储在外部主存储器11的运算结果通过诸如后述的通用通信中介块100的外围装置接口传送到其他加速装置;
4)将后述的神经网络运算装置14的运算结果存储在外部主存储器11;
5)将诸如后述的数据输入装置16的外围装置的输入数据存储在外部主存储器11;
6)将存储在基于后述的通用通信中介块100的加速装置的外部主存储器11的运算结果作为输入数据传送到其他加速装置的外部主存储器11并存储。
另外,所述神经网络运算装置14可以将读取存储在所述内部缓冲存储器12的突触权重和输入数据,执行人工神经网络运算之后,将运算结果存储在所述外部主存储器11的一系列顺序过程在构成人工神经网络运算的各个循环重复地处理。
另外,所述CPU15包括控制在所述外部主存储器11和内部缓冲存储器12存储针对输入神经元的输入数据和突触权重的操作和所述神经网络运算装置14的运行,从而可以作为加速装置的中央处理装置运行。
另外,所述数据输入装置16作为由传感器接口或外围装置(Peripheral)构成的数据输入装置,如在本发明实施例中一样,当输入数据是图像的情况下,可以执行利用(图像)传感器接口从摄相机接收输入的图像数据并存储在所述外部主存储器11的作用。
另外,所述通用通信中介块100,可以与无关集成电路的类型地以物理方式连接的其他加速装置发送和接收针对所述输入神经元的输入数据和突触权重、及在所述神经网络运算装置14执行的运算结果。
此时,所述通用通信中介块100可以执行与其他加速装置发送和接收地址、数据及控制信号的作用,当构成以物理方式连接的加速装置的集成电路的类型是SoC(System onChip,片上系统)或FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)的情况下,均可以以能够进行通信中介的方式形成。
另一方面,根据本发明实施例,优选地,用于加速装置的集成电路上的各要素之间的通信的总线3协议是工业标准AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线体系结构),由此,所述通用通信中介块100可以执行接收AXI(AdvancedExtensible Interface,高级可扩展接口)或AHB(Advanced High Performance Bus,高级高性能总线)信号转换为加速装置之间的通信输入/输出接口信号的功能。
以下,参照图4更详细地说明根据本发明实施例的设置在加速装置10的通用通信中介块100。
图4是示出构成图3所示的加速装置的通用通信中介块的详细构成的图。
如图所示,构成根据本发明实施例的加速装置的通用通信中介块100具有重映射模块110、总线控制信号匹配模块120、监视模块130及相当于发送和接收接口的发送模块101和接收模块102。
根据本发明实施例,以物理方式连接的多个加速装置通过通用通信中介块100发送和接收总线控制信号(Bus Control Signal:总线ID(Bus ID),突发脉冲(Burst),大小(Size),R/W...),总线地址信号(Bus Address Signal)和总线数据信号(Bus DataSignal),且可以传送在处理器生成的消息和中断信号。
其中,所述重映射模块110可以执行根据约定将从与加速装置的发送用集成电路连接的总线主接口施加的信号中指定接收用集成电路的构成要素的地址和总线ID信号的宽度重映射的作用。
更详细地,构成每个加速装置的集成电路所应用的内部构成要素的地址相互不同,但是在不考虑这些差异的情况下,如果任意加速装置(发送侧)试图访问外部的其他装置(接收侧)的特定区域地址的功能模块时,自然会由于地址冲突而无法访问目标区域。例如,分配给DDR(双倍速率同步动态随机存储器),闪存(Flash),CPU及视频编解码器(VideoCodec)的固有地址在每个加速装置都不同。因此,为了正常地进行通信,必须提前针对地址的重映射进行约定。
另外,所述重映射模块110可以执行使从总线主接口施加的总线ID信号与相邻装置(接收侧)的总线ID信号的宽度(Width)一致的总线ID重映射。
其中,由于在AXI总线标准地址通道和数据通道是独立分开的,因此不能使用数字访问方式连接地址和数据,因此利用总线ID匹配地址-数据对。由于这样的总线ID的使用,每个总线层的构成的总线ID宽度(Bus ID width)可能会有所不同,相互不同的芯片各自由不同的总线系统构成,这种总线构成的差异导致总线ID宽度的差异。因此,为了在相互不同芯片的总线之间进行通信,必须使总线ID的宽度一致,其中,一致是表示根据需要扩展或缩小总线ID宽度,与地址重映射一样,总线ID宽度也需要相互约定。
因此,优选地,执行使地址和总线ID信号宽度一致的重映射时所参照的重映射约定表包括在重映射模块110。
另外,在本发明实施例中,所述总线控制信号匹配模块120分析从总线主接口施加的信号中的总线控制信号(Bus Control Signal)的图案,当紧前施加的总线控制信号和以相接顺序施加的总线控制信号相同的情况下,则可以再使用先前的总线控制信号。由此,通过在总线控制信号相同时再使用,从而最大化加速装置之间的通信接口的I/O引脚的利用率,其结果,可以最大程度地提高通信速度。
另外,根据本发明实施例,所述监视模块130可以监视从处理器接口施加的消息(Message)和从中断接口施加的所有中断信号(Interrupt),当利用其在加速装置之间传送地址信号及数据时,通过将信息和终端信号包含在内进行传送,可以最优先地传送中断信号和处理器的消息,从而可以最大化通信效率。
参照图2至图4,如下说明利用由单个集成电路构成的分布式处理用人工神经网络运算加速装置来加速针对图2所示的包括输入层和N个隐藏层而具有层结构的人工神经网络模型的神经网络处理的方法。
首先,执行步骤a1:当向加速装置10施加电源,则由CPU15的控制信号将存储在外部闪存1的针对用于人工神经网络运算的输入神经元的所有突触权重存储在外部主存储器。
接下来,执行步骤a2:将通过数据输入装置16输入的初始输入数据存储在外部主存储器11。其中,如本发明实施例一样,当输入数据是图像时,从相机输入的图像数据可以经由DMA模块13存储。
接下来,可以执行步骤a3:按照构成人工神经网络的输入层的每个循环所需,将存储在所述外部主存储器11的输入数据和与所述输入数据相对应的突触权重存储在内部缓冲存储器。此时,可以根据人工神经网络的大小来存储全部或部分权重及输入数据。
接下来,可以执行步骤a4:神经网络运算装置14对应于构成所述人工神经网络的每个循环,并读取存储在所述内部缓冲存储器12的突触权重和输入数据以执行人工神经网络运算,直至完成针对整个层的运算为止,并为了将该运算结果用作下一层的输入数据而存储在外部主存储器11。
其中,当运算所需的权重及输入数据存储在内部缓冲存储器,则CPU15将运算开始命令传送给神经网络运算装置14,神经网络运算装置14可以不通过总线而直接在内部缓冲存储器12执行读取和输入。此时,如果不能将神经网络的所有输入数据及权重存储在内部缓冲存储器时,则可以重复将一部分存储在内部缓冲存储器12并进行运算的过程,直至完成针对整个层的运算为止。
接下来,可以执行步骤a5:当针对输入层的运算结果存储在外部主存储器11时,则按照每个循环所需从所述外部主存储器11读取用于针对隐藏层的人工神经网络运算的针对输入神经元的突触权重和输入数据存储在内部缓冲存储器之后,针对N个隐藏层重复执行所述步骤a4的过程。
图5是概略性地示出根据本发明实施例的用于处理具有多个深度的输入数据的人工神经网络运算的加速系统的多重集成电路构成的框图。
如图5所示,根据本发明实施例的用于处理针对输入神经元的输入数据具有多个深度的人工神经网络运算的加速系统200,可以具有单个主机加速装置210及多个从机加速装置220。
更详细地,所述主机加速装置210与存储有所述人工神经网络运算所需的所有突触权重的闪存1连接,且可以具有所述多个深度的个数以上的主机用通信中介块201。
另外,所述从机加速装置220分别具有一个以上的以物理方式连接到所述主机加速装置210的主机用通信中介块201的从机用通信中介块202,且所述从机加速装置220可以与所述多个深度的个数一对一相对应地形成多个。
此时,所述主机加速装置210可以通过将突触权重和输入数据以并行方式分布到与所述多个深度的各个深度相关的从机加速装置220来处理人工神经网络运算,且可以汇总所述从机加速装置220的中间运算结果来执行最终运算。
在本发明实施例中,优选地,所述主机用通信中介块201和所述从机用通信中介块202具有与图4所述的通用通信中介块100相同的构成,将省略针对此的详细说明。
另外,在本发明实施例中,所述主机加速装置210和所述从机加速装置220可以分别由SoC方式及FPGA方式中的任一种方式的集成电路构成,且无关集成电路的类型地,通过所述主机用通信中介块201和所述从机用通信中介块202能够在彼此间相互进行发送和接收。
另外,如图所示,所述主机加速装置210和所述从机加速装置220可以分别具有外部主存储器211、221,内部缓冲存储器212、222,DMA模块213、223,神经网络运算装置214、224及CPU215、225,将省略针对与图3所示的构成相同的构成的详细说明。
接下来,参照图6和图7,说明图5所示的加速系统的实施例。
图6是概略性地示出根据图5所示的加速系统的一实施例的人工神经网络的图,是将构成输入数据的特征图的维度以A、B、C三个深度分布处理的人工神经网络模型的示意图。
以下,说明用图5所示的加速系统来实现图6所示的人工神经网络模型的过程。
首先,可以执行步骤b1:当向单个主机加速装置210和多个从机加速装置220施加电源且所有加速装置都完成用于进行运算的准备状态时,将存储在与主机加速装置210连接的外部闪存1的针对用于人工神经网络运算的输入神经元的所有突触权重存储在所述主机加速装置210的外部主存储器211。
接下来,可以执行步骤b2:所述主机加速装置210通过通用通信中介块201、202将存储在所述主机加速装置210的外部主存储器211的突触权重中的与A、B、C三个深度相对应的各个突触权重以并行方式顺序地传送并存储到所述多个从机加速装置220的各外部主存储器221。
接下来,可以执行步骤b3:在存储于所述多个从机加速装置220的各外部主存储器221的突触权重中,将构成人工神经网络的输入层的各个循环所需的突触权重存储在各所述从机加速装置220的内部缓冲存储器222。
接下来,可以执行步骤b4:所述单个主机加速装置210将通过数据输入装置16输入的初始输入数据存储在所述主机加速装置210的外部主存储器211,在本发明实施例中,是图像数据的情况下,可以通过传感器接口接收输入,且可以通过外围装置(Peripheral)从其他外围装置接收输入。
接下来,可以执行步骤b5:所述主机加速装置210通过通用通信中介块201、202将存储在所述主机加速装置210的外部主存储器211的输入数据中的与所述A、B、C三个深度相对应的每个输入数据以并行方式顺序地传送并存储到所述多个从机加速装置220的各外部主存储器221。
接下来,可以执行步骤b6:按照构成所述人工神经网络的每个循环所需,将存储在各个所述从机加速装置220的外部主存储器221的输入数据存储在各个所述从机加速装置220的内部缓冲存储器222。
接下来,可以执行步骤b7.:对应于构成所述人工神经网络的各个循环,各个所述从机加速装置220的神经网络运算装置224读取存储在各个所述从机加速装置220的内部缓冲存储器222的突触权重和输入数据以执行人工神经网络运算,直至针对整个层的运算完成为止,并将该运算结果存储在各个所述从机加速装置220的外部主存储器221。
接下来,可以执行步骤b8:所述主机加速装置210接收存储在每个所述从机加速装置220的外部主存储器221的中间运算结果,并将其顺序地存储在所述主机加速装置210的外部主存储器211之后进行汇总,并执行针对整个层的最终运算,并将最终运算结果存储在所述主机加速装置210的外部主存储器211。
接下来,可以执行步骤b9:为了将存储在所述主机加速装置210的外部主存储器211的最终运算结果用作下一层运算的输入数据,将其与三个深度相对应地以并行方式顺序地传送并存储到三个所述从机加速装置的各外部主存储器221。
接下来,可以执行步骤b10:在存储于所述多个从机加速装置的各外部主存储器的突触权重中,将构成下一层的每个循环所需的突触权重存储在各所述从机加速装置的内部缓冲存储器。
最后,可以执行步骤b11:重复执行所述步骤b6至b10,直至完成针对输入数据的所有层的运算为止。
图7是概略性地示出根据图5所示的加速系统的另一实施例的人工神经网络的图。
如图7是概略性地示出根据图5所示的加速系统的另一实施例的人工神经网络的图,是相当于AlexNet的人工神经网络模型的示意图,AlexNet将构成输入数据的特征图的维度独立地分布到A和B两个深度(在逻辑上,将输入层和输出层除外)而进行并行处理。
如上所述,当人工神经网络独立地分离时,不需要每层的运算都将针对除了各输入层和输出层之外的剩余的输出层的中间运算结果传送给主机加速装置并进行汇总及后处理,因此与图6所示的模型相比,可以回避加速装置之间的数据传输时间,从而可以提供最佳的分布式处理方法。
以下,说明用图5所示的加速系统来实现图7所示的人工神经网络模型的过程。
首先,可以执行步骤c1:当向单个主机加速装置210和A、B两个从机加速装置220施加电源,则将存储在外部闪存1的针对用于人工神经网络运算的输入神经元的所有突触权重存储在所述主机加速装置的外部主存储器211。
接下来,可以执行步骤c2:所述主机加速装置210通过通用通信中介块201、202将存储在所述主机加速装置210的外部主存储器211的突触权重中的与所述两个深度相对应的各个突触权重以并行方式顺序地传送并存储到所述多个从机加速装置220的各外部主存储器221。
接下来,可以执行步骤c3:在存储于所述多个从机加速装置220的各外部主存储器221的突触权重中,将构成人工神经网络的输入层的各个循环所需的突触权重存储在各所述从机加速装置220的内部缓冲存储器222。
接下来,可以执行步骤c4:所述单个主机加速装置210将通过数据输入装置16输入的初始输入数据存储在所述主机加速装置210的外部主存储器211。
接下来,可以执行步骤c5:所述主机加速装置210在存储于外部主存储器211的输入数据和突触权重中,按照构成神经网络的输入层的循环所需存储在内部缓冲存储器212,并利用神经网络运算装置214执行针对输入层的神经网络运算之后,将该运算结果存储在外部主存储器211以用作下一层的输入数据。
接下来,可以执行步骤c6:所述主机加速装置210通过通用通信中介块201、202将存储在所述主机加速装置210的外部主存储器211的输入数据(运算结果)中的与所述多个深度相对应的各个输入数据(运算结果)以并行方式顺序地传送并存储到所述多个从机加速装置的各外部主存储器221。
接下来,可以执行步骤c7:按照构成所述人工神经网络的每个循环所需,将存储在各个所述从机加速装置220的外部主存储器221的输入数据(输入层的运算结果)和与其相对应的突触权重存储在每个所述从机加速装置220的内部缓冲存储器222。
接下来,可以执行步骤c8:对应于构成所述人工神经网络的每个循环,各个所述从机加速装置220的神经网络运算装置224重复读取存储在各个所述从机加速装置220的内部缓冲存储器222的突触权重和输入数据,重复执行人工神经网络运算,直至针对整个层的运算完成为止,并将该运算结果存储在各个所述从机加速装置220的外部主存储器221。
最后,可以执行步骤c9:所述主机加速装置210接收存储在各个所述从机加速装置220的外部主存储器221的中间运算结果,并顺序地存储在所述主机加速装置210的外部主存储器211之后进行汇总,并执行针对整个神经网络的最终运算,将最终运算结果存储在所述主机加速装置210的外部主存储器211。
如上所述,本发明提供了一种针对输入神经元的输入数据具有多个深度的人工神经网络的加速方法,该方法可以在与所述多个深度相对应的各个加速装置以分布的方式处理针对输入神经元的输入数据和突触权重。
图8是概略性地示出根据本发明实施例的用于处理输入神经元由多个层构成的人工神经网络运算的加速系统的多重集成电路构成的框图。
如图所示,根据本发明实施例的用于处理输入神经元由多个层构成的人工神经网络运算的加速系统300,可以具有主机加速装置310及多个从机加速装置320。
更详细地,所述主机加速装置310与存储有所述人工神经网络运算所需的所有突触权重的闪存1连接,且具有一对以上的主机用通信中介块301以用于进行发送和接收。
另外,为了与所述主机加速装置310顺序地连接而整体上呈流水线形态,所述从机加速装置320具有一对以上的从机用通信中介块302以用于进行发送和接收,且所述从机加速装置320可以形成多个。
因此,根据本发明实施例的用于处理输入神经元由多个层构成的人工神经网络运算的加速系统300,可以通过将针对构成所述人工神经网络运算的输入神经元的突触权重和输入数据顺序地分布到所述主机加速装置310和所述从机加速装置320来处理人工神经网络运算。
另外,在本发明实施例中,优选地,所述主机用通信中介块301和所述从机用通信中介块302具有与图4所述的通用通信中介块100相同的构成,将省略对此的详细说明。
另外,在本发明实施例中,所述主机加速装置310和所述从机加速装置320可以分别由SoC方式及FPGA方式中的任一种方式的集成电路构成,且无关集成电路的类型地,通过所述主机用通信中介块301和所述从机用通信中介块302能够在彼此间相互进行发送和接收。
另外,如图所示,所述主机加速装置310和所述从机加速装置320可以分别具有外部主存储器311、321,内部缓冲存储器312、322,DMA模块313、323,神经网络运算装置314、324及CPU315、325,将省略针对与图3所示的构成相同的构成的详细说明。
图9是概略性地示出根据图8所示的加速系统的实施例的人工神经网络模型的图。
为了说明用图8所示的加速系统来实现图9所示的人工神经网络模型的过程,可以利用图8所述的人工神经网络系统来进行顺序地配置,以使单个主机加速装置和多个从机加速装置的连接结构整体上呈流水线形态。
首先,根据本发明实施例的具有层结构的人工神经网络处理的加速方法,可以执行步骤d1:当向单个主机加速装置310和多个从机加速装置320施加电源,则将存储在外部闪存1的针对用于人工神经网络运算的输入神经元的所有突触权重存储在所述主机加速装置310的外部主存储器311。
接下来,可以执行步骤d2:所述主机加速装置310通过通用通信中介块301、302将存储在所述主机加速装置310的外部主存储器311的突触权重中的与所述N个层相对应的各个突触权重顺序地传送并存储在所述多个从机加速装置320的各外部主存储器321。
接下来,可以执行步骤d3:所述单个主机加速装置310将通过数据输入装置16输入的输入层的输入数据存储在所述主机加速装置310的外部主存储器。
接下来,可以执行步骤d4:将存储在所述主机加速装置310的外部主存储器311的输入层的输入数据和突触权重存储在内部缓冲存储器312。
接下来,可以执行步骤d5:由所述主机加速装置310的神经网络运算装置314读取存储在所述内部缓冲存储器312的突触权重和输入数据,并执行针对输入层的神经网络运算,并将运算结果存储在所述外部主存储器311。
接下来,可以执行步骤d6:将运算结果作为输入数据存储在相当于下一层的从机加速装置320的外部主存储器321之后,在所述从机加速装置320的内部缓冲存储器322存储与相应层相对应的输入数据和突触权重。
接下来,可以执行步骤d7:由所述从机加速装置320的神经网络运算装置324读取存储在内部缓冲存储器322的突触权重和输入数据,并执行针对相应层的神经网络运算,并将运算结果存储在外部主存储器321。
接下来,可以执行步骤d8:针对N个隐藏层重复执行所述步骤d6至d7,并将最终运算结果存储在所述主机加速装置310的外部主存储器311或传送到外围装置。
另一方面,根据本发明实施例,在以分布的方式处理具有N个层的神经网络的情况下,可以将N个层划分为从机的个数或与各层的运算量成比例独立地分配给从机。
如上所述,当按层分布而以各个层分配加速装置时,能够进行流水线化,从而对连续流输入具有运算效率性有所提高的效果。
因此,本发明提供一种输入神经元由多个层结构构成的人工神经网络的加速方法,该方法可以在与所述多个层相对应的各个加速装置以分布的方式处理针对输入神经元的输入数据和突触权重。
图10是概略性地示出用于处理由多个(M)深度及多个(N)层构成的人工神经网络运算的加速系统的多重集成电路构成的框图。
如图所示,根据本发明实施例,用于处理针对输入神经元的输入数据由多个(M)深度及多个(N)层构成的人工神经网络运算的加速系统,可以包括主机加速装置410和多个从机加速装置420。
更详细地,所述主机加速装置410与存储有所述人工神经网络运算所需的所有突触权重的闪存(未图示)连接,且具有所述多个(N)层的层数以上的主机用通信中介块(未图示)。
另外,所述从机加速装置420具有一个以上的用于与所述主机加速装置410的主机用通信中介块连接或与其他加速装置连接的从机用通信中介块402,,且所述从机加速装置420可以与所述多个(M)深度及多个(N)层所需的神经网络运算的循环数(M×N)一对一对应地形成多个。
另外,在本发明实施例中,优选地,所述主机用通信中介块和所述从机用通信中介块402具有与图4所述的通用通信中介块100相同的构成,将省略对此的详细说明。
另外,在本发明实施例中,所述主机加速装置410和所述从机加速装置420可以分别由SoC方式和FPGA方式中的任一种方式的集成电路构成,且无关集成电路的类型地通过所述主机用通信中介块和所述从机用通信中介块402可以在彼此间相互进行发送和接收。
另外,如图所示,所述主机加速装置410和所述从机加速装置420可以分别具有外部主存储器421、内部缓冲存储器422、DMA模块423、神经网络运算装置424及CPU425,将省略针对与图3所示的构成相同的构成的详细说明。
如图所示,当人工神经网络的针对输入神经元的数据的深度和层数较多时,单个或少量的加速装置可能难以满足所需的目标性能。
在这种情况下,通过同时应用上述图5至图9所示的深度分布方法和层分布方法最大程度地分布到根据本发明的加速装置而独立地进行运算,从而可以提高运算性能。
此时,如图所示,所述主机加速装置410将用于人工神经网络运算的权重和输入数据传送到构成各个层的从机加速装置420的上位输入端,当完成所有运算,则从机加速装置的最后层接收最终运算结果。
参照附图,从机加速装置420的L表示分配的层,其数量可以由1~N表示,D表示分配的深度(或Depth),其数量可以由1~M表示。
图11是概略性地示出根据图10所示的加速系统的实施例的人工神经网络模型的图。
参照图11说明图10的加速系统,为了输入层A-1、A-2、A-3的运算,从机加速装置可以以从机(L1,D1)~从机(L1,DM)的方向分配,其他层也可以以与此相同的方式分配。
一方面,根据加速装置的运算能力和个数,各个从机加速装置可以可变地分配。
以下,说明用图10所述的加速系统实现图11所示的人工神经网络模型的过程。
首先,可以执行步骤e1:当向单个主机加速装置410和多个从机加速装置420施加电源,则将存储在外部闪存的针对用于人工神经网络运算的输入神经元的所有突触权重存储在所述主机加速装置410的外部主存储器。
接下来,可以执行步骤e2:当所述主机加速装置410通过通用通信中介块将存储在所述主机加速装置的外部主存储器的突触权重中的与所述N个层相对应的各个突触权重全部顺序地传送到构成各层的M个深度中的与各层的第一深度相对应的N个从机加速装置420L1D1、420L2D1、420LND1的各个从机加速装置的外部主存储器时,相应突触权重分别存储在与接收的N个从机加速装置连接的对应于其他深度的所有从机加速装置。
接下来,可以执行步骤e3:所述单个主机加速装置410将通过数据输入装置输入的输入层的输入数据存储在所述主机加速装置410的外部主存储器。
接下来,可以执行步骤e4:存储在所述主机加速装置410的外部主存储器的输入层的输入数据在与输入层的第一深度相对应的从机加速装置420L1D1的外部主存储器421一次地存储相应层的所有输入数据之后,相应的输入数据分别以分布的方式顺序地存储在与构成输入层的深度相对应的M个从机加速装置的外部主存储器。
接下来,可以执行步骤e5:在构成所述输入层的M个从机加速装置的内部缓冲存储器422存储相应层的输入数据和突触权重。
接下来,可以执行步骤e6:由构成所述输入层的M个从机加速装置的神经网络运算装置来执行神经网络运算,并将运算结果存储在自身的外部主存储器。
接下来,可以执行步骤e7:将存储在所述M个从机加速装置的运算结果传送到相当于输入层的第一深度的从机加速装置420L1D1以执行相应层的最终运算,并将该最终运算结果传送到相当于下一层的第一深度的从机加速装置420L2D1,作为相应层的输入数据。
可以执行步骤e8:相应层的所有输入数据一次地存储在与下一层的第一深度相对应的从机加速装置的外部主存储器之后,相应的输入数据分别以分布的方式顺序地存储在与构成相应层的M个从机加速装置的外部主存储器。
可以执行步骤e9:重复执行与步骤e5至e8相同的过程,直至完成第N层的运算为止,并将最终运算结果传送给所述主机加速装置。
如上所述,本发明提供了一种针对输入神经元的输入数据由多个深度和多个层结构构成的人工神经网络的加速方法,该方法可以在与构成多个层的各个层的多个深度相对应的各个加速装置以分布的方式处理针对输入神经元的输入数据和突触权重。
图12是概略性地示出根据本发明实施例的由多个人工神经网络构成的复合人工神经网络模型的图。
如图所示,在本发明实施例中,示出了复合人工神经网络模型的三个示例。
首先,根据本发明实施例的人工神经网络模型的第一实施例是用于物体检测(Object Detection)的第一复合人工神经网络510。
其中,在概念上,所述第一复合人工神经网络510可以包括从输入图像提取物体特征的神经网络511和检测物体在输入图像上的位置的神经网络512而构成。
接下来,根据本发明实施例的人工神经网络模型的第二实施例是用于在图像上将针对人或物体的情况用文章(Word)进行表达的图像字幕(Image Captioning)的第二复合人工神经网络520。
其中,所述第二复合人工神经网络520可以包括对图像中的物体进行分类的神经网络521和为了说明图像在分类后的物体上生成字幕的神经网络522而构成。
此时,由于用于所述图像字幕的第二复合人工神经网络520处理图像数据,因此与一般的神经网络的大小相比,人工神经网络的大小相对而言相当大。
因此,为了提高运算性能,可以将所述第二复合人工神经网络520划分为两个人工神经网络521、522单位之后针对每个人工神经网络,与上述深度、层及深度和层相对应地进行分布,从而分配给加速装置。
特别地,在神经网络522为了说明所述图像而在分类后的物体生成字幕的情况下,由于可以按时间序列顺序顺序地连接存储单位,因此,优选地,使用基于图8所示的层结构的人工神经网络加速系统来进行分布式处理。
另一方面,根据本发明的复合人工神经网络模型的第三实施例的复合人工神经网络530,针对像视频或图像流一样能够按时间序列排序的输入数据531,通过将卷积神经网络(Convolutional Neural Network)以时间轴扩展的3D卷积神经网络(3-dimentionalConvolutional Neural Network)532提取特征,且可以包括通过判断特征之间的相互关系和时间连续性以识别手势及动作的人工神经网络533。
此时,像所述3D卷积神经网络的情况一样,处理连续图像数据的运算量多的神经网络,可以将内部神经网络基于上述深度、层及时间序列划分以进行分布式处理。
如上所述,根据本发明的实施例,由一个以上的人工神经网络加速系统构成为多个人工神经网络的复合人工神经网络加速系统,可以将针对输入神经元的输入数据和突触权重按照构成所述多个人工神经网络的各个人工神经网络单位划分并以分布的方式进行处理。
如上所述,本发明提供通过将人工神经网络运算所需的针对输入神经元的数据和突触权重,无关集成电路的类型地,在具有能够进行通信中介的通用通信中介块的多个分布式处理用人工神经网络运算加速装置以分布的方式进行处理,从而即使不使用诸如GPGPU的大功率、高成本的硬件,也可以不仅能够满足人工神经网络运算所需的性能,还可以根据目标性能灵活地设计人工神经网络的人工神经网络运算加速装置、加速系统及其加速方法。
另外,本发明通过连接由低功率/低成本的集成电路构成的多个加速装置来执行神经网络运算,与使用根据现有技术的由单个硬件来实现的昂贵的GPGPU相比,可以降低制造成本,从而具有可以应用于要求低功率的领域的效果。
另外,本发明通过在加速装置实现能够无关集成电路的类型地进行通信中介的通用通信中介块,可以将追加功能灵活地应用于由相同机型或异机型构成的集成电路实现的加速系统,从而具有可以积极地应对使用者的各种需求的效果。
另外,本发明通过利用多重加速装置以分布并行的方式处理人工神经网络,从而具有可以根据目标性能灵活地扩展或减少加速装置的效果。
另外,本发明通过将构成人工神经网络的针对神经元的输入数据和突触权重按照构成输入数据的深度、层结构、神经网络或它们的组合单位进行划分,以便能够在各个加速装置进行运算,从而在用硬件实现的情况下,可以最优化内存及外围装置,从而具有最终可以降低产品的开发成本的效果。
另外,本发明通过利用各种类型的集成电路来实现加速系统,从而也能够在将来应用的各种形式的人工神经网络结构中积极地使用。
目前为止,对本发明进行了详细说明,但是很明显,该过程中所提及的实施例仅是示例性的,而不是限制性的,在不脱离由以下权利要求书提供的本发明的技术思想或领域的范围内,等同地可替代的构成要素的变形都属于本发明范围。
Claims (24)
1.一种分布式处理用人工神经网络运算加速装置,其作为用于处理输入神经元由层构成而形成的人工神经网络运算的加速装置,其特征在于,具有:
外部主存储器,所述外部主存储器存储针对所述输入神经元的输入数据和突触权重;
内部缓冲存储器,所述内部缓冲存储器对存储在所述外部主存储器的突触权重和输入数据中的构成所述人工神经网络运算的各个循环所需的突触权重和输入数据进行存储;
DMA模块,所述DMA模块用于与所述外部主存储器及内部缓冲存储器直接发送和接收数据;
神经网络运算装置,所述神经网络运算装置针对构成人工神经网络运算的每个循环重复地处理以下一系列顺序过程:读取存储在所述内部缓冲存储器的突触权重和输入数据、执行人工神经网络运算、将运算结果存储在所述外部主存储器;
CPU,所述CPU用于控制在所述外部主存储器和内部缓冲存储器存储针对输入神经元的输入数据和突触权重的操作和所述神经网络运算装置的运行;及
通用通信中介块,所述通用通信中介块可以与无关集成电路的类型地以物理方式连接的其他加速装置发送和接收针对所述输入神经元的输入数据和突触权重以及在所述神经网络运算装置执行的运算结果。
2.根据权利要求1所述的分布式处理用人工神经网络运算加速装置,其特征在于,还包括:
数据输入装置,所述数据输入装置由传感器接口或外围装置构成。
3.根据权利要求1所述的分布式处理用人工神经网络运算加速装置,其特征在于,还具有:
外部闪存,所述外部闪存存储有执行所述人工神经网络运算过程所需的所有突触权重。
4.根据权利要求1所述的分布式处理用人工神经网络运算加速装置,其特征在于,
当构成以物理方式连接的加速装置的集成电路的类型是片上系统或现场可编程逻辑门阵列的情况下,所述通用通信中介块均以能够进行通信中介的方式形成。
5.根据权利要求4所述的分布式处理用人工神经网络运算加速装置,其特征在于,
所述通用通信中介块具有:
重映射模块,所述重映射模块用于在从与发送用集成电路连接的总线主接口施加的信号中,重映射指定接收用集成电路的构成要素的地址和总线ID信号的宽度。
6.一种人工神经网络加速系统,其作为用于处理针对输入神经元的输入数据具有多个深度的人工神经网络运算的加速系统,其特征在于,具有:
主机加速装置,所述主机加速装置与存储有所述人工神经网络运算所需的所有突触权重的闪存连接,且具有所述多个深度的个数以上的主机用通信中介块;及
多个从机加速装置,所述多个从机加速装置分别具有一个以上的以物理方式连接到所述主机加速装置的主机用通信中介块的从机用通信中介块,且所述多个从机加速装置与所述多个深度的个数一对一相对应地形成,
所述主机加速装置,
将突触权重和输入数据以并行方式分布到与所述多个深度的各个深度相关的从机加速装置来处理人工神经网络运算,且汇总所述从机加速装置的中间运算结果来执行最终运算。
7.一种人工神经网络加速系统,其作为用于处理输入神经元由多个层构成的人工神经网络运算的加速系统,其特征在于,包括:
主机加速装置,所述主机加速装置与存储有所述人工神经网络运算所需的所有突触权重的闪存连接,且具有一对以上的主机用通信中介块以用于进行发送和接收;及
多个从机加速装置,为了与所述主机加速装置顺序地连接而整体上呈流水线形态,所述从机加速装置具有一对以上的从机用通信中介块以用于进行发送和接收,
将针对构成所述人工神经网络运算的输入神经元的突触权重和输入数据顺序地分布到所述主机加速装置和所述从机加速装置来处理人工神经网络运算。
8.根据权利要求6或7所述的人工神经网络加速系统,其特征在于,
所述主机加速装置和所述从机加速装置分别可由片上系统方式及现场可编程逻辑门阵列方式中的任一种方式的集成电路构成,且
无关集成电路的类型地,通过所述主机用通信中介块和所述从机用通信中介块能够在彼此间相互进行发送和接收。
9.根据权利要求8所述的人工神经网络加速系统,其特征在于,
所述主机加速装置和所述从机加速装置分别还具有:
外部主存储器,所述外部主存储器存储针对所述输入神经元的输入数据和突触权重;
内部缓冲存储器,所述内部缓冲存储器将存储在所述外部主存储器的突触权重和输入数据中的构成所述人工神经网络运算的各个循环所需的突触权重和输入数据进行存储;
DMA模块,所述DMA模块用于与所述外部主存储器及内部缓冲存储器直接发送和接收数据;
神经网络运算装置,所述神经网络运算装置针对构成人工神经网络运算的各个循环重复地处理以下一系列顺序过程:读取存储在所述内部缓冲存储器的突触权重和输入数据、执行人工神经网络运算、将运算结果存储在所述外部主存储器;及
CPU,所述CPU用于控制在所述外部主存储器和内部缓冲存储器存储针对输入神经元的输入数据和突触权重的操作和所述神经网络运算装置的运行。
10.根据权利要求8所述的人工神经网络加速系统,其特征在于,
所述主机用通信中介块和所述从机用通信中介块分别具有:
重映射模块,所述重映射模块用于在从与发送用集成电路连接的总线主接口施加的信号中,重映射指定接收用集成电路的构成要素的地址和总线ID信号的宽度。
11.一种人工神经网络加速系统,其作为用于处理针对输入神经元的输入数据由多个(M)深度及多个(N)层构成的人工神经网络运算的加速系统,其特征在于,包括:
主机加速装置,所述主机加速装置与存储有所述人工神经网络运算所需的所有突触权重的闪存连接,且具有所述多个(N)层的层数以上的主机用通信中介块;及
多个从机加速装置,所述从机加速装置具有一个以上的从机用通信中介块,以用于与所述主机加速装置的主机用通信中介块连接或与其他加速装置连接,且与所述多个(M)深度及多个(N)层所需的神经网络运算的循环数(M×N)一对一相对应地形成。
12.根据权利要求11所述的人工神经网络加速系统,其特征在于,
所述主机加速装置和所述从机加速装置分别由片上系统方式及现场可编程逻辑门阵列方式中的任一种方式的集成电路构成,且
无关集成电路的类型地,通过所述主机用通信中介块和所述从机用通信中介块能够在彼此间相互进行发送和接收。
13.根据权利要求12所述的人工神经网络加速系统,其特征在于,
所述主机加速装置和所述从机加速装置分别还具有:
外部主存储器,所述外部主存储器存储针对所述输入神经元的输入数据和突触权重;
内部缓冲存储器,所述内部缓冲存储器将存储在所述外部主存储器的突触权重和输入数据中的构成所述人工神经网络运算的各个循环所需的突触权重和输入数据进行存储;
DMA模块,所述DMA模块用于与所述外部主存储器及内部缓冲存储器直接发送和接收数据;
神经网络运算装置,所述神经网络运算装置针对构成人工神经网络运算的各个循环重复地处理以下一系列顺序过程:读取存储在所述内部缓冲存储器的突触权重和输入数据、执行人工神经网络运算、将运算结果存储在所述外部主存储器;
CPU,所述CPU用于控制在所述外部主存储器和内部缓冲存储器存储针对输入神经元的输入数据和突触权重的操作和所述神经网络运算装置的运行。
14.根据权利要求12所述的人工神经网络加速系统,其特征在于,
所述主机用通信中介块和所述从机用通信中介块分别具有:
重映射模块,所述重映射模块用于在从与发送用集成电路连接的总线主接口施加的信号中,重映射指定接收用集成电路的构成要素的地址和总线ID信号的宽度。
15.一种复合人工神经网络加速系统,其作为由权利要求6、7及11中的一个以上的人工神经网络加速系统构成多个人工神经网络的复合人工神经网络的加速系统,其特征在于,
将针对输入神经元的输入数据和突触权重按照构成所述多个人工神经网络的各个人工神经网络单位划分并以分布的方式进行处理。
16.一种人工神经网络加速方法,作为利用由单个集成电路构成的分布式处理用人工神经网络运算加速装置来对包括输入层和N个隐藏层而具有层结构的人工神经网络处理进行加速的方法,其特征在于,包括以下步骤:
a1:当向所述加速装置施加电源,则将存储在外部闪存的针对用于人工神经网络运算的输入神经元的所有突触权重存储在外部主存储器;
a2:将通过数据输入装置输入的初始输入数据经由DMA模块存储在外部主存储器;
a3:按照构成人工神经网络的输入层的各个循环所需,将存储在所述外部主存储器的输入数据和与所述输入数据相对应的突触权重存储在内部缓冲存储器;
a4:神经网络运算装置对应于构成所述人工神经网络的各个循环,并读取存储在所述内部缓冲存储器的突触权重和输入数据以执行人工神经网络运算,直至完成针对整个层的运算为止,并为了将该运算结果用作下一层的输入数据而存储在外部主存储器;及
a5:按照各个循环所需,从所述外部主存储器读取用于针对隐藏层的人工神经网络运算的针对输入神经元的突触权重和输入数据存储在内部缓冲存储器之后,针对N个隐藏层重复执行所述步骤a4的过程。
17.一种人工神经网络加速方法,其作为对包括单个主机加速装置和多个从机加速装置而针对输入神经元的输入数据具有M个深度的人工神经网络处理进行加速的方法,其特征在于,包括以下步骤:
b1:当向所述单个主机加速装置和多个从机加速装置施加电源,则将存储在外部闪存的用于人工神经网络运算的针对输入神经元的所有突触权重存储在所述主机加速装置的外部主存储器;
b2:所述主机加速装置通过通用通信中介块将存储在所述主机加速装置的外部主存储器的突触权重中的与所述M个深度相对应的各个突触权重以并行方式顺序地传送并存储到所述多个从机加速装置的各外部主存储器;
b3:在存储于所述多个从机加速装置的各外部主存储器的突触权重中,将构成人工神经网络的输入层的各个循环所需的突触权重存储在各所述从机加速装置的内部缓冲存储器;
b4:所述单个主机加速装置将通过数据输入装置输入的初始输入数据存储在所述主机加速装置的外部主存储器;
b5:所述主机加速装置通过通用通信中介块将存储在所述主机加速装置的外部主存储器的输入数据中的与所述M个深度相对应的各个输入数据以并行方式顺序地传送并存储到所述多个从机加速装置的各外部主存储器;
b6:按照构成所述人工神经网络的各个循环所需,将存储在每个所述从机加速装置的外部主存储器的输入数据存储在各个所述从机加速装置的内部缓冲存储器;
b7:对应于构成所述人工神经网络的各个循环,各个所述从机加速装置的神经网络运算装置读取存储在各个所述从机加速装置的内部缓冲存储器的突触权重和输入数据以执行人工神经网络运算,直至针对整个层的运算完成为止,并将该运算结果存储在各个所述从机加速装置的外部主存储器;
b8:所述主机加速装置接收存储在各个所述从机加速装置的外部主存储器的中间运算结果,并将其顺序地存储在所述主机加速装置的外部主存储器之后进行汇总,并执行针对整个层的最终运算,并将最终运算结果存储在所述主机加速装置的外部主存储器;
b9:为了将存储在所述主机加速装置的外部主存储器的最终运算结果用作下一层运算的输入数据,将其与M个深度相对应地以并行方式顺序地传送并存储到所述多个从机加速装置的各外部主存储器;
b10:在存储于所述多个从机加速装置的各外部主存储器的突触权重中,将构成下一层的每个循环所需的突触权重存储在各所述从机加速装置的内部缓冲存储器;及
b11:重复执行所述步骤b6至b10,直至完成针对输入数据的所有层的运算为止。
18.一种人工神经网络加速方法,作为对于包括单个主机加速装置和多个从机加速装置而针对输入神经元的输入数据具有M个深度的人工神经网络处理进行加速的方法,其特征在于,包括以下步骤:
c1:当向所述单个主机加速装置和多个从机加速装置施加电源,则将存储在外部闪存的针对用于人工神经网络运算的输入神经元的所有突触权重存储在所述主机加速装置的外部主存储器;
c2:所述主机加速装置通过通用通信中介块将存储在所述主机加速装置的外部主存储器的突触权重中的与所述M个深度相对应的各个突触权重以并行方式顺序地传送并存储到所述多个从机加速装置的各外部主存储器;
c3:在存储于所述多个从机加速装置的各外部主存储器的突触权重中,将构成人工神经网络的输入层的各个循环所需的突触权重存储在各所述从机加速装置的内部缓冲存储器;
c4:所述单个主机加速装置将通过数据输入装置输入的初始输入数据存储在所述主机加速装置的外部主存储器;
c5:所述主机加速装置210在存储于外部主存储器的输入数据和突触权重中,按照构成神经网络的输入层的循环所需存储在内部缓冲存储器,并利用神经网络运算装置执行针对输入层的神经网络运算之后,将该运算结果存储在外部主存储器以用作下一层的输入数据;
c6:所述主机加速装置通过通用通信中介块将存储在所述主机加速装置的外部主存储器的输入数据中的与所述M个深度相对应的各个输入数据以并行方式顺序地传送并存储到所述多个从机加速装置的各外部主存储器;
c7:按照构成所述人工神经网络的各个循环所需,将存储在各个所述从机加速装置的外部主存储器的输入数据和与其相对应的突触权重存储在各个所述从机加速装置的内部缓冲存储器;
c8:对应于构成所述人工神经网络的各个循环,各个所述从机加速装置的神经网络运算装置重复读取存储在各个所述从机加速装置的内部缓冲存储器的突触权重和输入数据,重复执行人工神经网络运算,直至针对整个层的运算完成为止,并将该运算结果存储在各个所述从机加速装置的外部主存储器;及
c9:所述主机加速装置接收存储在各个所述从机加速装置的外部主存储器的中间运算结果,并顺序地存储在所述主机加速装置的外部主存储器之后进行汇总,并执行针对整个神经网络的最终运算,将最终运算结果存储在所述主机加速装置的外部主存储器。
19.一种人工神经网络加速方法,其作为对单个主机加速装置和多个从机加速装置顺序地配置而连接结构整体上呈流水线形态,从而针对输入神经元的输入数据具有包括输入层和N个隐藏层的层结构的人工神经网络处理进行加速的方法,其特征在于,包括以下步骤:
d1:当向所述单个主机加速装置和多个从机加速装置施加电源,则将存储在外部闪存的针对用于人工神经网络运算的输入神经元的所有突触权重存储在所述主机加速装置的外部主存储器;
d2:所述主机加速装置通过通用通信中介块将存储在所述主机加速装置的外部主存储器的突触权重中的与所述N个隐藏层相对应的各个突触权重顺序地传送并存储在所述多个从机加速装置的各外部主存储器;
d3:所述单个主机加速装置将通过数据输入装置输入的输入层的输入数据存储在所述主机加速装置的外部主存储器;
d4:将存储在所述主机加速装置的外部主存储器的输入层的输入数据和突触权重存储在内部缓冲存储器;
d5:由所述主机加速装置的神经网络运算装置读取存储在所述内部缓冲存储器的突触权重和输入数据,并执行针对输入层的神经网络运算,并将运算结果存储在所述外部主存储器;
d6:将运算结果作为输入数据存储在相当于下一层的从机加速装置的外部主存储器之后,在所述从机加速装置的内部缓冲存储器存储与相应层相对应的输入数据和突触权重;
d7:由所述从机加速装置的神经网络运算装置读取存储在内部缓冲存储器的突触权重和输入数据,并执行针对相应层的神经网络运算,并将运算结果存储在外部主存储器;及
d8:针对N个隐藏层重复执行所述步骤d6至d7,并将最终运算结果存储在所述主机加速装置的外部主存储器或传送到外围装置。
20.一种人工神经网络加速方法,其作为对包括单个主机加速装置和多个从机加速装置而针对输入神经元的输入数据由M个深度和N个层构成的人工神经网络处理进行加速的方法,其特征在于,包括以下步骤:
e1:当向所述单个主机加速装置和多个从机加速装置施加电源,则将存储在外部闪存的针对用于人工神经网络运算的输入神经元的所有突触权重存储在所述主机加速装置的外部主存储器;
e2:当所述主机加速装置通过通用通信中介块将存储在所述主机加速装置的外部主存储器的突触权重中的与所述N个层相对应的各个突触权重全部顺序地传送到构成各层的M个深度中的与各层的第一深度相对应的N个从机加速装置的各个从机加速装置的外部主存储器时,相应突触权重分别存储在与接收的N个从机加速装置连接的对应于其他深度的所有从机加速装置;
e3:所述单个主机加速装置将通过数据输入装置输入的输入层的输入数据存储在所述主机加速装置的外部主存储器;
e4:存储在所述主机加速装置的外部主存储器的输入层的输入数据在与输入层的第一深度相对应的从机加速装置的外部主存储器一次地存储相应层的所有输入数据之后,相应的输入数据分别以分布的方式顺序地存储在与构成输入层的深度相对应的M个从机加速装置的外部主存储器;
e5:在构成所述输入层的M个从机加速装置的内部缓冲存储器存储相应层的输入数据和突触权重;
e6:由构成所述输入层的M个从机加速装置的神经网络运算装置来执行神经网络运算,并将运算结果存储在自身的外部主存储器;
e7:将存储在所述M个从机加速装置的运算结果传送到相当于输入层的第一深度的从机加速装置以执行相应层的最终运算,并将该最终运算结果传送到相当于下一层的第一深度的从机加速装置作为相应层的输入数据;
e8:相应层的所有输入数据一次地存储在与下一层的第一深度相对应的从机加速装置的外部主存储器之后,相应的输入数据分别以分布的方式顺序地存储在与构成相应层的M个从机加速装置的外部主存储器;及
e9:重复执行与步骤e5至e8相同的过程,直至完成第N层的运算为止,并将最终运算结果传送给所述主机加速装置。
21.一种人工神经网络加速方法,其作为针对输入神经元的输入数据具有多个深度的人工神经网络的加速方法,其特征在于,
在与所述多个深度相对应的每个加速装置以分布的方式处理针对输入神经元的输入数据和突触权重。
22.一种人工神经网络加速方法,其作为针对输入神经元由多个层结构构成的人工神经网络的加速方法,其特征在于,
在与所述多个层相对应的各个加速装置以分布的方式处理针对输入神经元的输入数据和突触权重。
23.一种人工神经网络加速方法,其作为针对输入神经元的输入数据由多个深度和多个层结构构成的人工神经网络的加速方法,其特征在于,
在与分别构成多个层的多个深度相对应的各个加速装置以分布的方式处理针对输入神经元的输入数据和突触权重。
24.一种复合人工神经网络加速方法,其作为由权利要求16至23中的一个以上的人工神经网络加速方法构成多个人工神经网络的复合人工神经网络的加速方法,其特征在于,
将针对输入神经元的输入数据和突触权重按照构成所述多个人工神经网络的各个人工神经网络单位划分并以分布的方式进行处理。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180119856A KR101950786B1 (ko) | 2018-10-08 | 2018-10-08 | 분산처리용 인공신경망 연산 가속화 방법 |
KR10-2018-0119856 | 2018-10-08 | ||
KR10-2019-0007723 | 2018-10-08 | ||
KR1020190007723A KR102137802B1 (ko) | 2019-01-21 | 2019-01-21 | 분산처리용 인공신경망 연산 가속화 장치, 이를 이용한 인공신경망 가속화 시스템, 및 그 인공신경망의 가속화 방법 |
PCT/KR2019/008905 WO2020075957A1 (ko) | 2018-10-08 | 2019-07-18 | 분산처리용 인공신경망 연산 가속화 장치, 이를 이용한 인공신경망 가속화 시스템, 및 그 인공신경망의 가속화 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112805727A true CN112805727A (zh) | 2021-05-14 |
Family
ID=70165362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980065991.2A Pending CN112805727A (zh) | 2018-10-08 | 2019-07-18 | 分布式处理用人工神经网络运算加速装置、利用其的人工神经网络加速系统、及该人工神经网络的加速方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220004854A1 (zh) |
CN (1) | CN112805727A (zh) |
WO (1) | WO2020075957A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12093696B1 (en) | 2018-04-20 | 2024-09-17 | Perceive Corporation | Bus for transporting output values of a neural network layer to cores specified by configuration data |
CN111860788A (zh) * | 2020-07-27 | 2020-10-30 | 深圳鲲云信息科技有限公司 | 一种基于数据流架构的神经网络计算系统及方法 |
US11941337B1 (en) * | 2020-09-30 | 2024-03-26 | Keysight Technologies, Inc. | System and method for modeling nonlinear component for use in circuit design |
CN115222015A (zh) | 2021-04-21 | 2022-10-21 | 阿里巴巴新加坡控股有限公司 | 指令处理装置、加速单元和服务器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6654730B1 (en) * | 1999-12-28 | 2003-11-25 | Fuji Xerox Co., Ltd. | Neural network arithmetic apparatus and neutral network operation method |
WO2015016640A1 (ko) * | 2013-08-02 | 2015-02-05 | Ahn Byungik | 신경망 컴퓨팅 장치 및 시스템과 그 방법 |
CN106991476A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
CN107316078A (zh) * | 2016-04-27 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络自学习运算的装置和方法 |
CN107451659A (zh) * | 2017-07-27 | 2017-12-08 | 清华大学 | 用于位宽分区的神经网络加速器及其实现方法 |
CN107657316A (zh) * | 2016-08-12 | 2018-02-02 | 北京深鉴科技有限公司 | 通用处理器与神经网络处理器的协同系统设计 |
US20180046905A1 (en) * | 2016-08-12 | 2018-02-15 | Beijing Deephi Intelligence Technology Co., Ltd | Efficient Data Access Control Device for Neural Network Hardware Acceleration System |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3035249B1 (en) * | 2014-12-19 | 2019-11-27 | Intel Corporation | Method and apparatus for distributed and cooperative computation in artificial neural networks |
US10802992B2 (en) * | 2016-08-12 | 2020-10-13 | Xilinx Technology Beijing Limited | Combining CPU and special accelerator for implementing an artificial neural network |
US10949736B2 (en) * | 2016-11-03 | 2021-03-16 | Intel Corporation | Flexible neural network accelerator and methods therefor |
-
2019
- 2019-07-18 CN CN201980065991.2A patent/CN112805727A/zh active Pending
- 2019-07-18 US US17/281,456 patent/US20220004854A1/en active Pending
- 2019-07-18 WO PCT/KR2019/008905 patent/WO2020075957A1/ko active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6654730B1 (en) * | 1999-12-28 | 2003-11-25 | Fuji Xerox Co., Ltd. | Neural network arithmetic apparatus and neutral network operation method |
WO2015016640A1 (ko) * | 2013-08-02 | 2015-02-05 | Ahn Byungik | 신경망 컴퓨팅 장치 및 시스템과 그 방법 |
CN106991476A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
CN107316078A (zh) * | 2016-04-27 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络自学习运算的装置和方法 |
CN107657316A (zh) * | 2016-08-12 | 2018-02-02 | 北京深鉴科技有限公司 | 通用处理器与神经网络处理器的协同系统设计 |
US20180046905A1 (en) * | 2016-08-12 | 2018-02-15 | Beijing Deephi Intelligence Technology Co., Ltd | Efficient Data Access Control Device for Neural Network Hardware Acceleration System |
CN107451659A (zh) * | 2017-07-27 | 2017-12-08 | 清华大学 | 用于位宽分区的神经网络加速器及其实现方法 |
Non-Patent Citations (2)
Title |
---|
JIHYUCK JO ET AL: ""A scalable inference accelerator for convolutional neural networks"", 《IEEE JOURNAL OF SOLID-STATE CIRCUITS》, vol. 53, no. 2, pages 605 - 617 * |
MD. HAIDAR SHARIF ET AL: ""Parallel Computing for Artificial Neural Network Training using Java Native Socket Programming"", PARALLEL COMPUTING FOR ARTIFICIAL NEURAL NETWORK TRAINING USING JAVA NATIVE SOCKET PROGRAMMING, vol. 6, no. 1, pages 1 - 10 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020075957A1 (ko) | 2020-04-16 |
US20220004854A1 (en) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101950786B1 (ko) | 분산처리용 인공신경망 연산 가속화 방법 | |
CN112805727A (zh) | 分布式处理用人工神经网络运算加速装置、利用其的人工神经网络加速系统、及该人工神经网络的加速方法 | |
CN110197111B (zh) | 用于深度学习引擎的加速单元 | |
KR102137802B1 (ko) | 분산처리용 인공신경망 연산 가속화 장치, 이를 이용한 인공신경망 가속화 시스템, 및 그 인공신경망의 가속화 방법 | |
US11580367B2 (en) | Method and system for processing neural network | |
EP3346426B1 (en) | Reconfigurable interconnect, corresponding system and method | |
US20040215677A1 (en) | Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements | |
TW201918883A (zh) | 高頻寬記憶體系統以及邏輯裸片 | |
WO2020078470A1 (zh) | 片上网络数据处理方法及装置 | |
US20220358081A1 (en) | Systems and methods for implementing a machine perception and dense algorithm integrated circuit and enabling a flowing propagation of data within the integrated circuit | |
CN111630505A (zh) | 深度学习加速器系统及其方法 | |
CN115552420A (zh) | 具有深度学习加速器和随机存取存储器的芯片上系统 | |
US20210406202A1 (en) | Scale-out high bandwidth memory system | |
US12050545B2 (en) | Method and device for constructing communication topology structure on basis of multiple processing nodes | |
EP4142217A1 (en) | Inter-node communication method and device based on multiple processing nodes | |
WO2022088171A1 (en) | Neural processing unit synchronization systems and methods | |
CN111340202B (zh) | 运算方法、装置及相关产品 | |
US20220044101A1 (en) | Collaborative sensor data processing by deep learning accelerators with integrated random access memory | |
CN111078625B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111078624B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
US20240095872A1 (en) | Memory storage format for supporting machine learning acceleration | |
KR102491202B1 (ko) | 인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체 | |
US20220043696A1 (en) | Distributed inferencing using deep learning accelerators with integrated random access memory | |
CN111258634B (zh) | 数据选择装置、数据处理方法、芯片及电子设备 | |
WO2020087278A1 (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 |