CN112348160B - 一种卷积神经网络加速方法及系统 - Google Patents
一种卷积神经网络加速方法及系统 Download PDFInfo
- Publication number
- CN112348160B CN112348160B CN201910731088.7A CN201910731088A CN112348160B CN 112348160 B CN112348160 B CN 112348160B CN 201910731088 A CN201910731088 A CN 201910731088A CN 112348160 B CN112348160 B CN 112348160B
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- bus
- calculation result
- electrically connected
- 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.)
- Active
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 32
- 230000001133 acceleration Effects 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000004364 calculation method Methods 0.000 claims abstract description 163
- 230000005540 biological transmission Effects 0.000 claims abstract description 38
- 238000003860 storage Methods 0.000 claims description 96
- 238000009825 accumulation Methods 0.000 claims description 14
- 230000003068 static effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 210000004027 cell Anatomy 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004075 alteration Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
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/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/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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种卷积神经网络加速方法及系统,涉及软件技术领域。在本发明实施例中,可以通过不同的第二总线传输不同类型的数据,避免了现有技术中共用一条总线传输不同类型数据时造成的数据搬移频率过高的问题,降低了数据重复搬移的频率,提高了数据传输的效率,从而提高了卷积处理的效率。并且,通过对开关模块的设置,可以控制第二总线与各PE单元的连接关系,以使第二总线上传输的数据输出至对应的PE单元中,以使PE单元对接收到的数据进行计算;还可以将部分PE单元输出的第一计算结果传输至对应电连接的第二总线中,实现数据的输出,从而大大提高了数据传输的吞吐量,以及大大提高了卷积神经网络加速系统的数据复用率。
Description
技术领域
本发明涉及软件技术领域,尤指一种卷积神经网络加速方法及系统。
背景技术
卷积神经网络作为深度学习领域中热门的网络结构,目前已广泛应用在计算机视觉领域与语言处理领域,随着卷积神经网络的层数与神经元个数的增加,模型的计算复杂度与参数数量随之增加。卷积是神经网络的基本运算,其中卷积核可以在输入数据上滑动进行卷积计算输出新的数据。
在实际情况中,如果PE单元的数量有限,若每完成一层卷积计算需要对数据进行大量的重复使用,由于数据需要分组传送,同一组数据需要传送到PE单元阵列中特定的一组PE单元中,所以在共用一条总线进行数据传输时,使得数据在存储器与PE单元阵列之间进行频繁地搬移,降低卷积处理效率。
基于此,如何充分利用卷积神经网络的数据的复用性,提高卷积处理效率,是本领域技术人员亟待解决的技术问题。
发明内容
本发明实施例提供了一种卷积神经网络加速方法及系统,用以充分利用卷积神经网络的数据的复用性,提高卷积处理效率。
第一方面,本发明实施例提供了一种卷积神经网络加速系统,包括:控制模块、存储模块、PE单元阵列、多个开关模块、以及总线;
所述总线包括至少一条第一总线和多条第二总线;
所述第一总线分别与多个所述开关模块和所述控制模块电连接,用于:将所述控制模块根据预设的数据传输方式确定的第一控制信号传输至对应连接的所述开关模块中;
所述存储模块包括多个存储单元,至少部分所述存储单元中存储有不同类型的数据,每条所述第二总线分别与一个所述存储单元和多个所述开关模块电连接,不同所述第二总线传输不同类型的数据,所述第二总线用于:将对应连接的所述存储单元中存储的数据传输至对应连接的所述开关模块中,以及将对应连接的所述开关模块输出的第一计算结果传输至对应连接的所述存储单元中;
每个所述PE单元与多个所述开关模块电连接,且与同一所述PE单元电连接的各所述开关模块与不同的所述第二总线电连接,所述开关模块用于:在所述第一总线传输的所述第一控制信号的控制下,将对应电连接的所述第二总线中传输的数据传输至所述PE单元中,以使所述PE单元对接收到的数据进行计算,以及将部分所述PE单元输出的所述第一计算结果传输至对应电连接的所述第二总线中。
可选地,所述总线还包括位于列方向上任意相邻两个PE单元之间的第三总线,用于:
将任一PE单元计算后得到的第二计算结果传输至相邻的PE单元中,以使相邻的PE单元对接收到的第二计算结果与自身得到的第二计算结果进行累加处理,使得每列PE单元中最后完成累加处理的PE单元输出所述第一计算结果。
可选地,与不同所述PE单元连接的所述开关模块的数量相同。
可选地,与同一所述PE单元连接的所述开关模块的数量与所述第二总线的设置数量相同。
可选地,各所述存储单元中存储的数据类型包括:输入特征数据、权值数据、所述第一计算结果、以及预输入数据;
所述第二总线设置有四个,分别用于传输所述输入特征数据、所述权值数据、所述第一计算结果和所述预输入数据。
可选地,所述存储模块包括:第一存储单元、所述第二存储单元、以及设置于所述第一存储单元与所述第二存储单元之间的切换单元;
所述第一存储单元和所述第二存储单元中均存储有所述第一计算结果,其中,上一次卷积运算后得到的所述第一计算结果作为当前卷积运算的所述预输入数据;
所述切换单元用于:
在所述控制模块的控制下,调整用于传输所述预输入数据的第二总线和用于传输所述第一计算结果的第二总线,分别与所述第一存储单元和所述第二存储单元的电连接关系,以使上一次卷积运算后得到的所述第一计算结果作为当前卷积运算的所述预输入数据,通过用于传输所述预输入数据的第二总线进行传输,以及在当前卷积运算后得到的第一计算结果,通过用于传输所述第一计算结果的第二总线传输至对应电连接的所述第一存储单元或所述第二存储单元中。
可选地,所述开关模块包括:标记设置单元、判断单元、以及开关单元;所述开关单元具有数据输入端、数据输出端;
所述标记设置单元分别与所述判断单元和所述第一总线电连接,用于:接收所述第一总线传输的第一甲控制信号,确定所述第一甲控制信号中携带的标记;
所述判断单元还分别与所述开关单元和所述第一总线电连接,用于:
判断所述第一总线传输第一乙控制信号中携带的标记与所述第一甲控制信号中携带的标记是否相同;
若是,则控制所述开关单元处于闭合状态,以使所述数据输入端与所述数据输出端电连接,将所述数据输入端输入的数据传输至所述PE单元中;
若否,则控制所述开关单元处于断开状态,以使所述数据输入端与所述数据输出端断开;
其中,所述第一控制信号包括所述第一甲控制信号和所述第一乙控制信号。
可选地,所述开关模块还具有指示信号输出端;
所述判断单元与所述指示信号输出端电连接,还用于:
在判断出所述第一总线传输第一乙控制信号中携带的标记与所述第一甲控制信号中携带的标记相同时,控制所述指示信号输出端输出有效信号;
在判断出所述第一总线传输第一乙控制信号中携带的标记与所述第一甲控制信号中携带的标记不同时,控制所述指示信号输出端输出无效信号。
可选地,所述标记设置单元为寄存器,所述判断单元为逻辑处理器。
可选地,所述控制模块包括逻辑电路、存储器和处理器;
所述存储模块为静态随机存取存储器。
第二方面,本发明实施例提供了一种卷积神经网络加速方法,采用如本发明实施例提供的上述卷积神经网络加速系统实现,该方法包括:
控制模块根据预设的数据传输方式确定第一控制信号,并通过第一总线将所述第一控制信号传输至对应连接的各开关模块中;
第二总线将对应连接的存储单元中存储的数据传输至对应连接的所述开关模块中;其中,存储模块包括多个所述存储单元,至少部分所述存储单元中存储有不同类型的数据,每条所述第二总线分别与一个所述存储单元和多个所述开关模块电连接,不同所述第二总线传输不同类型的数据;
所述开关模块在所述第一总线传输的所述第一控制信号的控制下,将对应电连接所述第二总线中传输的数据传输至PE单元中,以使所述PE单元对接收到的数据进行计算;
在部分PE单元输出第一计算结果之后,第一开关模块将所述计算结果传输至对应电连接的所述第二总线中,以使该第二总线将所述计算结果传输至对应连接的所述存储单元中;
其中,每个所述PE单元与多个所述开关模块电连接,且与同一所述PE单元电连接的各所述开关模块与不同的所述第二总线电连接,所述第一计算结果为对每列中的各所述PE单元在进行卷积计算后得到的卷积计算结果的累加计算结果,所述第一开关模块为与输出所述第一计算结果的PE单元对应连接的开关模块。
可选地,所述预设的数据传输方式为:
在各所述存储单元中存储的数据类型包括:输入特征数据、权值数据、所述第一计算结果、以及预输入数据时,每一个权值通道的各行权值数据通过对应的所述第二总线依次传输至对应的各行PE单元中,每一个权值通道的每一行中的各权值数据通过对应的所述第二总线同时传输至每一行的各PE单元中;
每一个数据通道的各行输入特征数据通过对应的所述第二总线依次传输至对应的各特定组PE单元中,每一个数据通道的每一行中的各输入特征数据通过对应的所述第二总线同时传输至每一特定组的各PE单元中;其中,所述特定组由沿着平行于PE单元阵列中的副对角线方向设置的各PE单元组成,且所述特定组包括至少一个PE单元;
在需要对第n+1个权值通道的权值数据与输入特征数据进行计算,且每列PE单元中位于首行的PE单元输出所述第一计算结果时,将所述预输入数据通过对应的所述第二总线传输至PE单元阵列中最后一行的各PE单元中;其中,n为大于1的整数。
本发明有益效果如下:
本发明实施例提供的一种卷积神经网络加速方法及系统,通过设置多条第二总线,可以通过不同的第二总线传输不同类型的数据,避免了现有技术中共用一条总线传输不同类型数据时造成的数据搬移频率过高的问题,降低了数据重复搬移的频率,提高了数据传输的效率,从而提高了卷积处理的效率。
并且,通过对开关模块的设置,可以控制第二总线与各PE单元的连接关系,以使第二总线上传输的数据输出至对应的PE单元中,以使PE单元对接收到的数据进行计算;并且,还可以将部分PE单元输出的第一计算结果传输至对应电连接的第二总线中,实现数据的输出。从而,大大提高了数据传输的吞吐量,以及大大提高了卷积神经网络加速系统的数据复用率。
附图说明
图1为本发明实施例中提供的一种卷积神经网络加速系统的结构示意图;
图2为本发明实施例中提供的PE单元阵列的示意图;
图3为本发明实施例中提供的存储模块的具体结构示意图;
图4为本发明实施例中提供的开关模块的具体结构示意图;
图5为本发明实施例中提供的一种卷积神经网络加速方法的流程图;
图6为本发明实施例中提供的一层卷积计算的示意图;
图7为本发明实施例中提供的一行卷积计算的示意图。
其中,10-控制模块,20-存储模块,20a-存储单元,21-第一存储单元,22-第二存储单元,23-切换单元,30-PE单元,40-开关模块,41-标记设置单元,42-判断单元,43-开关单元,50-总线,51-第一总线,52-第二总线,53-第三总线,60-多路选择开关。
具体实施方式
下面将结合附图,对本发明实施例提供的一种卷积神经网络加速方法及系统的具体实施方式进行详细地说明。需要说明的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种卷积神经网络加速系统,如图1所示,图中以PE单元阵列包括4个PE单元为例进行说明各结构之间的连接关系,但并不说明PE单元阵列仅包括4个PE单元,在实际情况中,PE单元阵列包括很多个PE单元。
参见图1所示,卷积神经网络加速系统可以包括:控制模块10、存储模块20、PE单元阵列、多个开关模块40、以及总线50;
总线50包括至少一条第一总线51和多条第二总线52;
第一总线51分别与多个开关模块40和控制模块10电连接,用于:将控制模块10根据预设的数据传输方式确定的第一控制信号传输至对应连接的开关模块40中;
存储模块20包括多个存储单元20a,至少部分存储单元20a中存储有不同类型的数据,每条第二总线52分别与一个存储单元20a和多个开关模块40电连接,不同第二总线52传输不同类型的数据,第二总线52用于:将对应连接的存储单元20a中存储的数据传输至对应连接的开关模块40中,以及将对应连接的开关模块40输出的第一计算结果传输至对应连接的存储单元20a中;
每个PE单元30与多个开关模块40电连接,且与同一PE单元30电连接的各开关模块40与不同的第二总线52电连接,开关模块40用于:在第一总线51传输的第一控制信号的控制下,将对应电连接的第二总线52中传输的数据传输至PE单元30中,以使PE单元30对接收到的数据进行计算,以及将部分PE单元30输出的第一计算结果传输至对应电连接的第二总线52中。
在本发明实施例中,通过设置多条第二总线52,可以通过不同的第二总线52传输不同类型的数据,避免了现有技术中共用一条总线传输不同类型数据时造成的数据搬移频率过高的问题,降低了数据重复搬移的频率,提高了数据传输的效率,从而提高了卷积处理的效率。
并且,通过对开关模块40的设置,可以控制第二总线52与各PE单元30的连接关系,以使第二总线52上传输的数据输出至对应的PE单元30中,以使PE单元30对接收到的数据进行计算;并且,还可以将部分PE单元30输出的第一计算结果传输至对应电连接的第二总线52中,实现数据的输出。从而,大大提高了数据传输的吞吐量,以及大大提高了卷积神经网络加速系统的数据复用率。
在具体实施时,为了使得PE单元阵列中的每列PE单元输出计算结果,在本发明实施例中,如图1所示,总线50还包括位于列方向上任意相邻两个PE单元30之间的第三总线53,用于:
将任一PE单元30计算后得到的第二计算结果传输至相邻的PE单元30中,以使相邻的PE单元30对接收到的第二计算结果与自身得到的第二计算结果进行累加处理,使得每列PE单元30中最后完成累加处理的PE单元30输出第一计算结果。
例如,以图2所示的PE单元阵列为例,该阵列中包括5行5列PE单元,每列中的5个PE单元之间均设置有第三总线,标记为(5,1)的PE单元可以将计算结果输出至标记为(4,1)的PE单元中,以使标记为(4,1)的PE单元对接收到的第二计算结果与自身计算后得到的第二计算结果进行累加处理后输出至标记为(3,1)的PE单元中;接着,标记为(3,1)的PE单元同样将接收到的第二计算结果与自身计算后得到的第二结果进行累加处理后输出至标记为(2,1)的PE单元中,直至标记为(1,1)的PE单元输出最终的结果,即上述提及的第一计算结果。
也就是说,在每一个权值通道中的每一行权值数据是依次传输至各行PE单元中时,由第一行的各PE单元输出对应列的第一计算结果。
如此,有利于卷积神经网络加速系统完成卷积处理,保证卷积处理过程的正常进行。
在具体实施时,在本发明实施例中,与不同PE单元连接的开关模块的数量相同。
并且,与同一PE单元连接的开关模块的数量与第二总线的设置数量相同。
例如,参见图1所示,图中示出了每个PE单元连接的开关模块的数量均为4个,且第二总线52的设置数量也为4个。此时,这四条第二总线52可以分别用于传输权值数据、输入特征数据、第一计算结果和预输入数据。
如此,可以通过不同的第二总线52传输不同类型的数据,避免了现有技术中共用一条总线传输不同类型数据时造成的数据搬移频率过高的问题,降低了数据重复搬移的频率,提高了数据传输的效率,从而提高了卷积处理的效率。
在具体实施时,在本发明实施例中,各存储单元中存储的数据类型包括:输入特征数据、权值数据、第一计算结果、以及预输入数据;
如图1所示,第二总线52设置有四个,分别用于传输输入特征数据、权值数据、第一计算结果和预输入数据。
例如,参见图1所示,在对数据进行分类后,可以使得不同类型的数据在对应的Bus总线上进行传输,对各第二总线52分别命名为FILT Bus总线、IMAGBus总线、PSMO Bus总线、以及PSMI Bus总线,此时:
存储有权值数据的存储单元(如第三存储单元)中的权值数据通过FILTBus总线传输;
存储于有输入特征数据的存储单元(如第四存储单元)中存储的输入特征数据通过IMAG Bus总线传输;
PE单元阵列输出的第一计算结果通过PSMO Bus总线传输到存储第一计算结果的存储单元(如第一存储单元或第二存储单元);
如果当前卷积计算需要前一次的卷积结果时,则可以将第一存储单元或第二存储单元中的第一计算结果作为预输入数据通过PSMI Bus总线进行传输。
说明一点,在本发明实施例中,如图1所示,控制模块可以包括第一单元11和第二单元12,其中第一单元11用于接收上位机(图1中未示出)发送的指令,确定控制命令和配置指令,并发送至第二单元12中,第二单元12用于执行第一单元11发出的命令和指令。
其中,上位机中设置有通用处理器软件,该软件可以计算卷积神经网络加速系统中每一层卷积的数据,决定卷积核阵列的大小,根据预配置的数据分类方式,分解卷积核阵列所需要的权值数据与输入特征数据,并通过第一单元11的控制分别存储至第三存储单元和第四存储单元中。
也就是说,每一条第二总线上的数据传输是由第一单元11来控制的,该第一单元11的控制命令及配置指令,由上位机中的通用处理器软件来设置,通过控制总线(图1中未示出)传输至第一单元11中。
并且,如图1所示,PE单元阵列(也即卷积核阵列,二者可以互换使用,且表达相同的含义)中的每一个PE单元30通过单独的开关模块40与FILT Bus总线、IMAG Bus总线、PSMIBus总线、以及PSMO Bus总线连接,且开关模块40的开启和关闭状态由第一单元11来决定,第二单元12在第一单元11发出的指令下对开关模块40进行配置,以控制第二总线52与PE单元30的连接关系。
具体地,在本发明实施例中,如图3所示,存储模块20包括:第一存储单元21、第二存储单元22、以及设置于第一存储单元21与第二存储单元22之间的切换单元23;
第一存储单元21和第二存储单元22中均存储有第一计算结果,其中,上一次卷积运算后得到的第一计算结果作为当前卷积运算的预输入数据;
切换单元23用于:
在控制模块的控制下,调整用于传输预输入数据的第二总线和用于传输第一计算结果的第二总线,分别与第一存储单元21和第二存储单元22的电连接关系,以使上一次卷积运算后得到的第一计算结果作为当前卷积运算的预输入数据,通过用于传输预输入数据的第二总线进行传输,以及在当前卷积运算后得到的第一计算结果,通过用于传输第一计算结果的第二总线传输至对应电连接的第一存储单元21或第二存储单元22中。
从而,在需要存储有第一计算结果的存储单元(可能是第一存储单元21,也可能是第二存储单元22)中的第一计算结果作为预输入数据时,使得存储有第一计算结果的存储单元与用于传输预输入数据的第二总线电连接。
例如,参见图3所示,用于传输预输入数据的第二总线为PSMI Bus总线,用于传输第一计算结果的第二总线为PSMO Bus总线,在初始状态(即在对第一个权值通道与输入特征数据进行卷积运算的阶段),PSMI Bus总线可以与第一存储单元21电连接,PSMO Bus总线可以与第二存储单元22电连接。
在完成第一个权值通道与输入特征数据的卷积运算后,第一行各卷积核通过PSMOBus总线向第二存储单元22输出第一计算结果。
在对第二个权值通道与输入特征数据进行卷积运算之前,由于第一个权值通道的运算后的第一计算结果需要作为第二个权值通道运算的预输入数据,所以通过切换单元23,使得PSMI Bus总线可以与第二存储单元22电连接,PSMOBus总线可以与第一存储单元21电连接。在对第二个权值通道与输入特征数据进行卷积运算时,PSMI Bus总线将第二存储单元22中的第一计算结果作为预输入数据传输至对应的卷积核中。并且,在当前权值通道计算结束之后,通过PSMO Bus总线将第一行各卷积核输出的第一计算结果存储至第一存储单元21中。
同理,在对第三个权值通道与输入特征数据进行卷积运算之前,由于第二个权值通道的运算后的第一计算结果需要作为第三个权值通道运算的预输入数据,所以通过切换单元23,使得PSMI Bus总线与第一存储单元21电连接,PSMO Bus总线与第二存储单元22电连接。在对第三个权值通道与输入特征数据进行卷积运算时,PSMI Bus总线将第二存储单元22中的第一计算结果作为预输入数据传输至对应的卷积核中。并且,在当前权值通道计算结束之后,通过PSMO Bus总线将第一行各卷积核输出的第一计算结果存储至第一存储单元21中。
因此,通过切换单元23,可以切换第二总线(包括PSMI Bus总线和PSMOBus总线)与第一存储单元21和第二存储单元22的连接关系,从而保证卷积运算的正常进行,保证卷积神经网络加速系统的正常工作。
可选地,对于切换单元的具体实现结构,可以为开关,或者是本领域技术人员所熟知的其他可以实现切换单元功能的结构,在此并不限定。
在具体实施时,为了实现开关模块的功能,在本发明实施例中,如图4所示,开关模块40包括:标记设置单元41、判断单元42、以及开关单元43;开关单元43具有数据输入端IN、以及数据输出端OUT;
标记设置单元41分别与判断单元42和第一总线51电连接,用于:接收第一总线51传输的第一甲控制信号,确定第一甲控制信号中携带的标记;
判断单元42还分别与开关单元43和第一总线51电连接,用于:
判断第一总线51传输第一乙控制信号中携带的标记与第一甲控制信号中携带的标记是否相同;
若是,则控制开关单元43处于闭合状态,以使数据输入端IN与数据输出端OUT电连接,将数据输入端IN输入的数据传输至PE单元中;
若否,则控制开关单元43处于断开状态,以使数据输入端IN与数据输出端OUT断开;
其中,第一控制信号包括第一甲控制信号和第一乙控制信号。
说明一点,对于标记设置单元41而言,在卷积神经网络包括多层计算时,每进行一层计算时对应一个标记,也就是说,在进行每一层计算之前,第二单元向第一总线51输出第一甲控制信号,该第一甲控制信号中携带有标记(如标记1),通过第一总线51将该标记1传输至标记设置单元41,以使标记设置单元41将该标记1存储起来,以便于后续过程中使用。
其中,对于不同层计算,标记1是不同的,例如,第一层对应的标记1可以为A1,第二层对应的标记1可以为A2,第三层对应的标记1可以为A3等等。
当然,对于同一层中的计算,标记1是保持不变的,以保证每层计算可以正常进行。
对于判断单元42通过第一总线51接收到的第一乙控制信号也是由第二单元配置的,以用于控制PE单元与第二总线的电连接关系。
如此,通过对开关模块的设置,可以按照预设的数据传输方式,将不同类型的数据传输至对应的PE单元中,以使卷积神经网络加速系统可以正常有效地工作。
可选地,在本发明实施例中,如图4所示,开关模块40还具有指示信号输出端S;
判断单元42与指示信号输出端S电连接,还用于:
在判断出第一总线51传输第一乙控制信号中携带的标记与第一甲控制信号中携带的标记相同时,控制指示信号输出端S输出有效信号;
在判断出第一总线51传输第一乙控制信号中携带的标记与第一甲控制信号中携带的标记不同时,控制指示信号输出端S输出无效信号。
其中,标记设置单元41设置标记1时,各开关模块40中对应的标记1可以是相同的,也可以是不相同的,可以根据实际需要设置,在此并不限定。
当判断单元42接收到的第一乙控制信号中携带的标记(如标记2)与标记1相同时,开关单元43处于闭合状态,数据从数据输入端IN进入,从数据输出端OUT输出,同时指示信号输出端S输出有效高电平。
当标记1与标记2不同时,开关单元43处于断开状态,数据输出端OUT呈现高阻状态,指示信号输出端S输出低电平,以指示当前数据无效。
如此,通过对标记1和标记2的设置,可以控制开关单元43的断开和闭合,从而控制数据是否能够从数据输出端OUT输出,以到达PE单元中,以使PE单元完成卷积处理。
可选地,在本发明实施例中,标记设置单元可以为寄存器,通过改变寄存器的值可以将标记1存储起来。判断单元可以为逻辑处理器,通过逻辑处理器可以实现标记1和标记2的判断,从而有利于对开关模块的控制。
当然,标记设置单元和判断单元并不限于上述结构,还可以是本领域技术人员所熟知的其他可以实现上述功能的结构,在此并不限定。
可选地,在本发明实施例中,控制模块可以包括逻辑电路、存储器和处理器,存储模块可以为静态随机存取存储器(Static Random-Access Memory,SRAM)。
其中,控制模块中的第一单元可以是系统中各个控制结构和处理器的总称,用于根据上位机中的设置发出控制指令和配置指令,以使第二单元根据收到的指令对开关模块进行配置和控制,所以第二单元可以由各种控制接口、存储器和逻辑电路来实现。
需要说明的是,在本发明实施例中,对于卷积神经网络加速系统,除了包括上述结构之外,还可以包括其他用于实现系统功能的结构,如图1中所示的多路选择开关,以及本领域技术人员所熟知的其他用于实现系统功能的结构(图1中未示出),在此不再详述。
基于同一发明构思,本发明实施例提供了一种卷积神经网络加速方法,采用如本发明实施例提供的上述卷积神经网络加速系统实现,如图5所示,该方法可以包括:
S501、控制模块根据预设的数据传输方式确定第一控制信号,并通过第一总线将第一控制信号传输至对应连接的各开关模块中;
S502、第二总线将对应连接的存储单元中存储的数据传输至对应连接的开关模块中;
其中,存储模块包括多个存储单元,至少部分存储单元中存储有不同类型的数据,每条第二总线分别与一个存储单元和多个开关模块电连接,不同第二总线传输不同类型的数据;
S503、开关模块在第一总线传输的第一控制信号的控制下,将对应电连接第二总线中传输的数据传输至PE单元中,以使PE单元对接收到的数据进行计算;
S504、在部分PE单元输出第一计算结果之后,第一开关模块将计算结果传输至对应电连接的第二总线中,以使该第二总线将计算结果传输至对应连接的存储单元中;
其中,每个PE单元与多个开关模块电连接,且与同一PE单元电连接的各开关模块与不同的第二总线电连接,第一计算结果为对每列中的各PE单元在进行卷积计算后得到的卷积计算结果的累加计算结果,第一开关模块为与输出第一计算结果的PE单元对应连接的开关模块。
可选地,预设的数据传输方式为:
在各存储单元中存储的数据类型包括:输入特征数据、权值数据、第一计算结果、以及预输入数据时,每一个权值通道的各行权值数据通过对应的第二总线依次传输至对应的各行PE单元中,每一个权值通道的每一行中的各权值数据通过对应的第二总线同时传输至每一行的各PE单元中;
每一个数据通道的各行输入特征数据通过对应的第二总线依次传输至对应的各特定组PE单元中,每一个数据通道的每一行中的各输入特征数据通过对应的第二总线同时传输至每一特定组的各PE单元中;其中,特定组由沿着平行于PE单元阵列中的副对角线方向设置的各PE单元组成,且特定组包括至少一个PE单元;其中,参见图2所示,对于副对角线方向可以理解为沿着PE单元阵列的从左下至右上的方向,即图2中所示的M方向。
在需要对第n+1个权值通道的权值数据与输入特征数据进行计算,且每列PE单元中位于首行的PE单元输出第一计算结果时,将预输入数据通过对应的第二总线传输至PE单元阵列中最后一行的各PE单元中;其中,n为大于1的整数。
下面以具体实施例为例,对利用本发明实施例提供的卷积神经网络加速系统对数据传输和卷积处理的过程进行说明。
在介绍具体实施例之前,首先对卷积运算进行介绍。
卷积神经网络加速系统若要完成每一层卷积计算,如图6所示,每一层卷积计算中涉及的模型参数可以包括如下几个方面,参见表1所示。
表1
一组输入特征数据包含C*H*W(其中,C表示数据通道的数量,H表示输入特征数据的高,W表示输入特征数据的宽),权值数据的组数为M,每组权值数据包含C*K*K(其中,C表示权值通道的数量,K表示每个权值通道的权值数据的大小)。
一组输入特征数据的所有数据通道与一组权值数据进行乘积和累加计算完成一次卷积操作,通过权值数据不断地平移滑动遍历所有输入特征数据的卷积操作,形成一个完整通道的输出特征数据。同一组输入特征数据在经过M组的权值数据卷积计算后,形成M个通道的输出特征数据。
在输出一行特征数据的卷积计算过程中,权值数据保持不变,只是输入特征数据沿着行方向按照设定步长平移滑动。
在实际卷积核计算中,每一个卷积核只需要输入1*K的权值数据、1*W的输入特征数据,完成单行卷积,例如,图7中所示的是K为5且W为7的单个卷积核的一行卷积过程。
通过K个卷积核的协同工作,可以完成一个通道的一行输出特征数据。通过对多个权值通道按照上述过程进行重复操作,并采用相应的权值数据及输入特征数据,以及考虑将上一个通道的卷积输出作为卷积预输入数据进行累加计算,从而,最后可以输出所有通道的输出特征数据,完成卷积运算。
下面对数据传输过程和卷积运算过程进行介绍。
一、卷积层模型参数:权值数据的组数M为3,每组权值数据包括的权值通道的数量C为3,每个权值通道的数据大小K为5,数据通道的数量C为3,输入特征数据高H为9,特征数据宽W为64,无补零,则卷积计算后的输出特征数据高E为5,输出特征数据宽F为60。
其中,说明一点,若要求卷积计算后得到的输出特征数据的尺寸大小与输入特征数据的尺寸大小相同时,需要对输入特征数据进行补零处理,本实施例中无补零,则卷积计算后得到的输出特征数据的尺寸大小与输入特征数据的尺寸大小不同。
预设的物理卷积核(也即PE单元,PE单元和卷积核可以互换使用,且表达的含义相同)阵列大小为16*16,卷积层模型中卷积核大小为5,对应地,选择5*5的卷积核阵列参与卷积计算,如图2所示。
二、数据的准备:
权值数据总量为3*(3*5*5),可以表示为w(m,c,i,j),其中,m为组数,c为权值通道的数量,i为卷积核的行,j为卷积核的列。
输入特征数据总量为3*9*64,可以表示为i(c,p,q),其中,c为数据通道的数量,p为输入特征数据的行,q为输入特征数据的列。
另外,用:表示所在维度的所有取值,例如,w(m,c,i,:)表示第m组第c个权值通道中第i行的所有权值数据。
三、卷积计算的分解:
其中,在进行卷积计算时,可以但并不限于按照以下两种方式进行计算:
方式1:按权值数据的组数分解。
参见图6所示的卷积计算过程,以第一组权值数据与所有输入特征数据进行卷积计算,得到输出特征数据的一个完整通道,即输出特征数据的第一个通道。
接着,更换权值数据,即采用第二组权值数据与所有输入特征数据进行卷积计算,得到输出特征数据的另一个完整通道,即输出特征数据的第二个通道。
同样地,更换权值数据,即采用第三组权值数据与所有输入特征数据进行卷积计算,得到输出特征数据的又一个完整通道,即输出特征数据的第三个通道。
对于第四个权值数据至第M个权值数据均进行上述操作,从而依次得到输出特征数据的第四个通道至第M个通道。
如此,按照该方式1进行卷积计算时,最后得到多个通道的数据。
方式2:按权值数据的通道分解。
以第一个权值通道中的所有权值数据与第一个数据通道的所有输入特征数据进行卷积计算,得到输出特征数据的第一个通道,此时暂且将得到的输出特征数据的第一个通道的数据称之为第一部分和(可以理解为第一计算结果),将该第一部分和可以传输到第一存储单元或第二存储单元中进行存储。
接着,执行第二个权值通道的卷积计算,即第二个权值通道中的所有权值数据与第二个数据通道的所有输入特征数据进行卷积计算,得到输出特征数据的第二个通道(即第二中间部分和)。此时,将第一个权值通道与输入特征数据计算后得到的第一部分和作为当前权值通道的卷积计算的预输入数据,对得到的第二中间部分和与预输入数据进行累加计算,得到第二部分和,并将该第二部分和可以传输到第一存储单元或第二存储单元中进行存储。
同样地,对于第三个权值通道至第M个权值通道的卷积计算,与第二个权值通道的计算过程相同,在完成第M个权值通道的计算后,最后得到输出特征数据的一个通道,即得到卷积计算后的最终计算结果。
如此,按照该方式2进行卷积计算时,最后得到一个通道的数据。
四、卷积核数据传输与配置:
为了说明利用本发明实施例提供的上述卷积神经网络加速系统对数据传输的控制,以采用一个5*5的卷积核阵列,完成一个权值通道的权值数据与输入特征数据的卷积计算的过程为例进行说明。
1、权值数据。
1-1、与FILT bus总线电连接的开关模块中对于标记1的配置:
例如,每一个权值通道中的权值数据共有5行,即每行用w(1,1,i,:),i=1,2,…,5表示,若这5行权值数据需分别传输到对应的5行卷积核阵列中时,在对进行权值数据进行传输之前,需要首先对与FILT bus总线电连接的开关模块中对于标记1的配置。
其中,参见图2所示,在卷积核阵列中,(m,:)表示阵列中的第m行,m可以为1、2、3、4、5,如(1,:)表示阵列中的第1行。(:,n)表示阵列中的第n列,n可以为1、2、3、4、5,如(:,1)表示阵列中的第1列。
此时,可以将第一行卷积核(1,:)中的全部列中,与FILT bus总线电连接的开关模块中的标记1配置为编号1。
同理,将第二行卷积核(2,:)中的全部列中,与FILT bus总线电连接的开关模块中的标记1配置为编号2,将第三行卷积核(3,:)中的全部列中,与FILT bus总线电连接的开关模块中的标记1配置为编号3,将第四行卷积核(4,:)中的全部列中,与FILT bus总线电连接的开关模块中的标记1配置为编号4,将第五行卷积核(5,:)中的全部列中,与FILT bus总线电连接的开关模块中的标记1配置为编号5,对于其余未使用到的卷积核,将与FILT bus总线电连接的开关模块中的标记1配置为除1-5之外的数值即可。
1-2、权值数据的传输:
通过FILT Bus总线传输第一行权值数据w(1,1,1,:)时,通过第二单元将与FILTBus总线电连接的开关模块中的标记2配置为1,因与FILT Bus总线电连接且与第一行卷积核电连接的开关模块中的标记1也为1,所以与第一行卷积核电连接且与FILT Bus总线电连接的各开关模块中的数据输入端与输出端电连接,将FILT Bus总线上传输的第一行权值数据,同时传输至对应卷积核阵列中的第一行的所有卷积核中,即将第一行权值数据w(1,1,1,:)同时传输至第一行的卷积核(1,1),卷积核(1,2),卷积核(1,3),卷积核(1,4),卷积核(1,5)。
接着,通过FILT Bus总线传输第二行权值数据w(1,1,2,:)时,通过第二单元将与FILT Bus总线电连接的开关模块中的标记2配置为2,因与FILTBus总线电连接且与第二行卷积核电连接的开关模块中的标记1也为2,所以与第二行卷积核电连接且与FILT Bus总线电连接的各开关模块中的数据输入端与输出端电连接,将FILT Bus总线上传输的第二行权值数据,同时传输至对应卷积核阵列中的第二行的所有卷积核中,即将第二行权值数据w(1,1,2,:)同时传输至第二行的卷积核(2,1),卷积核(2,2),卷积核(2,3),卷积核(2,4),卷积核(2,5)。
同样地,通过FILT Bus总线将第三行权值数据至第五行权值数据,依次按照上述方式进行传输,以使第三行权值数据w(1,1,3,:)传输至第三行的卷积核(3,1),卷积核(3,2),卷积核(3,3),卷积核(3,4),卷积核(3,5)中,第四行权值数据w(1,1,4,:)传输至第四行的卷积核(4,1),卷积核(4,2),卷积核(4,3),卷积核(4,4),卷积核(4,5)中,第五行权值数据w(1,1,5,:)传输至第五行的卷积核(5,1),卷积核(5,2),卷积核(5,3),卷积核(5,4),卷积核(5,5)中。
也就是说,五行权值数据依次传输至五行卷积核中,且对于每一行权值数据中的各权值数据,同时传输至对应行的各卷积核中。
2、输入特征数据。
2-1、与IMAG Bus总线电连接的开关模块中对于标记1的配置:
例如,每个数据通道中的输入特征数据共9行,即每行用I(1,i,:),i=1,2,…,9表示,若这9行输入特征数据需分别传输到对应的9个特定组卷积核阵列中时,在对进行输入特征数据进行传输之前,需要首先对与IMAG Bus总线电连接的开关模块中对于标记1的配置。
其中,特定组可以为:以卷积核阵列中沿着副对角线方向(即从左下至右上的方向)排列的各卷积核组成一行,参见图2所示,即:
第一特定组卷积核包括(1,1),与该第一特定组电连接且与IMAG Bus总线电连接的开关模块中的标记1配置为编号1;
第二特定组卷积核包括(2,1),(1,2),与该第二特定组电连接且与IMAGBus总线电连接的开关模块中的标记1配置为2;
第三特定组卷积核包括(3,1),(2,2),1,3),与该第三特定组电连接且与IMAG Bus总线电连接的开关模块中的标记1配置为3;
第四特定组卷积核包括(4,1),(3,2),(2,3),(1,4),与该第四特定组电连接且与IMAG Bus总线电连接的开关模块中的标记1配置为4;
第五特定组卷积核包括(5,1),(4,2),(3,3),(2,4),(1,5),与该第五特定组电连接且与IMAG Bus总线电连接的开关模块中的标记1配置为5;
第六特定组卷积核包括(5,2),(4,3),(3,4),(2,5),与该第六特定组电连接且与IMAG Bus总线电连接的开关模块中的标记1配置为6;
第七特定组卷积核包括(5,3),(4,4),(3,5),与该第七特定组电连接且与IMAGBus总线电连接的开关模块中的标记1配置为7;
第八特定组卷积核包括(5,4),(4,5),与该第八特定组电连接且与IMAGBus总线电连接的开关模块中的标记1配置为8;
第九特定组卷积核包括(5,5),与该第九特定组电连接且与IMAG Bus总线电连接的开关模块中的标记1配置为9。
对于其余未使用到的卷积核,将与IMAG bus总线电连接的开关模块中的标记1配置为除1-9之外的数值即可。
2-2、输入特征数据传输:
通过IMAG Bus总线传输第一行输入特征数据I(1,1,:)时,通过第二单元将与IMAGBus总线电连接的开关模块中的标记2配置为1,因与IMAGBus总线电连接且与第一特定组卷积核电连接的开关模块中的标记1也为1,所以与第一特定组卷积核电连接且与IMAG Bus总线电连接的各开关模块中的数据输入端与输出端电连接,将IMAG Bus总线上传输的第一行输入特征数据,同时传输至对应卷积核阵列中的第一特定组的所有卷积核中,即将第一行输入特征数据I(1,1,:)同时传输至卷积核(1,1)中。
接着,通过IMAG Bus总线传输第二行输入特征数据I(1,2,:)时,通过第二单元将与IMAG Bus总线电连接的开关模块中的标记2配置为2,因与IMAG Bus总线电连接且与第二特定组卷积核电连接的开关模块中的标记1也为2,所以与第二特定组卷积核电连接且与IMAG Bus总线电连接的各开关模块中的数据输入端与输出端电连接,将IMAG Bus总线上传输的第二行输入特征数据,同时传输至对应卷积核阵列中的第二特定组的所有卷积核中,即将第二行输入特征数据I(1,2,:)同时传输至卷积核(2,1)和卷积核(1,2)中。
然后,同理,对于第三行输入特征数据I(1,3,:),采用上述方式传输至第三特定组的卷积核(3,1),卷积核(2,2),卷积核(1,3)中。
对于第四行输入特征数据I(1,4,:),采用上述方式传输至第四特定组的卷积核(4,1),卷积核(3,2),卷积核(2,3),卷积核(1,4)中。
对于第五行输入特征数据I(1,5,:),采用上述方式传输至第五特定组的卷积核(5,1),卷积核(4,2),卷积核(3,3),卷积核(2,4),卷积核(1,5)中。
对于第六行输入特征数据I(1,6,:),采用上述方式传输至第六特定组的卷积核(5,2),卷积核(4,3),卷积核(3,4),卷积核(2,5)中。
对于第七行输入特征数据I(1,7,:),采用上述方式传输至第七特定组的卷积核(5,3),卷积核(4,4),卷积核(3,5)中。
对于第八行输入特征数据I(1,8,:),采用上述方式传输至第八特定组的卷积核(5,4)和卷积核(4,5)中。
对于第九行输入特征数据I(1,9,:),采用上述方式传输至第九特定组的卷积核(5,5)中。
也就是说,九行输入特征数据依次传输至九个特定组卷积核中,且对于每一行输入特征数据中的各输入特征数据,同时传输至对应特定组的各卷积核中。
3、第一计算结果。
卷积核阵列中的每个卷积核在完成卷积计算后,得到第二计算结果,接着,通过设置在每一列中的各卷积核之间的第三总线进行通信,以使每列中第5个卷积核将第二计算结果输出至第4个卷积核中,通过第4个卷积核进行累加计算后继续输出至第3个卷积核中,直至第1个卷积核进行累加计算后得到第一计算结果为止。
为了能够将第一计算结果输出至对应的存储单元中存储起来,同样需要对于与第一行各卷积核电连接且与PSMO Bus总线电连接的开关模块中的标记1进行配置,如将标记1配置为1,通过第二单元将与PSMO Bus总线电连接的开关模块中的标记2配置为1,可以使得与第一行卷积核电连接且与PSMO Bus总线电连接的各开关模块中的数据输入端与输出端电连接,将第一行中的各卷积核得到的第一计算结果通过PSMO Bus总线传输至对应的存储单元中,以供在后续卷积计算中使用。
4、预输入数据。
在第一个权值通道与输入特征数据完成卷积计算后,在第一单元的控制下,执行第二个权值通道与输入特征数据的卷积运算。
其中,第二个权值通道与输入特征数据的卷积运算与第一个权值通道的卷积运算相似,同样是采用上述方式进行卷积计算,在此不再赘述。
但需要注意的是,与第一个权值通道的卷积计算不同的是,第二个权值通道的卷积计算,还需要将第一个权值通道的第一计算结果作为预输入数据,进行累加计算。
同样地,在第二个权值通道完成的卷积计算之后,同样需要将第一计算结果作为预输入数据,以使第三个权值通道进行累加计算。
最后,在三个权值通道完成卷积运算后,输出三个通道的输出特征数据。
当然,上述只是以具体实施例为例,对数据传输和卷积处理过程进行了举例说明,但在实际情况中,数据传输过程并不限于此,只要能够完成卷积计算,实现数据的高效并行、复用的传输,以提高数据传输的吞吐量、加速卷积核的计算效率,减小数据的重复传输,降低系统功耗,均属于本发明实施例所要保护的范围。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种卷积神经网络加速系统,其特征在于,包括:控制模块、存储模块、PE单元阵列、多个开关模块、以及总线;
所述总线包括至少一条第一总线和多条第二总线;
所述第一总线分别与多个所述开关模块和所述控制模块电连接,用于:将所述控制模块根据预设的数据传输方式确定的第一控制信号传输至对应连接的所述开关模块中;
所述存储模块包括多个存储单元,至少部分所述存储单元中存储有不同类型的数据,每条所述第二总线分别与一个所述存储单元和多个所述开关模块电连接,不同所述第二总线传输不同类型的数据,所述第二总线用于:将对应连接的所述存储单元中存储的数据传输至对应连接的所述开关模块中,以及将对应连接的所述开关模块输出的第一计算结果传输至对应连接的所述存储单元中;
每个所述PE单元与多个所述开关模块电连接,且与同一所述PE单元电连接的各所述开关模块与不同的所述第二总线电连接,所述开关模块用于:在所述第一总线传输的所述第一控制信号的控制下,将对应电连接的所述第二总线中传输的数据传输至所述PE单元中,以使所述PE单元对接收到的数据进行计算,以及将部分所述PE单元输出的所述第一计算结果传输至对应电连接的所述第二总线中。
2.如权利要求1所述的系统,其特征在于,所述总线还包括位于列方向上任意相邻两个PE单元之间的第三总线,用于:
将任一PE单元计算后得到的第二计算结果传输至相邻的PE单元中,以使相邻的PE单元对接收到的第二计算结果与自身得到的第二计算结果进行累加处理,使得每列PE单元中最后完成累加处理的PE单元输出所述第一计算结果。
3.如权利要求1所述的系统,其特征在于,与不同所述PE单元连接的所述开关模块的数量相同。
4.如权利要求3所述的系统,其特征在于,与同一所述PE单元连接的所述开关模块的数量与所述第二总线的设置数量相同。
5.如权利要求1所述的系统,其特征在于,各所述存储单元中存储的数据类型包括:输入特征数据、权值数据、所述第一计算结果、以及预输入数据;
所述第二总线设置有四个,分别用于传输所述输入特征数据、所述权值数据、所述第一计算结果和所述预输入数据。
6.如权利要求5所述的系统,其特征在于,所述存储模块包括:第一存储单元、第二存储单元、以及设置于所述第一存储单元与所述第二存储单元之间的切换单元;
所述第一存储单元和所述第二存储单元中均存储有所述第一计算结果,其中,上一次卷积运算后得到的所述第一计算结果作为当前卷积运算的所述预输入数据;
所述切换单元用于:
在所述控制模块的控制下,调整用于传输所述预输入数据的第二总线和用于传输所述第一计算结果的第二总线,分别与所述第一存储单元和所述第二存储单元的电连接关系,以使上一次卷积运算后得到的所述第一计算结果作为当前卷积运算的所述预输入数据,通过用于传输所述预输入数据的第二总线进行传输,以及在当前卷积运算后得到的第一计算结果,通过用于传输所述第一计算结果的第二总线传输至对应电连接的所述第一存储单元或所述第二存储单元中。
7.如权利要求1所述的系统,其特征在于,所述开关模块包括:标记设置单元、判断单元、以及开关单元;所述开关单元具有数据输入端、数据输出端;
所述标记设置单元分别与所述判断单元和所述第一总线电连接,用于:接收所述第一总线传输的第一甲控制信号,确定所述第一甲控制信号中携带的标记;
所述判断单元还分别与所述开关单元和所述第一总线电连接,用于:
判断所述第一总线传输第一乙控制信号中携带的标记与所述第一甲控制信号中携带的标记是否相同;
若是,则控制所述开关单元处于闭合状态,以使所述数据输入端与所述数据输出端电连接,将所述数据输入端输入的数据传输至所述PE单元中;
若否,则控制所述开关单元处于断开状态,以使所述数据输入端与所述数据输出端断开;
其中,所述第一控制信号包括所述第一甲控制信号和所述第一乙控制信号。
8.如权利要求7所述的系统,其特征在于,所述开关模块还具有指示信号输出端;
所述判断单元与所述指示信号输出端电连接,还用于:
在判断出所述第一总线传输第一乙控制信号中携带的标记与所述第一甲控制信号中携带的标记相同时,控制所述指示信号输出端输出有效信号;
在判断出所述第一总线传输第一乙控制信号中携带的标记与所述第一甲控制信号中携带的标记不同时,控制所述指示信号输出端输出无效信号。
9.如权利要求7所述的系统,其特征在于,所述标记设置单元为寄存器,所述判断单元为逻辑处理器。
10.如权利要求1-9任一项所述的系统,其特征在于,所述控制模块包括逻辑电路、存储器和处理器;
所述存储模块为静态随机存取存储器。
11.一种卷积神经网络加速方法,其特征在于,采用如权利要求1-10任一项所述的卷积神经网络加速系统实现,该方法包括:
控制模块根据预设的数据传输方式确定第一控制信号,并通过第一总线将所述第一控制信号传输至对应连接的各开关模块中;
第二总线将对应连接的存储单元中存储的数据传输至对应连接的所述开关模块中;其中,存储模块包括多个所述存储单元,至少部分所述存储单元中存储有不同类型的数据,每条所述第二总线分别与一个所述存储单元和多个所述开关模块电连接,不同所述第二总线传输不同类型的数据;
所述开关模块在所述第一总线传输的所述第一控制信号的控制下,将对应电连接所述第二总线中传输的数据传输至PE单元中,以使所述PE单元对接收到的数据进行计算;
在部分PE单元输出第一计算结果之后,第一开关模块将所述计算结果传输至对应电连接的所述第二总线中,以使该第二总线将所述计算结果传输至对应连接的所述存储单元中;
其中,每个所述PE单元与多个所述开关模块电连接,且与同一所述PE单元电连接的各所述开关模块与不同的所述第二总线电连接,所述第一计算结果为对每列中的各所述PE单元在进行卷积计算后得到的卷积计算结果的累加计算结果,所述第一开关模块为与输出所述第一计算结果的PE单元对应连接的开关模块。
12.如权利要求11所述的方法,其特征在于,所述预设的数据传输方式为:
在各所述存储单元中存储的数据类型包括:输入特征数据、权值数据、所述第一计算结果、以及预输入数据时,每一个权值通道的各行权值数据通过对应的所述第二总线依次传输至对应的各行PE单元中,每一个权值通道的每一行中的各权值数据通过对应的所述第二总线同时传输至每一行的各PE单元中;
将全部所述PE单元划分为多个PE组,每个所述PE组包括至少一个所述PE单元;对于包括多个所述PE单元的所述PE组:其中的各所述PE单元沿第一方向排列,所述第一方向平行于所述PE单元阵列中的副对角线方向,且沿着所述第一方向排列的各所述PE单元属于同一所述PE组;
所述输入特征数据通过对应的所述第二总线传输,且每一个数据通道的各行所述输入特征数据依次传输至各所述PE组中,每一个数据通道的每一行中的各输入特征数据同时传输至对应所述PE组的各所述PE单元中,每一个数据通道的不同行的所述输入特征数据传输至不同的所述PE组中;
在需要对第n+1个权值通道的权值数据与输入特征数据进行计算,且每列PE单元中位于首行的PE单元输出所述第一计算结果时,将所述预输入数据通过对应的所述第二总线传输至PE单元阵列中最后一行的各PE单元中;其中,n为大于1的整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910731088.7A CN112348160B (zh) | 2019-08-08 | 2019-08-08 | 一种卷积神经网络加速方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910731088.7A CN112348160B (zh) | 2019-08-08 | 2019-08-08 | 一种卷积神经网络加速方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112348160A CN112348160A (zh) | 2021-02-09 |
CN112348160B true CN112348160B (zh) | 2024-04-12 |
Family
ID=74366844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910731088.7A Active CN112348160B (zh) | 2019-08-08 | 2019-08-08 | 一种卷积神经网络加速方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112348160B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809437A (en) * | 1995-06-07 | 1998-09-15 | Automotive Technologies International, Inc. | On board vehicle diagnostic module using pattern recognition |
CN102150153A (zh) * | 2008-07-23 | 2011-08-10 | 原子能和能源替代品委员会 | 具有基本处理器的数据处理电路,包括该电路的阵列的数据处理组件以及包括该组件的矩阵传感器 |
CN108182471A (zh) * | 2018-01-24 | 2018-06-19 | 上海岳芯电子科技有限公司 | 一种卷积神经网络推理加速器及方法 |
CN108268943A (zh) * | 2017-01-04 | 2018-07-10 | 意法半导体股份有限公司 | 硬件加速器引擎 |
CN108268941A (zh) * | 2017-01-04 | 2018-07-10 | 意法半导体股份有限公司 | 深度卷积网络异构架构 |
WO2019067980A1 (en) * | 2017-09-29 | 2019-04-04 | Crossbar, Inc. | ARCHITECTURE OF COMPUTER MEMORY |
CN110059809A (zh) * | 2018-10-10 | 2019-07-26 | 北京中科寒武纪科技有限公司 | 一种计算装置及相关产品 |
-
2019
- 2019-08-08 CN CN201910731088.7A patent/CN112348160B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809437A (en) * | 1995-06-07 | 1998-09-15 | Automotive Technologies International, Inc. | On board vehicle diagnostic module using pattern recognition |
CN102150153A (zh) * | 2008-07-23 | 2011-08-10 | 原子能和能源替代品委员会 | 具有基本处理器的数据处理电路,包括该电路的阵列的数据处理组件以及包括该组件的矩阵传感器 |
CN108268943A (zh) * | 2017-01-04 | 2018-07-10 | 意法半导体股份有限公司 | 硬件加速器引擎 |
CN108268941A (zh) * | 2017-01-04 | 2018-07-10 | 意法半导体股份有限公司 | 深度卷积网络异构架构 |
WO2019067980A1 (en) * | 2017-09-29 | 2019-04-04 | Crossbar, Inc. | ARCHITECTURE OF COMPUTER MEMORY |
CN108182471A (zh) * | 2018-01-24 | 2018-06-19 | 上海岳芯电子科技有限公司 | 一种卷积神经网络推理加速器及方法 |
CN110059809A (zh) * | 2018-10-10 | 2019-07-26 | 北京中科寒武纪科技有限公司 | 一种计算装置及相关产品 |
Non-Patent Citations (4)
Title |
---|
Rethinking NoCs for Spatial Neural Network Accelerators;Hyoukjun Kwon等;《2017 Association for Computing Machinery》;第1-8页 * |
卷积神经网络处理器的设计与实现;阎强;《中国优秀硕士学位论文全文数据库 信息科技辑》(第2期);第I140-170页 * |
受施工扰动影响土体环境稳定理论与变形控制;孙钧 等;《同济大学学报(自然科学版)》;第2004卷(第10期);第1261-1269页 * |
深度学习卷积神经网络VLIW加速器设计与实现;石润彬;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》(第1期);第C030-41页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112348160A (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230010315A1 (en) | Application specific integrated circuit accelerators | |
EP3364306B1 (en) | Parallel processing of reduction and broadcast operations on large datasets of non-scalar data | |
CN108510064A (zh) | 包括多个核心处理模块的人工神经网络的处理系统及方法 | |
CN108009106A (zh) | 神经网络计算模组 | |
CN106951961A (zh) | 一种粗粒度可重构的卷积神经网络加速器及系统 | |
CN101925877A (zh) | 对数据执行排列运算的装置与方法 | |
CN106846239A (zh) | 实现图像卷积的编码型闪存系统及工作方法 | |
CN104980370B (zh) | 通过多级交换网络的通信的网络资源需求 | |
CN112559046A (zh) | 数据处理装置及人工智能处理器 | |
CN112348160B (zh) | 一种卷积神经网络加速方法及系统 | |
US11934482B2 (en) | Computational memory | |
CN112149047A (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN110909872A (zh) | 集成电路芯片装置及相关产品 | |
CN107957977A (zh) | 一种计算方法及相关产品 | |
US11256503B2 (en) | Computational memory | |
US11308388B2 (en) | Electronic circuit, particularly for the implementation of neural networks with multiple levels of precision | |
CN102737007B (zh) | 一种支持多个数据单元任意置换的方法和装置 | |
CN110704024B (zh) | 一种矩阵处理装置、方法及处理设备 | |
CN114037054A (zh) | 一种数据处理方法、装置、芯片、设备及介质 | |
CN106971227B (zh) | 神经元信息接收方法和系统 | |
CN113561185B (zh) | 一种机器人控制方法、装置及存储介质 | |
CN109962500A (zh) | 基于最优控制理论的直流输电系统频率控制方法与装置 | |
CN117648956B (zh) | 脉冲神经网络模型资源映射方法、装置和存储介质 | |
CN110598175B (zh) | 一种基于图计算加速器的稀疏矩阵列向量比较装置 | |
KR20220032089A (ko) | 주문형 집적 회로의 이중 모드 동작 |
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 |