CN110059814A - 一种基于fpga的查找表式卷积运算硬件结构 - Google Patents
一种基于fpga的查找表式卷积运算硬件结构 Download PDFInfo
- Publication number
- CN110059814A CN110059814A CN201910182124.9A CN201910182124A CN110059814A CN 110059814 A CN110059814 A CN 110059814A CN 201910182124 A CN201910182124 A CN 201910182124A CN 110059814 A CN110059814 A CN 110059814A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- look
- input
- adder
- 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.)
- Pending
Links
- 241001442055 Vipera berus Species 0.000 claims abstract description 31
- 238000006073 displacement reaction Methods 0.000 claims description 4
- 238000007796 conventional method Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 11
- 238000013527 convolutional neural network Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种基于FPGA(Field Programmable Gate Array)的查找表式卷积运算硬件结构,通过对卷积运算中N个乘法操作进行拆解,将具有相同偏移量的N个M bit数据进行相加,相加之和存储在查找表中,形成M个查找表。在取得查找表的计算结果后,将结果送入带有移位操作的加法器树中,算出卷积结果。此结构的硬件消耗相比传统方法大约节省50%以上的LUT资源(FPGA实现),并且具有易于部署及方便重用等优点。
Description
技术领域
本发明涉及深度学习技术领域,更具体的,涉及一种基于FPGA(FieldProgrammable Gate Array)的查找表式卷积运算硬件结构。
背景技术
深度卷积神经网络广泛用于计算机视觉、图像分类、物体识别等领域,但是训练网络所需庞大的数据集和复杂的计算过程,限制了网络部署的平台,特别是在低功耗,计算资源有限等平台,尤其是移动设备和嵌入式设备等。将深度卷积神经网络从服务器集群迁移到移动平台中执行,是目前的研究热点和大趋势。
在卷积神经网络中,卷积层的计算量占据总体计算量90%以上,因此,卷积层运算的加速是卷积神经网络加速的重要组成部分。通用处理器CPU和GPU等在执行通用的处理任务时具有很高的性能表现,但是卷积神经网络的计算包含大量并行的非线性函数运算,向量运算和卷积运算,而通用处理器的硬件结构并不是一种高并行度的结构,缺乏对这类运算的加速能力,因此,通用处理器执行卷积神经网络的性能不尽如人意。所以,卷积神经网络的加速器必须要能够实现以下两个功能:(1)充分利用卷积神经网络中层与层之间,层内各个卷积核的并行度;(2)定制化的计算模块——卷积运算模块。
FPGA是一种可编程逻辑器件,随着半导体技术的不断升级和发展,现在主流的FPGA包含了丰富的逻辑计算,存储和布线资源,可以让研究人员有足够的设计空间来定制专用卷积神经网络加速硬件结构,并且充分利用卷积神经网络计算的并行特性。
然而,目前大多数研究的主要内容都是设计一个合适计算框架来对卷积神经网络进行加速,常见的框架有Dataflow、SIMD和SIMT等等。研究的重点在于数据和计算单元——卷积运算核的配合,而非对卷积运算核的优化,大部分的研究都是通过调用FPGA内部的DSP单元来实现卷积运算,或者进一步搭建树状的卷积运算核来减少计算延时,这类卷积运算核包含了通用的乘法器,然而,卷积核的权重值在整个卷积过程都是固定的,因此,在卷积运算核中使用通用乘法器会导致不必要的资源开销。
发明内容
本发明为解决现有技术提供的卷积运算核中存在的资源开销过高的技术缺陷,本发明提供了一种基于FPGA的查找表式卷积运算硬件结构。
为实现以上发明目的,采用的技术方案是:
一种基于FPGA的查找表式卷积运算硬件结构,包括有M个查找表和一个带移位操作的加法器树;
每个查找表的大小为查找表中每一行的数据为对应的地址索引为xj,其中xj=j(0≤j≤2N-1),代表xj二进制表达式中的第i位比特的数值;ai表示权重数据,每个查找表存储相同的数据,一共M个,在FPGA上建立M个查找表,按顺序查询数据;查找表根据输入数据xi来索引内部存储的数据,其地址输入是其中表示xN的第m位比特的数值,对应的输出记为sm;
一个带移位操作的加法树包含M个输入节点和M-1个加法器节点,每个节点的输入是查找表的输出,大小为比特数据,M个查找表的输出{s0,s1,s2,...,sM-1}同时输入到加法器树中,偏移量分别为0,1,2,...,M-1。
优选的,相邻节点数据在输入加法器节点之前,需要进行移位,对偏移量大的数据进行左移操作,移位的位数是两者偏移量之差,节点数据通过加法器节点求得之和的偏移量为输入节点中最小偏移量节点的偏移量;
优选的,每两个相同层级的、相邻的节点的数据在完成移位操作后,通过加法器节点相加之和输入到下一层的加法器节点中,直到所有节点的数据都相加完毕,加法器节点输入的位长等于最大输入数据的位长。
与现有技术相比,本发明的有益效果是:
1)本发明的卷积运算核操作简单,利用查找表操作代替了乘法操作,从而避免复杂的乘法操作。
2)本发明的卷积运算核延时低,基于查找表的操作只需一个时钟周期,远少于乘法器所需的时钟周期。
3)本发明的卷积运算核比传统的卷积运算核更节省FPGA的片上资源。
FPGA的基本逻辑单元为LUT6,当N≤6时,实现本发明的查找表需要的LUT6数量为每个LUT6存储的数值对应sm的一位比特,比传统的卷积运算核节省了87%的资源。
附图说明
图1为卷积运算核的结构图。
图2为查找表存储的数据。
图3为查找表的硬件结构图。
图4为带移位操作的加法器树的加法器节点位数。
图5为传统卷积运算核所需的LUT资源。
图6为本发明的卷积运算核所需的LUT资源。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
如图1所示,一种基于FPGA的查找表式卷积运算硬件结构,包括有M个查找表和一个带移位操作的加法器树;
每个查找表的大小为查找表中每一行的数据为对应的地址索引为xj,其中xj=j(0≤j≤2N-1),代表xj二进制表达式中的第i位比特的数值;ai表示权重数据,每个查找表存储相同的数据,一共M个,在FPGA上建立M个查找表,按顺序查询数据;查找表根据输入数据xi来索引内部存储的数据,其地址输入是其中表示xN的第m位比特的数值,对应的输出记为sm;
一个带移位操作的加法树包含M个输入节点和M-1个加法器节点,每个节点的输入是查找表的输出,大小为比特数据,M个查找表的输出{s0,s1,s2,...,sM-1}同时输入到加法器树中,偏移量分别为0,1,2,...,M-1。
优选的,相邻节点数据在输入加法器节点之前,需要进行移位,对偏移量大的数据进行左移操作,移位的位数是两者偏移量之差,节点数据通过加法器节点求得之和的偏移量为输入节点中最小偏移量节点的偏移量;
优选的,每两个相同层级的、相邻的节点的数据在完成移位操作后,通过加法器节点相加之和输入到下一层的加法器节点中,直到所有节点的数据都相加完毕,加法器节点输入的位长等于最大输入数据的位长。
实施例2
如图1、图2、图3、图4、图5以及图6所示,一种基于FPGA的查找表式卷积运算硬件结构包括8个查找表{s1,s2,s3,...,s8}和一个带移位操作的加法器树,结构如图1,每个查找表的大小为25×11,即存储25个11比特的数据。
查找表中每一行的数据为对应的地址索引为xj。其中xj=j(0≤j≤31)代表xj二进制表达式中的第i位比特的数值。第m个查找表的地址输入是查找表存储的数据内容如图2所示。
查找表的硬件结构如图3所示。
一个带移位操作的加法树包含8个输入节点和7个加法器节点,每个节点的输入是查找表的输出,8个查找表的输出{s0,s1,s2,...,s7}同时输入到加法器树中,偏移量分别为0,1,2,...,7。
每两个相同层级的、相邻的节点的数据在完成移位操作后,通过加法器节点相加之和输入到下一层的加法器节点中,直到所有节点的数据都相加完毕,加法器节点输入的位长等于最大输入数据的位长,如图4所示。
对于5×1维度的卷积运算,使用乘法器和加法器搭建的卷积运算核,在FPGA中,需要381个LUT,如图5所示。而使用本发明的卷积运算核,则只需要107个LUT,如图6所示。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (3)
1.一种基于FPGA的查找表式卷积运算硬件结构,其特征在于,包括有M个查找表和一个带移位操作的加法器树;
每个查找表的大小为查找表中每一行的数据为对应的地址索引为xj,其中xj=j(0≤j≤2N-1),代表xj二进制表达式中的第i位比特的数值;ai表示权重数据,每个查找表存储相同的数据,一共M个,在FPGA上建立M个查找表,按顺序查询数据;查找表根据输入数据χi来索引内部存储的数据,其地址输入是其中表示第xN的第m位比特的数值,对应的输出记为sm;
一个带移位操作的加法树包含M个输入节点和M-1个加法器节点,每个节点的输入是查找表的输出,大小为比特数据,M个查找表的输出{s0,s1,s2,...,sM-1}同时输入到加法器树中,偏移量分别为0,1,2,...,M-1。
2.根据权利要求1所述的一种基于FPGA的查找表式卷积运算硬件结构,其特征在于,相邻节点数据在输入加法器节点之前,需要进行移位,对偏移量大的数据进行左移操作,移位的位数是两者偏移量之差,节点数据通过加法器节点求得之和的偏移量为输入节点中最小偏移量节点的偏移量。
3.根据权利要求2所述的一种基于FPGA的查找表式卷积运算硬件结构,其特征在于,每两个相同层级的、相邻的节点的数据在完成移位操作后,通过加法器节点相加之和输入到下一层的加法器节点中,直到所有节点的数据都相加完毕,加法器节点输入的位长等于最大输入数据的位长。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910182124.9A CN110059814A (zh) | 2019-03-11 | 2019-03-11 | 一种基于fpga的查找表式卷积运算硬件结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910182124.9A CN110059814A (zh) | 2019-03-11 | 2019-03-11 | 一种基于fpga的查找表式卷积运算硬件结构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110059814A true CN110059814A (zh) | 2019-07-26 |
Family
ID=67316097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910182124.9A Pending CN110059814A (zh) | 2019-03-11 | 2019-03-11 | 一种基于fpga的查找表式卷积运算硬件结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110059814A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632878A (zh) * | 2020-12-10 | 2021-04-09 | 中山大学 | 一种基于fpga的高速低资源的二值卷积单元 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1795627A (zh) * | 2003-04-03 | 2006-06-28 | 北方电讯网络有限公司 | 光通信系统中非线性效应的电域补偿 |
CN102681815A (zh) * | 2012-05-11 | 2012-09-19 | 深圳市清友能源技术有限公司 | 用加法器树状结构的有符号乘累加算法的方法 |
CN105048994A (zh) * | 2015-06-30 | 2015-11-11 | 无锡华润矽科微电子有限公司 | 一种应用于fir滤波器的分布式算法 |
-
2019
- 2019-03-11 CN CN201910182124.9A patent/CN110059814A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1795627A (zh) * | 2003-04-03 | 2006-06-28 | 北方电讯网络有限公司 | 光通信系统中非线性效应的电域补偿 |
CN102681815A (zh) * | 2012-05-11 | 2012-09-19 | 深圳市清友能源技术有限公司 | 用加法器树状结构的有符号乘累加算法的方法 |
CN105048994A (zh) * | 2015-06-30 | 2015-11-11 | 无锡华润矽科微电子有限公司 | 一种应用于fir滤波器的分布式算法 |
Non-Patent Citations (1)
Title |
---|
朱好学: "基于FPGA的高阶FIR滤波器设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632878A (zh) * | 2020-12-10 | 2021-04-09 | 中山大学 | 一种基于fpga的高速低资源的二值卷积单元 |
CN112632878B (zh) * | 2020-12-10 | 2023-11-24 | 中山大学 | 一种基于fpga的高速低资源的二值卷积单元 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107169563B (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
CN111667051A (zh) | 适用边缘设备的神经网络加速器及神经网络加速计算方法 | |
CN110458279A (zh) | 一种基于fpga的二值神经网络加速方法及系统 | |
CN106875013A (zh) | 用于多核优化循环神经网络的系统和方法 | |
CN109409514A (zh) | 卷积神经网络的定点运算方法、装置、设备和存储介质 | |
CN112668708B (zh) | 一种提高数据利用率的卷积运算装置 | |
US11921667B2 (en) | Reconfigurable computing chip | |
CN110490310A (zh) | 神经网络数据压缩及其相关计算方法和装置 | |
CN109240644A (zh) | 一种用于伊辛芯片的局部搜索方法及电路 | |
CN116227599A (zh) | 一种推理模型的优化方法、装置、电子设备及存储介质 | |
Xiao et al. | FPGA-based scalable and highly concurrent convolutional neural network acceleration | |
Zhang et al. | Optimizing execution for pipelined‐based distributed deep learning in a heterogeneously networked GPU cluster | |
CN110059814A (zh) | 一种基于fpga的查找表式卷积运算硬件结构 | |
CN112051981B (zh) | 一种数据流水线计算路径结构及单线程数据流水线系统 | |
Wang et al. | A novel parallel algorithm for sparse tensor matrix chain multiplication via tcu-acceleration | |
CN116888591A (zh) | 一种矩阵乘法器、矩阵计算方法及相关设备 | |
Buradagunta et al. | Performance Comparison of Sorting Algorithms with Random Numbers as Inputs. | |
CN113128688B (zh) | 通用型ai并行推理加速结构以及推理设备 | |
WO2022057459A1 (zh) | 一种基于Tensorcore处理int4数据类型的方法、系统、设备及介质 | |
CN110059817A (zh) | 一种实现低资源消耗卷积器的方法 | |
CN115469931A (zh) | 一种循环程序的指令优化方法、装置、系统、设备及介质 | |
CN110222819B (zh) | 一种用于卷积神经网络加速的多层数据分区域联合计算方法 | |
Wang et al. | An FPGA-based reconfigurable CNN training accelerator using decomposable Winograd | |
Jun | FPGA deep learning acceleration based on convolutional neural network | |
CN111260036A (zh) | 一种神经网络加速方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190726 |