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

基于层融合的低功耗卷积神经网络加速器及其加速方法技术

技术编号:38527077 阅读:11 留言:0更新日期:2023-08-19 17:02
本发明专利技术公开了一种基于层融合的低功耗卷积神经网络加速器及其加速方法,属于神经网络加速器领域,在传统卷积神经网络加速器设计的基础上引入层融合的设计方法,通过层融合计算架构,上一卷积层输出的中间特征图数据可以直接作为下一卷积层计算的输入特征图数据,避免了中间特征图到片外存储器的传输,有效降低系统整体功耗,缓解带宽压力,减少推理延迟;同时层融合设计可以在不牺牲过多片上存储资源的情况下,实现卷积层级的流水线设计;各卷积层专用卷积计算模块,各卷积阵列可以根据相应的卷积层进行阵列规模设计,本发明专利技术引入对计算架构参数的设计空间探索,最大化加速器的计算效率。率。率。

【技术实现步骤摘要】
基于层融合的低功耗卷积神经网络加速器及其加速方法


[0001]本专利技术涉及神经网络加速器
,特别涉及一种基于层融合的低功耗卷积神经网络加速器及其加速方法。

技术介绍

[0002]随着深度学习的快速发展和卷积神经网络的不断完善,计算机视觉的研究达到了一个新的高峰。目标检测作为计算机视觉中的基础任务,更是计算机视觉中取得丰硕成果的领域之一,被广泛地应用于现代生活的各个领域,在道路监控行人检测、无人驾驶汽车、医学图像分析、无人机导航、国防安全等多个领域有着广阔的应用前景。卷积神经网络凭借其在特征学习和迁移学习上的优势,在图像处理方面取得了一系列突破,使得基于卷积神经网络的目标检测算法是目前目标检测的主流算法。
[0003]卷积神经网络是计算密集型和内存密集型的网络模型,其推导过程中存在的大量计算时间成本和数据访存能耗成本是硬件部署中需要严格考虑的问题。为了解决这些问题,一方面在网络设计上,可以对大型神经网络进行压缩;另一方面,在硬件设计上常见的采用循环重排序、展开等方法,得到高效的硬件架构设计。
[0004]然而,在卷积神经网络加速器一般的FPGA实现上,一般采用逐层计算的方式进行卷积计算,传统的优化方法只能在一定程度上减少能耗。随着每层卷积的进行,卷积得到的中间特征图被存储至片外,在一个卷积层的计算完成后,又被传输回片上作为下一层卷积的输入数据,从而导致较高的能耗和带宽要求。随着网络规模的增大,需要在加速器和内存之间传输的数据量也随之增加。

技术实现思路

[0005]本专利技术提供一种基于层融合的低功耗卷积神经网络加速器及其加速方法,基于层融合方法的加速器计算架构,消除了中间图像数据与片外存储器的传输过程,通过减少片外传输能耗,降低了系统整体功耗,同时引入设计空间探索的设计方法,探索并找到在不同硬件平台下,相对应的计算性能和操作强度最优的设计方案,保证了加速器设计的性能和资源利用率最大化。
[0006]本专利技术第一方面实施例提供一种基于层融合的低功耗卷积神经网络加速器,包括:输入特征图缓存模块用于存储片外传输至片上的输入特征图数据;
[0007]第一卷积计算模块至第N卷积计算模块,所述第一卷积计算模块的输入端与所述输入特征图缓存模块的输出端连接,第N

