CN114936636A - 一种基于fpga的通用型轻量级卷积神经网络加速方法 - Google Patents

一种基于fpga的通用型轻量级卷积神经网络加速方法 Download PDF

Info

Publication number
CN114936636A
CN114936636A CN202210473456.4A CN202210473456A CN114936636A CN 114936636 A CN114936636 A CN 114936636A CN 202210473456 A CN202210473456 A CN 202210473456A CN 114936636 A CN114936636 A CN 114936636A
Authority
CN
China
Prior art keywords
target
neural network
data
convolutional neural
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210473456.4A
Other languages
English (en)
Inventor
尹泽芃
杨清海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Institute of Technology of Xidian University
Original Assignee
Guangzhou Institute of Technology of Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Institute of Technology of Xidian University filed Critical Guangzhou Institute of Technology of Xidian University
Priority to CN202210473456.4A priority Critical patent/CN114936636A/zh
Publication of CN114936636A publication Critical patent/CN114936636A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于FPGA的通用型轻量级卷积神经网络加速方法,涉及计算机硬件加速技术领域。获取目标卷积神经网络当前的目标输入数据和模型结构参数;根据目标输入数据和模型结构参数配置目标IP核中的目标功能算子;通过目标功能算子计算目标输入数据得到目标输出数据,并根据模型结构参数和存储单元的容量对目标输出数据进行搬运;根据模型结构参数依次重复执行上述步骤,完成目标卷积神经网络整体的计算。通过将卷积神经网络模型划分成基本算子的组合,根据目标输入数据和目标基本算子的类型配置各个基本算子,依次完成各个目标功能算子的计算,进而完成目标卷积神经网络整体的计算。提升了卷积神经网络加速器的可拓展性和灵活性。

Description

