首页 / 专利库 / 软件 / 操作系统 / 内核 / 一种基于循环展开的卷积神经网络硬件加速器

一种基于循环展开的卷积神经网络硬件加速

阅读:1发布:2020-05-28

专利汇可以提供一种基于循环展开的卷积神经网络硬件加速专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于循环展开的 卷积神经网络 硬件 加速 器,包括单通道数据流硬件结构,在所述单通道数据流硬件结构中,CSC 缓冲器 在不同的通道中将缓冲器互连,令它们可以实现移位;通过移位,让原本重用的数据放在下一次窗口滑动的 位置 。本发明具有能够提高卷积过程的单元利用率、提高性能等优点。,下面是一种基于循环展开的卷积神经网络硬件加速专利的具体信息内容。

1.一种基于循环展开的卷积神经网络硬件加速器,包括单通道数据流硬件结构,其特征在于,在所述单通道数据流硬件结构中,CSC缓冲器在不同的通道中将缓冲器互连,令它们可以实现移位;通过移位,让原本重用的数据放在下一次窗口滑动的位置
2.根据权利要求1所述的基于循环展开的卷积神经网络硬件加速器,其特征在于,所述CSC缓冲器中数据的存储采取一维的方式;依次按照通道、卷积图、行的顺序将本来是三维的数据展开成一维数据,依次存放在缓冲器中。
3.根据权利要求1或2所述的基于循环展开的卷积神经网络硬件加速器,其特征在于,所述单通道数据流硬件结构中PE阵列由PE行构成,每个PE行由n个乘法器组成,总共有m个PE行,用来计算乘累加,随着数据流的流动得出最终的结果;所述CSC缓冲器将不同的神经元传递给PE阵列,并使用卷积图进行乘法和加法。
4.根据权利要求3所述的基于循环展开的卷积神经网络硬件加速器,其特征在于,多个PE行组成PE阵列,激活值入口接收的数据相同;来自SB的权重数据是不一样的;最终PE阵列随着数据流的推进完成计算工作。
5.根据权利要求4所述的基于循环展开的卷积神经网络硬件加速器,其特征在于,激活值通过Activation数据总线将对应的数据送入寄存器中,而另外一边通过SB也接收到数据;然后进行乘累加,在一个周期内完成计算。
6.根据权利要求4所述的基于循环展开的卷积神经网络硬件加速器,其特征在于,所述单通道数据流硬件结构中采取每个PE行9个乘累加器的方式。
7.根据权利要求1或2所述的基于循环展开的卷积神经网络硬件加速器,其特征在于,所述单通道数据流硬件结构中数据流并行n个卷积图的突触和神经元数据和m个输出通道;
Activation in作为第一级缓冲器,用来存储当前层所有的神经元,CSC缓冲器作为第二级缓冲器承担两个功能,一是缓冲卷积图滑动上的神经元,第二个是承担和计算阵列的通信任务,是流线时刻保持忙碌状态。
8.根据权利要求1或2所述的基于循环展开的卷积神经网络硬件加速器,其特征在于,所述CSC缓冲器包含了n个缓冲器;每个缓冲器间还有互联,用于数据的重用。
9.根据权利要求8所述的基于循环展开的卷积神经网络硬件加速器,其特征在于,所述单通道数据流硬件结构中SB存储器负责存储当前卷积层的权重数据,然后配合CSC缓冲器送入阵列进行运算;所述SB存储器包含m*n个缓冲器,分为m组,每组负责缓冲一个权重内核数据;在每一个组内有n个缓冲器,每个缓冲器缓冲不同通道的突触;在每个时钟周期,CSC缓冲器向PE阵列输出的是一张卷积图的不同突触。

说明书全文

一种基于循环展开的卷积神经网络硬件加速

技术领域

[0001] 本发明主要涉及到卷积运算技术领域,特指一种基于循环展开的卷积神经网络硬件加速器。

背景技术

