CN111416743A - 一种卷积网络加速器、配置方法及计算机可读存储介质 - Google Patents

一种卷积网络加速器、配置方法及计算机可读存储介质 Download PDF

Info

Publication number
CN111416743A
CN111416743A CN202010196356.2A CN202010196356A CN111416743A CN 111416743 A CN111416743 A CN 111416743A CN 202010196356 A CN202010196356 A CN 202010196356A CN 111416743 A CN111416743 A CN 111416743A
Authority
CN
China
Prior art keywords
convolution
layer
acceleration
convolutional
kernel
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.)
Granted
Application number
CN202010196356.2A
Other languages
English (en)
Other versions
CN111416743B (zh
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN202010196356.2A priority Critical patent/CN111416743B/zh
Publication of CN111416743A publication Critical patent/CN111416743A/zh
Application granted granted Critical
Publication of CN111416743B publication Critical patent/CN111416743B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明属于卷积网络的硬件加速技术领域,公开了一种卷积网络加速器、配置方法及计算机可读存储介质,通过标志判断当前执行的前向网络层在整体网络模型所在的层数,获得当前执行的前向网络层配置参数,并通过所述配置参数从DDR加载特征图和权重参数;同时,卷积层的加速核还根据获得执行的前向网络层配置参数配置并行度。本发明通过配置参数改变网络层结构,可以将网络FPGA部署时仅用一层结构,不仅做到了灵活可配置性,同时也做到了节约和充分利用FPGA的片上资源的作用。采用多个RAM拼成总体的缓存区域的方法,提高了数据输入输出的带宽,同时采用乒乓操作,让特征图与权重参数加载和加速器的运算做到流水工作。

Description

一种卷积网络加速器、配置方法及计算机可读存储介质
技术领域
本发明属于卷积网络的硬件加速技术领域,尤其涉及一种卷积网络加速器、配置方法及计算机可读存储介质。
背景技术
目前,随着深度学习技术的发展,卷积神经网络越来越广泛地应用于计算机视觉如目标检测识别、跟踪、语义分割等和语音识别及自然语言处理等领域,其突出的数据拟合性能和模型的通用性,让卷积神经网络在各种复杂场景领域的应用代替了原本的传统建模方法,成为了该领域的标杆。但同时,强大的数据拟合能力是以庞大的数据量和计算量为代价的,例如,AlexNet的模型大小为233MB,计算量为0.7GFLOPs;VGG-16的模型大小为528MB,计算量为15.5GFLOPs。
当今主流的深度学习硬件平台为一些大吞吐率强计算能力的GPU平台,GPU平台可以在满足计算量的同时满足可灵活配置不同的网络结构,能作为深度学习的训练平台和云端学习平台,但是在需要使用嵌入式设备作为主要平台需要考虑平台的体积和功耗的应用场景,GPU平台不具有优势。同时作为嵌入式平台的主流芯片类型如ARM架构等来说,其吞吐率又达不到实时性的要求。
作为目前嵌入式平台深度学习的热门加速器件,FPGA(现场可编程门阵列)不仅有低功耗的优势,同时,由于其灵活编程可配置性、高并行度的特点,可以在较小的资源使用量下达到可裁剪的高并行度。
综上所述,目前比较多的在FPGA上实现的卷积网络硬件加速的方案中现有技术存在的问题是:(1)都是针对特定的某种网络结构模型,
(2)在片上实现了模型所有的网络层,这种方式只能针对一些较小的网络,或者没有充分利用FPGA的资源,
(3)没有做到分时复用,并行度较低。
解决上述技术问题的难度:目前在FPGA上实现卷积神经网络的公开方案中,没有一种很好的通用实现方案,而且同时在实现高并行度的同时还需要考虑资源的消耗。
解决上述技术问题的意义:解决如上所述内容的存在问题,对于不同的网络结构,可以仅仅修改配置文件即可实现不同的网络结构,不需要重新编写或者修改整个代码,同时对于不同类型的FPGA芯片能在并行度和资源之间选择一个平衡点。
发明内容
针对现有技术存在的问题,本发明提供了一种卷积网络加速器、配置方法及计算机可读存储介质,具体涉及一种基于FPGA芯片构造的卷积网络加速器结构和配置方法。本发明提供的高吞吐率的基于FPGA的卷积网络加速器,并行性高且充分利用了FPGA的片上资源,同时,其灵活可配置性可以根据需求改变重配置硬件。
本发明是这样实现的,一种卷积网络加速器配置方法,包括:
步骤一,通过标志判断当前执行的前向网络层在整体网络模型所在的层数,获得当前执行的前向网络层配置参数;
步骤二,通过所述配置参数从DDR加载特征图和权重参数;同时,卷积层的加速核还根据获得执行的前向网络层配置参数配置并行度。
进一步,步骤一中,配置参数包括:
输入输出特征图的长、宽、通道数;
卷积核的长、宽、通道数;
卷积和池化操作的步长。
进一步,步骤二中,DDR加载特征图和权重参数方法包括单维度分块加载,将特征图和权重参数分割至仅剩一维方向,并根据分块后的特征图和权重,将卷积运算转换为两种硬件结构;第一种,利用累加树减少加法的计算时间,将原本加法计算的时间复杂度由O(n)降为O(log2n);
第二种,使用脉动阵列优化FPGA的综合结果,同时使卷积加速核的数据加载和数据计算进行流水操作。
进一步,DDR加载特征图和权重参数方法进一步包括分批加载,令卷积加速核的并行度为N×M,加载特征图和权重参数的缓存量为N×M的整数倍;从输入特征图的长C、输入特征图的宽R、输入特征图的通道数CHin、输出特征图的通道数CHout分块,分割后的输入特征图的长为TC、输入特征图的宽为TR、输入特征图的通道数为TCHin、输出特征图的通道数为TCHout
所述TC、TR、TCHin、TCHout满足
Figure BDA0002417747540000031
其中NDSP为片内乘法器数量,NBRAM为片内block RAM容量,单位为bit,BWDDR为DDR及其控制器带宽,单位为bit/s,fFPGA为FPGA的工作频率,单位为Hz,Qn为量化比特数,NOTFmap为输出特征图缓存容量,单位为bit。
进一步,输入特征图的长C、输入特征图的宽R、输入特征图的通道数CHin、输出特征图的通道数CHout分割方法包括:
TCHin=N、TCHout=M,卷积加速核的输入是尺寸为1×1×N的特征图、1×1×M的卷积核参数,卷积加速核数据加载模块从TC×TR×TCHin的特征图缓存和Kw×Kh×TCHout的权重参数缓存按次序读取卷积加速核需要的输入尺寸;最后对
Figure BDA0002417747540000032
个1×1×TCHout卷积加速核输出按维度累加得到(TC-Kw+1)×(TR-Kh+1)×TCHout的卷积层输出。
进一步,输入特征图的长C、输入特征图的宽R、输入特征图的通道数CHin、输出特征图的通道数CHout分割后卷积加速核的计算表达式为
Figure BDA0002417747540000041
根据此表达式将卷积加速核的结构映射成两种硬件结构;第一种卷积加速核的结构,由M个加速单元组成,每个加速单元由N个并行的乘法器和后续的累加树组成,将1×1×M卷积核参数复制N份,为1×1×M×N,然后送入卷积加速核中运算;
第二种卷积加速核的结构,由M×N个加速单元组成脉动阵列,每个加速单元由1个乘法器、1个加法器、2个寄存器组成。
进一步,步骤二中,卷积层的加速核还根据获得执行的前向网络层配置参数配置并行度中,包括:从DDR中加载数据的带宽,分批加载数据,从分批加载数据的顺序重新排列原来的加载顺序,并设计数据重排方式及其存储的粗并行度分割的乒乓RAM结构,按照卷积加速核的并行度分割成多个小RAM进行缓存。
本发明的另一目的在于提供一种卷积网络加速器(通过参数可配置网络结构和循环调用结构组成的卷积网络加速器),包括卷积层,池化层,激活函数层,批量归一化操作层;
卷积层,通过标志判断当前执行的前向网络层在整体网络模型所在的层数,获得当前执行的前向网络层配置参数,并通过所述配置参数从DDR加载特征图和权重参数;同时,卷积层的加速核还根据获得执行的前向网络层配置参数配置并行度;
所述池化层,根据配置参数设置当前层是否需要池化;
所述批量归一化层,在量化特征图和权重参数时,合并到权重和偏置中;
所述激活函数层,将量化的特征图和权重参数的缩放尺度与Relu激活函数的系数合并。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述卷积网络加速器配置方法。
本发明的另一目的在于提供一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机执行所述的卷积网络加速器配置方法。
综上所述,本发明的优点及积极效果为:本发明基于单层网络结构,通过参数加载的方式,获得当前层的特征图的尺寸、权重参数的尺寸,以及分块加载的参数和卷积加速核并行度的参数。本发明还提出了一种特征图核权重参数分块加载的方法,在满足不超过FPGA资源的前提下,使从外部存储器加载参数和前向计算的过程形成流水,还能从该分割方式转换卷积计算为两种经典的硬件结构。本发明充分利用了FPGA的优势,提高并行度和吞吐率,根据FPGA的资源限制和不同的网络结构,完成了在FPGA部署需要的网络。
相比于现有技术,本发明还具有以下有益效果:本发明通过配置参数改变网络层结构,可以将网络FPGA部署时仅用一层结构,不仅做到了灵活可配置性,同时也做到了节约和充分利用FPGA的片上资源的作用。
采用多个RAM拼成总体的缓存区域的方法,提高了数据输入输出的带宽,同时采用乒乓操作,让特征图与权重参数加载和加速器的运算做到流水工作。采用合理的分割特征图和权重参数的方式,使不超过FPGA资源的前提下,让数据加载的时间和加速器运算时间达到平衡,充分利用DDR及其控制器的带宽,同时,这种分割方式可以清晰地将卷积运算映射到两种经典地硬件结构中。
附图说明
图1是本发明实施例提供的卷积网络加速器结构图。
图2是本发明实施例的SiameseFC网络处理背景图像部分前向推理网络结构。
图3是本发明实施例的数据重排及乒乓RAM的并行分割方式。
图4是本发明实施例的分块加载方式示意图。
图5是本发明实施例的并列方式的总体结构图。
图6是本发明实施例的并列方式的PE内部结构图。
图7是本发明实施例的脉动阵列方式的总体结构图。
图8是本发明实施例的脉动阵列方式的PE内部结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
目前比较多的在FPGA上实现的卷积网络硬件加速的方案中,都是针对特定的某种网络结构模型,并且在片上实现了模型所有的网络层,这种方式只能针对一些较小的网络,或者没有充分利用FPGA的资源,没有做到分时复用,并行度较低。
针对现有技术存在的问题,本发明提供了一种卷积网络加速器、配置方法及计算机可读存储介质,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的一种卷积网络加速器是基于单层卷积网络基本结构,即卷积层+池化层+激活层+批量归一化操作层的结构;所述卷积层,通过标志判断当前执行的前向网络层在整体网络模型所在的层数,获得当前执行的前向网络层配置参数,并通过所述配置参数从DDR加载特征图和权重参数;同时,卷积层的加速核还根据获得执行的前向网络层配置参数配置并行度。
所述池化层,根据配置参数设置当前层是否需要池化。
批量归一化层,在量化特征图和权重参数时,合并到权重和偏置中。
激活函数层,将量化的特征图和权重参数的缩放尺度与Relu激活函数的系数合并。
本发明实施例提供的卷积网络加速器配置方法包括:
步骤一,通过标志判断当前执行的前向网络层对于整体网络模型所在的层数,获得当前层的配置参数如输入输出特征图的尺寸(长、宽、通道数)、卷积核的尺寸(长、宽、通道数)、卷积和池化操作的步长等。
步骤二,通过配置参数从DDR(双倍数据率片外存储器)分批加载特征图和权重参数。同时,卷积层的加速核也可以根据配置参数配置并行度。
具体地,本发明的具体实施例采用SiameseFC网络的处理背景图像部分前向推理网络结构。参考图2,该网络结构包括5层卷积层及批量归一化层和Relu、2层池化层。对于池化层,本实例为最大池化操作,可以根据配置参数设置当前层是否需要池化层。对于批量归一化层,在量化特征图和权重参数的时候,将该层合并到权重和偏置中。对于激活函数层,本发明只针对Relu一类的激活函数,将量化的特征图和权重参数的缩放尺度与Relu激活函数的系数合并。
如图1所示,本发明实例中为了充分利用参数加载和后续前向推理加速核的带宽,采用将存储RAM设计为乒乓RAM,使特征图和权重参数加载和加速器做到流水运行,而片上RAM的使用量变为原来的2倍。如图3所示,该乒乓RAM的特点是按照卷积加速核的并行度分割成多个小RAM缓存,提高访问数据的带宽。
在本发明中,令卷积加速核的并行度为N×M,加载特征图和权重参数的缓存量需为N×M的整数倍。可以从输入特征图的长C、输入特征图的宽R、输入特征图的通道数CHin、输出特征图的通道数CHout考虑分块,一般而言,由于卷积核的大小相对较小,一般不考虑卷积核的长Kw与卷积核的宽Kh。设分割后的输入特征图的长为TC、输入特征图的宽为TR、输入特征图的通道数为TCHin、输出特征图的通道数为TCHout
在本发明中,TC、TR、TCHin、TCHout需要满足
Figure BDA0002417747540000081
其中NDSP为片内乘法器数量,NBRAM为片内block RAM容量,单位为bit,BWDDR为DDR及其控制器带宽,单位为bit/s,fFPGA为FPGA的工作频率,单位为Hz,Qn为量化比特数,NOTFmap为输出特征图缓存容量,单位为bit,S为卷积滑窗的步长。
如图3所示,在加载卷积加速核所需要的数据时,对数据进一步分割,分割策略为:为了计算和编程方便,令TCHin=N、TCHout=M,卷积加速核的输入是尺寸为1×1×N的特征图、1×1×M的卷积核参数,卷积加速核数据加载模块从TC×TR×TCHin的特征图缓存和Kw×Kh×TCHout的权重参数缓存按次序读取卷积加速核需要的输入尺寸。最后需要对
Figure BDA0002417747540000082
个1×1×TCHout卷积加速核输出按其维度累加得到((TC-Kw)/S+1)×((TR-Kh)/S+1)×TCHout的卷积层输出。
具体地,在本实施例中,输入特征图的通道数为TCHin和输出特征图的通道数为TCHout都为16,除了第一层卷积外,输入特征图的长C和输入特征图的宽R都不做分割。
经过上述分割策略后,图4中的表达式f(X,Y)也就是卷积加速核的计算表达式为
Figure BDA0002417747540000083
故可以根据此表达式将卷积加速核的结构映射成两种经典硬件结构。对于第一种卷积加速核的结构,如图5所示,其由M个加速单元并行组成,如图6所示,每个加速单元由N个并行的乘法器和后续的累加树组成,对于此结构,需要将1×1×M卷积核参数复制N份,为1×1×M×N,然后送入卷积加速核中运算。对于第二种卷积加速核的结构,如图7所示,其由M×N个加速单元组成脉动阵列,加速单元结构如图8所示,每个加速单元由1个乘法器、1个加法器、2个寄存器组成。
下面结合具体实施例对本发明作进一步描述。
实施例
本发明实施例提供的基于FPGA芯片构造卷积网络加速器基于单层卷积网络基本结构,即卷积层+池化层+激活层+批量归一化操作层的结构,设计了通过标志判断当前执行的前向网络层对于整体网络模型所在的层数,获得当前层的配置参数如输入输出特征图的尺寸(长、宽、通道数)、卷积核的尺寸(长、宽、通道数)、卷积和池化操作的步长等,并通过配置参数从DDR(双倍数据率片外存储器)分批加载特征图和权重参数。同时,卷积层的加速核也可以根据配置参数配置并行度。
本发明还提供一种充分利用DDR带宽的方法,由于从DDR中分批加载的特征图和权重参数需要缓存在FPGA的片内存储器RAM(随机访问存储器)中,为了充分利用参数加载和后续前向推理加速核的带宽,采用将存储RAM设计为乒乓RAM,使特征图和权重参数加载和加速器做到流水运行,而片上RAM的使用量变为原来的2倍。该乒乓RAM的特点是按照卷积加速核的并行度分割成多个小RAM缓存,提高访问数据的带宽。
作为优选实施例,令卷积加速核的并行度为N×M,加载特征图和权重参数的缓存量需为N×M的整数倍。可以从输入特征图的长C、输入特征图的宽R、输入特征图的通道数CHin、输出特征图的通道数CHout考虑分块,一般而言,由于卷积核的大小相对较小,一般不考虑卷积核的长Kw与卷积核的宽Kh。设分割后的输入特征图的长为TC、输入特征图的宽为TR、输入特征图的通道数为TCHin、输出特征图的通道数为TCHout
作为优选实施例,TC、TR、TCHin、TCHout需要满足
Figure BDA0002417747540000101
其中NDSP为片内乘法器数量,NBRAM为片内block RAM容量,单位为bit,BWDDR为DDR及其控制器带宽,单位为bit/s,fFPGA为FPGA的工作频率,单位为Hz,Qn为量化比特数,NOTFmap为输出特征图缓存容量,单位为bit。
本发明还提供两种卷积加速核的实现方式,特点是通过一定的分割读取数据的策略将卷积运算转换为两种经典的硬件结构。第一种利用累加树减少加法的计算时间,即将原本加法计算的时间复杂度由O(n)降为O(log2n),第二种使用脉动阵列的思想优化FPGA的综合结果,同时能使卷积加速核的数据加载和数据计算进行流水操作。
作为优选实施例,上述的分割策略为:为了计算和编程方便,令TCHin=N、TCHout=M,卷积加速核的输入是尺寸为1×1×N的特征图、1×1×M的卷积核参数,卷积加速核数据加载模块从TC×TR×TCHin的特征图缓存和Kw×Kh×TCHout的权重参数缓存按次序读取卷积加速核需要的输入尺寸。最后需要对
Figure BDA0002417747540000102
个1×1×TCHout卷积加速核输出按其维度累加得到(TC-Kw+1)×(TR-Kh+1)×TCHout的卷积层输出。
作为优选实施例,经过上述分割策略后,卷积加速核的计算表达式为
Figure BDA0002417747540000103
故可以根据此表达式将卷积加速核的结构映射成两种经典硬件结构。对于第一种卷积加速核的结构,其由M个加速单元组成,每个加速单元由N个并行的乘法器和后续的累加树组成,对于此结构,需要将1×1×M卷积核参数复制N份,为1×1×M×N,然后送入卷积加速核中运算。对于第二种卷积加速核的结构,其由M×N个加速单元组成脉动阵列,每个加速单元由1个乘法器、1个加法器、2个寄存器组成。
此外,本发明在此实施例中在FPGA芯片XC7Z045实现的所消耗的资源如表1和表2所示:
名称 BRAM_18K DSP48E FF LUT
使用数量 832 564 180648 196314
可用数量 1090 900 437200 218600
占用率(%) 76.33 62.66 41.32 89.8
表1hls综合结果资源消耗
名称 BRAM_36K DSP48E FF LUT
使用数量 412.5 570 153272 128576
可用数量 545 900 437200 218600
占用率(%) 75.69 63.33 35.06 58.82
表2vivado综合结果资源消耗
本设计的最高时钟为123MHz,依据实际的综合结果,整个卷积网络的处理延时为25986472周期,可以得到本设计完成一次网络的前向推理需要时间为0.211s,即处理速度为4.73帧/s。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种卷积网络加速器配置方法,其特征在于,所述卷积网络加速器配置方法包括:
步骤一,通过标志判断当前执行的前向网络层在整体网络模型所在的层数,获得当前执行的前向网络层配置参数;
步骤二,通过所述前向网络层配置参数从DDR加载特征图和权重参数;同时,卷积层的加速核还根据获得执行的前向网络层配置参数配置并行度。
2.如权利要求1所述的卷积网络加速器配置方法,其特征在于,所述步骤一的前向网络层配置参数包括:
输入输出特征图的长、宽、通道数;
卷积核的长、宽、通道数;
卷积和池化操作的步长。
3.如权利要求1所述的卷积网络加速器配置方法,其特征在于,所述步骤二中,DDR加载特征图和权重参数方法包括单维度分块加载,将特征图和权重参数分割至仅剩一维方向,并根据分块后的特征图和权重,将卷积运算转换为两种硬件结构;
第一种,利用累加树减少加法的计算时间,将原本加法计算的时间复杂度由O(n)降为O(log2 n);
第二种,使用脉动阵列优化FPGA的综合结果,同时使卷积加速核的数据加载和数据计算进行流水操作。
4.如权利要求1所述的卷积网络加速器配置方法,其特征在于,所述步骤二中,DDR加载特征图和权重参数方法进一步包括分批加载,令卷积加速核的并行度为N×M,加载特征图和权重参数的缓存量为N×M的整数倍;从输入特征图的长C、输入特征图的宽R、输入特征图的通道数CHin、输出特征图的通道数CHout分块,分割后的输入特征图的长为TC、输入特征图的宽为TR、输入特征图的通道数为TCHin、输出特征图的通道数为TCHout
所述TC、TR、TCHin、TCHout满足
Figure FDA0002417747530000021
其中NDSP为片内乘法器数量,NBRAM为片内block RAM容量,单位为bit,BWDDR为DDR及其控制器带宽,单位为bit/s,fFPGA为FPGA的工作频率,单位为Hz,Qn为量化比特数,NOTFmap为输出特征图缓存容量,单位为bit。
5.如权利要求4所述的卷积网络加速器配置方法,其特征在于,输入特征图的长C、输入特征图的宽R、输入特征图的通道数CHin、输出特征图的通道数CHout分割方法包括:
TCHin=N、TCHout=M,卷积加速核的输入是尺寸为1×1×N的特征图、1×1×M的卷积核参数,卷积加速核数据加载模块从TC×TR×TCHin的特征图缓存和Kw×Kh×TCHout的权重参数缓存按次序读取卷积加速核需要的输入尺寸;最后对
Figure FDA0002417747530000022
个1×1×TCHout卷积加速核输出按维度累加得到(TC-Kw+1)×(TR-Kh+1)×TCHout的卷积层输出。
6.如权利要求5所述的卷积网络加速器配置方法,其特征在于,输入特征图的长C、输入特征图的宽R、输入特征图的通道数CHin、输出特征图的通道数CHout分割后卷积加速核的计算表达式为
Figure FDA0002417747530000023
根据此表达式将卷积加速核的结构映射成两种硬件结构;第一种卷积加速核的结构,由M个加速单元组成,每个加速单元由N个并行的乘法器和后续的累加树组成,将1×1×M卷积核参数复制N份,为1×1×M×N,然后送入卷积加速核中运算;
第二种卷积加速核的结构,由M×N个加速单元组成脉动阵列,每个加速单元由1个乘法器、1个加法器、2个寄存器组成。
7.如权利要求1所述的卷积网络加速器配置方法,其特征在于,所述步骤二中,卷积层的加速核还根据获得执行的前向网络层配置参数配置并行度,具体包括:从DDR中加载数据的带宽,分批加载数据,从分批加载数据的顺序重新排列原来的加载顺序,并设计数据重排方式及其存储的粗并行度分割的乒乓RAM结构,按照卷积加速核的并行度分割成多个小RAM进行缓存。
8.一种如权利要求1~7任意一项所述卷积网络加速器配置方法配置的卷积网络加速器,其特征在于,所述卷积网络加速器包括卷积层、池化层、激活函数层及批量归一化操作层;
所述卷积层,通过标志判断当前执行的前向网络层在整体网络模型所在的层数,获得当前执行的前向网络层配置参数,并通过所述配置参数从DDR加载特征图和权重参数;同时,卷积层的加速核还根据获得执行的前向网络层配置参数配置并行度;
所述池化层,根据配置参数设置当前层是否需要池化;
所述批量归一化层,在量化特征图和权重参数时,合并到权重和偏置中;
所述激活函数层,将量化的特征图和权重参数的缩放尺度与Relu激活函数的系数合并。
9.一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施权利要求1~7任意一项所述卷积网络加速器配置方法。
10.一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-7任意一项所述的卷积网络加速器配置方法。
CN202010196356.2A 2020-03-19 2020-03-19 一种卷积网络加速器、配置方法及计算机可读存储介质 Active CN111416743B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010196356.2A CN111416743B (zh) 2020-03-19 2020-03-19 一种卷积网络加速器、配置方法及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010196356.2A CN111416743B (zh) 2020-03-19 2020-03-19 一种卷积网络加速器、配置方法及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111416743A true CN111416743A (zh) 2020-07-14
CN111416743B CN111416743B (zh) 2021-09-03

Family

ID=71493147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010196356.2A Active CN111416743B (zh) 2020-03-19 2020-03-19 一种卷积网络加速器、配置方法及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111416743B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112001492A (zh) * 2020-08-07 2020-11-27 中山大学 关于二值权重DenseNet模型的混合流水式加速架构及加速方法
CN112070210A (zh) * 2020-08-20 2020-12-11 成都恒创新星科技有限公司 一种基于fpga的多并行策略卷积网络加速器
CN112132275A (zh) * 2020-09-30 2020-12-25 南京风兴科技有限公司 一种并行计算方法及装置
CN112288082A (zh) * 2020-11-23 2021-01-29 天津大学 一种基于hls的可重构通用标准卷积加速器设计方法
CN112508184A (zh) * 2020-12-16 2021-03-16 重庆邮电大学 一种基于卷积神经网络的快速图像识别加速器设计方法
CN113313171A (zh) * 2021-05-28 2021-08-27 武汉理工大学 基于fpga实现图像识别的方法、装置、设备及存储介质
CN113625963A (zh) * 2021-07-16 2021-11-09 南京大学 基于存算一体器件的卷积神经网络层间的存储装置及方法
CN113705795A (zh) * 2021-09-16 2021-11-26 深圳思谋信息科技有限公司 卷积处理方法、装置、卷积神经网络加速器和存储介质
CN114529797A (zh) * 2022-01-25 2022-05-24 山东浪潮科学研究院有限公司 一种基于RISC-V的TinyML目标检测加速系统、方法、存储介质
CN115145839A (zh) * 2021-03-31 2022-10-04 广东高云半导体科技股份有限公司 一种深度卷积加速器及其实现加速深度卷积的方法
CN115456860A (zh) * 2022-11-09 2022-12-09 深圳市唯特视科技有限公司 基于fpga的图像增强方法、装置、头盔、设备及介质
CN116776945A (zh) * 2023-06-26 2023-09-19 中国科学院长春光学精密机械与物理研究所 一种基于zynq平台的vgg16网络加速器设计实现方法

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN107451653A (zh) * 2017-07-05 2017-12-08 深圳市自行科技有限公司 深度神经网络的计算方法、装置及可读存储介质
CN107609646A (zh) * 2017-10-12 2018-01-19 郑州云海信息技术有限公司 一种残差网络实现方法、系统、设备及计算机存储介质
CN107844833A (zh) * 2017-11-28 2018-03-27 郑州云海信息技术有限公司 一种卷积神经网络的数据处理方法、装置及介质
CN108416425A (zh) * 2018-02-02 2018-08-17 浙江大华技术股份有限公司 一种卷积方法及装置
JP2018132830A (ja) * 2017-02-13 2018-08-23 LeapMind株式会社 ニューラルネットワーク構築方法、ニューラルネットワーク装置及びニューラルネットワーク装置更新方法
CN108805272A (zh) * 2018-05-03 2018-11-13 东南大学 一种基于fpga的通用卷积神经网络加速器
KR20180125843A (ko) * 2017-05-16 2018-11-26 광운대학교 산학협력단 (국문)다양한 cnn 모델에 적용 가능한 하드웨어 분류기
CN109598338A (zh) * 2018-12-07 2019-04-09 东南大学 一种基于fpga的计算优化的卷积神经网络加速器
WO2019127838A1 (zh) * 2017-12-29 2019-07-04 国民技术股份有限公司 卷积神经网络实现方法及装置、终端、存储介质
CN110135554A (zh) * 2019-03-25 2019-08-16 电子科技大学 一种基于fpga的卷积神经网络硬件加速架构
KR20190117103A (ko) * 2018-04-06 2019-10-16 전자부품연구원 대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치
CN110852428A (zh) * 2019-09-08 2020-02-28 天津大学 基于fpga的神经网络加速方法和加速器
CN110880038A (zh) * 2019-11-29 2020-03-13 中国科学院自动化研究所 基于fpga的加速卷积计算的系统、卷积神经网络

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
JP2018132830A (ja) * 2017-02-13 2018-08-23 LeapMind株式会社 ニューラルネットワーク構築方法、ニューラルネットワーク装置及びニューラルネットワーク装置更新方法
KR20180125843A (ko) * 2017-05-16 2018-11-26 광운대학교 산학협력단 (국문)다양한 cnn 모델에 적용 가능한 하드웨어 분류기
CN107451653A (zh) * 2017-07-05 2017-12-08 深圳市自行科技有限公司 深度神经网络的计算方法、装置及可读存储介质
CN107609646A (zh) * 2017-10-12 2018-01-19 郑州云海信息技术有限公司 一种残差网络实现方法、系统、设备及计算机存储介质
CN107844833A (zh) * 2017-11-28 2018-03-27 郑州云海信息技术有限公司 一种卷积神经网络的数据处理方法、装置及介质
WO2019127838A1 (zh) * 2017-12-29 2019-07-04 国民技术股份有限公司 卷积神经网络实现方法及装置、终端、存储介质
CN108416425A (zh) * 2018-02-02 2018-08-17 浙江大华技术股份有限公司 一种卷积方法及装置
KR20190117103A (ko) * 2018-04-06 2019-10-16 전자부품연구원 대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치
CN108805272A (zh) * 2018-05-03 2018-11-13 东南大学 一种基于fpga的通用卷积神经网络加速器
CN109598338A (zh) * 2018-12-07 2019-04-09 东南大学 一种基于fpga的计算优化的卷积神经网络加速器
CN110135554A (zh) * 2019-03-25 2019-08-16 电子科技大学 一种基于fpga的卷积神经网络硬件加速架构
CN110852428A (zh) * 2019-09-08 2020-02-28 天津大学 基于fpga的神经网络加速方法和加速器
CN110880038A (zh) * 2019-11-29 2020-03-13 中国科学院自动化研究所 基于fpga的加速卷积计算的系统、卷积神经网络

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
周锡雄,钟胜,张伟俊,王建辉: "基于异构FPGA的卷积网络加速器", 《模式识别与人工智能》 *
周锡雄: "CNN动态量化算法及其并行计算结构研究", 《中国优秀硕士学位论文全文数据库》 *
林志文,林志贤,郭太良,林珊玲: "基于FPGA加速的卷积神经网络识别系统", 《电子技术应用》 *
窦阳,卿粼波,何小海,廖海鹏: "基于FPGA的CNN加速器设计与实现", 《信息技术与网络安全》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112001492A (zh) * 2020-08-07 2020-11-27 中山大学 关于二值权重DenseNet模型的混合流水式加速架构及加速方法
CN112001492B (zh) * 2020-08-07 2023-06-23 中山大学 关于二值权重DenseNet模型的混合流水式加速架构及加速方法
CN112070210A (zh) * 2020-08-20 2020-12-11 成都恒创新星科技有限公司 一种基于fpga的多并行策略卷积网络加速器
CN112132275A (zh) * 2020-09-30 2020-12-25 南京风兴科技有限公司 一种并行计算方法及装置
CN112288082B (zh) * 2020-11-23 2023-06-13 天津大学 一种基于hls的可重构通用标准卷积加速器设计方法
CN112288082A (zh) * 2020-11-23 2021-01-29 天津大学 一种基于hls的可重构通用标准卷积加速器设计方法
CN112508184A (zh) * 2020-12-16 2021-03-16 重庆邮电大学 一种基于卷积神经网络的快速图像识别加速器设计方法
CN112508184B (zh) * 2020-12-16 2022-04-29 重庆邮电大学 一种基于卷积神经网络的快速图像识别加速器设计方法
CN115145839A (zh) * 2021-03-31 2022-10-04 广东高云半导体科技股份有限公司 一种深度卷积加速器及其实现加速深度卷积的方法
CN115145839B (zh) * 2021-03-31 2024-05-14 广东高云半导体科技股份有限公司 一种深度卷积加速器及其实现加速深度卷积的方法
CN113313171A (zh) * 2021-05-28 2021-08-27 武汉理工大学 基于fpga实现图像识别的方法、装置、设备及存储介质
CN113625963A (zh) * 2021-07-16 2021-11-09 南京大学 基于存算一体器件的卷积神经网络层间的存储装置及方法
CN113705795A (zh) * 2021-09-16 2021-11-26 深圳思谋信息科技有限公司 卷积处理方法、装置、卷积神经网络加速器和存储介质
CN114529797A (zh) * 2022-01-25 2022-05-24 山东浪潮科学研究院有限公司 一种基于RISC-V的TinyML目标检测加速系统、方法、存储介质
CN114529797B (zh) * 2022-01-25 2024-05-28 山东浪潮科学研究院有限公司 一种基于RISC-V的TinyML目标检测加速系统、方法、存储介质
CN115456860A (zh) * 2022-11-09 2022-12-09 深圳市唯特视科技有限公司 基于fpga的图像增强方法、装置、头盔、设备及介质
CN116776945A (zh) * 2023-06-26 2023-09-19 中国科学院长春光学精密机械与物理研究所 一种基于zynq平台的vgg16网络加速器设计实现方法

Also Published As

Publication number Publication date
CN111416743B (zh) 2021-09-03

Similar Documents

Publication Publication Date Title
CN111416743B (zh) 一种卷积网络加速器、配置方法及计算机可读存储介质
CN108280514B (zh) 基于fpga的稀疏神经网络加速系统和设计方法
CN108647773B (zh) 一种可重构卷积神经网络的硬件互连系统
CN109002889B (zh) 自适应迭代式卷积神经网络模型压缩方法
CN113313243B (zh) 神经网络加速器的确定方法、装置、设备以及存储介质
Xia et al. SparkNoC: An energy-efficiency FPGA-based accelerator using optimized lightweight CNN for edge computing
CN111079923B (zh) 适用于边缘计算平台的Spark卷积神经网络系统及其电路
CN110084363B (zh) 一种基于fpga平台的深度学习模型加速方法
CN109446996B (zh) 基于fpga的人脸识别数据处理装置及处理方法
CN113361695B (zh) 卷积神经网络加速器
Huang et al. DeepAdapter: A collaborative deep learning framework for the mobile web using context-aware network pruning
TWI775210B (zh) 用於卷積運算的資料劃分方法及處理器
CN110110852B (zh) 一种深度学习网络移植到fpag平台的方法
US20210027148A1 (en) Compression of neural network activation data
CN114677548A (zh) 基于阻变存储器的神经网络图像分类系统及方法
Xiyuan et al. A Review of FPGA‐Based Custom Computing Architecture for Convolutional Neural Network Inference
CN112966807B (zh) 基于存储资源受限fpga的卷积神经网络实现方法
WO2022246986A1 (zh) 数据处理方法、装置、设备及计算机可读存储介质
Kim et al. V-LSTM: An efficient LSTM accelerator using fixed nonzero-ratio viterbi-based pruning
CN112771546A (zh) 运算加速器和压缩方法
CN116325737A (zh) 基于树的机器学习模型的量化
US20230185761A1 (en) Reconfigurable computing chip
CN117151178A (zh) 一种面向fpga的cnn定制网络量化加速方法
CN112183744A (zh) 一种神经网络剪枝方法及装置
Zhang et al. A locally distributed mobile computing framework for dnn based android applications

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