加速器、基于FPGA的加速系统及CNN网络系统技术方案

技术编号:21639649 阅读:81 留言:0更新日期:2019-07-17 15:16
本公开提供了一种加速器,包括:多个计算单元PE和至少一个多路选择器MUX,MUX分别连接两个相互连接的PE,通过改变MUX的连接状态确定执行运算操作的PE的数量。通过本公开提供的加速器,实现了降低功耗的效果,且实现了算力需求均衡的效果。本公开还提供了一种基于FPGA的加速系统及CNN网络系统。

Accelerator, Acceleration System Based on FPGA and CNN Network System

【技术实现步骤摘要】
加速器、基于FPGA的加速系统及CNN网络系统
本公开实施例涉及互联网
,特别涉及加速器、基于FPGA的加速系统及CNN网络系统。
技术介绍
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。而FPGA的核心部分便是加速器。基于加速器,实现相应的运算。在现有技术中,加速器由多个计算单元PE组成。为了满足算力的需求,在对底层的FPGA进行设计时,尽可能设置多个PE,而后采用脉动式的计算方式对计算需求进行计算。
技术实现思路
本公开实施例提供一种加速器、基于FPGA的加速系统、CNN网络系统。根据本公开实施例的一个方面,本公开实施例提供了一种加速器,包括:多个计算单元PE和至少一个多路选择器MUX,所述MUX分别连接两个相互连接的所述PE,通过改变所述MUX的连接状态确定执行运算操作的所述PE的数量。在一些实施例中,所述MUX为多个,且任意相邻两个所述PE之间通过一个所述MUX连接。在一些实施例中,所述PE按照矩阵阵列排列。在一些实施例中,所述连接状态包括输出状态,级联状态和断开状态。根据本公开实施例的另一个方面,本公开实施例还提供了一种基于FPGA的加速系统,包括:寄存器,计算控制器,存储器,传输器,以及如上任一实施例所述的加速器,其中,所述计算控制器分别与所述加速器和所述寄存器连接,所述传输器分别与所述加速器和所述存储器连接。根据本公开实施例的另一个方面,本公开实施例还提供了一种基于FPGA的加速系统,包括:如上任一项公开实施例所述的加速器,还包括:计算控制器用于:根据获取到的算力需求信息确定配置信息,所述配置信息包括所述PE的数量,以及每个所述MUX的连接状态,将所述配置信息发送至所述加速器。根据本公开实施例的另一个方面,本公开实施例还提供了一种CNN网络系统,包括:如上所述的基于FPGA的加速系统,和与所述基于FPGA的加速系统连接的处理器。在一些实施例中,所述处理器用于:根据获取到的算力需求信息确定配置信息,所述配置信息包括所述PE的数量,以及每个所述MUX的连接状态,并将所述配置信息发送至所述基于FPGA的加速系统。本公开实施例提供的加速器,实现了降低功耗的效果,且实现了算力需求均衡的效果。附图说明附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:图1为本公开实施例提供的一种加速器的结构示意图;图2为本公开实施例提供的一种计算模块的示意图;图3为本公开另一实施例提供的一种计算模块的示意图。图4为本公开实施例提供的一种基于FPGA的加速系统的结构示意图;图5为本公开实施例提供的一种CNN网络系统的结构示意图;附图标记:1、存储器;2、传输器;3、寄存器;4、计算控制器;5、加速器;6、处理器。具体实施方式为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的加速器、基于FPGA的加速系统、CNN网络系统进行详细描述。在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其群组。本文所述实施例可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。因此,实施例不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不旨在是限制性的。除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。根据本公开实施例的一个方面,本公开实施例提供了一种加速器。该加速器包括:多个计算单元PE和至少一个多路选择器MUX,MUX分别连接两个相互连接的PE,通过改变MUX的连接状态确定执行运算操作的PE的数量。在现有技术中,加速器是采用脉动式设计,或者伪指令集方法设计。当加速器完成后,加速器的算力是固定的。无法实现算力需求的均衡。如,某加速器包括m个PE,当需要对算力为NT的需求进行计算时,每个PE都参与执行运算操作的过程。则其产生的功耗是巨大的,且造成了算力的浪费。而在本实施例中,通过设置至少一个MUX。如,当MUX为一个时,可在任一两相邻连接的PE之间设置一个MUX。如,在PE10和PE11之间设置一个MUX。通过改变MUX的连接状态,可以改变执行运算操作的PE的数量。如,当MUX处于级联状态时,则PE10和PE11为相互连接的两个PE。而当MUX处于断开时,则执行运算操作的PE的数量仅为连接在PE10(包括PE10)之前的PE。也就是说,假设ResNet34需要0.5T的算力,而加速器的算力最大可达到1T,如果采用本实施例提供的方案,则可以将多个PE的后面一半PE通过MUX断开,从而关闭其运算,进而降低功耗,实现算力的均衡分配。当MUX为多个时,如PE为n个,MUX为m个,n>m+1时,则可随意在任意两相邻的PE之间设置MUX。在一种可能实现的技术方案中,MUX为多个,且任意相邻两个PE之间通过一个MUX连接。在本实施例中,当MUX为多个时,如PE为n个,MUX为m个,n=m+1时,则在两相邻的PE之间设置MUX,使得两两相邻的PE均通过MUX连接。在一种可能实现的技术方案中,PE按照矩阵阵列排列。具体请参阅图1,图1为本公开实施例提供的一种加速器的结构示意图。现结合图1对本公开实施例提供的加速器的工作原理进行详细的阐述。PE呈矩阵形式排列,假设一共有M行N列,则PE个数为M*N,如果1个PE最小计算并行度为32(即一个时钟周期并行计算32个MACs),所有PE都工作,则总的算力为M*N*Frequence_clock*32,单位MACs/s。PE与相邻PE之间通过MUX连接,MUX的状态有三种:级联、断开、输出。当横向级联纵向断开或者纵向级联横向断开的时候,算力达到最大值。当算法需求只要一半的算力的时候,则可以纵向切掉后一半(MUX右半部分全断开),或者横向本文档来自技高网...

【技术保护点】
1.一种加速器,包括:多个计算单元PE和至少一个多路选择器MUX,所述MUX分别连接两个相互连接的所述PE,通过改变所述MUX的连接状态确定执行运算操作的所述PE的数量。

【技术特征摘要】
1.一种加速器,包括:多个计算单元PE和至少一个多路选择器MUX,所述MUX分别连接两个相互连接的所述PE,通过改变所述MUX的连接状态确定执行运算操作的所述PE的数量。2.根据权利要求1所述的加速器,其中,所述MUX为多个,且任意相邻两个所述PE之间通过一个所述MUX连接。3.根据权利要求1所述的加速器,其中,所述PE按照矩阵阵列排列。4.根据权利要求1至3中任一项所述的加速器,其中,所述连接状态包括输出状态,级联状态和断开状态。5.一种基于FPGA的加速系统,包括:寄存器,计算控制器,存储器,传输器,以及权利要求1至4中任一项所述的加速器,其中,所述计算控制器分别与所述加速器和所述寄存器...

【专利技术属性】
技术研发人员:邬志影
申请(专利权)人:百度在线网络技术北京有限公司
类型:新型
国别省市:北京,11

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

1