卷积计算加速器、卷积计算方法及卷积计算设备技术

技术编号:22056910 阅读:25 留言:0更新日期:2019-09-07 15:50
本申请是关于一种卷积计算加速器、卷积计算方法及卷积计算设备,涉及电子电路技术领域。该卷积计算加速器包括:控制器、计算矩阵以及第一缓存,计算矩阵中包含至少一行计算单元,每行计算单元中包含至少两个计算单元;控制器,用于控制将载入至第一缓存的输入数据输入至对应行的计算单元中,由对应行的计算单元将输入数据在对应行的计算单元中进行传输;对应行的计算单元中的每一个计算单元将接收到的输入数据与预先存储的卷积核进行卷积计算,处于同一行的至少两个计算单元复用同一份输入数据,且只需要一个输入通道,从而降低了计算矩阵的缓存容量和输入带宽需求,提高了计算矩阵的可扩展性。

Convolution Computing Accelerator, Convolution Computing Method and Convolution Computing Equipment

【技术实现步骤摘要】
卷积计算加速器、卷积计算方法及卷积计算设备
本申请涉及电子电路
,特别涉及一种卷积计算加速器、卷积计算方法及卷积计算设备。
技术介绍
在数据处理领域,很多数据处理过程,比如通过卷积神经网络(ConvolutionalNeuralNetwork,CNN)进行图像处理过程,需要进行大量的卷积计算步骤。在相关技术中,计算机设备可以借助于通过硬件加速的方式来加快卷积计算的计算速度,具体比如,计算机设备可以连接专用的卷积计算加速器,该卷积计算加速器中包含有计算矩阵、控制器以及输入缓存,该计算矩阵中包含若干个计算单元,其中,每个计算单元对应的输入数据独立缓存,并在进行卷积计算时,由控制器直接控制输送至对应的计算单元,由该计算单元将该输入数据与卷积核进行卷积计算。在相关技术中,由于计算矩阵中的各个计算单元的输入数据各自独立缓存,且由控制器直接控制输送至对应的计算单元,这就需要为卷积计算加速器设计较高的缓存容量和输入带宽,影响计算矩阵的扩展性。
技术实现思路
本申请实施例提供了一种卷积计算加速器、卷积计算方法及卷积计算设备,可以解决相关技术中计算矩阵中的各个计算单元的输入数据各自独立缓存,且由控制器直接控制输送至对应的计算单元,需要为卷积计算加速器设计较高的缓存容量和输入带宽,影响计算矩阵的扩展性的问题,技术方案如下:一方面,提供了一种卷积计算加速器,所述卷积计算加速器包括:控制器、计算矩阵以及第一缓存,所述计算矩阵中包含至少一行计算单元,每行计算单元中包含至少两个计算单元,且每行计算单元中的相邻两个计算单元相连;所述控制器,用于控制将每一行计算单元的输入数据载入至所述第一缓存;所述控制器,还用于控制将载入至所述第一缓存的输入数据输入至对应行的计算单元中,由所述对应行的计算单元将所述输入数据在所述对应行的计算单元中进行传输;所述对应行的计算单元中的每一个计算单元,用于将接收到的输入数据与预先存储的卷积核进行卷积计算。另一方面,提供了一种卷积计算方法,用于卷积计算加速器中,所述卷积计算加速器包括控制器、计算矩阵以及第一缓存,所述计算矩阵中包含至少一行计算单元,每行计算单元中包含至少两个计算单元,且每行计算单元中的相邻两个计算单元相连,所述方法包括:输入数据对应行的计算单元将所述输入数据在所述对应行的计算单元中进行传输,所述输入数据由所述控制器控制输入至所述对应行的计算单元;所述对应行的计算单元中的每一个计算单元,将接收到的输入数据与预先存储的卷积核进行卷积计算。另一方面,提供了一种现场可编程门阵列(Field-ProgrammableGateArray,FPGA),所述FPGA包括:至少一个上述的卷积计算加速器。又一方面,提供了一种卷积计算设备,所述卷积计算设备包括:至少一个上述的卷积计算加速器。又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由控制器加载并执行以实现如上所述的卷积计算方法。本申请提供的技术方案可以包括以下有益效果:计算矩阵中的每一行包含的至少两个计算单元中的相邻两个计算单元相连,在进行卷积计算时,控制器控制每一个计算单元对应的输入数据通过流水线方式依次输入该行计算单元中的每一个计算单元中,由同一行的计算单元根据该输入数据与预存的卷积核进行卷积计算,也就是说,处于同一行的至少两个计算单元复用同一份输入数据,且只需要一个输入通道,从而降低了计算矩阵的缓存容量和输入带宽需求,提高了计算矩阵的可扩展性。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。图1是根据一示例性实施例示出的一种卷积计算加速器的结构示意图;图2是图1所示实施例涉及的卷积计算示意图;图3是根据一示例性实施例示出的一种卷积计算加速器的结构示意图;图4是图3所示实施例涉及的一种卷积计算加速器的输入输出示意图;图5是图3所示实施例涉及的一种卷积计算加速器内部实现示意图;图6是图3所示实施例涉及的一种的计算单元的电路连接示意图;图7是图3所示实施例涉及的第三计算单元的电路连接示意图;图8是图3所示实施例涉及的第二计算单元的电路连接示意图;图9是图3所示实施例涉及的第四计算单元的电路连接示意图;图10是图3所示实施例涉及的另一种卷积计算加速器的结构示意图;图11是根据一示例性实施例示出的一种FPGA的结构示意图;图12是图11所示实施例涉及的一种FPGA的划分示意图;图13是图11所示实施例涉及的一种CNN模型的网络结构图;图14是图11所示实施例涉及的一种FPGA的硬件结构图;图15是根据一示例性实施例示出的一种卷积计算设备的结构示意图;图16是根据一示例性实施例示出的一种卷积计算方法的方法流程图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。本申请实施例所示的方案,通过硬件电路实现卷积计算的加速,即在数据处理过程中,将涉及到的卷积计算,通过驱动程序发送给硬件电路进行计算,硬件电路计算获得卷积计算结果后,再将卷积计算结果提供给其它硬件电路或者软件程序使用。具体的,在本申请实施例中,可以通过FPGA来实现上述硬件电路。具体的,可以基于FPGA上的DSP组成计算矩阵,每个FPGA根据包含的DSP的数量的不同以及计算矩阵的规格的不同,可以划分出至少一个计算矩阵,多个计算矩阵并行的进行卷积计算。进一步的,上述FPGA可以设置在与运行有数据处理软件程序的计算机设备相连接的卷积计算设备(相当于计算机设备的外设设备)中,由数据处理软件程序通过外设设备的驱动程序进行调用以实现卷积计算的加速。图1是根据一示例性实施例示出的一种卷积计算加速器的结构示意图,如图1所示,该卷积计算加速器包括:控制器101、计算矩阵102以及第一缓存103。该计算矩阵102中包含至少一行计算单元,每行计算单元中包含至少两个计算单元102a,且每行计算单元中的相邻两个计算单元102a相连。其中,控制器101,用于控制每一行计算单元的输入数据载入至第一缓存103;控制器101,还用于控制将载入至第一缓存的输入数据输入至对应行的计算单元102a中,由对应行的计算单元102a将输入数据在对应行的计算单元102a中进行传输;该对应行的计算单元102a中的每一个计算单元102a,用于将接收到的输入数据与预先存储的卷积核进行卷积计算。其中,上述卷积计算获得的卷积计算结果可以提供给其它硬件电路或者软件程序进行后续处理。在本申请实施例中,每一份输入数据和每一份卷积核可以分别是一个二维的数据矩阵。比如,以上述卷积计算加速器用于在通过CNN进行图像处理过程进行卷积计算,输入数据是从图像中提取出的特征数据,卷积核是CNN模型中的特征权重为例,每一份输入数据可以是一个10×10的数据矩阵本文档来自技高网...

【技术保护点】
1.一种卷积计算加速器,其特征在于,所述卷积计算加速器包括:控制器、计算矩阵以及第一缓存,所述计算矩阵中包含至少一行计算单元,每行计算单元中包含至少两个计算单元,且每行计算单元中的相邻两个计算单元相连;所述控制器,用于控制将每一行计算单元的输入数据载入至所述第一缓存;所述控制器,还用于控制将载入至所述第一缓存的输入数据输入至对应行的计算单元中,由所述对应行的计算单元将所述输入数据在所述对应行的计算单元中进行传输;所述对应行的计算单元中的每一个计算单元,用于将接收到的输入数据与预先存储的卷积核进行卷积计算。

【技术特征摘要】
1.一种卷积计算加速器,其特征在于,所述卷积计算加速器包括:控制器、计算矩阵以及第一缓存,所述计算矩阵中包含至少一行计算单元,每行计算单元中包含至少两个计算单元,且每行计算单元中的相邻两个计算单元相连;所述控制器,用于控制将每一行计算单元的输入数据载入至所述第一缓存;所述控制器,还用于控制将载入至所述第一缓存的输入数据输入至对应行的计算单元中,由所述对应行的计算单元将所述输入数据在所述对应行的计算单元中进行传输;所述对应行的计算单元中的每一个计算单元,用于将接收到的输入数据与预先存储的卷积核进行卷积计算。2.根据权利要求1所述的卷积计算加速器,其特征在于,所述控制器,用于在控制将载入至所述第一缓存的输入数据输入至对应行的计算单元中时,在一个第一时钟周期内,将所述输入数据输入至所述对应行中的第一个计算单元的寄存器中;所述对应行的计算单元中的第一计算单元,用于将接收到的所述输入数据在下一个第一时钟周期内输入至所述对应行的下一个计算单元的寄存器中,所述第一计算单元是所述对应行中除了最后一个计算单元之外的任意计算单元。3.根据权利要求2所述的卷积计算加速器,其特征在于,所述计算矩阵中的每一个计算单元,用于在一个第一时钟周期内接收输入数据,并在下一个第一时钟周期内,将接收到的输入数据与预先存储的卷积核进行卷积计算。4.根据权利要求3所述的卷积计算加速器,其特征在于,所述计算矩阵中每个计算单元中预先存储有至少两个卷积核;所述计算矩阵中的每一个计算单元,用于在一个第一时钟周期内,将接收到的输入数据与所述至少两个卷积核依次进行卷积计算。5.根据权利要求4所述的卷积计算加速器,其特征在于,所述第一时钟周期的周期长度不小于预设数量个第二时钟周期的周期长度之和,所述预设数量为计算单元内预先存储的卷积核的数量,每个卷积核对应一个第二时钟周期;所述计算矩阵中的每一个计算单元,用于在每个卷积核对应的第二时钟周期内,将接收到的输入数据与所述卷积核进行卷积计算。6.根据权利要求1至5任一所述的卷积计算加速器,其特征在于,所述卷积计算加速器还包括第二缓存,所述计算矩阵中包含至少两行计算单元,且所述至少两行计算单元组成至少两列,每一列中的相邻两个计算单元相连;所述计算矩阵中的第二计算单元,还用于将累加后的卷积计算结果存储至所述第二缓存,所述累加后的卷积计算结果是对应列中的各个计算单元的卷积计算结果的累加结果;所述第二计算单元是所述计算矩阵的最后一行中的任意计算单元。7.根据权利要求6所述的卷积计算加速器,其特征在于,所述第二计算单元,还用于在将累加后的卷积计算结果存储至所述第二缓存之前,将在上一个第一时钟周期内进行卷积计算获得的卷积计算结果,与对应列中的上一个计算单元在上一个第一时钟周期内发送的卷积计算结果进行加和计算,获得所述累加后的卷积计算结果。8.根据权利要求7所述的卷积计算加速器,其特征在于,所述计算矩阵中的第三计算单元,还用于,将在上一个第一时钟周期内进行卷积计算获得的卷积计算结果输出给对应列中的下一个计算单元;所述第三计算单元是所述计算矩阵的第一行中的任意计算单元。9.根据权利要求8所述的卷积计算加速器,其特征在于...

【专利技术属性】
技术研发人员:张博于潇宇王玉伟张立鑫
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1