一种基于FPGA的通用型轻量级卷积神经网络加速方法
技术领域
本发明涉及计算机硬件加速技术领域,具体涉及一种基于FPGA的通用型轻量级卷积神经网络加速方法。
背景技术
在计算机视觉领域,基于卷积神经网络的方法具有十分高效的性能,但与传统方法相比需要更多的计算和存储资源。嵌入式终端设备由于成本、功耗等限制因素使其并不具备较高性能的计算和存储资源,在执行深度学习算法时效果并不理想。FPGA(Field-Programmable Gate Array,现场可编程门阵列)具有低功耗、灵活性好、并行计算能力强等优点,成为神经网络推理计算的一大定制化平台。
现有技术中,大部分基于FPGA的卷积神经网络加速器以专用电路的形式进行设计,即针对特定的神经网络模型进行硬件电路设计。该类加速器对特定神经网络具有较好的计算加速效果,但其可拓展性差、灵活性差,并且硬件资源消耗较高。部分基于FPGA的卷积神经网络加速器针对卷积计算进行硬件电路的可配置化设计,使其具有一定的计算灵活性,但其加速器功能又相对单一,无法满足如池化、全连接、特征相加等多种计算形式的计算需求。
发明内容
本发明的目的就在于解决上述背景技术的问题,而提出一种基于FPGA的通用型轻量级卷积神经网络加速方法。
本发明的目的可以通过以下技术方案实现:
本发明实施例提供了一种基于FPGA的通用型轻量级卷积神经网络加速方法,所述方法包括:
获取目标卷积神经网络当前的目标输入数据和模型结构参数;
根据所述目标输入数据和所述模型结构参数配置目标IP核中当前对应的基本算子,作为目标功能算子;所述目标IP核包括所述目标卷积神经网络的所有基本算子,不同基本算子实现不同的计算功能;
通过目标功能算子读取所述目标输入数据,计算得到目标输出数据,并根据所述模型结构参数和存储单元的容量对所述目标输出数据进行搬运;
根据所述模型结构参数依次重复执行上述步骤,直到完成所述目标卷积神经网络整体的计算。
可选地,所述目标卷积神经网络的输入数据包括原始输入数据;
在获取目标卷积神经网络当前的目标输入数据和模型结构参数之前,所述方法还包括:
获取所述目标卷积神经网络的原始采集数据;所述原始采集数据包括待处理图像和目标卷积神经网络的模型功能参数;
将所述原始采集数据进行低比特位定点数量化,得到所述原始输入数据,存入输入数据BRAM中。
可选地,所述模型功能参数包括卷积核参数、卷积核偏置参数、全连接层权重参数和全连接层偏置参数中的至少一种参数。
可选地,所述目标卷积神经网络的输入数据还包括中间计算数据;
通过目标功能算子读取所述目标输入数据,计算得到目标输出数据,并根据所述模型结构参数和存储单元的容量对所述目标输出数据进行搬运,包括:
通过目标功能算子读取所述目标输入数据,计算得到目标输出数据,存入输出数据BRAM中;
根据所述模型结构参数确定所述目标输出数据的数据类型;所述数据类型包括将参与下一次计算的第一数据和不参与下一次计算的第二数据;
将所述第一数据作为下一次计算的所述中间计算数据存入所述输入数据BRAM中,根据所述输入数据BRAM的容量将对所述第二数据进行存储。
可选地,所述输入数据BRAM和所述输出数据BRAM为双端口BRAM,采用乒乓操作的方式;在所述目标功能算子执行计算操作的同时,所述输入数据BRAM和所述输出数据BRAM进行数据搬运。
可选地,所述模型结构参数包括所述目标卷积神经网络的所有基本算子和各个基本算子的连接顺序。
可选地,所述目标IP核包括卷积计算单元、池化填充计算单元、特征相加计算单元、全连接计算单元和激活计算单元中的至少一种基本算子。
可选地,根据所述目标输入数据和所述模型结构参数配置目标IP核中当前对应的基本算子,作为目标功能算子,包括:
根据所述模型结构参数确定目标IP核中当前对应的基本算子,作为目标基本算子;
根据所述目标基本算子的类型确定所述目标基本算子需要配置的寄存器,作为目标寄存器;
根据所述目标输入数据配置所述目标寄存器,得到目标功能算子。
可选地,目标寄存器包括特征图起始地址寄存器、模型功能参数起始地址寄存器、结果输出起始地址寄存器、特征图行数寄存器、特征图列数寄存器、激活使能寄存器、填充使能寄存器、特征图数量寄存器、特征图尺寸寄存器、全连接层输入列向量长度寄存器、模式选择寄存器中的至少一种。
一种基于FPGA的通用型轻量级卷积神经网络加速方法,获取目标卷积神经网络当前的目标输入数据和模型结构参数;根据目标输入数据和模型结构参数配置目标IP核中当前对应的基本算子,作为目标功能算子;目标IP核包括目标卷积神经网络的所有基本算子,不同基本算子实现不同的计算功能;通过目标功能算子读取目标输入数据,计算得到目标输出数据,并根据模型结构参数和存储单元的容量对目标输出数据进行搬运;根据模型结构参数依次重复执行上述步骤,直到完成目标卷积神经网络整体的计算。通过将卷积神经网络模型划分成基本算子的组合,根据目标输入数据和目标基本算子的类型配置各个基本算子,依次完成各个目标功能算子的计算,进而完成目标卷积神经网络整体的计算。提升了卷积神经网络加速器的可拓展性和灵活性。
附图说明
下面结合附图对本发明作进一步的说明。
图1为本发明实施例提供的一种基于FPGA的通用型轻量级卷积神经网络加速方法的流程图;
图2为本发明实施例提供的卷积神经网络加速器系统的系统框图;
图3为本发明实施例提供的一种卷积神经网络加速器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种基于FPGA的通用型轻量级卷积神经网络加速方法。参见图1,图1为本发明实施例提供的一种基于FPGA的通用型轻量级卷积神经网络加速方法的流程图。该方法可以包括以下步骤:
S101,获取目标卷积神经网络当前的目标输入数据和模型结构参数。
S102,根据目标输入数据和模型结构参数配置目标IP核中当前对应的基本算子,作为目标功能算子。
S103,通过目标功能算子读取目标输入数据,计算得到目标输出数据,并根据模型结构参数和存储单元的容量对目标输出数据进行搬运。
S104,根据所述模型结构参数依次重复执行上述步骤,直到完成所述目标卷积神经网络整体的计算。
目标IP核包括目标卷积神经网络的所有基本算子,不同基本算子实现不同的计算功能。
基于本发明实施例提供的一种基于FPGA的通用型轻量级卷积神经网络加速方法,通过将卷积神经网络模型划分成基本算子的组合,根据目标输入数据和目标基本算子的类型配置各个基本算子,依次完成各个目标功能算子的计算,进而完成目标卷积神经网络整体的计算。提升了卷积神经网络加速器的可拓展性和灵活性。
一种实现方式中,目标卷积神经网络可以由多个基本算子组合构成,多个基本算子可封装在同一IP核中,通过时分复用的方式调度各计算单元完成相应计算功能,可以达到降低系统整体拓扑复杂度、降低总线矩阵资源消耗的作用。
在一个实施例中,模型结构参数包括目标卷积神经网络的所有基本算子和各个基本算子的连接顺序。
一种实现方式中,通过模型结构参数即可确定目标卷积神经网络的网络结构。
在一个实施例中,目标卷积神经网络的输入数据包括原始输入数据。
在步骤S101之前,该方法还包括:
步骤一,获取目标卷积神经网络的原始采集数据。
步骤二,将原始采集数据进行低比特位定点数量化,得到原始输入数据,存入输入数据BRAM中。
原始采集数据包括待处理图像和目标卷积神经网络的模型功能参数。
一种实现方式中,模型功能参数可以为Pytorch等深度学习框架下训练好的深度学习模型参数。
一种实现方式中,将训练好的、精度为浮点数32位的模型参数以定点数格式进行量化,将通过摄像头或其他方式得到的待处理图像以同样的方式进行定点数量化。由于神经网络具有较好的鲁棒性,对数据精度敏感性不高,在进行定点数量化后不会对最终的推理计算结果产生较大影响。此外,在FPGA上实现32位浮点数乘加运算消耗的硬件计算资源、存储资源较多。通过对模型参数及图像数据进行低比特位定点数量化操作,大大降低了硬件计算资源和存储资源的消耗,提升了计算速率。
一种实现方式中,原始输入数据包括进行定点数量化后的待处理图像(以下称为目标待处理图像)和模型功能参数(以下称为目标模型功能参数)。
在一个实施例中,模型功能参数包括卷积核参数、卷积核偏置参数、全连接层权重参数和全连接层偏置参数中的至少一种参数。
一种实现方式中,通过卷积核参数、卷积核偏置参数、全连接层权重参数和全连接层偏置参数的变化,可以使用相同的卷积神经网络结构满足不同的应用需求。
在一个实施例中,目标卷积神经网络的输入数据还包括中间计算数据。
步骤S104包括:
步骤一,通过目标功能算子读取目标输入数据,计算得到目标输出数据,存入输出数据BRAM中。
步骤二,根据模型结构参数确定目标输出数据的数据类型。
步骤三,将第一数据作为下一次计算的中间计算数据存入输入数据BRAM中,根据输入数据BRAM的容量将对第二数据进行存储。
数据类型包括将参与下一次计算的第一数据和不参与下一次计算的第二数据。
一种实现方式中,数据搬运的主要影响因素为输入数据BRAM的存储容量,若存储容量足够,则可以将第一数据和第二数据均存储到输入数据BRAM,若存储容量有限,则需要优先存储第一数据,并在保证输入数据BRAM的存储资源最大化利用的情况下,将剩余数据搬运至片外存储。由于数据在FPGA芯片与外部的存储芯片之间进行转移会导致较大的时延及功耗消耗,因此,通过上述操作可以减少不必要的片内与片外之间的数据交互,提升目标功能算子的执行效率,降低功耗。
在一个实施例中,输入数据BRAM和输出数据BRAM为双端口BRAM,采用乒乓操作的方式;在目标功能算子执行计算操作的同时,输入数据BRAM和输出数据BRAM进行数据搬运。
一种实现方式中,通过采用乒乓操作可以实现计算操作与数据搬运的并行进行,提升目标卷积神经网络的执行效率。
在一个实施例中,参见图2,图2为本发明实施例提供的卷积神经网络加速器系统的系统框图。该系统包括通用型轻量级卷积神经网络加速器、双端口输入数据BRAM(BRAM1和BRAM2)、输出数据BRAM(BRAM3)和总线接口。
一种实现方式中,加速器与双端口BRAM之间进行直连,加速器可以高速地完成对片上BRAM存储空间内数据的读写操作。将目标待处理图像写入输入BRAM1中;将卷积核参数、卷积核偏置参数、全连接层权重参数、全连接层偏置参数存放在输入数据BRAM2中。存储在BRAM1和BRAM2中的数据作为待计算数据,在加速器完成一次数据读取后,BRAM1中的目标待处理图像的数据、全连接层输入列向量数据不会丢失。考虑到一个目标待处理图像将会与多个卷积核进行卷积计算、一个全连接层输入列向量数据将会与多组全连接层权重数据相乘。对于目标待处理图像的数据、全连接层输入列向量数据,在下次计算时可直接从BRAM1中读取,无需每次计算都要从FPGA片外的存储器中读取数据。相较于每次从片外存储器中读取数据来进行卷积计算、全连接计算,该方法有效地减少了待计算数据的搬运时间并降低了系统的能耗。其中加速器各计算单元通过控制加速器与BRAM1和BRAM2之间的BRAM1_PORT、BRAM2_PORT接口进行待计算数据读取,通过控制加速器与BRAM3之间的BRAM3_PORT接口进行计算结果数据的写出。总线接口可以为AXI、AHB等系统总线,通过总线接口可以对加速器相关寄存器进行配置。
在一个实施例中,目标IP核包括卷积计算单元、池化填充计算单元、特征相加计算单元、全连接计算单元和激活计算单元中的至少一种基本算子。
一种实现方式中,将卷积神经网络模型划分成基本算子(卷积、池化、特征相加、激活、全连接、填充)的组合。设计针对基本算子的、可配置的通用型硬件加速计算单元。可配置的硬件加速计算单元根据上述步骤103中的寄存器信息完成相应算子的计算任务。同一硬件加速计算单元可根据不同的寄存器信息,对不同尺寸下的输入数据进行相应的计算处理,即无需设计多个同类型计算的计算单元来适配不同尺寸的计算需求,大大降低了硬件资源的消耗情况。
卷积计算单元、池化填充计算单元、特征相加计算单元、激活计算单元和全连接计算单元,均采用流水线架构设计,使各计算单元的数据的读取、计算、输出可以同时进行,提升各计算单元的计算效率。
卷积计算单元设计思路包括:将需要计算的卷积核参数读入卷积计算单元中并暂存在卷积计算单元的寄存器中;对于输入特征图数据采取滑窗式顺序进行读取,并将读取到的特征图数据暂存在卷积计算单元的寄存器中。读入卷积计算单元的卷积核参数与位于特征图滑窗中的特征图数据进行卷积计算。综合考虑待计算数据的读取速率、计算结果的输出速率,进行结构性优化。具体为:
若限制整体卷积计算速率的因素为输入数据读取速率,则增加卷积计算单元一次性进行计算的卷积核个数,通过时分复用的方式,针对不同的卷积核进行卷积计算,提高乘法器资源利用率,提升整体计算速率。
若限制整体卷积计算速率的因素为输出数据写出速率,则减少卷积计算单元一次性进行计算的卷积核个数,减少不必要的硬件资源消耗。
通过采用滑窗式数据读取及计算的方式来减少计算单元中数据的缓存空间需求,降低了资源消耗。综合考虑加速器的特征图数据读取速率、结果数据输出速率以及乘法器资源等因素,对卷积计算单元进行结构性优化,实现整体卷积计算的高效运行,降低硬件计算资源的资源消耗。
池化填充计算单元设计思路包括:虽然填充操作计算量小,但产生了大量的数据交互以及存储需求,增加了系统整体推理计算的时间。由于大部分填充操作前为池化计算操作,故可将池化计算与填充计算进行层间融合计算,减少了特征图数据在FPGA芯片与片外存储器之间的交互,从而减少计算时间,减少功耗。根据填充使能寄存器信息,若需要进行填充操作,则池化填充计算单元参考步骤3中的寄存器信息在池化计算前、后以及过程中进行相应的填充操作。根据填充使能寄存器信息,若不需要进行填充操作,则池化填充计算单元只进行池化计算操作。池化计算通过滑窗的方式完成数据的读取及计算操作,减少硬件资源消耗。
特征相加计算单元设计思路包括:特征相加计算单元的状态机依次读取各输入特征图对应位置的数据,完成相加计算并将计算结果写入输出数据BRAM3中。完成对特征图同一位置的数据相加计算后,对各输入特征图后续位置上的数据依次进行数据的读取及计算,直到完成所有位置上数据的相加计算。
全连接计算单元设计思路包括:全连接计算单元从BRAM1,BRAM2中读取全连接层输入列向量数据和全连接层的模型权重参数数据流,在全连接计算单元内部通过流水线架构实现乘加运算,减少硬件资源消耗。
激活单元设计思路包括:激活计算单元与输出数据直接相连,若需要对输出数据进行激活操作,则加速器可通过流水线计算方式对输出数据进行激活计算,省去了数据单独进行激活计算的搬运和计算时间。若不需要进行激活计算,则激活单元不对输出数据进行处理。
在一个实施例中,参见图3,图3为本发明实施例提供的一种卷积神经网络加速器的结构示意图。卷积神经网络加速器包括卷积计算单元、池化填充计算单元(池化+填充计算单元)、特征相加计算单元、全连接计算单元和激活计算单元和三个通路选择器。卷积计算单元、池化填充计算单元、特征相加计算单元和全连接计算单元通过通路选择器与BRAM1的接口BRAM1_PORT相连,通过BRAM1_PORT读取BRAM1中的目标待处理图像。卷积计算单元和全连接计算单元通过通路选择器与和BRAM2的接口BRAM2_PORT相连,通过BRAM2_PORT读取BRAM2中的卷积核参数、卷积核偏置参数、全连接层权重参数和全连接层偏置参数。卷积计算单元、池化填充计算单元、特征相加计算单元和全连接计算单元通过通路选择器与激活计算单元连接,激活计算单元与BRAM3的接口BRAM3_PORT相连,通过BRAM3_PORT将计算结果写入BRAM3中。
在一个实施例中,步骤S103包括:
步骤一,根据模型结构参数确定目标IP核中当前对应的基本算子,作为目标基本算子。
步骤二,根据目标基本算子的类型确定目标基本算子需要配置的寄存器,作为目标寄存器。
步骤三,根据目标输入数据配置目标寄存器,得到目标功能算子。
在一个实施例中,目标寄存器包括特征图起始地址寄存器、模型功能参数起始地址寄存器、结果输出起始地址寄存器、特征图行数寄存器、特征图列数寄存器、激活使能寄存器、填充使能寄存器、特征图数量寄存器、特征图尺寸寄存器、全连接层输入列向量长度寄存器、模式选择寄存器中的至少一种。
一种实现方式中,根据基本算子的功能,不同的基本算子所需设置的寄存器的数量和类型不同。
一种实现方式中,通过配置特征图起始地址寄存器确定待处理图像在输入数据BRAM中的起始地址信息;通过配置模型功能参数起始地址寄存器确定模型功能参数在输入数据BRAM中的起始地址信息;通过配置结果输出起始地址寄存器确定输出结果在输出数据BRAM中的起始地址信息;通过配置特征图行数寄存器确定待计算特征图的行数信息;通过配置特征图列数寄存器确定待计算特征图的列数信息;通过配置激活使能寄存器确定是否对计算结果进行激活操作的信息;通过配置填充使能寄存器确定是否在进行池化计算的同时进行填充操作的信息;通过配置特征图数量寄存器确定需要进行相加的特征图的数量信息;通过配置特征图尺寸寄存器确定进行特征图相加时特征图的尺寸信息;通过配置全连接层输入列向量长度寄存器确定该全连接层输入列向量的长度信息;通过配置模式选择寄存器确定需要进行的计算模式信息,例如,卷积计算模式、全连接计算模式等。
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。