1卷积计算模块的输出端与所述第N卷积计算模块的输入端连接,N大于等于2,所述第一卷积计算模块至第N卷积计算模块用于根据输入特征图数据完成各卷积层的卷积计算,并根据各卷积层的配置完成激活操作和最大池化操作,计算完成得到的中间特征图数据暂存在模块内;
[0008]激活缓存模块的输入端与所述第N卷积计算模块的输出端连接,一个输出端与所述第一卷积计算模块的输入端连接,另一个输出端与片外存储器连接,用于缓存一个阶段
卷积计算完成后完整的输出特征图数据,并根据控制模块所在状态的配置,选择将所述输出特征图数据传输至所述第一卷积计算模块继续进行下一轮的卷积计算,或者结束卷积计算,将所述输出特征图数据传输至片外存储器存放;
[0009]所述控制模块分别与所述输入特征图缓存模块、所述第一卷积计算模块至第N卷积计算模块和所述激活缓存模块连接,用于控制加速器运行过程中不同计算阶段的跳转,并解析由CPU发送的控制指令,完成对加速器计算的参数配置;
[0010]权重缓存模块分别与所述第一卷积计算模块至第N卷积计算模块连接,用于缓存各阶段卷积计算需要对应使用的权重数据。
[0011]在本专利技术的一个实施例中,所述第一卷积计算模块至第N卷积计算模块均包括依次连接的卷积计算阵列、激活单元、池化单元和中间数据缓冲模块;
[0012]所述卷积计算阵列用于将所述输入特征图数据与权重数据进行卷积计算,以完成卷积滑动窗口内的乘累加运算和不同输入通道间计算结果的累加运算;
[0013]所述激活单元用于对卷积计算完成后的特征图数据进行激活操作;
[0014]所述池化单元用于根据网络结构完成卷积层后的最大池化操作;
[0015]所述中间数据缓冲模块用于存放计算完成得到的中间特征图数据。
[0016]在本专利技术的一个实施例中,所述卷积计算阵列由Tm个计算通道组成,分别对应一个卷积输出通道的计算;所述Tm个计算通道的计算结构相同,包括Tn个卷积处理单元、累加器和行缓冲器,用于将Tn个输入通道的输入特征图数据和对应的权重数据进行乘累加,并通过所述累加器将Tn个输入通道的结果相加,送入所述行缓冲器,卷积滑动窗口在输入特征图上滑动一行后,得到一行输出特征图的部分和,待下一批Tn个输入通道的乘累加结果得到后,与所述行缓冲器中的部分和相加并重新存放在行缓冲器中,多次循环直至得到一行完整的输出特征图数据。
[0017]在本专利技术的一个实施例中,所述池化单元用于根据所述控制模块配置,进行不同步长的最大池化操作,在进行步长为2的池化操作时,依次比较所述卷积计算阵列输出的一行数据的奇数位数据和偶数位数据,将两者中较大的数值取出并缓存在寄存器中,在下一行数据到达时重复上述操作,并将得到的两行最大值数据再进行两两比较,得到步长为2时的最大池化结果;在进行步长为l的池化操作时,依次比较所述卷积计算阵列输出的一行数据的相邻数据,将两者中较大的数值取出并缓存在寄存器中,在下一行数据到达时重复上述操作,并将得到的两行最大值数据再进行两两比较,得到步长为1时的最大池化结果。
[0018]在本专利技术的一个实施例中,所述中间数据缓冲模块包括多个存储器,用于逐行存储卷积得到的输出特征图数据,每行数据单独存放在一个存储器中,所述存储器大小为输出特征图宽度乘以输出通道数,所述存储器由多个存储单元构成,每个存储单元存放一个特征图数据;所述中间数据缓冲模块所需存储器数量为卷积核大小加一,当数量为卷积核大小的存储器放入了相应的中间特征图数据后,其作为下一卷积层的输入数据送入下一卷积计算模块,剩余的存储器用以继续接收所在卷积层的卷积计算输出。
[0019]在本专利技术的一个实施例中,所述第一卷积计算模块至第N卷积计算模块的计算结构采用行缓冲的设计,各卷积计算模块在相应的卷积层上滑动卷积窗口逐行得到输出特征图数据;在上一卷积层得到下层进行一行卷积计算所需的特征图数据后,中间特征图数据进入下一个卷积计算模块,下层卷积开始相同的计算过程,按行输出特征图数据,并将各行
数据放入对应的所述中间数据缓冲模块的存储器中。
[0020]在本专利技术的一个实施例中,在不同硬件平台搭建的层融合加速器中,以最大化硬件资源利用率和吞吐率,通过空间探索方法确定所述第一卷积计算模块至第N卷积计算模块的最优设计参数,包括:依次选取卷积神经网络的每一层输入数据,权重数据和输出数据,输出数据大小为R行C列和M输出通道,权重数据大小为K行K列N输入通道和M输出通道,网络模型的总计算操作数Operations为:
[0021][0022]其中,L为选取卷积神经网络的层数;
[0023]Max_cycles
i
为一轮卷积中各卷积计算模块所需的最大本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于层融合的低功耗卷积神经网络加速器,其特征在于,包括:输入特征图缓存模块用于存储片外传输至片上的输入特征图数据;第一卷积计算模块至第N卷积计算模块,所述第一卷积计算模块的输入端与所述输入特征图缓存模块的输出端连接,第N

1卷积计算模块的输出端与所述第N卷积计算模块的输入端连接,N大于等于2,所述第一卷积计算模块至第N卷积计算模块用于根据输入特征图数据完成各卷积层的卷积计算,并根据各卷积层的配置完成激活操作和最大池化操作,计算完成得到的中间特征图数据暂存在模块内;激活缓存模块的输入端与所述第N卷积计算模块的输出端连接,一个输出端与所述第一卷积计算模块的输入端连接,另一个输出端与片外存储器连接,用于缓存一个阶段卷积计算完成后完整的输出特征图数据,并根据控制模块所在状态的配置,选择将所述输出特征图数据传输至所述第一卷积计算模块继续进行下一轮的卷积计算,或者结束卷积计算,将所述输出特征图数据传输至片外存储器存放;所述控制模块分别与所述输入特征图缓存模块、所述第一卷积计算模块至第N卷积计算模块和所述激活缓存模块连接,用于控制加速器运行过程中不同计算阶段的跳转,并解析由CPU发送的控制指令,完成对加速器计算的参数配置;权重缓存模块分别与所述第一卷积计算模块至第N卷积计算模块连接,用于缓存各阶段卷积计算需要对应使用的权重数据。2.根据权利要求1所述的基于层融合的低功耗卷积神经网络加速器,其特征在于,所述第一卷积计算模块至第N卷积计算模块均包括依次连接的卷积计算阵列、激活单元、池化单元和中间数据缓冲模块;所述卷积计算阵列用于将所述输入特征图数据与权重数据进行卷积计算,以完成卷积滑动窗口内的乘累加运算和不同输入通道间计算结果的累加运算;所述激活单元用于对卷积计算完成后的特征图数据进行激活操作;所述池化单元用于根据网络结构完成卷积层后的最大池化操作;所述中间数据缓冲模块用于存放计算完成得到的中间特征图数据。3.根据权利要求2所述的基于层融合的低功耗卷积神经网络加速器,其特征在于,所述卷积计算阵列由Tm个计算通道组成,分别对应一个卷积输出通道的计算;所述Tm个计算通道的计算结构相同,包括Tn个卷积处理单元、累加器和行缓冲器,用于将Tn个输入通道的输入特征图数据和对应的权重数据进行乘累加,并通过所述累加器将Tn个输入通道的结果相加,送入所述行缓冲器,卷积滑动窗口在输入特征图上滑动一行后,得到一行输出特征图的部分和,待下一批Tn个输入通道的乘累加结果得到后,与所述行缓冲器中的部分和相加并重新存放在行缓冲器中,多次循环直至得到一行完整的输出特征图数据。4.根据权利要求2所述的基于层融合的低功耗卷积神经网络加速器,其特征在于,所述池化单元用于根据所述控制模块配置,进行不同步长的最大池化操作,在进行步长为2的池化操作时,依次比较所述卷积计算阵列输出的一行数据的奇数位数据和偶数位数据,将两者中较大的数值取出并缓存在寄存器中,在下一行数据到达时重复上述操作,并将得到的两行最大值数据再进行两两比较,得到步长为2时的最大池化结果;在进行步长为1的池化操作时,依次比较所述卷积计算阵列输出的一行数据的相邻数据,将两者中较大的数值取出并缓存在寄存器中,在下一行数据到达时重复上述操作,并将得到的两行最大值数据再
进行两两比较,得到步长为1时的最大池化结果。5.根据权利要求2所述的基于层融合的低功耗卷积神经网络加速器,其特征在于,所述中间数据缓冲模块包括多个存储器,用于逐行存储卷积得到的输出特征图数据,每行数据单独存放在一个存储器中,所述存储器大小为输出特征图宽度乘以输出通道数,所述存储器由多个存储单元构成,每个存储单元存放一个特征图数据;所述中间数据缓冲模块所需存储器数量为卷积核大小加一,当数量为卷积核大小的存储器放入了相应的中间特征图数据后,其作为下一卷积层的输入数据送入下一卷积计算模块,剩余的存储器用以继续接收所在卷积层的卷积计算输出。6.根据权利要求1所述的基于层融合的低功耗卷积神经网络加速器,其特征在于,所述第一卷积计算模块至第N卷积计算模块的计算结构采用行缓冲的设计,各卷积计算模块在相应的卷积层上滑动卷积窗口逐行得到输出特征图数据;在上一卷积层得到下层进行一行卷积计算所需的特征图数据后,中间特征图数据进入下一个卷积计算模块,下层卷积开始相同的计算过程,按行输出特征图数据,并将各行数据放入对应的所述中间数据缓冲模块的存储器中。7.根据权利要求1所述的基于层融合的低功耗卷积神经网络加速器,其特征在于,在不同硬件平台搭建的层融合加速器中,以最大化硬件资源利用率和吞吐率,通过空间探索方法确定所述第一卷积计算模块至第N卷积计算模块的最优设计参数,包括:依次选取卷积神经网络的每一层输入数据,权重数据和输出数据,输出数据大小为R行C列和M输出通道,权重数据大小为K行K列N输入通道和M输出通道,网络模型的总计算操作数Operations为:其中,L为选取卷积神经网络的层数;Max_cycles
...

【专利技术属性】
技术研发人员:刘昊王玮琪周欣如李心贺
申请(专利权)人:东南大学
类型:发明
国别省市:

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

1