[0002] 卷积运算是CNN计算中最耗时的部分,所以加速卷积成为了所有神经网络加速器的共同目标。在CNN中,所有不同形状的卷积都可以归结为以下算法:参见图1的一般卷积运算示意图,卷积层的输入是三维的输入特征图;通过和四维的权重做卷积运算,就可以提取视觉特征并生成三维输出特征图。因此,卷积运算可以看作利用权重的众多内核,来识别输入特征并最终映射成输出特征的过程。
[0003] 输入特征有N个通道,即包含N张输入特征图;每张输入特征图含有H*L个神经元;输入特征和权重卷积,权重包含M个内核;每个内核包含N个通道,即每个内核有N张卷积图,每张卷积图有K*K个突触;经过卷积,得到输出特征,输出特征包含M个通道,即有M张输入特征图;每张输出特征图,含有R*C个输出激活值。卷积图作为滑动窗口在输入特征图上滑动并做乘累加运算。其中R,C的值由输入特征图的大小,卷积图的大小和步长共同决定。计算方法如公式(1),在这里不考虑填零的情况,推定形状已经完成填零操作。其中S是步长。
[0004] R=(L-K)/(S+1),C=(H-K)/(S+1)            (1)
[0005] 综上所述,给定图1中的卷积参数,计算过程可表示为图2。输出特征表示为O[m][r][c],权重表示为W[m][n][i][j],输入特征图被卷积图滑动卷积,表示为I[n][r·S+i][c·S+j],通过i,j自加计算卷积图和输入特征图的乘累加。通过r,c自加决定滑动窗口位置。最基本的卷积可以表示为输入特征图和卷积图的乘累加O[r][c]+=W[i][j]·I[r·S+i][c·S+j]。总而言之,可以将卷积运算看作一个包含六层循环的乘累加过程。它们是输入特征图循环(参数:i,j),输入通道循环(参数:n),输出通道循环(参数:m)和输出特征图循环(参数:r,c)。
[0006] 加速卷积的思想是循环展开。对于计算卷积的循环,将循环迭代拆分成若干小的循环块。每个小循环块利用硬件进行并行运算,以此达到加速的目的。传统的卷积神经网络加速器展开输入通道和输出通道,也就是参数m和n。但是在卷积的第一层,图片往往只包含3个通道,硬件展开因子一般远大于3,所以会有大量的单元不会参与计算,造成严重的资源浪费。此外,卷积过程中,卷积窗口不断的滑动,会有大量的数据复用,传统的卷积神经网络加速器会重复的存取这些复用的数据,造成功耗过高的问题。综上所述,传统的卷积神经网络加速器依然有很大的改进空间。

发明内容

[0007] 本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种能够提高卷积过程的单元利用率、提高性能的基于循环展开的卷积神经网络硬件加速器。
[0008] 为解决上述技术问题,本发明采用以下技术方案:
[0009] 一种基于循环展开的卷积神经网络硬件加速器,包括单通道数据流硬件结构,在所述单通道数据流硬件结构中,CSC缓冲器在不同的通道中将缓冲器互连,令它们可以实现移位;通过移位,让原本重用的数据放在下一次窗口滑动的位置。
[0010] 作为本发明的进一步改进:所述CSC缓冲器中数据的存储采取一维的方式;依次按照通道、卷积图、行的顺序将本来是三维的数据展开成一维数据,依次存放在缓冲器中。
[0011] 作为本发明的进一步改进:所述单通道数据流硬件结构中PE阵列由PE行构成,每个PE行由n个乘法器组成,总共有m个PE行,用来计算乘累加,随着数据流的流动得出最终的结果;所述CSC缓冲器将不同的神经元传递给PE阵列,并使用卷积图进行乘法和加法。
[0012] 作为本发明的进一步改进:多个PE行组成PE阵列,激活值入口接收的数据相同;来自SB的权重数据是不一样的;最终PE阵列随着数据流的推进完成计算工作。
[0013] 作为本发明的进一步改进:激活值通过Activation数据总线将对应的数据送入寄存器中,而另外一边通过SB也接收到数据;然后进行乘累加,在一个周期内完成计算。
[0014] 作为本发明的进一步改进:所述单通道数据流硬件结构中采取每个PE行9个乘累加器的方式。
[0015] 作为本发明的进一步改进:所述单通道数据流硬件结构中数据流并行n个卷积图的突触和神经元数据和m个输出通道;Activation in作为第一级缓冲器,用来存储当前层所有的神经元,CSC缓冲器作为第二级缓冲器承担两个功能,一是缓冲卷积图滑动上的神经元,第二个是承担和计算阵列的通信任务,是流线时刻保持忙碌状态。
[0016] 作为本发明的进一步改进:所述CSC缓冲器包含了n个缓冲器;每个缓冲器间还有互联,用于数据的重用。
[0017] 作为本发明的进一步改进:所述单通道数据流硬件结构中SB存储器负责存储当前卷积层的权重数据,然后配合CSC缓冲器送入阵列进行运算;所述SB存储器包含m*n个缓冲器,分为m组,每组负责缓冲一个权重内核数据;在每一个组内有n个缓冲器,每个缓冲器缓冲不同通道的突触;在每个时钟周期,CSC缓冲器向PE阵列输出的是一张卷积图的不同突触。
[0018] 与现有技术相比,本发明的优点在于:本发明的基于循环展开的卷积神经网络硬件加速器,能够提高卷积过程的单元利用率,从而提高性能。卷积运算可看作计算一个六层的乘累加循环,硬件加速卷积过程的核心在于最大化展开卷积的循环然后并行计算。本发明通过设计合理的循环展开次序,最大化的保证每个运算单元都处于繁忙状态。本发明设计了特殊的互连缓冲器实现数据重用,减少运算时,硬件从外部存储取数据的次数。附图说明
[0019] 图1是卷积运算的基本模式示意图。
[0020] 图2是卷积运算公式表示的原理示意图。
[0021] 图3是本发明在具体应用实例中单通道数据流硬件结构的示意图。
[0022] 图4是本发明在具体应用实例中PE行结构的示意图。
[0023] 图5是本发明在具体应用实例中CSC硬件结构的示意图。
[0024] 图6是本发明在具体应用实例中数据流的工作原理示意图。

具体实施方式

[0025] 以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
[0026] 如图3所示,为本发明具体应用于单通道数据流硬件结构,整个系统主要分为6个关键模块:
[0027] 外部存储DRAM,存储当前卷积层的权重突触和神经元;
[0028] CBUF做为第一级缓冲器,从外部存储中导入当前卷积层的权重突触和神经元。此外,CBUF向CSC中传递需要计算的卷积窗口的神经元数据,向PE阵列中传递突触数据。
[0029] CSC作为二级缓存,从CBUF中提取当前卷积窗口的激活值数据,缓存是为了延长流水线降低访问延迟。
[0030] 最顶部的控制器Controller,用于控制各个模块的调度和协同,根据不同的神经网络发布不同的指令和数据。
[0031] PE阵列包含m个PE行,每个PE行有n个乘累加器。为了降低存储,大量的实验证明,采用16位的位宽可以最大化的保证精度。所以所有的乘累加器都是16位的数据。此外,神经网络数据经过训练之后,全部可以用定点型来表示,综上所述,运算单元只需要支持16位INT型的数据,这样可以进一步减少阵列的面积和功耗。
[0032] CACC模块,用于做累加运算,在单通道数据流条件下,每个加法树对应于一个PE行,计算一个输出通道的值。
[0033] 如图4所示,显示了本发明PE行的设计方法,本发明采取每个PE行9个乘累加器的做法。这样对于大部分的卷积来说,都可以一次性计算一个卷积窗口的部分激活值。观察PE行的结构,激活值通过Activation数据总线(16*9位)将对应的数据送入寄存器中,而另外一边,通过SB也接收到数据。然后进行乘累加,在一个周期内完成计算。
[0034] 在具体应用实例中,多个PE行组成PE阵列,激活值入口接收的数据相同。但是来自SB的权重数据是不一样的。最终PE阵列随着数据流的推进,完成计算工作。
[0035] CSC缓冲器中数据的存储采取一维的方式。依次按照通道、卷积图、行的顺序将本来是三维的数据展开成一维数据,依次存放在缓冲器中。卷积神经网络含有大量的参数,在硬件的计算中,会花费大量的能耗和时间来搬移数据,所以需要尽可能的在单元内重用数据,减少数据的搬移量,这样既可以节省功耗,也可以节省带宽。从而提高硬件的性能。具体到硬件中,CSC缓冲器从CBUF载入存储器的时候,会出现大量的数据重叠。当卷积图在输入特征图上滑动时后。根据步长的不同,会出现相邻神经元重叠。如果不进行数据重用,每次CSC都会从CBUF里重复存取,这是冗余操作,所以需要设置一种滑动方式和重用方式,来解决这个问题。
[0036] 分析通用情况下,这种数据方法能够减少的存储量卷积图大小为K,步长为S,可以将存储压缩表示为公式2。
[0037]
[0038] 在具体应用实例中,如图5所示,为CSC缓冲器的具体结构,和平铺数据流的结构不同,为了实现数据重用,CSC缓冲器在不同的通道中将缓冲器互连,令它们可以实现移位。通过移位,让原本重用的数据放在下一次窗口滑动的位置,从而避免了数据的重复存取。
[0039] 在具体应用实例中,参见图6,本发明的数据流并行n个卷积图的突触和神经元数据和m个输出通道。Activation in作为第一级缓冲器,用来存储当前层所有的神经元(对第一层来说是存储图,对其他层来说是存储上一层的激活值),CSC缓冲器作为第二级缓冲器承担两个功能,一是缓冲卷积图滑动上的神经元,第二个是承担和计算阵列的通信任务,是流水线时刻保持忙碌状态。CSC缓冲器包含了n个缓冲器。每个缓冲器间还有互联,用于数据的重用。而SB负责存储当前卷积层的权重数据。然后配合CSC送入阵列进行运算。SB存储器包含m*n个缓冲器,分为m组,每组负责缓冲一个权重内核数据。在每一个组内有n个缓冲器,每个缓冲器缓冲不同通道的突触。在每个时钟周期,CSC缓冲器向PE阵列输出的是一张卷积图的不同突触。
[0040] PE阵列由PE行构成,每个PE行由n个乘法器组成,总共有m个PE行。其主要作用是计算乘累加,随着数据流的流动得出最终的结果。
[0041] 总体来讲,CSC缓冲器将不同的神经元传递给PE阵列,并使用卷积图进行乘法和加法。
[0042] 本发明的工作过程如下:
[0043] 步骤S1:在每个时钟周期,CSC缓冲器从Activation in一级缓冲器载入输入特征图的n个神经元。
[0044] 步骤S2:SB缓冲器载入m*n个权重突触。
[0045] 步骤S3:将n个神经元分别和n*m个突触乘累加。
[0046] 步骤S4:将n个乘法器的结果进一步累加为输出特征激活值的一个部分和。
[0047] 步骤S5:滑动着单张卷计图,开始计算下一个激活值。
[0048] 步骤S6:重复上述过程,最后得到一个输出特征的一个输出特征图部分和。
[0049] 步骤S7:让硬件串行的导入下一个通道,继续累加这些部分和。
[0050] 步骤S8:当所有的通道串行输入完毕,结果也就计算完毕。
[0051] 以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