Claims (9)

1.一种基于FPGA的通用型轻量级卷积神经网络加速方法,其特征在于,所述方法包括:
获取目标卷积神经网络当前的目标输入数据和模型结构参数;
根据所述目标输入数据和所述模型结构参数配置目标IP核中当前对应的基本算子,作为目标功能算子;所述目标IP核包括所述目标卷积神经网络的所有基本算子,不同基本算子实现不同的计算功能;
通过目标功能算子读取所述目标输入数据,计算得到目标输出数据,并根据所述模型结构参数和存储单元的容量对所述目标输出数据进行搬运;
根据所述模型结构参数依次重复执行上述步骤,直到完成所述目标卷积神经网络整体的计算。
2.根据权利要求1所述的一种基于FPGA的通用型轻量级卷积神经网络加速方法,其特征在于,所述目标卷积神经网络的输入数据包括原始输入数据;
在获取目标卷积神经网络当前的目标输入数据和模型结构参数之前,所述方法还包括:
获取所述目标卷积神经网络的原始采集数据;所述原始采集数据包括待处理图像和目标卷积神经网络的模型功能参数;
将所述原始采集数据进行低比特位定点数量化,得到所述原始输入数据,存入输入数据BRAM中。
3.根据权利要求2所述的一种基于FPGA的通用型轻量级卷积神经网络加速方法,其特征在于,所述模型功能参数包括卷积核参数、卷积核偏置参数、全连接层权重参数和全连接层偏置参数中的至少一种参数。
4.根据权利要求2所述的一种基于FPGA的通用型轻量级卷积神经网络加速方法,其特征在于,所述目标卷积神经网络的输入数据还包括中间计算数据;
通过目标功能算子读取所述目标输入数据,计算得到目标输出数据,并根据所述模型结构参数和存储单元的容量对所述目标输出数据进行搬运,包括:
通过目标功能算子读取所述目标输入数据,计算得到目标输出数据,存入输出数据BRAM中;
根据所述模型结构参数确定所述目标输出数据的数据类型;所述数据类型包括将参与下一次计算的第一数据和不参与下一次计算的第二数据;
将所述第一数据作为下一次计算的所述中间计算数据存入所述输入数据BRAM中,根据所述输入数据BRAM的容量将对所述第二数据进行存储。
5.根据权利要求4所述的一种基于FPGA的通用型轻量级卷积神经网络加速方法,其特征在于,所述输入数据BRAM和所述输出数据BRAM为双端口BRAM,采用乒乓操作的方式;在所述目标功能算子执行计算操作的同时,所述输入数据BRAM和所述输出数据BRAM进行数据搬运。
6.根据权利要求2所述的一种基于FPGA的通用型轻量级卷积神经网络加速方法,其特征在于,所述模型结构参数包括所述目标卷积神经网络的所有基本算子和各个基本算子的连接顺序。
7.根据权利要求6所述的一种基于FPGA的通用型轻量级卷积神经网络加速方法,其特征在于,所述目标IP核包括卷积计算单元、池化填充计算单元、特征相加计算单元、全连接计算单元和激活计算单元中的至少一种基本算子。
8.根据权利要求7所述的一种基于FPGA的通用型轻量级卷积神经网络加速方法,其特征在于,根据所述目标输入数据和所述模型结构参数配置目标IP核中当前对应的基本算子,作为目标功能算子,包括:
根据所述模型结构参数确定目标IP核中当前对应的基本算子,作为目标基本算子;
根据所述目标基本算子的类型确定所述目标基本算子需要配置的寄存器,作为目标寄存器;
根据所述目标输入数据配置所述目标寄存器,得到目标功能算子。
9.根据权利要求8所述的一种基于FPGA的通用型轻量级卷积神经网络加速方法,其特征在于,目标寄存器包括特征图起始地址寄存器、模型功能参数起始地址寄存器、结果输出起始地址寄存器、特征图行数寄存器、特征图列数寄存器、激活使能寄存器、填充使能寄存器、特征图数量寄存器、特征图尺寸寄存器、全连接层输入列向量长度寄存器、模式选择寄存器中的至少一种。
CN202210473456.4A 2022-04-29 2022-04-29 一种基于fpga的通用型轻量级卷积神经网络加速方法 Pending CN114936636A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210473456.4A CN114936636A (zh) 2022-04-29 2022-04-29 一种基于fpga的通用型轻量级卷积神经网络加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210473456.4A CN114936636A (zh) 2022-04-29 2022-04-29 一种基于fpga的通用型轻量级卷积神经网络加速方法

Publications (1)

Publication Number Publication Date
CN114936636A true CN114936636A (zh) 2022-08-23

Family

ID=82865306

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210473456.4A Pending CN114936636A (zh) 2022-04-29 2022-04-29 一种基于fpga的通用型轻量级卷积神经网络加速方法

Country Status (1)

Country Link
CN (1) CN114936636A (zh)

Similar Documents

Publication Publication Date Title
CN109213962B (zh) 运算加速器
CN111667051B (zh) 适用边缘设备的神经网络加速器及神经网络加速计算方法
CN107301455B (zh) 用于卷积神经网络的混合立方体存储系统及加速计算方法
US11775430B1 (en) Memory access for multiple circuit components
CN108665063B (zh) 用于bnn硬件加速器的双向并行处理卷积加速系统
CN111414994B (zh) 一种基于FPGA的Yolov3网络计算加速系统及其加速方法
US20210192246A1 (en) Convolutional neural network-based image processing method and device, and unmanned aerial vehicle
CN110738316B (zh) 基于神经网络的操作方法、装置及电子设备
CN111931925B (zh) 基于fpga的二值化神经网络的加速系统
US11880684B2 (en) RISC-V-based artificial intelligence inference method and system
CN111915001A (zh) 卷积计算引擎、人工智能芯片以及数据处理方法
CN112799599B (zh) 一种数据存储方法、计算核、芯片和电子设备
CN112836813A (zh) 一种用于混合精度神经网络计算的可重构脉动阵列系统
Shu et al. High energy efficiency FPGA-based accelerator for convolutional neural networks using weight combination
CN114003201A (zh) 矩阵变换方法、装置及卷积神经网络加速器
CN116227599A (zh) 一种推理模型的优化方法、装置、电子设备及存储介质
CN114936636A (zh) 一种基于fpga的通用型轻量级卷积神经网络加速方法
CN113128688B (zh) 通用型ai并行推理加速结构以及推理设备
CN112346704B (zh) 一种用于卷积神经网络的全流水线型乘加单元阵列电路
CN111475461B (zh) 面向ai应用的片上网络映射方法
CN113673691A (zh) 基于存算结合的多通道卷积fpga架构及其工作方法
CN115081603A (zh) 执行Winograd卷积的计算装置、集成电路装置及板卡
CN115081600A (zh) 执行Winograd卷积的变换单元、集成电路装置及板卡
CN112862079A (zh) 一种流水式卷积计算架构设计方法及残差网络加速系统
Cain et al. Convolution processing unit featuring adaptive precision using dynamic reconfiguration

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