CN112001492B - 关于二值权重DenseNet模型的混合流水式加速架构及加速方法 - Google Patents
关于二值权重DenseNet模型的混合流水式加速架构及加速方法 Download PDFInfo
- Publication number
- CN112001492B CN112001492B CN202010788798.6A CN202010788798A CN112001492B CN 112001492 B CN112001492 B CN 112001492B CN 202010788798 A CN202010788798 A CN 202010788798A CN 112001492 B CN112001492 B CN 112001492B
- Authority
- CN
- China
- Prior art keywords
- convolution
- layer
- dense block
- processing
- 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.)
- 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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种关于二值权重DenseNet模型的混合流水式加速架构及加速方法,其中所述的加速系统包括控制单元,用于根据各个模块的状态指示信号,协调顶层模块的流水线工作,控制数据的输入输出;片上存储模块,用于存储网络参数;设有7个顶层模块,顶层模块之间通过插入ping‑pong缓存结构实现流水式并行工作,7个顶层模块分别为首层、第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、分类层;对DenseNet的第一密集块、第二密集块、第三密集块分别设置一个可复用卷积计算单元对其进行处理;所述的首层是一个卷积层,对来自片外存储的输入图片数据进行处理;所述的分类层,用于将产生分类结果存储到片外存储模块。本发明降低了深层网络模型的实现难度,并且提高了计算效率和吞吐量。
Description
技术领域
本发明涉及数字电路设计及深度学习技术领域,更具体的,涉及一种关于二值权重DenseNet模型的混合流水式加速架构及加速方法。
背景技术
深度卷积神经网络在图像识别,视频监控和特征检测等诸多领域中表现出色从而得到广泛应用。因其计算复杂性和存储密集性,深度卷积神经网络难以直接部署在低功耗、资源有限的嵌入式终端设备。
因此,网络压缩成为一种重要手段。二值权重网络仅用单个比特来表示卷积参数,在大数据集ImageNet的top-1分类精度相比于全精度模型下降仅5%左右,却显著减小了参数规模和降低了计算复杂度。二值权重策略使得在资源功耗受限的平台部署大型CNN成为可能。另一方面,DenseNet模型在多项计算机视觉任务上表现优异。因其特殊的密集块结构,在实现相近的分类精度时,DenseNet模型的参数规模和运算次数都不及ResNet模型的一半。因此,DenseNet相比于传统深层网络模型更加适合硬件平台的加速设计。将二值权重策略应用到DenseNet,训练后得到二值权重DenseNet模型。该过程识别精度下降仅约1%,却带来硬件加速的多种优势,包括节省内存、提供吞吐量等。因此二值权重DenseNet模型更加适合在硬件平台的加速设计和部署。
目前对深度神经网络的硬件加速系统主要有两类:中央处理架构和全流水式架构。前者一般由通用计算核心,输入输出缓存结构和控制单元组成,通用计算核心按顺序对神经网络逐层处理。如中国专利公开号:CN102298567A,公开日:2011-12-28,公开了一种集成中央运算和图形加速的移动处理器架构,具体公开了包括中央处理器CPU、供中央处理器访问的一级缓存、图形处理加速器GPU、内存SDRAM,还包括中央处理器CPU和图形处理加速器GPU共享的紧密连接缓存TCM,CPU和GPU分别通过独立的高速读写总线与TCM相连;中央处理器CPU首先对一级缓存中的数据进行预处理,然后通过共享的一级缓存TCM送给图形处理加速器GPU,图形处理加速器GPU处理完图像像素数据后,将数据输出到一级缓存TCM中,再由中央处理器CPU进行后续处理。由于网络不同层的结构差异较大(如特征图尺寸、参数规模等),该架构的计算效率普通很低。
后者为网络的所有层优化设计独立的处理核心,不同的核心能够实现全流水式工作,从而提高了系统吞吐量。但该架构容易受存储带宽和计算资源的限制,通常适用于VGG16等浅层模型。对于层次上百的深层网络也会带来极高的设计复杂度。
无论是通用性较好的中央处理架构还是吞吐量较高的全流水式架构,都无法很好地适应DenseNet的特殊密集块结构。
发明内容
本发明为了解决目前主流的神经网络加速系统难以适应其特殊的密集连接结构,存在计算效率低下、设计复杂度过高等问题,提出一种关于二值权重DenseNet模型的混合流水式加速架构及其加速方法,该混合流水式架构结合了中央处理架构和全流水式架构的特点,降低了深层网络模型的实现难度,并且提高了计算效率和吞吐量。
为实现上述本发明目的,采用的技术方案如下:一种关于二值权重DenseNet模型的混合流水式加速架构,包括控制单元,片上存储模块,顶层模块;
所述的控制单元,用于根据各个模块的状态指示信号,协调顶层模块的流水线工作,控制数据的输入输出;
所述的片上存储模块,用于存储网络参数;
所述的顶层模块设有7个,顶层模块之间通过插入ping-pong缓存结构实现流水式并行工作,7个所述的顶层模块分别为首层、第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、分类层;
对DenseNet的第一密集块、第二密集块、第三密集块分别设置一个可复用卷积计算单元对其进行处理;
所述的首层是一个卷积层,对来自片外存储的输入图片数据进行处理,将数据依次输入第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、分类层进行处理;
所述的分类层,用于将产生分类结果存储到片外存储模块。
基于以上所述的关于二值权重DenseNet模型的混合流水式加速架构,本发明还提供了一种关于二值权重DenseNet模型的混合流水式加速架构的加速方法,为了提高数据的访问效率,对网络特征图和二值卷积设置相应的存储格式,具体如下:
对于网络特征图存储格式:假设特征图尺寸为(C,H,W),C表示特征图的通道数量,H和W则分别表示单通道特征图的高和宽;通过采用的CHWTi格式将C维度的Ti表示输入并行度个数据组合为一个新的数据,其中Ti表示输入并行度,将特征图被分成ceil(C/i)个部分,并指定顺序在存储空间连续存放;
对于二值卷积参数的存储格式,假设卷积核尺寸为(N,C,K,K),N表示输出特征图,C表示输出特征图的数量,K表示卷积核的大小;每个地址存储K*K*Ti bits的组合参数,用于Ti个输入特征图的部分卷积;而每组卷积核可分成ceil(C/Ti)个组合参数,并且按照指定顺序在存储空间连续存放;
根据以上数据存储格式,对典型卷积层数据流进行优化,并结合密集块的输入输出并行度和顶层模块的ping-pong缓存结构,设置与之相应的计算单元的并行度系数,从而提高计算效率。
本发明的有益效果如下:
本发明借鉴“全流水式架构”的特点,为不同的密集块设计独立的计算核心,并且与网络中的其他层级共同构成流水式运作模式。通过本发明的加速系统将原本一百层的模型转化为一个七层模型,降低了系统各部分协同处理的设计难度。
本发明不同于全流水架构的每层并行工作原理,由于每个密集块采用中央处理架构的方式对密集块内L个层级顺序地进行处理,因此本架构是多个中央处理单元之间实现并行,提高了数据处理效率。
为了满足计算单元的数据需求,本发明对网络特征图和二值权重数据分别制定了高效的存储格式,不仅降低了数据访问开销而且支持计算单元的连续工作,从而提高系统的吞吐量和计算效率。
附图说明
图1是实施例1所述的混合流水式加速架构的示意图。
图2是实施例1所述的可复用卷积单元的设计框图。
图3是实施例1所述的顶层模块并行设计的示意图。
图4是实施例2所述的数据存储格式,其中(a)特征图、(b)卷积参数。
图5是实施例2所述的典型卷积层数据流的优化示意图。
具体实施方式
下面结合附图和具体实施方式对本发明做详细描述。
实施例1
如图1所示,一种关于二值权重DenseNet模型的混合流水式加速架构,包括控制单元,片上存储模块,顶层模块;
所述的控制单元,用于根据各个模块的状态指示信号,协调顶层模块的流水线工作,控制数据的输入输出;
所述的片上存储模块,用于存储网络参数;从而避免了片外存储访问带来的高延迟和低带宽问题。所述的网络参数包括卷积参数、BN参数、全连接层参数。
所述的顶层模块设有7个,顶层模块之间通过插入ping-pong缓存结构实现流水式并行工作,7个所述的顶层模块分别为首层、第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、分类层;
对DenseNet的第一密集块、第二密集块、第三密集块分别设置一个可复用卷积计算单元对其进行处理。
所述的首层是一个卷积层,对来自片外存储的输入图片数据进行处理,将数据依次输入第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、分类层进行处理;
所述的分类层,用于将处理完的数据存储到片外存储模块。
本实施例为该模型在ASIC或FPGA平台上的硬件部署提供一种高效的解决方案。该混合流水式架构结合了目前主流的“中央处理架构”和“全流水式架构”的特点。由于DenseNet模型的密集块包含若干层级,块内前面所有层级的输出特征图将被后面所有层级使用作为输入特征图的一部分。
通过分析发现,密集块的层级存在一定的规律,如特征图尺寸相同但数量逐层递增。因此,基于“中央处理架构”的计算单元能够很好地适应密集块的逐层处理。但是不同的密集块存在差异较大,系统只有一个计算核心时容易造成低计算效率问题,并且由于DenseNet层级多达一百,逐块逐层的处理策略也会导致低吞吐量。对此,本实施例借鉴“全流水式架构”的特点,为不同的密集块设计独立的计算核心,并且与网络中的其他层级共同构成流水式运作模式。该方法将原本一百层的模型转化为一个七层模型,降低了系统各部分协同处理的设计难度。
在一个具体的实施例中,DenseNet模型的密集块设有16层,每层包括两个子层,分别是1x1卷积和3x3卷积;所述的首层完成一次3x3卷积处理;所述的分类层包括一个8x8平均池化层和全连接层,用于产生分类结果。
在一个具体的实施例中,由于DenseNet模型的密集块包含16个由1x1卷积和3x3卷积构成的子层。如果分别为1x1卷积和3x3卷积设置独立的计算核心,随着层级加深,1x1卷积的输入特征图的通道越来越多而3x3卷积的输入特征图尺寸保持不变,必然造成两个计算核心的处理时长不匹配从而导致低利用率的问题。因此本实施例通过设置一种支持1x1卷积和3x3卷积的可复用卷积单元,用于完成一个密集块的数据处理,如图2所示。
所述的可复用卷积单元包括卷积处理模块、输出缓存单元、第一选择器、中间结果数据存储单元、密集块数据存储单元、第二选择器、输入缓存单元、BN_Relu处理模块;
所述的卷积处理模块包括To个输出特征图处理单元、且每个输出特征图处理单元包括Ti个3x3二值卷积器和一个累加树,其中3x3二值卷积器包含9个二值卷积运算单元;
对于1x1卷积的数据流,首先,1x1卷积通过第二选择器从密集块数据存储逐行获取输入特征图,经由输入缓存单元处理后产生数据提供给BN_Relu处理模块,然后由卷积处理模块进行卷积运算;内循环的中间结果保存在输出缓存单元,当一次外循环结束时,部分卷积结果将会通过第一选择器写入中间结果数据缓存单元,直到所有外循环结束;然后进行3x3卷积;
对于3x3卷积的数据流,首先,1x1卷积通过第二选择器从中间结果数据缓存单元获取1x1卷积结果;经由输入缓存单元处理后产生数据提供给BN_Relu处理模块,然后由卷积处理模块进行卷积运算;内循环的中间结果保存在输出缓存单元,当一次外循环结束时,部分卷积结果将会通过第一选择器写入密集块数据存储单元的新空间,直到所有外循环结束。
在一个具体的实施例中,所述的顶层模块之间通过插入ping-pong缓存结构实现流水式并行工作,如图3所示,分别由首层、三个密集块、两个过渡层和分类层,共七级模块组成,其中每个密集块对应一个图2所示的可复用卷积单元。
由此,实际层级多达一百的二值权重densenet模型可转化为一个七层模型,为七个模块设计相应的处理单元并协调处理速度以实现流水线工作模式,此举有效降低了架构设计难度。该架构要求各个模块的处理总时长相近即可,因为顶层模块之间设置了ping-pong缓存,前后两个模块可以同时工作并处理不同的数据。图3右边部分介绍了顶层模块之间的缓存设计。通常一个计算单元的输入和输出各有两块相同大小的缓存,当其中一个被占用时,另一个可以被前级或者后级的计算单元使用。
在本实施例架构中,密集块处理过程中,输入特征图和输出特征图共用一个存储空间。当前级的输出特征图有效并且当前密集块的“缓存A”或“缓存B”空闲时,前级模块即可将输出特征图转移到密集块的缓存空间,此时前级模块的缓存得到释放。由于这个数据转移时间远远小于模块处理总延迟,因此不会造成明显的时延影响,但该处理方法可以为“非密集块”模块节省一个缓存空间,这点与传统ping-pong策略的双缓存空间不同。
以图3为例,第二密集块在工作的时候,只需要用到一块缓存,假设是缓存A。由于是流水线模式,下一级的过渡层2则需要从缓存B获得输入数据进行处理,将处理结果写入到过渡层缓存。事实上,当过渡层2运算结束,那么缓存B已经是空闲的了,即缓存B可以接受来自过渡层1处理单元的结果数据。在此基础上,其实就不需要为过渡层也准备两份缓存空间,因为密集块处理单元工作时只用到一块缓存。
实施例2
基于以上所述的一种关于二值权重DenseNet模型的混合流水式加速架构,本实施例提出一种关于二值权重DenseNet模型的混合流水式加速架构的加速方法,为了提高数据的访问效率,对网络特征图和二值卷积设置相应的存储格式,如图4所示,具体如下:
对于网络特征图存储格式,如图4.a所示:假设特征图尺寸为(C,H,W),C表示特征图的通道数量,H和W则分别表示单通道特征图的高和宽;通过采用的CHWTi格式将C维度的Ti表示输入并行度个数据组合为一个新的数据,如图中黑色方块所示,其中Ti表示输入并行度,将特征图被分成ceil(C/Ti)个部分,新的数据按照黑色箭头指示的顺序在存储空间连续存放;该格式能够适应不同尺寸的卷积窗口,结合输入缓存结构可以持续地为计算核心提高操作数据。
对于二值卷积参数的存储格式,如图4.b所示,假设卷积核尺寸为(N,C,K,K),N表示输出特征图,C表示输出特征图的数量,K表示卷积核的大小;每个地址存储K*K*Ti bits的组合参数,用于Ti个输入特征图的部分卷积;而每组卷积核可分成ceil(C/Ti)个组合参数,并且按照指定顺序在存储空间连续存放。
根据以上数据存储格式,对典型卷积层数据流进行优化,并结合密集块的输入输出并行度和顶层模块的ping-pong缓存结构,设置与之相应的计算单元的并行度系数,从而提高计算效率。
在一个具体的实施例中,根据网络特征图和二值卷积的存储格式,设输入特征图的尺寸为(C,H,W),卷积参数的尺寸为(N,C,K,K),为简化分析,卷积步长默认为1,采用zero-padding,则输出特征图的尺寸为(N,H,W)。如图5展示了本实施例对于典型卷积层数据流的优化策略,其中,输入并行度Ti表示Ti个输入特征图并行参与卷积运算;输出并行度为To表示To组卷积核并行地对同一组输入特征图进行卷积;而二维K×K卷积窗口内部也是并行处理。因此,总并行度可由Ti×To×K2表示,这将决定了卷积计算单元的结构设计。
具体的优化策略处理流程如下:输入特征图的每个卷积块(Ti,K,K)从左到右从上往下移动,与To个参数块进行卷积,产生尺寸为(To,H,W)的临时输出特征图,作为一次内循环;将ceil(C/Ti)次内循环的结果累加得到一组最终的输出特征图,最为一次外循环;最终经过ceil(N/To)次外循环完成一层卷积;结合预取策略,输入特征图和参数可以持续不断地供给计算单元,因此完成一层卷积所需时钟数为
实现了卷积参数最大限度的复用,复用次数为H*W,并且所有参数只需访问一次。相比于特征图复用,该方法降低了中间结果的缓存空间需求。
在一个具体的实施例中,由于所述的加速系统采用一种支持1x1卷积和3x3卷积的可复用卷积单元,用于完成一个密集块的数据处理,在可复用卷积单元中,实现1x1卷积和3x3卷积复用的关键是“1x1卷积在W维度上增加新的并行度,取值为8”。这是因为原本为3x3卷积准备的计算核心,能够在一个时钟周期内完成9个二值卷积运算。为尽可能利于计算核心,在进行1x1卷积时每个时钟周期需要提供等量的数据。由于特征图的尺寸通常是2的幂次方,因此在W维度上的并行度设置为8能够实现89%的计算资源利用。
根据式(1)以及密集块的内部关系,得到第i个子层的处理时长为
另外,根据当前密集块的处理总时长等于所有子层的处理时长之和,由于输入输出并行度要求是与k成正比例的整数,可设Ti=αk,To=βk;则单个密集块的处理总时长可表示为:
上述公式将被用于计算不同密集块的处理延迟,进而确定相应的并行参数。
在一个具体的实施例中,实施例1所述的加速系统的计算效率取决于图3的顶层模块处理延迟的差值。如果不同模块的处理延迟相近,那么模块空闲时间越短,系统效率自然更高。而模块内部的并行系数Ti和To直接决定了模块的处理延迟。下面介绍本实施例提出的一种顶层模块的并行度分析方法。
根据所述加速系统的设计约束,Ti、T0应该是增长率k的整除数,当Ti=αk,To=βk,当k=12时,则
由式(3)进一步化简,得到第i个密集块的处理总时长为:
第j个过渡层的处理延迟可用式(1)表示,对式(1)进行化解,具体将式(1)的分母Ti和To,用Ti=αk,To=βk表示之后,将a和b提取出来,其余的用φ()函数表示,化简后可得:
其中,j∈{1,2},φ(Cj,Hj,Wj)根据特征图尺寸返回一个常数;
此外,考虑到过渡层直接从前一级的密集块缓存空间读取输入特征图,因此设定过渡层的输入并行度等于前一级的输出并行度;
在式(5)、式(6)的约束条件下,密集块的并行度组合是有限的,采用穷举法寻找一个相对最优解,选择相应的并行系数,使得三个密集块和两个过渡层的处理延迟的相对误差最小。由于首尾层的计算量远远小于其他模块,选择一个合适较小的并行度即可。
该方法为顶层模块选择并行参数提供了依据,不同的并行参数组合会影响顶层模块的处理延迟的差值,从而影响到整体系统的计算效率和吞吐量。
本实施例提出的混合流水式加速架构具有以下优点:
1.高效的数据存储格式
为了满足计算单元的数据需求,本实施例对网络特征图和二值权重数据分别制定了高效的存储格式,不仅降低了数据访问开销而且支持计算单元的连续工作,从而提高系统的吞吐量和计算效率。
2.典型卷积层数据流的优化策略
典型卷积层通常包含4层循环,循环运算的并行处理策略是直接影响计算单元的性能优劣。本实施例从“参数复用最大化”的设计角度出发,对本架构的卷积层数据流进行优化,流程简洁明了且节省缓存资源。
3.可复用卷积单元的设计方法
二值权重DenseNet模型的密集块的每个层级都包括1x1卷积和3x3卷积,其中前者的输入特征图数量随着层级加深而递增,而后者的输入、输出特征图尺寸都是固定不变的。如果设置两个独立的计算核心,则1x1卷积和3x3卷积的处理时长不匹配将会造成其中一个核心的低效率问题。因此,本实施例设计了一个可复用卷积单元,能够支持1x1卷积和3x3卷积的处理而不会产生明显的效率损失。
4.顶层模块的并行度分析方法
本发明架构具有7个顶层模块,能够以流水线模式工作。在前向预测阶段,不同模块的运算量是确定的,因此模块的计算能力决定了处理延迟。不同模块的处理延迟越接近,则空闲等待时间越短,系统的计算效率越高。因此,本实施例基于上述架构提出了一种顶层模块的并行度分析方法,为各模块选择合适的并行系数以获得较高的计算效率。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (8)
1.一种关于二值权重DenseNet模型的混合流水式加速架构,其特征在于:包括控制单元,片上存储模块,顶层模块;
所述的控制单元,用于根据各个模块的状态指示信号,协调顶层模块的流水线工作,控制数据的输入输出;
所述的片上存储模块,用于存储网络参数;
所述的顶层模块设有7个,顶层模块之间通过插入ping-pong缓存结构实现流水式并行工作,7个所述的顶层模块分别为首层、第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、分类层;
对DenseNet的第一密集块、第二密集块、第三密集块分别设置一个可复用卷积计算单元对其进行处理;
所述的首层是一个卷积层,对来自片外存储的输入图片数据进行处理,将数据依次输入第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、分类层进行处理;
所述的分类层,用于将产生分类结果存储到片外存储模块;
所述的顶层模块之间通过插入ping-pong缓存结构实现流水式并行工作,具体如下:在密集块处理过程中,输入特征图和输出特征图共用一个存储空间,当前级的输出特征图有效并且当前密集块的“缓存A”或“缓存B”空闲时,前级模块即可将输出特征图转移到密集块的缓存空间,此时前级模块的缓存得到释放;
为了提高数据的访问效率,对网络特征图和二值卷积设置相应的存储格式,具体如下:
对于网络特征图存储格式:假设特征图尺寸为(C,H,W),C表示特征图的通道数量,H和W则分别表示单通道特征图的高和宽;通过采用的CHWTi格式将C维度的Ti表示输入并行度个数据组合为一个新的数据,其中Ti表示输入并行度,将特征图被分成ceil(C/Ti)个部分,并指定顺序在存储空间连续存放;Ti表示当前密集块的输入并行度;
对于二值卷积参数的存储格式,假设卷积核尺寸为(N,C,K,K),N表示输出特征图,C表示输出特征图的数量,K表示卷积核的大小;每个地址存储K*K*Ti bits的组合参数,用于Ti个输入特征图的部分卷积;而每组卷积核可分成ceil(C/Ti)个组合参数,并且按照指定顺序在存储空间连续存放;
根据以上数据存储格式,对典型卷积层数据流进行优化,并结合密集块的输入输出并行度和顶层模块的ping-pong缓存结构,设置与之相应的计算单元的并行度系数,从而提高计算效率。
2.根据权利要求1所述的关于二值权重DenseNet模型的混合流水式加速架构,其特征在于:所述的密集块设有16层,每层包括两个子层,分别是1x1卷积和3x3卷积;所述的首层完成一次3x3卷积处理;所述的分类层包括一个8x8平均池化层和全连接层,产生分类结果。
3.根据权利要求2所述的关于二值权重DenseNet模型的混合流水式加速架构,其特征在于:所述的可复用卷积单元支持1x1卷积和3x3卷积,用于完成密集块的数据处理。
4.根据权利要求3所述的关于二值权重DenseNet模型的混合流水式加速架构,其特征在于:所述的可复用卷积单元包括卷积处理模块、输出缓存单元、第一选择器、中间结果数据存储单元、密集块数据存储单元、第二选择器、输入缓存单元、BN_Relu处理模块;
所述的卷积处理模块包括To个输出特征图处理单元、且每个输出特征图处理单元包括Ti个3x3二值卷积器和一个累加树,其中3x3二值卷积器包含9个二值卷积运算单元;
对于1x1卷积的数据流,首先,1x1卷积通过第二选择器从密集块数据存储逐行获取输入特征图,经由输入缓存单元处理后产生数据提供给BN_Relu处理模块,然后由卷积处理模块进行卷积运算;内循环的中间结果保存在输出缓存单元,当一次外循环结束时,部分卷积结果将会通过第一选择器写入中间结果数据缓存单元,直到所有外循环结束;然后进行3x3卷积;
对于3x3卷积的数据流,首先,1x1卷积通过第二选择器从中间结果数据缓存单元获取1x1卷积结果;经由输入缓存单元处理后产生数据提供给BN_Relu处理模块,然后由卷积处理模块进行卷积运算;内循环的中间结果保存在输出缓存单元,当一次外循环结束时,部分卷积结果将会通过第一选择器写入密集块数据存储单元的新空间,直到所有外循环结束。
5.根据权利要求1所述的关于二值权重DenseNet模型的混合流水式加速架构的加速方法,其特征在于:根据网络特征图和二值卷积的存储格式,对典型卷积层数据流进行优化,具体如下:
输入特征图的每个卷积块(Ti,K,K)从左到右从上往下移动,与To个参数块进行卷积,产生尺寸为(To,H,W)的临时输出特征图,作为一次内循环;将ceil(C/Ti)次内循环的结果累加得到一组最终的输出特征图,最为一次外循环;最终经过ceil(N/To)次外循环完成一层卷积;结合预取策略,输入特征图和参数可以持续不断地供给计算单元,因此完成一层卷积所需时钟数为
实现了卷积参数最大限度的复用,复用次数为H*W,并且所有参数只需访问一次。
8.根据权利要求7所述的关于二值权重DenseNet模型的混合流水式加速架构的加速方法,其特征在于:根据所述加速架构的设计约束,当k=12时,则
由式(3)进一步化简,得到第i个密集块的处理总时长为:
第j个过渡层的处理延迟可用式(1)表示,化简后可得
其中,j∈{1,2},φ(Cj,Hj,Wj)根据特征图尺寸返回一个常数;
此外,考虑到过渡层直接从前一级的密集块缓存空间读取输入特征图,因此设定过渡层的输入并行度等于前一级的输出并行度;
在式(5)、式(6)的约束条件下,采用穷举法寻找一个相对最优解,选择相应的并行系数,使得三个密集块和两个过渡层的处理延迟的相对误差最小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010788798.6A CN112001492B (zh) | 2020-08-07 | 2020-08-07 | 关于二值权重DenseNet模型的混合流水式加速架构及加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010788798.6A CN112001492B (zh) | 2020-08-07 | 2020-08-07 | 关于二值权重DenseNet模型的混合流水式加速架构及加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112001492A CN112001492A (zh) | 2020-11-27 |
CN112001492B true CN112001492B (zh) | 2023-06-23 |
Family
ID=73462927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010788798.6A Active CN112001492B (zh) | 2020-08-07 | 2020-08-07 | 关于二值权重DenseNet模型的混合流水式加速架构及加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112001492B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592088A (zh) * | 2021-07-30 | 2021-11-02 | 中科亿海微电子科技(苏州)有限公司 | 基于细粒度卷积计算结构的并行度确定方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
CN109032781A (zh) * | 2018-07-13 | 2018-12-18 | 重庆邮电大学 | 一种卷积神经网络算法的fpga并行系统 |
CN111178518A (zh) * | 2019-12-24 | 2020-05-19 | 杭州电子科技大学 | 一种基于fpga的软硬件协同的加速方法 |
CN111340198A (zh) * | 2020-03-26 | 2020-06-26 | 上海大学 | 基于fpga的数据高度复用的神经网络加速器 |
CN111416743A (zh) * | 2020-03-19 | 2020-07-14 | 华中科技大学 | 一种卷积网络加速器、配置方法及计算机可读存储介质 |
-
2020
- 2020-08-07 CN CN202010788798.6A patent/CN112001492B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
CN109032781A (zh) * | 2018-07-13 | 2018-12-18 | 重庆邮电大学 | 一种卷积神经网络算法的fpga并行系统 |
CN111178518A (zh) * | 2019-12-24 | 2020-05-19 | 杭州电子科技大学 | 一种基于fpga的软硬件协同的加速方法 |
CN111416743A (zh) * | 2020-03-19 | 2020-07-14 | 华中科技大学 | 一种卷积网络加速器、配置方法及计算机可读存储介质 |
CN111340198A (zh) * | 2020-03-26 | 2020-06-26 | 上海大学 | 基于fpga的数据高度复用的神经网络加速器 |
Also Published As
Publication number | Publication date |
---|---|
CN112001492A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459877B (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
CN110378468B (zh) | 一种基于结构化剪枝和低比特量化的神经网络加速器 | |
CN109063825B (zh) | 卷积神经网络加速装置 | |
CN111414994B (zh) | 一种基于FPGA的Yolov3网络计算加速系统及其加速方法 | |
Lu et al. | A resource-efficient pipelined architecture for real-time semi-global stereo matching | |
CN111967468A (zh) | 一种基于fpga的轻量级目标检测神经网络的实现方法 | |
CN107066239A (zh) | 一种实现卷积神经网络前向计算的硬件结构 | |
CN113361695B (zh) | 卷积神经网络加速器 | |
CN111898733A (zh) | 一种深度可分离卷积神经网络加速器架构 | |
CN113792621B (zh) | 一种基于fpga的目标检测加速器设计方法 | |
CN112950656A (zh) | 一种基于fpga平台的按通道进行预读取数据的分块卷积方法 | |
WO2022262660A1 (zh) | 针对超分辨率网络的剪枝量化压缩方法、系统及介质 | |
CN112001492B (zh) | 关于二值权重DenseNet模型的混合流水式加速架构及加速方法 | |
CN111563582A (zh) | 一种在fpga上实现及优化加速卷积神经网络的方法 | |
CN113301221B (zh) | 一种深度网络相机图像处理方法及终端 | |
CN113744220B (zh) | 一种基于pynq的无预选框检测系统 | |
US20230025068A1 (en) | Hybrid machine learning architecture with neural processing unit and compute-in-memory processing elements | |
CN116011534A (zh) | 一种基于fpga的通用卷积神经网络加速器实现方法 | |
CN115688892A (zh) | 一种稀疏权重Fused-Layer卷积加速器结构的FPGA实现方法 | |
Zhou et al. | Design and implementation of YOLOv3-Tiny accelerator based on PYNQ-Z2 heterogeneous platform | |
TW202316325A (zh) | 用於神經網路的並行逐深度處理架構 | |
CN114820369A (zh) | 一种基于改进的RandLA-Net的变电站设备点云分割方法 | |
CN113869494A (zh) | 基于高层次综合的神经网络卷积fpga嵌入式硬件加速器 | |
Zhang et al. | Yolov3-tiny Object Detection SoC Based on FPGA Platform | |
CN117391149B (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 |