CN111008697B - 一种卷积神经网络加速器实现架构 - Google Patents
一种卷积神经网络加速器实现架构 Download PDFInfo
- Publication number
- CN111008697B CN111008697B CN201911076768.6A CN201911076768A CN111008697B CN 111008697 B CN111008697 B CN 111008697B CN 201911076768 A CN201911076768 A CN 201911076768A CN 111008697 B CN111008697 B CN 111008697B
- Authority
- CN
- China
- Prior art keywords
- memory
- multiplier
- arithmetic unit
- module
- output
- 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
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
-
- 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
本发明涉及一种卷积神经网络加速器实现架构,包括:用于存储权值数据的第一存储器、第二存储器、第三存储器和第四存储器;用于存储特征图数据的第六存储器、第八存储器和第十存储器,用于进行卷积运算的第五运算器、第七运算器、第九运算器和第十一运算器。本发明提供的卷积神经网络加速器实现架构;能够减少存储资源消耗;利用卷积神经网络内部输入特征图之间的并行性,输出特征图之间的并行性,实现并行度的灵活配置。
Description
技术领域
本发明涉及一种卷积神经网络加速器实现架构,属于集成电路设计技术领域。
背景技术
近些年来,深度学习在图像识别等领域获得了快速的发展。而卷积神经网络作为深度学习领域中重要的算法之一,在图像识别,图像定位等领域占据了重要地位。由于卷积神经网络的计算量与存储量都非常大,因此通过通用计算平台CPU处理卷积神经网络存在着性能不足的缺点。与此同时,GPU在处理卷积神经网络中能获得高性能,但GPU存在着功耗大的缺点。而ASIC具有高能效比的优点,但是通用性不足。
卷积神经网络主要由卷积层,激活层,池化层,归一化层,全连接层等构成。卷积层是卷积神经网络的核心部分,在卷积层中,对于每一个输出特征图,会有不同的输入特征图和不同的卷积核卷积,所得到的结果会经过相加来得到一张输出特征图。激活层和池化层一般在卷积层后面,激活层对卷积得到的结果进行非线性化操作。池化层可以减少特征图的尺寸,通常的池化方法包括平均池化和最大池化。归一化层将一层的输出特征图做数据归一化。全连接层一般处于卷积神经网络中的最后几层,通常用作分类层,分类对象的数目就是全连接层的输出神经元数目。由此可见,卷积神经网络算法具有复杂性、数据量大和运算规模大的特点。
发明内容
本发明要解决技术问题是:克服上述技术的缺点,提供一种以PFGA作为计算平台,从而在功耗和性能之间取得较好平衡的卷积神经网络加速器实现架构。
为了解决上述技术问题,本发明提出的技术方案是: 一种卷积神经网络加速器实现架构,包括:用于存储权值数据的第一存储器、第二存储器、第三存储器和第四存储器;用于存储特征图数据的第六存储器、第八存储器和第十存储器,用于进行卷积运算的第五运算器、第七运算器、第九运算器和第十一运算器;所述第一存储器的输出连接所述第五运算器;所述第五运算器的输出连接所述第六存储器;所述第二存储器和第六存储器的输出连接所述第七运算器;所述第七运算器的输出连接所述第八存储器;所述第三存储器和第八存储器的输出连接所述第九运算器,所述第九运算器的输出连接所述第十存储器;所述第四存储器和所述第十存储器的输出连接所述第十一运算器;所述第一存储器、第五运算器和第六存储器构成第一层运算;所述第二存储器、第六存储器、第七运算器和第八存储器构成第二层运算;所述第三存储器、第八存储器、第九运算器和第十存储器构成第二层运算;所述第四存储器、第十存储器和第十一运算器构成第四层运算。
上述方案进一步的改进在于:所述第五运算器、第七运算器、第九运算器和第十一运算器由FPGA中的DSP构成。
上述方案进一步的改进在于:所述第一层运算、第二层运算、第三层运算和第四层运算中,奇数层运算开始同时进行计算,并在计算完成后停止计算,而后偶数层开始同时进行计算,并在计算完成后停止计算,之后奇数层再次开始同时进行计算;如此循环,形成奇数层与偶数层交替进行计算的循环。
上述方案进一步的改进在于:所述第一存储器、第二存储器、第三存储器、第四存储器、第六存储器、第八存储器和第十存储器由FPGA中的存储器构成。
本发明提供的卷积神经网络加速器实现架构,通过不同层之间的交替运算,可以减少存储器的资源消耗。在计算过程中将卷积层,激活层,池化层的所有操作全部进行完毕后再将运算结果进行存储,可以减小存储器的资源消耗。通过利用卷积神经网络内部输入特征图之间的并行性和输出特征图之间的并行性,可以为每层网络配置特定的不同的并行度,从而使计算资源得到充分利用,使得计算性能和吞吐量得到提高。通过将卷积神经网络中的偏置数据和权值数据放在一起,可以减小卷积之后的加偏置操作所占用的时间,提高计算速度。
附图说明
下面结合附图对本发明作进一步说明。
图1是本发明一个优选的实施例结构示意图。
图2是图1中第二层运算并行结构示意图。
图3是图2中各单元之间的控制关系结构示意图。
图4是卷积结果加偏置的操做结构示意图。
具体实施方式
实施例
本实施例的卷积神经网络加速器实现架构,如图1,包括:用于存储权值数据的存储器101、存储器102、存储器103和存储器104;用于存储特征图数据的存储器106、存储器108和存储器110,用于进行卷积运算的运算器105、运算器107、运算器109和运算器111;存储器101的输出连接运算器105;运算器105的输出连接存储器106;存储器102和存储器106的输出连接运算器107;运算器107的输出连接存储器108;存储器103和存储器108的输出连接运算器109,运算器109的输出连接存储器110;存储器104和存储器110的输出连接运算器111;其中,存储器101、运算器105和存储器106构成第一层运算;存储器102、存储器106、运算器107和存储器108构成第二层运算;存储器103、存储器108、运算器109和存储器110构成第二层运算;存储器104、存储器110和运算器111构成第四层运算。
其中,运算器105、运算器107、运算器109和运算器11由FPGA中的DSP构成。存储器101、存储器102、存储器103、存储器104、存储器106、存储器108和存储器110由FPGA中的存储器构成。
如图1,本实施例的卷积神经网络加速器实现架构每一层计算都采用不同的计算资源,FPGA中的计算模块被分配到不同层之间进行计算。采用流水线结构,在一张输入图像没有经过所有层计算结束时即可以送入下一张图。计算使用FPGA中的DSP模块进行计算。一张图会经过不同层计算模块,每次经过计算模块之后的计算结果存储到存储器中。
当计算开始进行时,所有奇数层运算开始同时进行计算,并在计算完成后停止计算,而后所有偶数层开始同时进行计算,并在计算完成后停止计算,之后奇数层再次开始同时进行计算;如此循环,形成奇数层与偶数层交替进行计算的循环。
如图2,以第二层运算的102、106、107、108为例。图1中的102存储器对应于图2的204,205,206,207存储器,他们作用都是存储器权值数据。图1中的106存储器对应于图2中的201,202存储器,他们作用都是存储特征图。图1中的108存储器对应于图2中的218,219存储器,他们作用都是存储特征图。图1中的107运算器对应于图2中的208,209,210,211,212,213,214,215,216,217模块,他们共同完成了计算功能。存储输入特征图经的存储器201和202的输出数据经过选择器203之后与乘法器208,209,210,211的输入相连,存储权值的存储器204,205,206,207直接与运算器208,209,210,211的输入相连。乘法器208,209的输出与加法器212的输入相连。加法器212的输出送给激活模块214的输入,激活模块214的输出送给池化模块216的输入,池化模块216的输出与存储器218相连。
如图3,表明了图2中各个单元之间的控制关系。存储器303与图2中的204,205,206,207对应。存储器310与201,202对应。乘法器304与208,209,210,211对应。加法器305与212,213对应。激活池化模块306与214,215,216,217对应。存储器307与218,219对应。
控制模块301与权值地址产生模块302,输入图数据地址产生模块309相连。权值地址产生模块302和输入图数据地址产生模块309分别与存储器303和存储器310进行相连。乘法器304和加法器305参与运算。加法器305的输出与寄存器308的输入相连,寄存器308的输出与加法器305的输入相连,实现累加功能。加法器305的输出与激活池化模块306相连。激活池化模块306的输出存入存储器307。地址产生器311的输出与存储器307相连。
如图4,表示了将卷积中的偏置的计算融入到正常的卷积计算过程中。图4中的存储器401与310对应,存储器402与303对应。乘法器404与304对应。
存储输入特征图数据的存储器401与1都与选择器403相连。选择器403的输出与乘法器404的输入相连。存储权值的存储器402输出与乘法器404的输入相连,存放偏置的位置在权值数据的末尾。
图2中输出特征图之间的并行度为2,表示同时有2个输出特征图在同时计算。输入特征图之间的并行度为2,代表两个输入特征图在同时计算。在实际操作中,这两个并行度可以进行灵活地调整。乘法器208,209,210,211分别从存储器204,205,206,207中读取权值数据,其中权值数据预先在软件中处理,将权值按照特定的顺序写进存储器初始化文件中,乘法器208,209,210,211在取数的时候顺序取数。对于输入特征图,由存储器201,202存储,每一个输入特征图都会参与到所有输出特征图的计算中,在不同时刻输入特征图需要连接到不同的乘法器模块进行计算。因此输入特征图的数据通过选择器203模块后输送到不同的计算单元。通过乘法器单元的乘法计算后,属于同一个输出特征图的不同的通道的数据会进行相加求和,如乘法器208,209的结果通过加法器212求和,乘法器210,211的结果通过加法器213求和。
激活模块214,215对卷积产生的值进行与0的大小比较,对于输入为大于0的数值输出取原来数值,输入为小于0的数值时输出取0。池化模块216,217分别将激活模块214,215输出的值进行池化操作。首先池化模块会将激活模块产生的值写入存储器中,当一段时间之后,属于同一个输出特征图里的相同位置的值再次到来后,原来输出特征图存储器的值会被再次取出,并且与当前的值进行比较,比较结果中较大的值会被写入存储器中。
在图3中,控制模块301与地址产生器302,309,311相连。其中地址产生器302,309是输入特征图存储器的地址产生器,地址产生器311是输出特征图存储器307的地址产生器。存储器303根据地址产生器302的地址输出数据,输出的数据送至乘法器304参与运算,乘法器304的输出输送给加法器305。加法器305的输出端通过寄存器308接到输入端实现累加功能。控制模块301会产生一个控制信号给加法器305,当属于某一个像素点的值计算完毕后,控制信号会让累加器停止累加,转而计算下一个像素值,重新开始新的一轮累加。控制信号可以保证在累加过程不中断的情况下连续计算多个像素点的值。输入特征图的数据和权值数据位宽是16bit,经过累加后位宽会增加,增加后的运算结果设定为44bit,保证计算结果不会溢出。44bit的运算结果根据整数位宽和小数点位置进行恰当地截取,截取得到16bit的运算结果。
图4说明了将卷积结果加偏置的操作。因为卷积核大小通常是奇数,而在一次取出两个数的情况下,因此会在最后一个周期空余一个数,将加偏置的操作融合到最后一次乘累加运算中。图4中存储器401存储的是输入特征图数据,I1-I9代表了9个值,这9个值与常数1通过选择器403进行选择,当计算正常数据的时候,与存储权值数据的存储器402同时输送到乘法器404中进行计算,I1-I9分别与W1-W9相乘。当需要进行偏置计算的时候,选择器403选择常数1输出,同时由于在存储权值的存储器在最后一个位置会放入偏置,因此当卷积操作完成后,偏置值会送入乘法器中。偏置与1相乘得到结果并与之前的结果相加,因此加偏置的操作完成。
本发明不局限于上述实施例。凡采用等同替换形成的技术方案,均落在本发明要求的保护范围。
Claims (4)
1.一种卷积神经网络加速器实现架构,其特征在于,包括:用于存储权值数据的第一存储器、第二存储器、第三存储器和第四存储器;用于存储特征图数据的第六存储器、第八存储器和第十存储器,用于进行卷积运算的第五运算器、第七运算器、第九运算器和第十一运算器;所述第一存储器的输出连接所述第五运算器;所述第五运算器的输出连接所述第六存储器;所述第二存储器和第六存储器的输出连接所述第七运算器;所述第七运算器的输出连接所述第八存储器;所述第三存储器和第八存储器的输出连接所述第九运算器,所述第九运算器的输出连接所述第十存储器;所述第四存储器和所述第十存储器的输出连接所述第十一运算器;所述第一存储器、第五运算器和第六存储器构成第一层运算;所述第二存储器、第六存储器、第七运算器和第八存储器构成第二层运算;所述第三存储器、第八存储器、第九运算器和第十存储器构成第二层运算;所述第四存储器、第十存储器和第十一运算器构成第四层运算;
所述第二层运算中的所述第二存储器包括第204权值存储器、第205权值存储器、第206权值存储器和第207权值存储器;所述第六存储器包括第201特征图存储器和第202特征图存储器;所述第八存储器包括第218特征图存储器和第219特征图存储器;所述第七运算器包括第208乘法器、第209乘法器、第210乘法器、第211乘法器、第212加法器、第213加法器、第214激活模块、第215激活模块、第216池化模块、第217池化模块;所述第201特征图存储器和第202特征图存储器的输出连接第203选择器;所述第203选择器的输出连接所述第208乘法器、第209乘法器、第210乘法器、第211乘法器的一个输入;所述第208乘法器、第209乘法器、第210乘法器、第211乘法器的另一个输入分别连接所述第204权值存储器、第205权值存储器、第206权值存储器和第207权值存储器的输出;所述第208乘法器、第209乘法器的输出连接所述第212加法器,所述第212加法器的输出连接所述第214激活模块,所述第214激活模块的输出连接所述第216池化模块;所述第216池化模块的输出连接所述第218特征图存储器;所述第210乘法器、第211乘法器的输出连接所述第213加法器,所述第213加法器的输出连接所述第215激活模块,所述第215激活模块的输出连接所述第217池化模块;所述第217池化模块的输出连接所述第219特征图存储器;
所述第二层运算中还包括控制模块、权值地址产生模块、输入图数据地址产生模块;所述控制模块与所述权值地址产生模块、输入图数据地址产生模块相连;第204权值存储器、第205权值存储器、第206权值存储器、第207权值存储器和第201特征图存储器和第202特征图存储器均与所述权值地址产生模块和输入图数据地址产生模块相连;所述第208乘法器、第209乘法器、第210乘法器、第211乘法器分别进行权值与特征图的乘法运算;所述第208乘法器、第209乘法器、第210乘法器、第211乘法器通过所述第212加法器、第213加法器进行加法运算;所述第212加法器、第213加法器输出均连接有寄存器,各所述寄存器的输出与分别所述第212加法器、第213加法器的输入相连,实现累加功能;所述第212加法器、第213加法器的输出分别通过第214激活模块、第215激活模块、第216池化模块、第217池化模块进行激活池化运算;所述第214激活模块、第215激活模块、第216池化模块、第217池化模块的激活池化后输出分别存入第218特征图存储器和第219特征图存储器;第218特征图存储器和第219特征图存储器均与地址产生器的输出相连。
2.根据权利要求1所述的卷积神经网络加速器实现架构,其特征在于:所述第五运算器、第七运算器、第九运算器和第十一运算器由FPGA中的DSP构成。
3.根据权利要求1所述的卷积神经网络加速器实现架构,其特征在于:所述第一层运算、第二层运算、第三层运算和第四层运算中,奇数层运算开始同时进行计算,并在计算完成后停止计算,而后偶数层开始同时进行计算,并在计算完成后停止计算,之后奇数层再次开始同时进行计算;如此循环,形成奇数层与偶数层交替进行计算的循环。
4.根据权利要求1所述的卷积神经网络加速器实现架构,其特征在于:所述第一存储器、第二存储器、第三存储器、第四存储器、第六存储器、第八存储器和第十存储器由FPGA中的存储器构成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911076768.6A CN111008697B (zh) | 2019-11-06 | 2019-11-06 | 一种卷积神经网络加速器实现架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911076768.6A CN111008697B (zh) | 2019-11-06 | 2019-11-06 | 一种卷积神经网络加速器实现架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111008697A CN111008697A (zh) | 2020-04-14 |
CN111008697B true CN111008697B (zh) | 2022-08-09 |
Family
ID=70111381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911076768.6A Active CN111008697B (zh) | 2019-11-06 | 2019-11-06 | 一种卷积神经网络加速器实现架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111008697B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113240103B (zh) * | 2021-06-25 | 2022-10-04 | 清华大学 | 神经网络池化电路 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681628B (zh) * | 2016-01-05 | 2018-12-07 | 西安交通大学 | 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法 |
CN107066239A (zh) * | 2017-03-01 | 2017-08-18 | 智擎信息系统(上海)有限公司 | 一种实现卷积神经网络前向计算的硬件结构 |
US20190095776A1 (en) * | 2017-09-27 | 2019-03-28 | Mellanox Technologies, Ltd. | Efficient data distribution for parallel processing |
KR102487535B1 (ko) * | 2018-02-20 | 2023-01-12 | 삼성전자주식회사 | 시스톨릭 배열(Systolic Array)을 이용하여 딥 러닝(Deep Learning) 연산을 수행하는 방법 및 장치 |
CN108665059A (zh) * | 2018-05-22 | 2018-10-16 | 中国科学技术大学苏州研究院 | 基于现场可编程门阵列的卷积神经网络加速系统 |
CN109032781A (zh) * | 2018-07-13 | 2018-12-18 | 重庆邮电大学 | 一种卷积神经网络算法的fpga并行系统 |
-
2019
- 2019-11-06 CN CN201911076768.6A patent/CN111008697B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111008697A (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105892989B (zh) | 一种神经网络加速器及其运算方法 | |
CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
CN110458279B (zh) | 一种基于fpga的二值神经网络加速方法及系统 | |
US20190188237A1 (en) | Method and electronic device for convolution calculation in neutral network | |
CN108733348B (zh) | 融合向量乘法器和使用其进行运算的方法 | |
CN107633297B (zh) | 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器 | |
CN109409512B (zh) | 一种可灵活配置的神经网络计算单元、计算阵列及其构建方法 | |
US20230026006A1 (en) | Convolution computation engine, artificial intelligence chip, and data processing method | |
CN106445471A (zh) | 处理器和用于在处理器上执行矩阵乘运算的方法 | |
US20210350204A1 (en) | Convolutional neural network accelerator | |
CN107704916A (zh) | 一种基于fpga实现rnn神经网络的硬件加速器及方法 | |
CN108170640B (zh) | 神经网络运算装置及应用其进行运算的方法 | |
CN112668708B (zh) | 一种提高数据利用率的卷积运算装置 | |
EP3674982A1 (en) | Hardware accelerator architecture for convolutional neural network | |
CN110555516A (zh) | 基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法 | |
CN111738433A (zh) | 一种可重配置的卷积硬件加速器 | |
CN107967132A (zh) | 一种用于神经网络处理器的加法器和乘法器 | |
CN116710912A (zh) | 一种矩阵乘法器及矩阵乘法器的控制方法 | |
CN111008697B (zh) | 一种卷积神经网络加速器实现架构 | |
Xiao et al. | FPGA-based scalable and highly concurrent convolutional neural network acceleration | |
CN116167419A (zh) | 一种兼容N:M稀疏的Transformer加速器的架构及加速方法 | |
CN111222090B (zh) | 卷积计算模块、神经网络处理器、芯片和电子设备 | |
Jiang et al. | Hardware implementation of depthwise separable convolution neural network | |
CN115293978A (zh) | 卷积运算电路和方法、图像处理设备 | |
CN112801276B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100044 1-609, floor 6, building 1, courtyard 42, Xiejie street, gaoliangqiao, Haidian District, Beijing Applicant after: Beijing Zhongke Shengxin Technology Co.,Ltd. Address before: Room 403-14, 4th floor, building 6, yard 54, Shijingshan Road, Shijingshan District, Beijing 100043 Applicant before: Beijing Zhongke Shengxin Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |