当前位置: 首页 > 专利查询>复旦大学专利>正文

一种基于可重构技术的用于加速卷积和池化运算的装置制造方法及图纸

技术编号:20243112 阅读:44 留言:0更新日期:2019-01-29 23:33
本发明专利技术属于集成电路技术领域,具体为一种基于可重构技术的用于加速卷积与池化运算的装置。本发明专利技术装置包括:可重构运算单元、卷积权重存储模块,特征值存储模块,控制模块;可重构运算模块在控制模块的控制下,从特征值存储模块中读取特征值,进行卷积运算、或最大池化运算、或平均池化运算后,将结果写回特征值存储模块。本发明专利技术克服了现有技术的用于卷积和池化运算的运算装置中需要多个不同部件分别处理卷积和池化运算的技术问题,节省了电路面积和功耗,提高了系统能效。

【技术实现步骤摘要】
一种基于可重构技术的用于加速卷积和池化运算的装置
本专利技术属于集成电路
,具体涉及一种深度神经网络算法中用于卷积和池化运算的装置。
技术介绍
如今,深度神经网络算法在计算机视觉、自然语言处理等领域展现出惊人的潜力。为了提高深度神经网络算法的计算能效,技术人员们开发了一系列的深度神经网络算法加速芯片。深度卷积神经网络算法是目前使用最广泛的深度神经网络算法之一,它一般由卷积层、池化层等若干层不同的运算连接而成。其中池化运算又分成最大池化和平均池化两种不同的运算。目前已有的架构中,为了处理池化运算,有两种技术路线。第一种,是使用CPU等通用处理单元计算池化运算,但是CPU等通用处理单元处理池化运算的并行性较低,且在卷积加速模块和CPU等通用处理单元之间传输数据需要占据大量的总线带宽,进而影响权重等总线数据传输。第二种,是采用多个不同结构的运算加速模块进行分别对不同的运算进行加速,这会浪费芯片的面积和功耗。综上所述,如何设计一个架构同时高效地兼容上述三种运算,是相关领域技术人员亟需解决的一个问题。
技术实现思路
本专利技术的目的在于提供一种高效的用于深度神经网络算法中加速卷积和池化运算的装置。本专利技术提供的用于深度神经网络算法中加速卷积和池化运算的装置,是基于可重构技术的,包括:可重构计算单元,用于重构成卷积、最大池化、平均池化三个模式,进行计算;特征值存储模块,用于存储参加计算的特征值;卷积权重存储模块,用于存储卷积运算的滤波器权重;控制模块,用于接收上位机的指令,对所述可重构计算单元进行动态重构;其中,所述可重构计算单元,在所述控制模块的控制下,从所述特征值存储模块中读取参与计算的特征值,在卷积模式时同时从卷积权重存储模块中读取权重,进行计算后将结果写回特征值存储模块中。本专利技术中,所述的可重构计算单元,包括一个乘法器和一个累加器。可重构计算单元的乘法器,具有以下特征:第一个乘法因数输入端口接收来自所述特征值存储模块的输入特征值;第二个乘法因数输入端口可以被重构为接收来自所述卷积权重存储模块的卷积滤波器权重,或被直接重构为立即数。可重构计算单元的累加器,具有以下特征:所述累加器由一个加法器和一个结果寄存器组成;所述加法器接收来自所述乘法器的输出,将其与所述结果寄存器中存储的数值相加后,产生加法器的输出。本专利技术提供的用于深度神经网络算法中加速卷积和池化运算的装置,在每次卷积或池化运算开始前,结果寄存器中存储的数值进行初始化。在不同的可重构模式下,可重构单元的电路行为有所不同。具体如下:卷积模式的计算流程为:(1)累加器的结果寄存器初始化为零,也可初始化为偏置(bias);(2)将乘法器的第2个乘法因数输入端口配置成从卷积权重存储模块接收滤波器权重;(3)可重构计算单元从特征值存储模块中接收输入特征值,经乘法器与相应的滤波器权重相乘后,与结果寄存器中的数值相加,将相加获得的部分和存储在结果寄存器中;(4)重复步骤(3),直到完成卷积运算,此时结果寄存器中的结果即是最终的卷积结果,将其写回到特征值存储模块中。最大池化模式的计算流程为:(1)累加器的结果寄存器初始化为最小值,例如8位寄存器能表达的最小值为-128;(2)将乘法器的第2个乘法因数输入端口配置成立即数-1;(3)可重构计算单元从特征值存储模块中接收输入特征值,经乘法器与立即数-1相乘后,与结果寄存器中的数值相加,这一操作相当于两数相减作差。若相加的结果为负数,说明该输入特征值大于结果寄存器中存储的中间结果,则将该输入特征值存入结果寄存器中;若相加的结果为非负数,说明该输入特征值小于或等于结果寄存器中存储的中间结果,则结果寄存器无需更新;(4)重复步骤(3),直到完成最大池化运算,此时结果寄存器中的结果即是最终的最大池化结果,将其写回到特征值存储模块中。平均池化模式的计算流程为:(1)累加器的结果寄存器初始化为零;(2)将乘法器的第2个乘法因数输入端口配置成立即数1/n,这里n为平均池化窗口的元素个数;(3)可重构计算单元从特征值存储模块中接收输入特征值,经乘法器与立即数1/n相乘后,与结果寄存器中的数值相加,将相加获得的部分和存储在结果寄存器中;(4)重复步骤(3),直到完成平均池化运算,此时结果寄存器中的结果即是最终的平均池化结果,将其写回到特征值存储模块中。上述可重构计算单元,其乘法器和加法器可以根据时序需要采用组合逻辑实现,或采用多级流水线实现。上述特征值存储模块和卷积权重存储模块,可以根据不同数据流,在物理上可采用一个或多个存储模块实现。在实际实施中,可采用若干所述可重构计算单元组成可重构阵列以提高运算并行度。本专利技术运算装置克服了现有技术的用于卷积和池化运算的运算装置中需要多个不同部件分别处理卷积和池化运算的技术问题,节省了电路面积和功耗,提高了系统能效。附图说明图1为本专利技术实施例的顶层模块框图。图2为本专利技术实施例的可重构计算单元的结构。图中标号:11为控制模块,12为可重构计算单元,13为片上存储系统;21为乘法器,22为乘法器输出寄存器,23为加法器,24为结果寄存器。具体实施方式以下结合附图和具体实施例对本专利技术的技术方案做进一步说明。应理解,以下描述的实施例是用于对本专利技术技术方案的说明而非限制。附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1是本专利技术实施例的顶层模块框图,是一个深度卷积神经网络的计算装置。所述装置包括一个控制模块11、16个可重构计算单元12、和一个片上存储系统13。其中可重构单元12的结构如图2所示,包括一个乘法器21、一个乘法器输出寄存器22、一个加法器23和一个结果寄存器24。在本实施例中,输入特征值、输出特征值和卷积权重均存储于片上存储系统13上。具体地,下面是该实施例执行3x3卷积运算的步骤。步骤1:控制模块11首先计算参加卷积计算的输入特征值和卷积权重在存储系统13中存放的地址,同时将可重构计算单元12中的多路选择器a和多路选择器b均选通1端,然后通过寄存器控制信号将结果寄存器24初始化清零。步骤2:根据预先计算好的地址序列,每个时钟周期16个可重构计算单元12从存储系统13中并行地读取来自不同特征值矩阵的数据与对应的滤波器权重数据。参与计算的数据按照流水线在乘法器21中相乘并暂存于乘法器输出寄存器22,而后与结果寄存器24中的中间结果在加法器23中相加并将加法器输出写入结果寄存器24中。步骤3:上述步骤2反复9次,即9个时钟周期后,结果寄存器24中存储的即是9个部分积的和,即卷积的输出。16个可重构计算单元12并行地将输出写回到存储系统13中。具体地,下面是该实施例执行3x3最大池化运算的步骤。步骤1:控制模块11首先计算参加最大池化计算的输入特征值在存储系统13中存放的地址,同时将可重构计算单元12中的多路选择器a和多路选择器b均选通2端,乘法器立即数输入端置为-1,然后通过寄存器控制信号将结果寄存器24初始化置位最小值。步骤2:根据预先计算好的地址序列,每个时钟周期16个可重构计算单元12从存储系统13中并行地读取来自不同特征值矩阵的数据。参与计算的数据按照流水线在乘法器21中相乘并暂存于乘法器输出寄存器22,而后与结果寄存本文档来自技高网...

【技术保护点】
1.一种基于可重构技术的用于加速卷积和池化运算的装置,其特征在于,包括:可重构计算单元,用于重构成卷积、最大池化、平均池化三个模式,进行计算;特征值存储模块,用于存储参加计算的特征值;卷积权重存储模块,用于存储卷积运算的滤波器权重;控制模块,用于接收上位机的指令,对所述可重构计算单元进行动态重构;其中,所述可重构计算单元,在所述控制模块的控制下,从所述特征值存储模块中读取参与计算的特征值,在卷积模式时同时从卷积权重存储模块中读取权重,进行计算后将结果写回特征值存储模块中。

【技术特征摘要】
1.一种基于可重构技术的用于加速卷积和池化运算的装置,其特征在于,包括:可重构计算单元,用于重构成卷积、最大池化、平均池化三个模式,进行计算;特征值存储模块,用于存储参加计算的特征值;卷积权重存储模块,用于存储卷积运算的滤波器权重;控制模块,用于接收上位机的指令,对所述可重构计算单元进行动态重构;其中,所述可重构计算单元,在所述控制模块的控制下,从所述特征值存储模块中读取参与计算的特征值,在卷积模式时同时从卷积权重存储模块中读取权重,进行计算后将结果写回特征值存储模块中。2.根据权利要求1所述的装置,其特征在于,所述的可重构计算单元,包括一个乘法器和一个累加器;其中:可重构计算单元的乘法器,具有以下特征:第一个乘法因数输入端口接收来自所述特征值存储模块的输入特征值;第二个乘法因数输入端口可以被重构为接收来自所述卷积权重存储模块的卷积滤波器权重,或被直接重构为立即数;可重构计算单元的累加器,具有以下特征:所述累加器由一个加法器和一个结果寄存器组成;所述加法器接收来自所述乘法器的输出,将其与所述结果寄存器中存储的数值相加后,产生加法器的输出。3.根据权利要求1所述的装置,其特征在于,在每次卷积或池化运算开始前,结果寄存器中存储的数值进行初始化。4.根据权利要求1-3之一所述的装置,其特征在于,在不同的可重构模式下,可重构单元的电路行为不同,具体如下:卷积模式的计算流程为:(1)累加器的结果寄存器初始化为零,或者初始化为偏置;(2)将乘法器的第2个乘法因数输入端口配置成从卷积权重存储模块接收滤波器权重;(3)可重构计算单元从特征值存储模块中接收输入特征值,经乘法器与相应的滤波器权重相乘后,与结果寄存器中的数值相加,将相加获得的部分和存储在结果寄存器中;(4)反复步骤(...

【专利技术属性】
技术研发人员:朱浩哲王彧张怡云史传进
申请(专利权)人:复旦大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1