二维卷积计算硬件构架及基于其的流水式二维卷积计算方法技术

技术编号:36187288 阅读:20 留言:0更新日期:2022-12-31 20:54
本发明专利技术公开了一种二维卷积计算硬件构架及基于其的流水式二维卷积计算方法,包括权重寄存器和二维卷积计算流水线;二维卷积计算流水线内含P级计算单元,每一级计算单元包含一维卷积硬件和中间结果寄存器组;一维卷积硬件包括N组乘累加单元,其中每组乘累加单元包含Q个乘法器和1个加法树;权重寄存器设置于每一级计算单元内部,前一级计算单元的N个计算结果寄存于中间结果寄存器组中,并在下一周期累加至后一级计算单元的中间结果寄存器组中,最后经最后一级计算单元的中间结果寄存器组输出。基于本发明专利技术提出的二维卷积计算硬件构架,可以高效利用输入特征图数据和卷积核权重,极大地提高了二维卷积计算的数据复用率。大地提高了二维卷积计算的数据复用率。大地提高了二维卷积计算的数据复用率。

【技术实现步骤摘要】
二维卷积计算硬件构架及基于其的流水式二维卷积计算方法


[0001]本专利技术涉及深度学习
,尤其是一种二维卷积计算硬件构架及基于其的流水式二维卷积计算方法。

技术介绍

[0002]卷积神经网络是近年来流行的神经网络模型,在图像智能处理、计算机视觉等领域有着非常广泛地应用。在嵌入式及边缘侧应用中,对神经网络模型推理能效与性能要求非常高,使用CPU、GPU等传统器件已经无法满足这些应用场景的需求。因此,使用专门针对深度学习模型推理而设计的人工智能处理器成为必须,而专用人工智能处理器也成为近年来研究与创新的热点。而卷积神经网络是目前深度学习模型中应用最为广泛的神经网络,人工智能处理器的设计必须高效支持卷积神经网络的推理。
[0003]目前,专用人工智能推理处理器,大多设计为SOC的形式,其中包含CPU和深度学习加速核。CPU和深度学习加速核之间通过片上总线相连,CPU作为主控核心,可以控制深度学习加速核的执行。CPU用来执行通用软件,具有很高的灵活性,可以运行操作系统以及操作系统之上的各种软件;而深度学习加速核仅用于执行数值计算密集的深度学习模型推理。CPU执行驱动软件,根据模型的配置,生成计算命令,并把计算命令发送至深度学习加速核,配置权重数据、输入数据、结果数据的存储地址,由深度学习加速核完成深度学习模型的推理。
[0004]为了高效支持深度学习模型的推理,深度学习加速核内部设置大量硬件计算单元,如乘法器、加法树等。这些计算器件可以同时并行工作,因而可以高效支持数值密集的深度学习模型推理。
>[0005]与此同时,深度学习加速核还要利用深度学习模型的计算特点,尽量使导入深度学习加速核的数据被多次利用,提高数据的复用率,减少数据的流动;这是因为,消耗在数据流动上的能量远大于消耗在数据计算上的能量,参照图1所示。而在以卷积神经网络为代表的深度学习模型推理过程中,同一个数据大概率会在多次计算中使用,若不能提高数据的复用率,数据将在深度学习加速核与DDR中反复导入导出,造成大量能量的浪费,增加人工智能芯片的功耗,降低人工智能芯片的效能。

技术实现思路

[0006]针对上述技术问题,本专利技术提出一种二维卷积计算硬件构架及基于其的流水式二维卷积计算方法,可以高效利用数据,极大地提高数据复用率。
[0007]本专利技术保护一种二维卷积计算硬件构架,输入特征图尺寸为Hx
×
Wx,卷积核尺寸R
×
C,其特征在于,包括权重寄存器和二维卷积计算流水线;
[0008]二维卷积计算流水线内含P级计算单元,每一级计算单元包含一维卷积硬件和中间结果寄存器组;一维卷积硬件包括N组乘累加单元,其中每组乘累加单元包含Q个乘法器和1个加法树,其中P=R或C;当P=R时则Q=C,当P=C时则Q=R;N等于每一级计算单元输出
的计算结果的个数,中间结果寄存器组中的寄存器数量等于N;
[0009]权重寄存器设置于每一级计算单元内部,前一级计算单元的N个计算结果寄存于中间结果寄存器组,并在下一周期对应累加至后一级计算单元的中间结果寄存器组中,最后经最后一级计算单元的中间结果寄存器组输出。
[0010]优选的,二维卷积计算硬件构架还包括由机器指令配置的数据填充单元,当需要进行边缘数据填充时,由数据填充单元根按照机器指令的配置给出填充数据后,与输入特征图一同送入二维卷积计算流水线。
[0011]优选的,当输出通道数量大于1时,二维卷积计算硬件构架内含多个二维卷积计算流水线,多输出通道二维卷积运算中不同输出通道的卷积核权重存入对应二维卷积计算流水线的对应权重寄存器中,输入特征图广播至所有二维卷积计算流水线,每个二维卷积计算流水线的输出结果存储至累加存储器,用于多个输出通道卷积运算的并行处理。
[0012]优选的,乘法器采用电路复用的方式,同时支持8位计算和16位计算的乘法器;当乘法器复用为同时计算多个8位计算时,同时传入多个输入通道的特征图数据,权重寄存器同时存储针对多个输入通道的权重数据,乘法器同时计算多个输入通道的二维卷积,加法树分别对同一位置的多个输入通道卷积结果进行累加,得到多个输入通道的二维卷积结果累加和。
[0013]本专利技术还保护基于上述二维卷积计算硬件构架的流水式二维卷积计算方法,
[0014]当P=C时,卷积核权重以列为单位分别输入对应级计算单元,输入特征图以列为单位依序按周期广播至所有计算单元,即每个周期将一列N+R-1个数据广播至所有计算单元,直至完成整个二维卷积运算;当Hx+T>N+R-1时,将输入特征图以N+R-1行为单位划分为多个横向条带,进行分批处理,其中T为填充数据行数,由具体二维卷积计算填充方式确定;相邻横向条带存在R-1行数据的重复。
[0015]当P=R时,卷积核权重以行为单位分别输入对应级计算单元,输入特征图以行为单位依序按周期广播至所有计算单元,即每个周期将一行N+C-1个数据广播至所有计算单元,直至完成二维卷积运算;当Wx+T>N+C-1时,将输入特征图以N+C-1列为单位划分为多个纵向条带,进行分批处理,其中T为填充数据列数,由具体二维卷积计算填充方式确定;相邻纵向条带存在C-1列数据的重复。
[0016]基于本专利技术提出的二维卷积计算硬件构架,可以高效实现二维卷积计算时输入特征图数据和卷积核权重的数据复用,极大地提高了二维卷积计算的数据复用率;对于多输入通道多输出通道的二维卷积计算,在计算不同输出通道的卷积结果时,极大限度地实现输入特征图数据的复用,提高了数据复用率。
附图说明
[0017]图1为现有技术中不同类型数据计算操作或传输的能量消耗比例示意图;
[0018]图2为实施例1公开的二维卷积计算硬件构架示意图;
[0019]图3为尺寸为2
×
3的卷积核窗口在尺寸为4
×
6的输入特征图上滑动示意图;
[0020]图4为尺寸为4
×
6的输入特征图与尺寸为2
×
3的卷积核进行卷积运算得到3
×
4输出特征图的示意图;
[0021]图5为实施例2公开的二维卷积计算硬件构架示意图;
[0022]图6为二维卷积计算硬件架构在N=6时的单个计算单元内部结构示意图;
[0023]图7为针对实施例1的二维卷积计算硬件构架,当输入特征图Hx=7时的划分示意图;
[0024]图8为针对实施例2的二维卷积计算硬件构架,当输入特征图Wx=10时的划分示意图;
[0025]图9为带有数据填充单元的二维卷积硬件构架示意图;
[0026]图10为卷积核尺寸为3
×
3时,进行边缘数据填充的输入特征图按行划分示意图;
[0027]图11为卷积核尺寸为3
×
3时,进行边缘数据填充的输入特征图按列划分示意图;
[0028]图12为现有技术中多输入通道多输出通道的二维卷积计算的输入特征图和卷积核的表述方式示意图;...

【技术保护点】

【技术特征摘要】
1.一种二维卷积计算硬件构架,输入特征图尺寸为Hx
×
Wx,卷积核尺寸R
×
C,其特征在于,包括权重寄存器和二维卷积计算流水线;二维卷积计算流水线内含P级计算单元,每一级计算单元包含一维卷积硬件和中间结果寄存器组;一维卷积硬件包括N组乘累加单元,其中每组乘累加单元包含Q个乘法器和1个加法树,其中P=R或C;当P=R时则Q=C,当P=C时则Q=R;N等于每一级计算单元输出的计算结果的个数,中间结果寄存器组中的寄存器数量等于N;权重寄存器设置于每一级计算单元内部,前一级计算单元的N个计算结果寄存于中间结果寄存器组,并在下一周期累加至后一级计算单元的中间结果寄存器组中,最后经最后一级计算单元的中间结果寄存器组输出。2.根据权利要求1所述的二维卷积计算硬件构架,其特征在于,还包括由机器指令配置的数据填充单元,当需要进行边缘数据填充时,由数据填充单元根按照机器指令的配置给出填充数据后,与输入特征图一同送入二维卷积计算流水线。3.根据权利要求2所述的二维卷积计算硬件构架,其特征在于,当输出通道数量大于1时,二维卷积计算硬件架构内含多个二维卷积计算流水线,多输出通道二维卷积运算中不同输出通道的卷积核权重存入对应二维卷积计算流水线的对应权重寄存器中,输入特征图广播至所有二维卷积计算流水线,每个二维卷积计算流水线的输出结果存储至累加存储器,用于多个输出通道卷积运算的并行处理。4.根据权利要求1

3任意一项所述的二维卷积计算硬件构架,其特...

【专利技术属性】
技术研发人员:林广栋洪一陆俊峰黄光红
申请(专利权)人:安徽芯纪元科技有限公司
类型:发明
国别省市:

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

1