CN108256628B - 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 - Google Patents
基于多播片上网络的卷积神经网络硬件加速器及其工作方法 Download PDFInfo
- Publication number
- CN108256628B CN108256628B CN201810036727.3A CN201810036727A CN108256628B CN 108256628 B CN108256628 B CN 108256628B CN 201810036727 A CN201810036727 A CN 201810036727A CN 108256628 B CN108256628 B CN 108256628B
- Authority
- CN
- China
- Prior art keywords
- mode
- data
- result
- module
- convolution
- 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/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
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)
- Image Analysis (AREA)
- Complex Calculations (AREA)
- Microcomputers (AREA)
Abstract
本发明公开了一种基于多播片上网络的可重构卷积神经网络硬件加速器及其工作方式,其特征是:多播片上网络是由底层网络与上层网络所构成的双层片上网络网络,并实现从一个源节点同时向多个目的节点的传输;基于多播片上网络的可重构卷积神经网络硬件加速器包括通讯接口模块、输入处理模块、输出处理模块、配置模块、数据存储器、可重构计算模块、存储控制模块、激活函数模块、权重存储器。本发明利用卷积神经网络硬件加速器对多播片上网络所传输的数据进行加速处理,从而充分发掘神经网络计算的并行性,获得更快的数字识别速度,增强可重用性和扩展性。
Description
技术领域
本发明属于集成电路片上网络的通信技术领域,尤其涉及基于多播片上网络的卷积神经网络硬件加速器及其工作方法。
背景技术
卷积神经网络源自于人工神经网络。作为一种多层感知器,它对图像的平移、按比例缩放、倾斜等形式的变形具有很强的适应性,能够快速的提取图像的特征。它采用权值共享网络结构,这种结构与生物神经网络结构具有很强的相似性,这样的结构减少了权值的数量,从而降低了网络模型的复杂度,当对网络输入多维图像时这样的优点体现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。
数字虽然笔画简单,类型只有十种。但由于数字笔画比较简单,差别相对较小,手写数字形状的千差万别导致识别难度增大,精度较低。而使用卷积神经网络可以大大提高识别精度,目前识别率已经可以达到99.33%。但是,在有些识别过程中,需要很快的识别速度,并且高精度。
然而,软件的卷积神经网络识别图片需要的时间较高,无法充分发掘神经网络的并行性,从而在实时性和功耗方面并不能满足一些实际需要。在基于硬件的卷积神经网络识别图片方面,FPGA实现神经网络是一个新的方向。计算机工程期刊第43卷第一期的《基于FPGA的卷积神经网络加速器》提出了一种基于FPGA的卷积神经网络加速器实现方案,该加速器虽然在计算神经网络时获得了较高的速度,但在进行神经网络计算时对卷积计算的并行性利用程度不高,故在卷积计算速度方面还存在很大的提升空间,同时该加速器采用的结构没有将通讯与计算分离,重用性不强。
发明内容
本发明为了解决上述现有技术存在的不足之处,提出一种基于多播片上网络的卷积神经网络硬件加速器及其工作方法,以期利用卷积神经网络硬件加速器对多播片上网络所传输的数据进行加速处理,从而充分发掘神经网络计算的并行性,获得更快的数字识别速度,增强可重用性和扩展性。
本发明为达到上述目的所采用的技术方案是:
本发明一种基于多播片上网络的卷积神经网络硬件加速器,所述多播片上网络是由N×M的底层二维网络和L×S的上层网络构成;其中M和N为大于等于2的整数;L和S为大于等于1的整数;且1≤L<N,1≤S<M;
所述底层二维网络共有N×M个节点路由器,并分为L×S个区;每个区内包含一个中间节点路由器和若干个普通节点路由器;所述普通节点路由器包含五个水平传输方向;所述中间节点路由器包含五个水平传输方向和一个向上传输方向;所述上层网络均为传输节点路由器;所述传输节点路由器包含五个水平传输方向和一个向下传输方向;每个区内的中间节点路由器与相应的传输节点路由器互相连接;其特点是:
所述卷积神经网络硬件加速器分别与所述底层二维网络中的N×M个节点路由器相连;所述卷积神经网络硬件加速器包括:通讯接口模块、输入处理模块、输出处理模块、数据存储器组、可重构计算模块、存储控制模块、激活函数模块、权重存储器;
配置所述卷积神经网络硬件加速器在初始化阶段分为五种模式:
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n个特征图存储器和结果存储器,并将目标图数据写入所述目标图存储器中;所述存储控制模块将第一权重数据写入所述权重存储器中,在所述激活函数模块中设置一种激活函数,从而配置成第一种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-1个特征图存储器和结果存储器;所述存储控制模块将第二权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第二种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-2个特征图存储器和结果存储器;所述存储控制模块将第三权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第三种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-2个特征图存储器和结果存储器;所述存储控制模块将第四权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第四种模式;
所述卷积神经网络硬件加速器的存储控制模块不使用数据存储器组、权重存储器和激活函数模块,从而配置成第五种模式;
第一个卷积层计算:
在第一种模式下,所述存储控制模块从所述目标图存储器中读取所述目标图数据并传递给所述输出处理模块和可重构计算模块;所述输出处理模块将所述目标图数据进行打包处理并发送至所述通讯接口模块;所述可重构计算模块对所述目标图数据进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第一特征图数据;所述存储控制模块将所述第一特征图数据存入第一个特征图存储器中;
在第二种模式下,所述输入处理模块接收在第一种模式下的通讯接口模块传输的打包数据并进行解包处理,得到目标图数据并发送给所述可重构计算模块;所述可重构计算模块对所述目标图数据进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第一特征图数据;所述存储控制模块将所述第一特征图数据存入第一个特征图存储器中;
第二个卷积层计算:
在第一种模式下,所述存储控制模块从所述第一个特征图存储器中读取所述第一特征图数据发送给所述可重构计算模块和输出处理模块;所述可重构计算模块对所述第一特征图数据进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第二特征图数据并发送给存储控制模块;所述存储控制模块将所述第二特征图数据存入第二个特征图存储器中;所述输出处理模块将所述第一特征图数据进行打包处理后发送给所述通讯接口模块;
在第二种模式下,所述存储控制模块从所述第一个特征图存储器中读取所述第一特征图数据发送给所述可重构计算模块和输出处理模块;所述输入处理模块依次接收第一种模式下和第二种模式下的打包数据并进行解包处理,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给所述可重构计算模块;所述可重构计算模块对所述第一特征图数据分别进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第二特征图数据并发送给存储控制模块;所述存储控制模块将所述第二特征图数据存入第二个特征图存储器中;所述输出处理模块将所述第一特征图数据进行打包处理后发送给所述通讯接口模块;
在第三种模式下,所述输入处理模块依次接收第一种模式下和第二种模式下的打包数据并进行解包处理,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给所述可重构计算模块;所述可重构计算模块对两种模式下的第一特征图数据分别进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到两种模式下的第二特征图数据并发送给存储控制模块;所述存储控制模块将所述两种模式下的第二特征图数据存入第二个特征图存储器中;
在第四种模式下,所述输入处理模块依次接收第一种模式下和第二种模式下的打包数据并进行解包处理,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给所述可重构计算模块;所述可重构计算模块对两种模式下的第一特征图数据分别进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到两种模式下的第二特征图数据并发送给存储控制模块;所述存储控制模块将所述两种模式下的第二特征图数据存入第二个特征图存储器中;
第一个全连接层计算:
在第二种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述输出处理模块;所述输出处理模块将所述卷积结果进行打包处理后发送给所述通讯接口模块;
在第三种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述输出处理模块;所述输出处理模块将所述卷积结果进行打包处理后发送给所述通讯接口模块;
在第四种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述输出处理模块;所述输出处理模块将所述卷积结果进行打包处理后发送给所述通讯接口模块;
在第五种模式下,所述输入处理模块依次接收第二种模式下、第三种模式下和第四种模式下的打包数据并进行解包处理,得到三种模式下的卷积结果并发送给所述可重构计算模块;所述可重构计算模块对三种模式下的卷积结果进行累加计算得到累加结果后发送给所述输出处理模块;所述输出处理模块将所述累加结果进行打包处理后发送给所述通讯接口模块;
在第一种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述可重构计算模块;所述输入处理模块依次接收在第五种模式下的打包数据并进行解包处理,得到在第五种模式下的累加结果并发送给所述可重构计算模块;所述可重构计算模块对累加结果和卷积结果同时进行累加计算得到第三特征图数据发送给所述存储控制模块;所述存储控制模块将所述第三特征图数据存入第三个特征图存储器中;
第二个全连接层计算:
在第一种模式下,所述存储控制模块从所述第三个特征图存储器中读取所述第三特征图数据分别发送给所述激活函数模块用于激活函数计算,得到激活结果后发送给所述可重构计算模块和输出处理模块;所述可重构计算模块对所述激活结果进行卷积计算,得到第一初步结果发送给所述激活函数模块用于激活函数计算,得到第一最终结果发送给所述存储控制模块;所述存储控制模块将所述第一最终结果写入所述结果存储器中;所述输出处理模块对所述激活结果进行打包处理后发送给所述通讯接口模块;
在第二种模式下,所述输入处理模块依次接收第一种模式下的打包数据并进行解包处理,得到激活结果并发送给所述可重构计算模块;所述可重构计算模块对激活结果进行卷积计算,得到第二初步结果发送给所述激活函数模块用于激活函数计算,得到第二最终结果发送给所述输出处理模块;所述输出处理模块对所述第二最终结果进行打包处理后发送给所述通讯接口模块;
在第四种模式下,所述输入处理模块依次接收第一种模式下的打包数据并进行解包处理,得到激活结果并发送给所述可重构计算模块;所述可重构计算模块对激活结果进行卷积计算,得到第三初步结果发送给所述激活函数模块用于激活函数计算,得到第三最终结果发送给所述输出处理模块;所述输出处理模块对所述第三最终结果进行打包处理后发送给所述通讯接口模块;
在第一种模式下,所述输入处理模块依次接收在第二种模式下和在第四种模式下的打包数据并进行解包处理,得到所述第二最终结果和所述第三最终结果并发送给所述存储控制模块;所述存储控制模块依次将所述第二最终结果和所述第三最终结果写入所述结果存储器中。
本发明一种基于多播片上网络的卷积神经网络硬件加速器的工作方法,所述多播片上网络是由N×M的底层二维网络和L×S的上层网络构成;其中M和N为大于等于2的整数;L和S为大于等于1的整数;且1≤L<N,1≤S<M;
所述底层二维网络共有N×M个节点路由器,并分为L×S个区;每个区内包含一个中间节点路由器和若干个普通节点路由器;所述普通节点路由器包含五个水平传输方向;所述中间节点路由器包含五个水平传输方向和一个向上传输方向;所述上层网络均为传输节点路由器;所述传输节点路由器包含五个水平传输方向和一个向下传输方向;每个区内的中间节点路由器与相应的传输节点路由器互相连接;其特点是:
所述卷积神经网络硬件加速器分别与所述底层二维网络中的N×M个节点路由器相连;所述卷积神经网络硬件加速器包括:通讯接口模块、输入处理模块、输出处理模块、数据存储器组、可重构计算模块、存储控制模块、激活函数模块、权重存储器;所述工作方法是按如下步骤进行:
步骤1、配置所述卷积神经网络硬件加速器在初始化阶段分为五种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n个特征图存储器和结果存储器,并将目标图数据写入所述目标图存储器中;所述存储控制模块将第一权重数据写入所述权重存储器中,在所述激活函数模块中设置一种激活函数,从而配置成第一种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-1个特征图存储器和结果存储器;所述存储控制模块将第二权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第二种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-2个特征图存储器和结果存储器;所述存储控制模块将第三权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第三种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-2个特征图存储器和结果存储器;所述存储控制模块将第四权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第四种模式;
所述卷积神经网络硬件加速器的存储控制模块不使用数据存储器组、权重存储器和激活函数模块,从而配置成第五种模式;
步骤2、所述卷积神经网络硬件加速器进行第一个卷积层计算:
步骤2.1、在第一种模式下,所述卷积神经网络硬件加速器获取目标图数据并进行卷积计算后再进行激活函数计算得到第一特征图数据;
步骤2.2、在第二种模式下,所述卷积神经网络硬件加速器对所述目标图数据进行卷积计算后再进行激活函数计算得到第一特征图数据;
步骤3、所述卷积神经网络硬件加速器进行第二个卷积层计算:
步骤3.1、在第一种模式下,所述卷积神经网络硬件加速器对所述第一特征图数据进行卷积计算后再进行激活函数计算得到第二特征图数据;
步骤3.2、在第二种模式下,所述卷积神经网络硬件加速器对所述第一特征图数据进行卷积计算后再进行激活函数计算得到第二特征图数据;
步骤3.3、在第三种模式下,所述卷积神经网络硬件加速器对第一种模式下的第一特征图数据和第二种模式下的第一特征图数据分别进行卷积计算后再进行激活函数计算得到两种模式下的第二特征图数据;
步骤3.4、在第四种模式下,所述卷积神经网络硬件加速器对第一种模式下的第一特征图数据和第二种模式下的第一特征图数据分别进行卷积计算后再进行激活函数计算得到两种模式下的第二特征图数据;
步骤4、所述卷积神经网络硬件加速器进行第一个全连接层计算:
步骤4.1、在第一种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.2、在第二种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.3、在第三种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.4、在第四种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.5、在第五种模式下,所述卷积神经网络硬件加速器对所述第二种模式下、第三种模式下和第四种模式下的卷积结果进行累加计算得到累加结果;
步骤4.6、在第一种模式下,所述卷积神经网络硬件加速器对在第五种模式下的累加结果进行累加计算得到第三特征图数据;
步骤5、所述卷积神经网络硬件加速器进行第二个全连接层计算:
步骤5.1、在第一种模式下,所述卷积神经网络硬件加速器对第三特征图数据进行激活函数计算后得到激活结果,再对所述激活结果进行卷积计算,得到第一初步结果,最后对所述第一初步结果进行激活函数计算,得到第一最终结果并存储;
步骤5.2、在第二种模式下,所述卷积神经网络硬件加速器对所述第一种模式下的激活结果进行卷积计算后得到第二初步结果,再多所述第二初步结果进行激活函数计算,得到第二最终结果;
步骤5.3、在第四种模式下,所述卷积神经网络硬件加速器对所述第一种模式下的激活结果进行卷积计算后得到第三初步结果,再多所述第三初步结果进行激活函数计算,得到第三最终结果;
步骤5.4、在第一种模式下,所述卷积神经网络硬件加速器存储所述在第二种模式下和在第四种模式下的第二最终结果和第三最终结果。
与现有技术相比,本发明的有益技术效果体现在:
1、本发明加速器大大提升了卷积神经网络计算的并行性,卷积神经网络计算的速度相对于传统的卷积神经网络加速器提升明显;可重构的设计使得本发明可以根据不同的卷积神经网络的计算要求对本发明进行相应的配置,具备传统的卷积神经网络加速器所不具备的可重构功能;计算与通讯分离的策略使得本发明的可扩展性和可重用性远高于于传统的卷积神经网络硬件加速器,可以根据所计算的卷积神经网络的规模对本发明进行扩展。
2、本发明通过通讯接口模块、输入输出处理模块将卷积神经网络硬件加速器的可重构计算模块与多播片上网络相连接,实现了多个卷积神经网络硬件加速器间的通讯,同时多个卷积神经网络硬件加速器的计算又是彼此分离的,这样的设计使得多个卷积神经网络硬件加速器可以同时计算一个卷积神经网络,并且可以将本地的计算结果通过多播片上网络一次传输给其他多个卷积神经网络硬件加速器进行下一步的并行计算,这种通讯与计算分离的策略与传统的卷积神经网络加速器相比大大提高了卷积神经网络计算的并行性,从而提高了了卷积神经网络的计算的速度。与此同时,通过通讯接口模块和输入输出处理模块将卷积神经网络的计算与通讯进行分离,使得计算和通讯成为了相互独立的两个部分,这样的操作使得当需要根据不同的卷积神经网络的计算规模要求,对片上网络的规模进行相应的改变时,只需要对输入输出处理模块进行配置,而不需要重新设计可重构计算模块,大大降低了扩展时的难度,提高了可扩展性和模块的可重用性,克服了传统神经网络加速器可扩展性和可重用性低下的缺陷。
3、本发明采用了可重构设计,原始的卷积神经网络硬件加速器可以配置成5种不同的工作模式,分别为第一种模式下的卷积神经网络硬件加速器、第二种模式下的卷积神经网络硬件加速器、第三种模式下的卷积神经网络硬件加速器、第四种模式下的卷积神经网络硬件加速器、第五种模式下的卷积神经网络硬件加速器。5种工作模式均可由原始的卷积神经网络硬件加速器配置得到,实现的功能互有不同,例如第一种工作模式下的卷积神经网络硬件加速器可以实现目标图片的输入和卷积神经网络计算结果的输出功能等,这2种功能是其他模式下的卷积神经网络硬件加速器所不具备,将5种不同工作模式下的神经网络硬件加速器相互组合可以实现完整的卷积神经网络计算,这样的设计使得在计算不同种类的卷积神经网络时,只需将原始的卷积神经网络硬件加速器配置成若干的不同工作模式,并进行相应的组合,从而可以计算不同种类的卷积神经网络。5种不同工作模式的设计使得本发明相对于传统的卷积神经网络加速器具备了可重构的优势。同时5种不同工作模式的设计也对实现不同计算步骤的卷积神经网络硬件加速器的功能进行了分类化简,提高了卷积神经网络硬件加速器的工作效率。
4、本发明中激活函数模块可以配置成不同类型的激活函数逻辑,从而满足相应的卷积神经网络的计算要求,实现了本发明对卷积神经网络计算时激活函数计算环节的可重构。
附图说明
图1本实施例采用的手写识别网络流程图;
图2本实施例采用的底层6×6,上层2×2规模的多播片上网络结构图;
图3本实施例的多播片上网络映射图;
图4本发明中可重构卷积神经网络硬件加速器结构图;
图5第一种模式下的神经网络硬件加速器结构图;
图6第二种模式下的神经网络硬件加速器结构图;
图7第三种模式下的神经网络硬件加速器结构图;
图8第四种模式下的神经网络硬件加速器结构图;
图9第五种模式下的神经网络硬件加速器结构图。
具体实施方式
本实施例采用多播片上网络架构来提高卷积神经网络的并行性,以达到加速识别手写阿拉伯数字速度的目的。本实施例采用的卷积神经网络为手写数字识别网络,其结构包括两层卷积层、两层全连接层,该手写识别网络的结构图如图1所示。
本实施实例的手写识别功能主要利用MNIST(Mixed National Institute ofStandards and Technology database)手写库完成,MNIST是谷歌实验室和纽约大学柯朗研究所建的手写数字训练库。整个训练库包括训练库和测试库,训练库有60000张手写数字图像,测试库有10000张。MNIST手写数字图像的大小是28×28的,为了减少图像特征提取过程中的边缘影响,通过补零扩展为29×29的大小。这样输入层神经节点个数为29×29等于841个。
如图1所示,该卷积神经网络计算分为四层计算,第一层计算为卷积层计算,输入层为841个神经节点,输出6个13×13的特征图共1014个神经节点;第二层为卷积层计算,输入层为第一个卷积层输出的16个13×13的特征图共1014个神经节点,输出50个5×5的特征图共1250个神经元;第三层为全连接层计算,输入层为第二个卷积层输出的50个5×5的特征图共1250个神经元,输出100个神经元;第四层为全连接层计算,输入层为第一个全连接层输出的100个神经元,输出10个神经元。
本发明采用多播片上网络与卷积神经网络硬件加速器相结合,从而实现卷积神经网络的计算。本实施例中,多播片上网络结构如图2所示,其中圆形图标表示节点路由器,矩形图标表示挂载在节点路由器上的卷积神经网络硬件加速器,是由6×6的底层二维网络和4×4的上层网络构成,共含有40个节点路由器,其中底层二维网络共有36个节点路由器,并以3×3的子网络为单位划分为四个多播区域,如图2中虚线所围成的四个区域;每个区域内包含一个中间节点路由器R3和若干个普通节点路由器R2;普通节点路由器包R2含五个水平传输方向;中间节点路由器R3包含五个水平传输方向和一个向上传输方向;上层网络均为传输节点路由器R1;传输节点路由器R1包含五个水平传输方向和一个向下传输方向;每个区域内的中间节点路由器R3与相应的传输节点路由器R1互相连接;多播片上网络结构可以实现所传播的信息从一个节点路由器同时向多个节点路由器传输,这样大大提高了信息传输的效率,提高卷积神经网络计算过程中可重用信息传输的速度,提高卷积神经网络计算的并行性。
本实例所采用的多播片上网络规模是根据所使用的卷积神经网络大小而设定的,由于实际情况下计算所使用的卷积神经网络种类不同,可以根据实际情况设定多播片上网络的规模,包括但并不局限于由6×6的底层二维网络和4×4的上层网络构成的双层网络结构。
卷积神经网络硬件加速器分别与底层二维网络中的36个节点路由器相连;卷积神经网络硬件加速器的内部结构如图4所示,包括:通讯接口模块、输入处理模块、输出处理模块、数据存储器组、可重构计算模块、存储控制模块、激活函数模块、权重存储器;
在初始化阶段,卷积神经网络硬件加速器被配置为五种模式:
卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、3个特征图存储器分别为特征图1、特征图2、特征图3和结果存储器,并将目标图数据写入目标图存储器中;存储控制模块将第一权重数据写入权重存储器中,在激活函数模块中设置激活函数为ReLU(Rectified Liner Uints)函数,从而配置成第一种模式,其具体结构如图5所示;
卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、2个特征图存储器分别为特征图1、特征图2和结果存储器;存储控制模块将第二权重数据写入权重存储器中,在激活函数模块中设置激活函数为ReLU(Rectified Liner Uints)函数,从而配置成第二种模式,其具体结构如图6所示;
卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、1个特征图存储器为特征图2和结果存储器;存储控制模块将第三权重数据写入权重存储器中,在激活函数模块中设置激活函数为ReLU(Rectified Liner Uints)函数,从而配置成第三种模式,其具体结构如图7所示;
卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、1个特征图存储器为特征图2和结果存储器;存储控制模块将第四权重数据写入权重存储器中,在激活函数模块中设置激活函数为ReLU(Rectified Liner Uints)函数,从而配置成第四种模式,其具体结构如图8所示;
卷积神经网络硬件加速器的存储控制模块不使用数据存储器组、权重存储器和激活函数模块,从而配置成第五种模式,其具体结构如图9所示;
本实例中,5种模式下的卷积神经网络硬件加速器分别挂载在多播片上网络底层的相应节点路由器上,具体的多播片上网络映射方案如图3所示,其中节点路由器图标上的大写数字表示该节点路由器所挂载的卷积神经网络硬件加速器的模式序号,若无大写数字,则该节点路由器与其挂载的卷积神经网络硬件加速器不连通,其中第一种模式下的卷积神经网络硬件加速器1个,第二种模式下的卷积神经网络硬件加速器5个,第三种模式下的卷积神经网络硬件加速器16个,第四种模式下的卷积神经网络硬件加速器4个,第五种模式下的卷积神经网络硬件加速器4个。其中多播片上网络的上层网络不挂载卷积神经网络硬件加速器。本实施例所采用的卷积神经网络硬件加速器映射方案是根据所使用的手写识别卷积网络的规模所设定的,本发明还可根据不同的卷积神经网络采用不同数目的5种模式下的卷积神经网络硬件加速器,包括但不局限于本实施例所采用的映射方案和各种模式下的卷积神经网络加速器数目。将5种不同工作模式下的神经网络硬件加速器相互组合可以实现完整的卷积神经网络计算,这样的设计使得在计算不同种类的卷积神经网络时,只需将原始的卷积神经网络硬件加速器配置成若干的不同工作模式,并进行相应的组合,从而可以计算不同种类的卷积神经网络。
第一个卷积层计算:
在第一种模式下,存储控制模块从目标图存储器中读取目标图数据并传递给输出处理模块和可重构计算模块;输出处理模块将目标图数据进行打包处理,将目标图数据和传输目的节点信息打包在一起,并发送至通讯接口模块,由通讯接口模块传输到多播片上网络中,通过多播片上网络传输到挂载第二种模式的卷积神经网络硬件加速器的目的节点的通讯接口模块中;可重构计算模块接收目标图数据,此时可重构计算模块中的通道选择器连通乘法逻辑单元,对目标图数据向进行乘法逻辑计算再进行累加逻辑计算(即完整的卷积计算),当可重构计算模块对目标图数据进行完卷积计算后再传递给激活函数模块进行ReLU激活函数计算,得到第一特征图数据;为了提高卷积计算的并行度,本实施例在乘法逻辑单元内内置了2个乘法器,可以同时并行地进行乘法计算,第一层卷积层计算时,2个乘法其并行地对目标图数据进行乘法逻辑计算,本发明在乘法逻辑单元还可内置多个乘法器,包括但不局限于本实施例中的2个乘法器,多乘法器并行的处理可以大大提高卷积计算时的并行度,提高卷积计算的速度。之后存储控制模块在接收到激活函数发送的第一特征图数据后,将第一特征图数据存入第一个特征图存储器中;
在第二种模式下,输入处理模块接收在第一种模式下的通讯接口模块传输的打包数据并进行解包处理,提取数据包中的目标图数据,得到目标图数据并发送给可重构计算模块;可重构计算模块中的通道选择单元接收目标图数据,选通乘法逻辑单元,对目标图数据先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算)后传递给激活函数模块进行ReLU激活函数计算,得到第一特征图数据;存储控制模块在接收到激活函数发送的第一特征图数据后,将第一特征图数据存入第一个特征图存储器中;
第二个卷积层计算:
在第一种模式下,存储控制模块从第一个特征图存储器中读取第一特征图数据发送给可重构计算模块和输出处理模块;可重构计算模块中的通道选择单元接收第一特征图数据,选通乘法逻辑单元,对第一特征图数据先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算)后传递给激活函数模块进行ReLU激活函数计算,得到第二特征图数据并发送给存储控制模块;存储控制模块在接收到激活函数发送的第二特征图数据后,将第二特征图数据存入第二个特征图存储器中;输出处理模块将第一特征图数据进行打包处理,将第一特征图数据和传输目的节点信息打包在一起,后发送给通讯接口模块,由通讯接口模块传输到多播片上网络中,通过多播片上网络传输到挂载第三和第四种模式的卷积神经网络硬件加速器的目的节点的通讯接口模块中;
在第二种模式下,存储控制模块从第一个特征图存储器中读取第一特征图数据发送给可重构计算模块和输出处理模块;输入处理模块依次接收第一种模式下和其他的第二种模式下的打包数据并进行解包处理,提取数据包中的第一特征图数据和第二种模式下的第一特征图数据,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给可重构计算模块;可重构计算模块中的通道选择单元接收第一特征图数据,选通乘法逻辑单元,分别对第一特征图数据先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算)后传递给激活函数模块进行ReLU激活函数计算,得到第二特征图数据并发送给存储控制模块;存储控制模块将第二特征图数据存入第二个特征图存储器中;输出处理模块将第一特征图数据进行打包处理,将第一特征图数据和传输目的节点信息打包在一起后发送给通讯接口模块,由通讯接口模块传输到多播片上网络中,通过多播片上网络传输到挂载第三和第四种模式的卷积神经网络硬件加速器的目的节点的通讯接口模块中;
在第三种模式下,输入处理模块依次接收第一种模式下和第二种模式下的打包数据并进行解包处理,提取数据包中的第一特征图数据和第二种模式下的第一特征图数据,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给可重构计算模块;可重构计算模块中的通道选择单元接收两种模式下的第一特征图数据,选通乘法逻辑单元,分别对第一特征图数据先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算)后传递给激活函数模块进行ReLU激活函数计算,得到两种模式下的第二特征图数据并发送给存储控制模块;存储控制模块在接收到激活函数发送的第二特征图数据后将两种模式下的第二特征图数据存入第二个特征图存储器中;
在第四种模式下,输入处理模块依次接收第一种模式下和第二种模式下的打包数据并进行解包处理,提取数据包中的第一种模式下的第一特征图数据和第二种模式下的第一特征图数据,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给可重构计算模块;可重构计算模块中的通道选择单元接收两种模式下的第一特征图数据,选通乘法逻辑单元,对第一特征图数据先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算)后传递给激活函数模块进行ReLU激活函数计算,得到两种模式下的第二特征图数据并发送给存储控制模块;存储控制模块在接收到激活函数发送的第二特征图数据后将两种模式下的第二特征图数据存入第二个特征图存储器中;
第一个全连接层计算:
在第一种模式下,存储控制模块从第二个特征图存储器中读取第二特征图数据发送给可重构计算模块;可重构计算模块中的通道选择单元接收第二特征图数据,选通乘法逻辑单元,对第二特征图数据先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算)得到卷积结果发送给输出处理模块;输出处理模块将卷积结果进行打包处理,将卷积结果和传输目的节点信息打包在一起后发送给通讯接口模块由通讯接口模块传输到多播片上网络中,通过多播片上网络传输到相应的目的节点的通讯接口模块中;
在第二种模式下,存储控制模块从第二个特征图存储器中读取第二特征图数据发送给可重构计算模块;可重构计算模块中的通道选择单元接收第二特征图数据,选通乘法逻辑单元,对第二特征图数据先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算)得到卷积结果发送给输出处理模块;输出处理模块将卷积结果进行打包处理,将卷积结果和传输目的节点信息打包在一起后发送给通讯接口模块,由通讯接口模块传输到多播片上网络中,通过多播片上网络传输到挂载第五种模式的卷积神经网络硬件加速器的目的节点的通讯接口模块中;
在第三种模式下,存储控制模块从第二个特征图存储器中读取第二特征图数据发送给可重构计算模块;可重构计算模块中的通道选择单元接收第二特征图数据,选通乘法逻辑单元,对第二特征图数据先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算)得到卷积结果发送给输出处理模块;输出处理模块将卷积结果进行打包处理,将卷积结果和传输目的节点信息打包在一起后发送给通讯接口模块,由通讯接口模块传输到多播片上网络中,通过多播片上网络传输到挂载第五种模式的卷积神经网络硬件加速器的目的节点的通讯接口模块中;
在第四种模式下,存储控制模块从第二个特征图存储器中读取第二特征图数据发送给可重构计算模块;可重构计算模块中的通道选择单元接收第二特征图数据,选通乘法逻辑单元,对第二特征图数据先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算)得到卷积结果发送给输出处理模块;输出处理模块将卷积结果进行打包处理,将卷积结果和传输目的节点信息打包在一起后发送给通讯接口模块,由通讯接口模块传输到多播片上网络中,通过多播片上网络传输到挂载第五种模式的卷积神经网络硬件加速器的目的节点的通讯接口模块中;
在第五种模式下,输入处理模块依次接收第二种模式下、第三种模式下和第四种模式下的打包数据并进行解包处理,提取数据包中的三种模式下的卷积结果,得到三种模式下的卷积结果并发送给可重构计算模块;可重构计算模块中的通道选择单元接收三种模式下的卷积结果,选通累加逻辑单元,对三种模式下的卷积结果进行累加计算得到累加结果后发送给输出处理模块;输出处理模块将累加结果进行打包处理,将累加结果和传输目的节点信息打包在一起后发送给通讯接口模块;
在第一种模式下,存储控制模块从第二个特征图存储器中读取第二特征图数据发送给可重构计算模块;可重构计算模块对第二特征图数据进行卷积计算后得到卷积结果发送给可重构计算模块;输入处理模块依次接收在第五种模式下的打包数据并进行解包处理,得到在第五种模式下的累加结果并发送给可重构计算模块;可重构计算模块对累加结果和卷积结果同时进行累加计算得到第三特征图数据发送给存储控制模块;存储控制模块将第三特征图数据存入第三个特征图存储器中;
第二个全连接层计算:
在第一种模式下,存储控制模块从第三个特征图存储器中读取第三特征图数据分别发送给激活函数模块用于ReLU激活函数计算,得到激活结果后发送给可重构计算模块和输出处理模块;可重构计算模块中的通道选择单元接收激活结果,选通乘法逻辑单元,对激活结果先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算),得到第一初步结果发送给激活函数模块用于ReLU激活函数计算,得到第一最终结果发送给存储控制模块;存储控制模块在接收第一最终结果后,将第一最终结果写入结果存储器中;输出处理模块对激活结果进行打包处理,将将激活结果和传输目的节点信息打包在一起后发送给通讯接口模块,由通讯接口模块传输到多播片上网络中,通过多播片上网络传输到挂载第二和第四种模式的卷积神经网络硬件加速器的目的节点的通讯接口模块中;
在第二种模式下,输入处理模块依次接收第一种模式下的打包数据并进行解包处理,提取数据包中的激活结果,得到激活结果并发送给可重构计算模块;可重构计算模块中的通道选择单元接收激活结果,选通乘法逻辑单元,对激活结果先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算),得到第二初步结果发送给激活函数模块用于ReLU激活函数计算,得到第二最终结果发送给输出处理模块;输出处理模块对第二最终结果进行打包处理,将第二最终结果和传输目的节点信息打包在一起后发送给通讯接口模块,由通讯接口模块传输到多播片上网络中,通过多播片上网络传输到挂载第一种模式的卷积神经网络硬件加速器的目的节点的通讯接口模块中;
在第四种模式下,输入处理模块依次接收第一种模式下的打包数据并进行解包处理,提取数据包中的激活结果,得到激活结果并发送给可重构计算模块;可重构计算模块中的通道选择单元接收激活结果,选通乘法逻辑单元,对激活结果先后进行乘法逻辑计算和累加逻辑计算(即进行卷积计算),得到第三初步结果发送给激活函数模块用于激活函数计算,得到第三最终结果发送给输出处理模块;输出处理模块对第三最终结果进行打包处理将第三最终结果和传输目的节点信息打包在一起后发送给通讯接口模块,由通讯接口模块传输到多播片上网络中,通过多播片上网络传输到挂载第一种模式的卷积神经网络硬件加速器的目的节点的通讯接口模块中;
在第一种模式下,输入处理模块依次接收在第二种模式下和在第四种模式下的打包数据并进行解包处理,提取数据包中的第二最终结果和第三最终结果,得到第二最终结果和第三最终结果并发送给存储控制模块;存储控制模块依次将第二最终结果和第三最终结果写入结果存储器中。
本实施例中,采用多播片上网络与卷积神经网络硬件加速器相结合,从而实现卷积神经网络的计算。本实施例中,多播片上网络结构如图2所示,其中圆形图标表示节点路由器,矩形图标表示挂载在节点路由器上的卷积神经网络硬件加速器,是由6×6的底层二维网络和4×4的上层网络构成,共含有40个节点路由器,其中底层二维网络共有36个节点路由器,并以3×3的子网络为单位划分为四个多播区域,如图2中虚线所围成的四个区域;每个区域内包含一个中间节点路由器R3和若干个普通节点路由器R2;普通节点路由器包R2含五个水平传输方向;中间节点路由器R3包含五个水平传输方向和一个向上传输方向;上层网络均为传输节点路由器R1;传输节点路由器R1包含五个水平传输方向和一个向下传输方向;每个区域内的中间节点路由器R3与相应的传输节点路由器R1互相连接;多播片上网络结构可以实现所传播的信息从一个节点路由器同时向多个节点路由器传输,这样大大提高了信息传输的效率,提高卷积神经网络计算过程中可重用信息传输的速度,提高卷积神经网络计算的并行性。
本实例所采用的多播片上网络规模是根据所使用的卷积神经网络大小而设定的,由于实际情况下计算所使用的卷积神经网络种类不同,可以根据实际情况设定多播片上网络的规模,包括但并不局限于由6×6的底层二维网络和4×4的上层网络构成的双层网络结构。
卷积神经网络硬件加速器分别与底层二维网络中的36个节点路由器相连;其工作方法是按如下步骤进行:
步骤1、配置卷积神经网络硬件加速器在初始化阶段分为五种模式;
步骤2、卷积神经网络硬件加速器进行第一个卷积层计算:
步骤2.1、在第一种模式下,卷积神经网络硬件加速器获取目标图数据并进行卷积计算后再进行激活函数计算得到第一特征图数据;
步骤2.2、在第二种模式下,卷积神经网络硬件加速器对目标图数据进行卷积计算后再进行激活函数计算得到第一特征图数据;
步骤3、卷积神经网络硬件加速器进行第二个卷积层计算:
步骤3.1、在第一种模式下,卷积神经网络硬件加速器对第一特征图数据进行卷积计算后再进行激活函数计算得到第二特征图数据;
步骤3.2、在第二种模式下,卷积神经网络硬件加速器对第一特征图数据进行卷积计算后再进行激活函数计算得到第二特征图数据;
步骤3.3、在第三种模式下,卷积神经网络硬件加速器对第一种模式下的第一特征图数据和第二种模式下的第一特征图数据分别进行卷积计算后再进行激活函数计算得到两种模式下的第二特征图数据;
步骤3.4、在第四种模式下,卷积神经网络硬件加速器对第一种模式下的第一特征图数据和第二种模式下的第一特征图数据分别进行卷积计算后再进行激活函数计算得到两种模式下的第二特征图数据;
步骤4、卷积神经网络硬件加速器进行第一个全连接层计算:
步骤4.1、在第一种模式下,卷积神经网络硬件加速器对第二特征图数据进行卷积计算后得到卷积结果;
步骤4.2、在第二种模式下,卷积神经网络硬件加速器对第二特征图数据进行卷积计算后得到卷积结果;
步骤4.3、在第三种模式下,卷积神经网络硬件加速器对第二特征图数据进行卷积计算后得到卷积结果;
步骤4.4、在第四种模式下,卷积神经网络硬件加速器对第二特征图数据进行卷积计算后得到卷积结果;
步骤4.5、在第五种模式下,卷积神经网络硬件加速器对第二种模式下、第三种模式下和第四种模式下的卷积结果进行累加计算得到累加结果;
步骤4.6、在第一种模式下,卷积神经网络硬件加速器对在第五种模式下的累加结果进行累加计算得到第三特征图数据;
步骤5、卷积神经网络硬件加速器进行第二个全连接层计算:
步骤5.1、在第一种模式下,卷积神经网络硬件加速器对第三特征图数据进行激活函数计算后得到激活结果,再对激活结果进行卷积计算,得到第一初步结果,最后对第一初步结果进行激活函数计算,得到第一最终结果并存储;
步骤5.2、在第二种模式下,卷积神经网络硬件加速器对第一种模式下的激活结果进行卷积计算后得到第二初步结果,再多第二初步结果进行激活函数计算,得到第二最终结果;
步骤5.3、在第四种模式下,卷积神经网络硬件加速器对第一种模式下的激活结果进行卷积计算后得到第三初步结果,再多第三初步结果进行激活函数计算,得到第三最终结果;
步骤5.4、在第一种模式下,卷积神经网络硬件加速器存储在第二种模式下和在第四种模式下的第二最终结果和第三最终结果。
该工作方式能大大降低数字图片的识别时间,可重构模块化设计提高了可扩展性、通过多播片上网络进行数据传输,将计算与通讯完全分离,重用范围从计算单元可重用扩展到计算与通信单元皆可重用的层次,从而大大提升了重用设计的水平。
如表1所示,本发明识别一张图片仿真时间为0.16735ms,二对比实验中基于FPGA的CNN卷积神经网络识别一张图片所需时间为0.272ms,本发明相对于对比试验识别1张图片的速度提升38%;本发明实例识别10000张图片仿真时间为1673.5ms,二对比实验中基于FPGA的CNN卷积神经网络识别一张图片所需时间为2912ms,本发明相对于对比试验识别一张图片的速度提升43%;
表1
表2
如表2所示,本发明识别1张图片所需时间为0.16735ms,其中第一层卷积层所需时间为0.03485ms,第二层卷积层所需时间为0.09543ms,第一层全连接层所需时间为0.03522ms,第二层全连接层所需时间为0.00185ms。本发明识别10张图片所需时间为1.6735ms,其中第一层卷积层所需时间为0.3485ms,第二层卷积层所需时间为0.9543ms,第一层全连接层所需时间为0.3522ms,第二层全连接层所需时间为0.0185ms。本发明识别100张图片所需时间为16.735ms,其中第一层卷积层所需时间为3.485ms,第二层卷积层所需时间为9.543ms,第一层全连接层所需时间为3.522ms,第二层全连接层所需时间为0.185ms。
Claims (2)
1.一种基于多播片上网络的卷积神经网络硬件加速器,所述多播片上网络是由N×M的底层二维网络和L×S的上层网络构成;其中M和N为大于等于2的整数;L和S为大于等于1的整数;且1≤L<N,1≤S<M;
所述底层二维网络共有N×M个节点路由器,并分为L×S个区;每个区内包含一个中间节点路由器和若干个普通节点路由器;所述普通节点路由器包含五个水平传输方向;所述中间节点路由器包含五个水平传输方向和一个向上传输方向;所述上层网络均为传输节点路由器;所述传输节点路由器包含五个水平传输方向和一个向下传输方向;每个区内的中间节点路由器与相应的传输节点路由器互相连接;其特征是:
所述卷积神经网络硬件加速器分别与所述底层二维网络中的N×M个节点路由器相连;所述卷积神经网络硬件加速器包括:通讯接口模块、输入处理模块、输出处理模块、数据存储器组、可重构计算模块、存储控制模块、激活函数模块、权重存储器;
配置所述卷积神经网络硬件加速器在初始化阶段分为五种模式:
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n个特征图存储器和结果存储器,并将目标图数据写入所述目标图存储器中;所述存储控制模块将第一权重数据写入所述权重存储器中,在所述激活函数模块中设置一种激活函数,从而配置成第一种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-1个特征图存储器和结果存储器;所述存储控制模块将第二权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第二种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-2个特征图存储器和结果存储器;所述存储控制模块将第三权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第三种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-2个特征图存储器和结果存储器;所述存储控制模块将第四权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第四种模式;
所述卷积神经网络硬件加速器的存储控制模块不使用数据存储器组、权重存储器和激活函数模块,从而配置成第五种模式;
第一个卷积层计算:
在第一种模式下,所述存储控制模块从所述目标图存储器中读取所述目标图数据并传递给所述输出处理模块和可重构计算模块;所述输出处理模块将所述目标图数据进行打包处理并发送至所述通讯接口模块;所述可重构计算模块对所述目标图数据进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第一特征图数据;所述存储控制模块将所述第一特征图数据存入第一个特征图存储器中;
在第二种模式下,所述输入处理模块接收在第一种模式下的通讯接口模块传输的打包数据并进行解包处理,得到目标图数据并发送给所述可重构计算模块;所述可重构计算模块对所述目标图数据进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第一特征图数据;所述存储控制模块将所述第一特征图数据存入第一个特征图存储器中;
第二个卷积层计算:
在第一种模式下,所述存储控制模块从所述第一个特征图存储器中读取所述第一特征图数据发送给所述可重构计算模块和输出处理模块;所述可重构计算模块对所述第一特征图数据进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第二特征图数据并发送给存储控制模块;所述存储控制模块将所述第二特征图数据存入第二个特征图存储器中;所述输出处理模块将所述第一特征图数据进行打包处理后发送给所述通讯接口模块;
在第二种模式下,所述存储控制模块从所述第一个特征图存储器中读取所述第一特征图数据发送给所述可重构计算模块和输出处理模块;所述输入处理模块依次接收第一种模式下和第二种模式下的打包数据并进行解包处理,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给所述可重构计算模块;所述可重构计算模块对所述第一特征图数据分别进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到第二特征图数据并发送给存储控制模块;所述存储控制模块将所述第二特征图数据存入第二个特征图存储器中;所述输出处理模块将所述第一特征图数据进行打包处理后发送给所述通讯接口模块;
在第三种模式下,所述输入处理模块依次接收第一种模式下和第二种模式下的打包数据并进行解包处理,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给所述可重构计算模块;所述可重构计算模块对两种模式下的第一特征图数据分别进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到两种模式下的第二特征图数据并发送给存储控制模块;所述存储控制模块将所述两种模式下的第二特征图数据存入第二个特征图存储器中;
在第四种模式下,所述输入处理模块依次接收第一种模式下和第二种模式下的打包数据并进行解包处理,得到第一种模式下的第一特征图数据和第二种模式下的第一特征图数据并发送给所述可重构计算模块;所述可重构计算模块对两种模式下的第一特征图数据分别进行卷积计算后传递给所述激活函数模块进行激活函数计算,得到两种模式下的第二特征图数据并发送给存储控制模块;所述存储控制模块将所述两种模式下的第二特征图数据存入第二个特征图存储器中;
第一个全连接层计算:
在第二种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述输出处理模块;所述输出处理模块将所述卷积结果进行打包处理后发送给所述通讯接口模块;
在第三种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述输出处理模块;所述输出处理模块将所述卷积结果进行打包处理后发送给所述通讯接口模块;
在第四种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述输出处理模块;所述输出处理模块将所述卷积结果进行打包处理后发送给所述通讯接口模块;
在第五种模式下,所述输入处理模块依次接收第二种模式下、第三种模式下和第四种模式下的打包数据并进行解包处理,得到三种模式下的卷积结果并发送给所述可重构计算模块;所述可重构计算模块对三种模式下的卷积结果进行累加计算得到累加结果后发送给所述输出处理模块;所述输出处理模块将所述累加结果进行打包处理后发送给所述通讯接口模块;
在第一种模式下,所述存储控制模块从所述第二个特征图存储器中读取所述第二特征图数据发送给所述可重构计算模块;所述可重构计算模块对所述第二特征图数据进行卷积计算后得到卷积结果发送给所述可重构计算模块;所述输入处理模块依次接收在第五种模式下的打包数据并进行解包处理,得到在第五种模式下的累加结果并发送给所述可重构计算模块;所述可重构计算模块对累加结果和卷积结果同时进行累加计算得到第三特征图数据发送给所述存储控制模块;所述存储控制模块将所述第三特征图数据存入第三个特征图存储器中;
第二个全连接层计算:
在第一种模式下,所述存储控制模块从所述第三个特征图存储器中读取所述第三特征图数据分别发送给所述激活函数模块用于激活函数计算,得到激活结果后发送给所述可重构计算模块和输出处理模块;所述可重构计算模块对所述激活结果进行卷积计算,得到第一初步结果发送给所述激活函数模块用于激活函数计算,得到第一最终结果发送给所述存储控制模块;所述存储控制模块将所述第一最终结果写入所述结果存储器中;所述输出处理模块对所述激活结果进行打包处理后发送给所述通讯接口模块;
在第二种模式下,所述输入处理模块依次接收第一种模式下的打包数据并进行解包处理,得到激活结果并发送给所述可重构计算模块;所述可重构计算模块对激活结果进行卷积计算,得到第二初步结果发送给所述激活函数模块用于激活函数计算,得到第二最终结果发送给所述输出处理模块;所述输出处理模块对所述第二最终结果进行打包处理后发送给所述通讯接口模块;
在第四种模式下,所述输入处理模块依次接收第一种模式下的打包数据并进行解包处理,得到激活结果并发送给所述可重构计算模块;所述可重构计算模块对激活结果进行卷积计算,得到第三初步结果发送给所述激活函数模块用于激活函数计算,得到第三最终结果发送给所述输出处理模块;所述输出处理模块对所述第三最终结果进行打包处理后发送给所述通讯接口模块;
在第一种模式下,所述输入处理模块依次接收在第二种模式下和在第四种模式下的打包数据并进行解包处理,得到所述第二最终结果和所述第三最终结果并发送给所述存储控制模块;所述存储控制模块依次将所述第二最终结果和所述第三最终结果写入所述结果存储器中。
2.一种基于多播片上网络的卷积神经网络硬件加速器的工作方法,所述多播片上网络是由N×M的底层二维网络和L×S的上层网络构成;其中M和N为大于等于2的整数;L和S为大于等于1的整数;且1≤L<N,1≤S<M;
所述底层二维网络共有N×M个节点路由器,并分为L×S个区;每个区内包含一个中间节点路由器和若干个普通节点路由器;所述普通节点路由器包含五个水平传输方向;所述中间节点路由器包含五个水平传输方向和一个向上传输方向;所述上层网络均为传输节点路由器;所述传输节点路由器包含五个水平传输方向和一个向下传输方向;每个区内的中间节点路由器与相应的传输节点路由器互相连接;其特征是:
所述卷积神经网络硬件加速器分别与所述底层二维网络中的N×M个节点路由器相连;所述卷积神经网络硬件加速器包括:通讯接口模块、输入处理模块、输出处理模块、数据存储器组、可重构计算模块、存储控制模块、激活函数模块、权重存储器;所述工作方法是按如下步骤进行:
步骤1、配置所述卷积神经网络硬件加速器在初始化阶段分为五种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n个特征图存储器和结果存储器,并将目标图数据写入所述目标图存储器中;所述存储控制模块将第一权重数据写入所述权重存储器中,在所述激活函数模块中设置一种激活函数,从而配置成第一种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-1个特征图存储器和结果存储器;所述存储控制模块将第二权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第二种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-2个特征图存储器和结果存储器;所述存储控制模块将第三权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第三种模式;
所述卷积神经网络硬件加速器的存储控制模块将数据存储器组划分为目标图存储器、n-2个特征图存储器和结果存储器;所述存储控制模块将第四权重数据写入所述权重存储器中,在所述激活函数模块中设置所述激活函数,从而配置成第四种模式;
所述卷积神经网络硬件加速器的存储控制模块不使用数据存储器组、权重存储器和激活函数模块,从而配置成第五种模式;
步骤2、所述卷积神经网络硬件加速器进行第一个卷积层计算:
步骤2.1、在第一种模式下,所述卷积神经网络硬件加速器获取目标图数据并进行卷积计算后再进行激活函数计算得到第一特征图数据;
步骤2.2、在第二种模式下,所述卷积神经网络硬件加速器对所述目标图数据进行卷积计算后再进行激活函数计算得到第一特征图数据;
步骤3、所述卷积神经网络硬件加速器进行第二个卷积层计算:
步骤3.1、在第一种模式下,所述卷积神经网络硬件加速器对所述第一特征图数据进行卷积计算后再进行激活函数计算得到第二特征图数据;
步骤3.2、在第二种模式下,所述卷积神经网络硬件加速器对所述第一特征图数据进行卷积计算后再进行激活函数计算得到第二特征图数据;
步骤3.3、在第三种模式下,所述卷积神经网络硬件加速器对第一种模式下的第一特征图数据和第二种模式下的第一特征图数据分别进行卷积计算后再进行激活函数计算得到两种模式下的第二特征图数据;
步骤3.4、在第四种模式下,所述卷积神经网络硬件加速器对第一种模式下的第一特征图数据和第二种模式下的第一特征图数据分别进行卷积计算后再进行激活函数计算得到两种模式下的第二特征图数据;
步骤4、所述卷积神经网络硬件加速器进行第一个全连接层计算:
步骤4.1、在第一种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.2、在第二种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.3、在第三种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.4、在第四种模式下,所述卷积神经网络硬件加速器对所述第二特征图数据进行卷积计算后得到卷积结果;
步骤4.5、在第五种模式下,所述卷积神经网络硬件加速器对所述第二种模式下、第三种模式下和第四种模式下的卷积结果进行累加计算得到累加结果;
步骤4.6、在第一种模式下,所述卷积神经网络硬件加速器对在第五种模式下的累加结果进行累加计算得到第三特征图数据;
步骤5、所述卷积神经网络硬件加速器进行第二个全连接层计算:
步骤5.1、在第一种模式下,所述卷积神经网络硬件加速器对第三特征图数据进行激活函数计算后得到激活结果,再对所述激活结果进行卷积计算,得到第一初步结果,最后对所述第一初步结果进行激活函数计算,得到第一最终结果并存储;
步骤5.2、在第二种模式下,所述卷积神经网络硬件加速器对所述第一种模式下的激活结果进行卷积计算后得到第二初步结果,再多所述第二初步结果进行激活函数计算,得到第二最终结果;
步骤5.3、在第四种模式下,所述卷积神经网络硬件加速器对所述第一种模式下的激活结果进行卷积计算后得到第三初步结果,再多所述第三初步结果进行激活函数计算,得到第三最终结果;
步骤5.4、在第一种模式下,所述卷积神经网络硬件加速器存储所述在第二种模式下和在第四种模式下的第二最终结果和第三最终结果。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810036727.3A CN108256628B (zh) | 2018-01-15 | 2018-01-15 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 |
PCT/CN2018/111268 WO2019137060A1 (zh) | 2018-01-15 | 2018-10-22 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方式 |
JP2020537478A JP6960700B2 (ja) | 2018-01-15 | 2018-10-22 | マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810036727.3A CN108256628B (zh) | 2018-01-15 | 2018-01-15 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108256628A CN108256628A (zh) | 2018-07-06 |
CN108256628B true CN108256628B (zh) | 2020-05-22 |
Family
ID=62740693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810036727.3A Active CN108256628B (zh) | 2018-01-15 | 2018-01-15 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6960700B2 (zh) |
CN (1) | CN108256628B (zh) |
WO (1) | WO2019137060A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256628B (zh) * | 2018-01-15 | 2020-05-22 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 |
CN109254946B (zh) * | 2018-08-31 | 2021-09-17 | 郑州云海信息技术有限公司 | 图像特征提取方法、装置、设备及可读存储介质 |
CN109150731B (zh) * | 2018-09-19 | 2020-09-18 | 合肥工业大学 | 基于卷积神经网络的多播包连接电路及其路由方法 |
CN113892092B (zh) * | 2019-02-06 | 2024-08-02 | 瀚博半导体(上海)有限公司 | 卷积模型硬件加速器的方法和系统 |
CN110598844A (zh) * | 2019-08-06 | 2019-12-20 | 天津大学 | 一种基于fpga的并行卷积神经网络加速器及加速方法 |
CN110689122B (zh) * | 2019-09-25 | 2022-07-12 | 苏州浪潮智能科技有限公司 | 一种存储系统和方法 |
TWI717892B (zh) * | 2019-11-07 | 2021-02-01 | 財團法人工業技術研究院 | 動態多組態cnn加速器架構與操作方法 |
CN111178518A (zh) * | 2019-12-24 | 2020-05-19 | 杭州电子科技大学 | 一种基于fpga的软硬件协同的加速方法 |
CN111245730B (zh) * | 2020-01-15 | 2021-10-08 | 中山大学 | 一种片上网络的路由系统及通信方法 |
CN111401532A (zh) * | 2020-04-28 | 2020-07-10 | 南京宁麒智能计算芯片研究院有限公司 | 一种卷积神经网络推理加速器及加速方法 |
CN112152947B (zh) * | 2020-08-21 | 2021-07-20 | 北京百度网讯科技有限公司 | 处理器及实现方法、电子设备和存储介质 |
CN114363245B (zh) * | 2020-09-30 | 2024-04-26 | 北京灵汐科技有限公司 | 众核的片上网络数据传输方法、装置、设备及介质 |
CN114239816B (zh) * | 2021-12-09 | 2023-04-07 | 电子科技大学 | 一种卷积神经网络-图卷积神经网络可重构硬件加速架构 |
CN114844757B (zh) * | 2022-02-24 | 2023-11-24 | 电子科技大学长三角研究院(湖州) | 一种面向分布式并行运算类算法的片上网络设计方法 |
CN116863490B (zh) * | 2023-09-04 | 2023-12-12 | 之江实验室 | 面向FeFET存储阵列的数字识别方法及硬件加速器 |
CN118350429B (zh) * | 2024-06-12 | 2024-08-30 | 山东浪潮科学研究院有限公司 | 基于risc-v的多模式卷积神经网络加速器及加速方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216285A (ja) * | 2000-01-31 | 2001-08-10 | Nagoya Industrial Science Research Inst | ニューラルネットワーク演算方法及び装置 |
US8510244B2 (en) * | 2009-03-20 | 2013-08-13 | ISC8 Inc. | Apparatus comprising artificial neuronal assembly |
CN105681628B (zh) * | 2016-01-05 | 2018-12-07 | 西安交通大学 | 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法 |
CN109328361B (zh) * | 2016-06-14 | 2020-03-27 | 多伦多大学管理委员会 | 用于深度神经网络的加速器 |
CN106951961B (zh) * | 2017-02-24 | 2019-11-26 | 清华大学 | 一种粗粒度可重构的卷积神经网络加速器及系统 |
CN107169560B (zh) * | 2017-04-19 | 2020-10-16 | 清华大学 | 一种自适应可重构的深度卷积神经网络计算方法和装置 |
CN106953800B (zh) * | 2017-04-21 | 2019-12-17 | 中国人民解放军国防科学技术大学 | 一种基于片上网络的自适应垂直路由方法及路由单元 |
CN107273970B (zh) * | 2017-05-11 | 2020-06-19 | 西安交通大学 | 支持在线学习的卷积神经网络的可重构平台及其构建方法 |
CN107273969B (zh) * | 2017-05-11 | 2020-06-19 | 西安交通大学 | 一种参数化可扩展的神经网络全连接层多层互连结构 |
CN107341544B (zh) * | 2017-06-30 | 2020-04-10 | 清华大学 | 一种基于可分割阵列的可重构加速器及其实现方法 |
CN107451659B (zh) * | 2017-07-27 | 2020-04-10 | 清华大学 | 用于位宽分区的神经网络加速器及其实现方法 |
CN108256628B (zh) * | 2018-01-15 | 2020-05-22 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 |
-
2018
- 2018-01-15 CN CN201810036727.3A patent/CN108256628B/zh active Active
- 2018-10-22 WO PCT/CN2018/111268 patent/WO2019137060A1/zh active Application Filing
- 2018-10-22 JP JP2020537478A patent/JP6960700B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
CN108256628A (zh) | 2018-07-06 |
WO2019137060A1 (zh) | 2019-07-18 |
JP2021510219A (ja) | 2021-04-15 |
JP6960700B2 (ja) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108256628B (zh) | 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 | |
CN110516801B (zh) | 一种高吞吐率的动态可重构卷积神经网络加速器 | |
CN109784489A (zh) | 基于fpga的卷积神经网络ip核 | |
Lu et al. | A resource-efficient pipelined architecture for real-time semi-global stereo matching | |
CN110458279A (zh) | 一种基于fpga的二值神经网络加速方法及系统 | |
CN108304920B (zh) | 一种基于MobileNets优化多尺度学习网络的方法 | |
CN106228240A (zh) | 基于fpga的深度卷积神经网络实现方法 | |
CN109409511A (zh) | 一种用于动态可重构阵列的卷积运算数据流调度方法 | |
CN107480789A (zh) | 一种深度学习模型的高效转换方法及装置 | |
CN113344188A (zh) | 基于通道注意力模块的轻量级神经网络模型 | |
Li et al. | Dynamic dataflow scheduling and computation mapping techniques for efficient depthwise separable convolution acceleration | |
Arredondo-Velazquez et al. | A streaming architecture for Convolutional Neural Networks based on layer operations chaining | |
Wang et al. | Briefly Analysis about CNN Accelerator based on FPGA | |
Lin et al. | A high-speed low-cost CNN inference accelerator for depthwise separable convolution | |
CN115238863A (zh) | 一种卷积神经网络卷积层的硬件加速方法、系统及应用 | |
Khalil et al. | Low-power convolutional neural network accelerator on fpga | |
Jeziorek et al. | Embedded Graph Convolutional Networks for Real-Time Event Data Processing on SoC FPGAs | |
CN116012657A (zh) | 一种基于神经网络的3d点云数据处理方法及加速器 | |
Zhao et al. | HDSuper: High-Quality and High Computational Utilization Edge Super-Resolution Accelerator With Hardware-Algorithm Co-Design Techniques | |
Li et al. | Fpga-based object detection acceleration architecture design | |
Xu et al. | Design and implementation of an efficient CNN accelerator for low-cost FPGAs | |
CN110221839A (zh) | 一种硬件加速器VerilogHDL代码自动生成方法 | |
CN113657587B (zh) | 基于fpga的可变形卷积加速方法及装置 | |
Wang et al. | Acceleration and implementation of convolutional neural network based on FPGA | |
Bouaafia et al. | An FPGA-SoC based Hardware Acceleration of Convolutional Neural Networks |
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 |