CN114997386B - 一种基于多fpga异构架构的cnn神经网络加速设计方法 - Google Patents
一种基于多fpga异构架构的cnn神经网络加速设计方法 Download PDFInfo
- Publication number
- CN114997386B CN114997386B CN202210749104.7A CN202210749104A CN114997386B CN 114997386 B CN114997386 B CN 114997386B CN 202210749104 A CN202210749104 A CN 202210749104A CN 114997386 B CN114997386 B CN 114997386B
- Authority
- CN
- China
- Prior art keywords
- neural network
- fpga
- data
- calculation
- 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
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 38
- 238000013461 design Methods 0.000 title claims abstract description 25
- 230000001133 acceleration Effects 0.000 title claims abstract description 23
- 238000004364 calculation method Methods 0.000 claims abstract description 54
- 238000011161 development Methods 0.000 claims abstract description 47
- 230000006870 function Effects 0.000 claims abstract description 10
- 238000009826 distribution Methods 0.000 claims abstract description 9
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 5
- 238000013139 quantization Methods 0.000 claims description 35
- 238000001514 detection method Methods 0.000 claims description 10
- 238000012549 training Methods 0.000 claims description 8
- 238000012935 Averaging Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 claims description 2
- 238000011160 research Methods 0.000 abstract description 4
- 238000013135 deep learning Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000003860 storage 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/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- 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)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Geometry (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本发明公开一种基于多FPGA异构架构的CNN神经网络加速设计方法,包括以下步骤:根据模块的功能判断,在RTL级使用Verilog HDL设计能实现完整的计算功能的模块,其余的模块使用Vivado的HLS工具进行开发;对卷积神经网络进行量化;CPU依据任务分配法分配计算任务给FPGA板;FPGA板和外部存储器进行初始化配置;CPU获取加载信息并将加载信息通过数据收发单元加载至各个FPGA开发板;两个卷积计算单元通过流水交替方式进行计算;直到当前卷积神经网络计算完成,输出结果。本发明采取HLS与HDL相结合的方式,对神经网络的不同模块分别使用HLS和HDL开发,缩短了开发时长,降低研究成本。
Description
技术领域
本发明涉及卷积神经网络加速技术领域,更具体地,涉及一种基于多FPGA异构架构的CNN神经网络加速设计方法。
背景技术
近年来,深度学习已经成为了学术界和工业界的研究热点。以卷积神经网络作为模型的算法在目标检测、语音算法方面取得了重大突破,而YOLO系列的卷积神经网络在目标检测领域中极具代表性,其中YOLOv3作为目前主流的检测方法有着优秀的性能,但由于目前的相关算法不断更新迭代且规模巨大,在嵌入式端的部署是一个长期存在的问题,利用CPU进行处理存在的问题是耗时较长,因此目前主流的解决方式是采用GPU、FPGA、ASIC芯片。
GPU是作为应对图像处理需求而出现的芯片、其数量众多的运算单元以及超高的并行运算能力非常契合深度学习的训练,但利用GPU进行神经网络训练存在的问题是能效比低且硬件结构固定。专用集成电路芯片(ASIC)是针对某一个场景定制的,是一种比GPU更加高效的方法,但是由于其开发周期长开发代价昂贵,并且由于ASIC都是定制的,这就使得它的可迁移性低。现场可编程门阵列FPGA是一种可编程器件,FPGA的可编程性和强大的并行计算能力使得FPGA成为深度学习处理器的主力军,但利用FPGA训练神经网络存在的问题是当训练的网络模型规模较大时,一些的FPGA板性能不足导致网络训练结果不够理想甚至由于计数单元不足无法完成网络部署。另一个问题就是目前利用FPGA进行神经网络开发时会利用到两种方法,第一种方法用HLS(High Level Synthesis,高层次综合),先通过C/C++语言对系统进行编写,在通过HLS可以快速生成卷积神经网络加速器IP核,做到降低FPGA代码的开发时间,但是对系统的底层构架无法做到精准描述,导致所设计的方案解决问题的能效不佳。第二种方法是利用HDL语言,可以对特定的网络获得出色的能效和吞吐率,但是存在的问题就是描述大型网络代码规模太大,流程复杂且开发效率低。
针对上述现有技术缺陷,本发明基于FPGA异构架构设计了CNN神经网络加速设计方法,通过对传统的FPGA加速CNN网络进行了改进,对算法进行权值剪枝,压缩模型大小。在量化训练时将32位浮点运算转换为16位或8位定点运算,降低内存占用。针对不同的网络模型采用灵活可变的FPGA异构架构,有效的减少网络模型对单个FPGA开发板的性能需求,降低研究成本。在进行神经网络开发时,采取HLS与HDL相结合的方式,对神经网络的不同模块分别使用HLS和HDL开发,相比HDL开发缩短了开发时长,相比HLS开发有更加高效的硬件利用率和更好的性能。
发明内容
本发明的目的在于提供一种基于多FPGA异构架构的CNN神经网络加速设计方法,对传统的FPGA加速CNN网络进行了改进,对算法进行权值剪枝,压缩模型大小,采用灵活可变的FPGA异构架构,有效的减少网络模型对单个FPGA开发板的性能需求,降低研究成本,采取HLS与HDL相结合的方式,对神经网络的不同模块分别使用HLS和HDL开发,相比HDL开发缩短了开发时长,相比HLS开发有更加高效的硬件利用率和更好的性能。
为达到上述目的,提供了一种基于多FPGA异构架构的CNN神经网络加速设计方法,包括以下步骤:
步骤1、设计卷积神经网络在FPGA开发板的若干个模块;根据模块的功能判断,在RTL级使用Verilog HDL设计能实现完整的计算功能的模块,其余的模块使用Vivado的HLS工具进行开发;所述FPGA开发板包括指令控制单元、数据收发单元、数量成对的卷积计算单元、输入缓存;
步骤2、对卷积神经网络进行量化,将卷积神经网络的浮动32位数据量化为定点16位或8位数据;
步骤3、利用PCIe总线连接CPU、外部存储器与若干个FPGA板,CPU依据任务分配法分配计算任务给FPGA板;
步骤4、CPU依据卷积神经网络的计算神经网络的相关信息对FPGA板和外部存储器进行初始化配置;所述初始化配置包括加载信息、计算参数;
步骤5、CPU获取加载信息并将加载信息通过数据收发单元加载至各个FPGA开发板;
步骤6、指令控制单元接受CPU的指令后,FPGA开发板通过输入缓存载入计算参数;
步骤7、两个卷积计算单元通过流水交替方式进行计算;
步骤8、对卷积计算单元的工作状态进行检测并依据计算检测方法进行调整;
步骤9、满足步骤8的条件下,重复6~8的操作,直到当前卷积神经网络计算完成,输出结果。
特别的,所述卷积神经网络采用YOLOv3网络。
特别的,步骤2中将卷积神经网络的浮动数据量化为定点数据具体包括量化卷积神经网络的权重数据步骤和量化卷积神经网络的特征图数据步骤。
特别的,所述量化网络的权重数据步骤的方法为:历遍卷积神经网络的每一个卷积层的权重数据,历遍不同的阶码,在保证量化后的整数表示范围比权重数据分布大的前提下,找到每层最优的权重阶码,根据原始权重和量化后的权重误差和的最小值确定16位动定点量化的小数点位置,确定小数部分的位长Q,将权重数据乘以比例2^Q,取整数数据即为int16动定点量化的结果;对int16动定点量化的结果进行反量化,反量化的过程为int16型量化结果除以比例系数2^Q,得到反量化的浮点数结果;对卷积神经网络的每一卷积层权重数据进行上述操作,最后形成该卷积层的量化权重数据。
特别的,所述量化卷积神经网络的特征图数据步骤的方法为:准备校准数据集,数量为训练集数据的10%;遍历网络每一层的特征图输入数据,找出每一层输入特征图数据的最值,确定16位动定点量化的小数点位置,即确定小数部分的位长Q,对网络的每一层进行量化操作,确定每一层的量化小数位数Q,对校准数据集中的所有图片进行量化操作,对每一层的量化小数位数Q求平均值,得出最后的网络输入特征图的量化小数位数Q。
特别的,所述任务分配法具体包括以下步骤:使用预设的程序对卷积神经网络的网络模型大小进行分析,并获取每个FPGA板的参数性能来评估各个FPGA板的算力,依据算力分配每个FPGA板对应的任务量来保证每块开发板的执行时间基本持平。
特别的,所述步骤4中所述相关信息为卷积神经网络相关计算层的层数信息,各个层的连接关系、计算规模、权重数值信息。
特别的,所述步骤5中的加载信息为卷积神经网络的网络层数、节点数。
特别的,所述步骤7中流水交替方式具体为:将存于输入缓存中相应位置的参数载入第一个置闲的卷积计算单元中;同时从外部存储器中取出用于下次卷积计算单元的参数存于输入缓存的相应位置;将输入缓存参数载入第二个卷积计算单元,完成第二个卷积计算单元的参数配置。
特别的,所述步骤8中计算检测方法的具体方法为:检测到有卷积计算单元处于空闲状态时,就继续从外部存储器中对应位置取出用于下一个卷积计算单元载入的参数放置到输入缓存中。
本发明的有益效果:
1、本发明通过CPU控制多FPGA的方式解决现有大型神经网络的加速实现对于单个FPGA开发板性能需求高的问题,解决现有卷积神经网络规模大时无法在单FPGA上部署的问题。
2、本发明通过HDL结合HLS开发的方式,可以有效的解决HDL开发周期长、代码规模庞大的问题,解决现有加速卷积神经网络使用高层次综合开发性能不理想的问题。
3、本发明通过HDL结合HLS开发的方式,相比较单一的HLS开发的方式,所实现网络拥有更好的检测效果。
4、本发明通过通过使用FPGA加速计算的方式对CPU算力要求低,解决现有加速卷积神经网络使用RTL级开发生产效率低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的总体框架图。
图2为本发明实施例HLS结合HDL开发流程图。
图3为本发明实施例神经网络计算时的数据流程图。
具体实施方式
下面结合附图对本发明的优选实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
此外,术语“水平”、“竖直”、“悬垂”等术语并不表示要求部件绝对水平或悬垂,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。
如图1、图2、图3所示,为实施例的一种基于多FPGA异构架构的CNN神经网络加速设计方法,包括以下步骤:
步骤1:设计卷积神经网络在FPGA开发板的若干个模块,FPGA开发板包括指令控制单元、数据收发单元、数量成对的卷积计算单元、输入缓存。对卷积神经网络的功能模块采取HLS结合HDL实现的方法,针对不同的层为基础进行结构构建,采取灵活的设计方法,以YOLOv3为例,在YOLOv3中网络基本模块有:卷积层、BN层、LeakyReLU层、残差块、上采样层、拼接层。对不同的模块根据功能,分别采取HLS和HDL设计的方法。依据本发明的思想,卷积层的功能是对应位置做乘法后累加,本发明在RTL级使用Verilog HDL设计出功能具有大量加法与乘法的模块,通过状态机进行控制,就能实现完整的卷积层功能,改变控制信号就能调节通道数、尺寸和步长。对于其余功能模块使用Vivado的HLS工具进行开发,减小了网络部署的工作量,显著的缩短开发时长。
步骤2:步骤2.1:量化卷积神经网络的权重数据步骤,历遍每一个卷积层的权重数据,历遍不同的阶码,在保证量化后的整数表示范围比权重数据分布大的前提下,找到每层最优的权重阶码,使原始权重和量化后的权重误差和最小,根据最值确定16位动定点量化的小数点位置,确定小数部分的位长Q,将权重数据乘以比例2^Q,取整数数据即为int16动定点量化的结果;反量化的过程为int16型量化结果除以比例系数2^Q,得到反量化的浮点数结果;对网络的每一卷积层权重数据进行上述操作,最后形成该网络卷积层的量化权重数据;
步骤2.2:量化卷积神经网络的特征图数据步骤,准备校准数据集,数量为训练集数据的10%;遍历网络每一层的特征图输入数据,找出每一层输入特征图数据的最值,确定16位动定点量化的小数点位置,即确定小数部分的位长Q,对网络的每一层进行量化操作,确定每一层的量化小数位数Q,对校准数据集中的所有图片进行量化操作,对每一层的量化小数位数Q求平均值,得出最后的网络输入特征图的量化小数位数Q。
步骤3:通过PCIe总线连接CPU和FPGA板,CPU依据任务分配法分配计算任务给FPGA板,任务分配法为:使用预设的程序对卷积神经网络的网络模型大小进行分析,输入FPGA开发板的参数性能,根据结果由CPU分配给各个开发板,分配准则是评估各个开发板的算力,根据评估结果分配对应任务量来保证每块开发板的执行时间基本持平。
步骤4:由CPU对FPGA写数据,采用CPU作为主控制器,FPGA开发板作为协控制器,首先CPU获取该神经网络的相关信息,相关信息包括卷积层、池化层等以及输入输出等神经网络相关计算层的层数信息,各个层的连接关系、计算规模、权重数值信息,通过本步骤保证CPU可以获取到所需计算神经网络的全部信息,从而动态的配置外部存储器的存储资源,对FPGA板和外部存储器进行初始化配置,初始化配置包括加载信息、计算参数,缓存一次性存取的规模大小以及卷积计算单元的相关参数。
步骤5:CPU获取加载信息并将加载信息通过数据收发单元加载至各个FPGA开发,具体为:CPU将YOLOv3神经网络的网络层数、节点数信息,通过驱动程序的接口进行数据发送,然后FPGA开发板的数据收发模块通过PCIe总线接受数据后送至FPGA开发板的其他模块进行使用,当程序的接口读取FPGA开发板的数据时,用户应用程序通过驱动程序的接口产生读数据的请求,然后FPGA开发板用数据收发模块从FPGA开发板的其他模块中读取数据,并通过PCIe总线对该数据进行发送,然后CPU端即可接收该数据。
步骤6:指令控制单元接受CPU的指令后,FPGA开发板通过输入缓存载入计算参数,将存于输入缓存中相应位置的计算参数载入第一个置闲的卷积计算单元中;同时从外部存储器中取出用于下次卷积计算单元的参数存于输入缓存的相应位置。将输入缓存参数载入第二个卷积计算单元,完成第二个卷积计算单元的参数配置。
步骤7:两个卷积计算单元通过流水交替方式进行计算,具体为:在步骤6进行同时,将输入数据输送到卷积计算单元1的输入端口,控制第一个卷积计算单元进行计算,得到计算结果。当第一个卷积计算单元进行计算时,有计算指令输入时,检测第二个卷积计算单元是否处于计算状态,如果处于计算状态,则继续等待,如果没有处于计算状态,则将输入数据输送到卷积计算单元2的输入端口,进行计算。
步骤8:对卷积计算单元的工作状态进行检测并依据计算检测方法进行调整,计算检测方法具体为,检测到有卷积计算单元处于空闲状态时,就继续从外部存储器中对应位置取出用于下一个卷积计算单元载入的参数放置到输入缓存中。
步骤9:满足步骤8的条件下,重复6~8的操作,直到当前网络的计算进度达到100%,此时将输出结果输出给输出缓存,并反馈CPU计算结束,等待外部存储器读取最终的计算结果并存储。
虽然结合附图描述了本发明的实施方式,但是专利所有者可以在所附权利要求的范围之内做出各种变形或修改,只要不超过本发明的权利要求所描述的保护范围,都应当在本发明的保护范围之内。
Claims (10)
1.一种基于多FPGA异构架构的CNN神经网络加速设计方法,其特征在于:包括以下步骤:
步骤1、设计卷积神经网络在FPGA开发板的若干个模块;根据模块的功能判断,在RTL级使用Verilog HDL设计能实现完整的计算功能的模块,其余的模块使用Vivado的HLS工具进行开发;所述FPGA开发板包括指令控制单元、数据收发单元、数量成对的卷积计算单元、输入缓存;
步骤2、对卷积神经网络进行量化,将卷积神经网络的浮动32位数据量化为定点16位或8位数据;
步骤3、利用PCIe总线连接CPU、外部存储器与若干个FPGA板,CPU依据任务分配法分配计算任务给FPGA板;
步骤4、CPU依据卷积神经网络的计算神经网络的相关信息对FPGA板和外部存储器进行初始化配置;所述初始化配置包括加载信息、计算参数;
步骤5、CPU获取加载信息并将加载信息通过数据收发单元加载至各个FPGA开发板;
步骤6、指令控制单元接受CPU的指令后,FPGA开发板通过输入缓存载入计算参数;
步骤7、两个卷积计算单元通过流水交替方式进行计算;
步骤8、对卷积计算单元的工作状态进行检测并依据计算检测方法进行调整;
步骤9、满足步骤8的条件下,重复6~8的操作,直到当前卷积神经网络计算完成,输出结果。
2.根据权利要求1所述的一种基于多FPGA异构架构的CNN神经网络加速设计方法,其特征在于:所述卷积神经网络采用YOLOv3网络。
3.根据权利要求1所述的一种基于多FPGA异构架构的CNN神经网络加速设计方法,其特征在于:步骤2中将卷积神经网络的浮动数据量化为定点数据具体包括量化卷积神经网络的权重数据步骤和量化卷积神经网络的特征图数据步骤。
4.根据权利要求3所述的一种基于多FPGA异构架构的CNN神经网络加速设计方法,其特征在于:所述量化网络的权重数据步骤的方法为:历遍卷积神经网络的每一个卷积层的权重数据,历遍不同的阶码,在保证量化后的整数表示范围比权重数据分布大的前提下,找到每层最优的权重阶码,根据原始权重和量化后的权重误差和的最小值确定16位动定点量化的小数点位置,确定小数部分的位长Q,将权重数据乘以比例2^Q,取整数数据即为int16动定点量化的结果;对int16动定点量化的结果进行反量化,反量化的过程为int16型量化结果除以比例系数2^Q,得到反量化的浮点数结果;对卷积神经网络的每一卷积层权重数据进行上述操作,最后形成该卷积层的量化权重数据。
5.根据权利要求3所述的一种基于多FPGA异构架构的CNN神经网络加速设计方法,其特征在于:所述量化卷积神经网络的特征图数据步骤的方法为:准备校准数据集,数量为训练集数据的10%;遍历网络每一层的特征图输入数据,找出每一层输入特征图数据的最值,确定16位动定点量化的小数点位置,即确定小数部分的位长Q,对网络的每一层进行量化操作,确定每一层的量化小数位数Q,对校准数据集中的所有图片进行量化操作,对每一层的量化小数位数Q求平均值,得出最后的网络输入特征图的量化小数位数Q。
6.根据权利要求1所述的一种基于多FPGA异构架构的CNN神经网络加速设计方法,其特征在于:所述任务分配法具体包括以下步骤:使用预设的程序对卷积神经网络的网络模型大小进行分析,并获取每个FPGA板的参数性能来评估各个FPGA板的算力,依据算力分配每个FPGA板对应的任务量来保证每块开发板的执行时间基本持平。
7.根据权利要求1所述的一种基于多FPGA异构架构的CNN神经网络加速设计方法,其特征在于:所述步骤4中所述相关信息为卷积神经网络相关计算层的层数信息,各个层的连接关系、计算规模、权重数值信息。
8.根据权利要求1所述的一种基于多FPGA异构架构的CNN神经网络加速设计方法,其特征在于:所述步骤5中的加载信息为卷积神经网络的网络层数、节点数。
9.根据权利要求1所述的一种基于多FPGA异构架构的CNN神经网络加速设计方法,其特征在于:所述步骤7中流水交替方式具体为:将存于输入缓存中相应位置的参数载入第一个置闲的卷积计算单元中;同时从外部存储器中取出用于下次卷积计算单元的参数存于输入缓存的相应位置;将输入缓存参数载入第二个卷积计算单元,完成第二个卷积计算单元的参数配置。
10.根据权利要求1所述的一种基于多FPGA异构架构的CNN神经网络加速设计方法,其特征在于:所述步骤8中计算检测方法的具体方法为:检测到有卷积计算单元处于空闲状态时,就继续从外部存储器中对应位置取出用于下一个卷积计算单元载入的参数放置到输入缓存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210749104.7A CN114997386B (zh) | 2022-06-29 | 2022-06-29 | 一种基于多fpga异构架构的cnn神经网络加速设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210749104.7A CN114997386B (zh) | 2022-06-29 | 2022-06-29 | 一种基于多fpga异构架构的cnn神经网络加速设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114997386A CN114997386A (zh) | 2022-09-02 |
CN114997386B true CN114997386B (zh) | 2024-03-22 |
Family
ID=83037972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210749104.7A Active CN114997386B (zh) | 2022-06-29 | 2022-06-29 | 一种基于多fpga异构架构的cnn神经网络加速设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114997386B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110084739A (zh) * | 2019-03-28 | 2019-08-02 | 东南大学 | 一种基于cnn的画质增强算法的fpga并行加速系统 |
CN110991632A (zh) * | 2019-11-29 | 2020-04-10 | 电子科技大学 | 一种基于fpga的异构神经网络计算加速器设计方法 |
WO2020258528A1 (zh) * | 2019-06-25 | 2020-12-30 | 东南大学 | 一种可配置的通用卷积神经网络加速器 |
CN113313171A (zh) * | 2021-05-28 | 2021-08-27 | 武汉理工大学 | 基于fpga实现图像识别的方法、装置、设备及存储介质 |
WO2021174790A1 (zh) * | 2020-03-05 | 2021-09-10 | 重庆大学 | 稀疏量化神经网络编码模式识别方法与系统 |
CN113392973A (zh) * | 2021-06-25 | 2021-09-14 | 广东工业大学 | 一种基于fpga的ai芯片神经网络加速方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11783200B2 (en) * | 2019-02-08 | 2023-10-10 | International Business Machines Corporation | Artificial neural network implementation in field-programmable gate arrays |
US20210334636A1 (en) * | 2020-04-28 | 2021-10-28 | Arizona Board Of Regents On Behalf Of Arizona State University | Systolic-cnn: an opencl-defined scalable runtime-flexible programmable accelerator architecture for accelerating convolutional neural network inference in cloud/edge computing |
-
2022
- 2022-06-29 CN CN202210749104.7A patent/CN114997386B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110084739A (zh) * | 2019-03-28 | 2019-08-02 | 东南大学 | 一种基于cnn的画质增强算法的fpga并行加速系统 |
WO2020258528A1 (zh) * | 2019-06-25 | 2020-12-30 | 东南大学 | 一种可配置的通用卷积神经网络加速器 |
CN110991632A (zh) * | 2019-11-29 | 2020-04-10 | 电子科技大学 | 一种基于fpga的异构神经网络计算加速器设计方法 |
WO2021174790A1 (zh) * | 2020-03-05 | 2021-09-10 | 重庆大学 | 稀疏量化神经网络编码模式识别方法与系统 |
CN113313171A (zh) * | 2021-05-28 | 2021-08-27 | 武汉理工大学 | 基于fpga实现图像识别的方法、装置、设备及存储介质 |
CN113392973A (zh) * | 2021-06-25 | 2021-09-14 | 广东工业大学 | 一种基于fpga的ai芯片神经网络加速方法 |
Non-Patent Citations (5)
Title |
---|
卢冶 ; 陈瑶 ; 李涛 ; 蔡瑞初 ; 宫晓利 ; .面向边缘计算的嵌入式FPGA卷积神经网络构建方法.计算机研究与发展.2018,(第03期),全文. * |
孙磊 ; 肖金球 ; 夏禹 ; 顾敏明 ; .改进的基于嵌入式SoC卷积神经网络识别模型.计算机应用与软件.2020,(第03期),全文. * |
李炳剑 ; 秦国轩 ; 朱少杰 ; 裴智慧 ; .面向卷积神经网络的FPGA加速器架构设计.计算机科学与探索.2020,(第03期),全文. * |
陈朋 ; 陈庆清 ; 王海霞 ; 张怡龙 ; 刘义鹏 ; 梁荣华 ; .基于改进动态配置的FPGA卷积神经网络加速器的优化方法.高技术通讯.2020,(第03期),全文. * |
雷小康 ; 尹志刚 ; 赵瑞莲 ; .基于FPGA的卷积神经网络定点加速.计算机应用.2020,(第10期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN114997386A (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108805267B (zh) | 用于卷积神经网络硬件加速的数据处理方法 | |
US20200226473A1 (en) | Systems, apparatus, methods, and architectures for heterogeneous precision acceleration of quantized neural networks | |
CN108416422A (zh) | 一种基于fpga的卷积神经网络实现方法及装置 | |
CN108805274B (zh) | 基于FPGA的Tiny-yolo卷积神经网络硬件加速方法及系统 | |
CN111459877A (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
CN108920413B (zh) | 面向gpdsp的卷积神经网络多核并行计算方法 | |
CN106485316A (zh) | 神经网络模型压缩方法以及装置 | |
CN113313243B (zh) | 神经网络加速器的确定方法、装置、设备以及存储介质 | |
CN110991632A (zh) | 一种基于fpga的异构神经网络计算加速器设计方法 | |
CN101717817B (zh) | 对基于随机上下文无关文法的rna二级结构预测进行加速的方法 | |
US20190171420A1 (en) | Dynamic, variable bit-width numerical precision on fpgas for machine learning tasks | |
CN109447241A (zh) | 一种面向物联网领域的动态可重构卷积神经网络加速器架构 | |
CN111414994A (zh) | 一种基于FPGA的Yolov3网络计算加速系统及其加速方法 | |
CN113361695B (zh) | 卷积神经网络加速器 | |
CN108647779A (zh) | 一种低位宽卷积神经网络可重构计算单元 | |
CN111931917A (zh) | 前向计算的实现方法及装置、存储介质、电子装置 | |
CN100535868C (zh) | 一种实时位真仿真开发系统及其方法 | |
CN113238989A (zh) | 将数据进行量化的设备、方法及计算机可读存储介质 | |
CN110929862B (zh) | 定点化的神经网络模型量化装置和方法 | |
Struharik et al. | CoNNa–Hardware accelerator for compressed convolutional neural networks | |
US11423313B1 (en) | Configurable function approximation based on switching mapping table content | |
CN114997386B (zh) | 一种基于多fpga异构架构的cnn神经网络加速设计方法 | |
CN113238987B (zh) | 量化数据的统计量化器、存储装置、处理装置及板卡 | |
CN116762080A (zh) | 神经网络生成装置、神经网络运算装置、边缘设备、神经网络控制方法以及软件生成程序 | |
CN114239799A (zh) | 一种高效目标检测方法、设备、介质和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |