CN209118339U - 加速器、基于fpga的加速系统及cnn网络系统 - Google Patents
加速器、基于fpga的加速系统及cnn网络系统 Download PDFInfo
- Publication number
- CN209118339U CN209118339U CN201822254742.3U CN201822254742U CN209118339U CN 209118339 U CN209118339 U CN 209118339U CN 201822254742 U CN201822254742 U CN 201822254742U CN 209118339 U CN209118339 U CN 209118339U
- Authority
- CN
- China
- Prior art keywords
- accelerator
- mux
- fpga
- configuration information
- acceleration system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本公开提供了一种加速器,包括:多个计算单元PE和至少一个多路选择器MUX,MUX分别连接两个相互连接的PE,通过改变MUX的连接状态确定执行运算操作的PE的数量。通过本公开提供的加速器,实现了降低功耗的效果,且实现了算力需求均衡的效果。本公开还提供了一种基于FPGA的加速系统及CNN网络系统。
Description
技术领域
本公开实施例涉及互联网技术领域,特别涉及加速器、基于FPGA的加速系统及CNN网络系统。
背景技术
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在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右半部分全断开),或者横向切掉下半部分(MUX下半部分全断开)。
具体地:假设算法要求0.5Tops,而加速器的最大算力是1.5Tops,这1.5Tops是所有PE都同时计算所能达到的值。PE分布为3行12列,也就是说3*12=36个PE都同时工作的算力是1.5Tops,而算法需求的算力是0.5Tops,只有最大算力的1/3,如果PE都同时计算,肯定能够满足算法的0.5Tops的需求,但是这样会导致加速器的功耗增加,同时有2/3的PE计算的数据无效。本实施例通过改变MUX的连接状态,得到相应算力的PE的连接方式的其中2种为:1行12列PE组成的计算模块(如图2所示)和3行4列计算模块(如图3所示)。
根据本公开实施例的另一个方面,本公开实施例提供了一种基于FPGA的加速系统。
请参阅图4,图4为本公开实施例提供的一种基于FPGA的加速系统的结构示意图。
如图4所示,该基于FPGA的加速系统包括:寄存器,计算控制器,存储器,传输器,以及如上所述的加速器,其中,计算控制器分别与加速器和寄存器连接,传输器分别与加速器和存储器连接。
其中,存储器连接的虚线表示,存储器可与外部设备进行连接。同理,寄存器连接的虚线表示,寄存器可与外部设备进行连接。
根据本公开实施例的另一个方面,本公开实施例还提供了一种基于FPGA的加速系统,包括如上所述的加速器,还包括与加速器连接的计算控制器,其中,计算控制器用于:根据获取到的算力需求信息确定配置信息,配置信息包括PE的数量,以及每个MUX的连接状态,将配置信息发送至加速器。
根据本公开实施例的另一个方面,本公开实施例还提供了一种CNN网络系统。
请参阅图5,图5为本公开实施例提供的一种CNN网络系统的结构示意图。
如图5所示,该系统包括:如上所述的基于FPGA的加速系统,还包括与基于FPGA的加速系统连接的处理器。
其中,处理器用于:根据获取到的算力需求信息确定配置信息,配置信息包括PE的数量,以及每个MUX的连接状态,并将配置信息发送至基于FPGA的加速系统。
现结合图5对本实施例的方案进行详细的阐述:
在处理器中,预先存储与算力需求信息存在映射关系的配置信息表。即,基于配置信息表,可获取当算力需求信息为携带算力多少的信息时,选择的PE的数量,以及哪些MUX处于级联状态,哪些MUX处于断开状态。
因此,当处理器接收到(或获取到)算力需求信息时,根据算力需求信息遍历配置信息表,或者将算力需求信息与配置信息表进行匹配,得到相应的配置信息,即该算力需求信息对应的PE的数量,以及每个MUX的连接状态。处理器将该配置信息通过AXI总线传输至基于FPGA的加速系统。
具体地,AXI总线将配置信息发送至基于FPGA的加速系统中的寄存器。寄存器将配置信息发送至计算控制器。
计算控制器在接收到配置信息后,基于配置信息对加速器进行配置,即使得加速器中的MUX处于满足相应算力需求信息的状态。当计算控制器完成配置操作后,向存储器发送取数据的指令。
存储器在接收到取数据的指令后,通过AXIS向处理器获取算力需求信息对应的待计算数据。并将待计算数据传输至传输器(具体为传输器中的输入模块)。
加速器从传输器(具体为传输器中的输入模块)提取待计算数据进行计算,并将计算得到的计算结果存储至传输器(具体为传输器中的输出模块)。
存储器从传输器中获取计算结果,并将计算结果通过AXIS总线传输至处理器。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (8)
1.一种加速器,包括:多个计算单元PE和至少一个多路选择器MUX,所述MUX分别连接两个相互连接的所述PE,通过改变所述MUX的连接状态确定执行运算操作的所述PE的数量。
2.根据权利要求1所述的加速器,其中,所述MUX为多个,且任意相邻两个所述PE之间通过一个所述MUX连接。
3.根据权利要求1所述的加速器,其中,所述PE按照矩阵阵列排列。
4.根据权利要求1至3中任一项所述的加速器,其中,所述连接状态包括输出状态,级联状态和断开状态。
5.一种基于FPGA的加速系统,包括:寄存器,计算控制器,存储器,传输器,以及权利要求1至4中任一项所述的加速器,其中,所述计算控制器分别与所述加速器和所述寄存器连接,所述传输器分别与所述加速器和所述存储器连接。
6.一种基于FPGA的加速系统,包括:如权利要求1至4中任一项所述的加速器,还包括:
计算控制器用于:根据获取到的算力需求信息确定配置信息,所述配置信息包括所述PE的数量,以及每个所述MUX的连接状态,将所述配置信息发送至所述加速器。
7.一种CNN网络系统,包括:权利要求5所述的基于FPGA的加速系统,和与所述基于FPGA的加速系统连接的处理器。
8.根据权利要求7所述的系统,其中,
所述处理器用于:根据获取到的算力需求信息确定配置信息,所述配置信息包括所述PE的数量,以及每个所述MUX的连接状态,并将所述配置信息发送至所述基于FPGA的加速系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201822254742.3U CN209118339U (zh) | 2018-12-29 | 2018-12-29 | 加速器、基于fpga的加速系统及cnn网络系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201822254742.3U CN209118339U (zh) | 2018-12-29 | 2018-12-29 | 加速器、基于fpga的加速系统及cnn网络系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN209118339U true CN209118339U (zh) | 2019-07-16 |
Family
ID=67209009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201822254742.3U Active CN209118339U (zh) | 2018-12-29 | 2018-12-29 | 加速器、基于fpga的加速系统及cnn网络系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN209118339U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109523019A (zh) * | 2018-12-29 | 2019-03-26 | 百度在线网络技术(北京)有限公司 | 加速器、基于fpga的加速系统及控制方法、cnn网络系统 |
-
2018
- 2018-12-29 CN CN201822254742.3U patent/CN209118339U/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109523019A (zh) * | 2018-12-29 | 2019-03-26 | 百度在线网络技术(北京)有限公司 | 加速器、基于fpga的加速系统及控制方法、cnn网络系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108416436B (zh) | 使用多核心处理模块进行神经网络划分的方法及其系统 | |
CN107852379A (zh) | 用于现场可编程门阵列的定向二维路由器和互连网络、以及所述路由器和网络的其他电路和应用 | |
TW202022644A (zh) | 一種運算裝置和運算方法 | |
US11017290B2 (en) | Signal processing module, especially for a neural network and a neuronal circuit | |
US20100030831A1 (en) | Multi-fpga tree-based fft processor | |
CN104899182A (zh) | 一种支持可变分块的矩阵乘加速方法 | |
CN109863477A (zh) | 具有本地化存储器的矩阵处理器 | |
CN105956659A (zh) | 数据处理装置和系统、服务器 | |
CN105740199A (zh) | 芯片上网络的时序功率估算装置与方法 | |
CN209118339U (zh) | 加速器、基于fpga的加速系统及cnn网络系统 | |
CN109523019A (zh) | 加速器、基于fpga的加速系统及控制方法、cnn网络系统 | |
CN110059797A (zh) | 一种计算装置及相关产品 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
CN110515587A (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
WO2009062496A1 (de) | Rekonfiguri erbare fliesskomma- und bit- ebenen datenverarbeitungseinheit | |
CN112149047A (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN103093446A (zh) | 基于多处理器片上系统的多源图像融合装置和方法 | |
US20190005378A1 (en) | Electronic circuit, particularly for the implementation of neural networks with multiple levels of precision | |
CN109857024B (zh) | 人工智能模块的单元性能测试方法和系统芯片 | |
US20090132794A1 (en) | Method and apparatus for performing complex calculations in a multiprocessor array | |
Xue et al. | Parallel FFT implementation based on multi-core DSPs | |
NO20171434A1 (en) | Coherent Node Controller | |
CN102737010B (zh) | 以摩尔图为拓扑结构的并行矩阵乘计算的方法和系统 | |
IT202000009364A1 (it) | Procedimento per accedere a una memoria e circuito corrispondente | |
WO2008136047A1 (ja) | Smpノードからなるメモリ分散型並列計算機システム向けlu分解の並列処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |