CN109284824B - 一种基于可重构技术的用于加速卷积和池化运算的装置 - Google Patents

一种基于可重构技术的用于加速卷积和池化运算的装置 Download PDF

Info

Publication number
CN109284824B
CN109284824B CN201811024320.5A CN201811024320A CN109284824B CN 109284824 B CN109284824 B CN 109284824B CN 201811024320 A CN201811024320 A CN 201811024320A CN 109284824 B CN109284824 B CN 109284824B
Authority
CN
China
Prior art keywords
convolution
characteristic value
storage module
result
result register
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
Application number
CN201811024320.5A
Other languages
English (en)
Other versions
CN109284824A (zh
Inventor
朱浩哲
王彧
张怡云
史传进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN201811024320.5A priority Critical patent/CN109284824B/zh
Publication of CN109284824A publication Critical patent/CN109284824A/zh
Application granted granted Critical
Publication of CN109284824B publication Critical patent/CN109284824B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

本发明属于集成电路技术领域,具体为一种基于可重构技术的用于加速卷积与池化运算的装置。本发明装置包括:可重构运算单元、卷积权重存储模块,特征值存储模块,控制模块;可重构运算模块在控制模块的控制下,从特征值存储模块中读取特征值,进行卷积运算、或最大池化运算、或平均池化运算后,将结果写回特征值存储模块。本发明克服了现有技术的用于卷积和池化运算的运算装置中需要多个不同部件分别处理卷积和池化运算的技术问题,节省了电路面积和功耗,提高了系统能效。

Description

一种基于可重构技术的用于加速卷积和池化运算的装置
技术领域
本发明属于集成电路技术领域,具体涉及一种深度神经网络算法中用于卷积和池化运算的装置。
背景技术
如今,深度神经网络算法在计算机视觉、自然语言处理等领域展现出惊人的潜力。为了提高深度神经网络算法的计算能效,技术人员们开发了一系列的深度神经网络算法加速芯片。
深度卷积神经网络算法是目前使用最广泛的深度神经网络算法之一,它一般由卷积层、池化层等若干层不同的运算连接而成。其中池化运算又分成最大池化和平均池化两种不同的运算。目前已有的架构中,为了处理池化运算,有两种技术路线。第一种,是使用CPU等通用处理单元计算池化运算,但是CPU等通用处理单元处理池化运算的并行性较低,且在卷积加速模块和CPU等通用处理单元之间传输数据需要占据大量的总线带宽,进而影响权重等总线数据传输。第二种,是采用多个不同结构的运算加速模块进行分别对不同的运算进行加速,这会浪费芯片的面积和功耗。
综上所述,如何设计一个架构同时高效地兼容上述三种运算,是相关领域技术人员亟需解决的一个问题。
发明内容
本发明的目的在于提供一种高效的用于深度神经网络算法中加速卷积和池化运算的装置。
本发明提供的用于深度神经网络算法中加速卷积和池化运算的装置,是基于可重构技术的,包括:
可重构计算单元,用于重构成卷积、最大池化、平均池化三个模式,进行计算;
特征值存储模块,用于存储参加计算的特征值;
卷积权重存储模块,用于存储卷积运算的滤波器权重;
控制模块,用于接收上位机的指令,对所述可重构计算单元进行动态重构;
其中,所述可重构计算单元,在所述控制模块的控制下,从所述特征值存储模块中读取参与计算的特征值,在卷积模式时同时从卷积权重存储模块中读取权重,进行计算后将结果写回特征值存储模块中。
本发明中,所述的可重构计算单元,包括一个乘法器和一个累加器。
可重构计算单元的乘法器,具有以下特征:
第一个乘法因数输入端口接收来自所述特征值存储模块的输入特征值;
第二个乘法因数输入端口可以被重构为接收来自所述卷积权重存储模块的卷积滤波器权重,或被直接重构为立即数。
可重构计算单元的累加器,具有以下特征:
所述累加器由一个加法器和一个结果寄存器组成;
所述加法器接收来自所述乘法器的输出,将其与所述结果寄存器中存储的数值相加后,产生加法器的输出。
本发明提供的用于深度神经网络算法中加速卷积和池化运算的装置,在每次卷积或池化运算开始前,结果寄存器中存储的数值进行初始化。
在不同的可重构模式下,可重构单元的电路行为有所不同。具体如下:
卷积模式的计算流程为:
(1)累加器的结果寄存器初始化为零,也可初始化为偏置(bias);
(2)将乘法器的第2个乘法因数输入端口配置成从卷积权重存储模块接收滤波器权重;
(3)可重构计算单元从特征值存储模块中接收输入特征值,经乘法器与相应的滤波器权重相乘后,与结果寄存器中的数值相加,将相加获得的部分和存储在结果寄存器中;
(4)重复步骤(3),直到完成卷积运算,此时结果寄存器中的结果即是最终的卷积结果,将其写回到特征值存储模块中。
最大池化模式的计算流程为:
(1)累加器的结果寄存器初始化为最小值,例如8位寄存器能表达的最小值为-128;
(2)将乘法器的第2个乘法因数输入端口配置成立即数-1;
(3)可重构计算单元从特征值存储模块中接收输入特征值,经乘法器与立即数-1相乘后,与结果寄存器中的数值相加,这一操作相当于两数相减作差。若相加的结果为负数,说明该输入特征值大于结果寄存器中存储的中间结果,则将该输入特征值存入结果寄存器中;若相加的结果为非负数,说明该输入特征值小于或等于结果寄存器中存储的中间结果,则结果寄存器无需更新;
(4)重复步骤(3),直到完成最大池化运算,此时结果寄存器中的结果即是最终的最大池化结果,将其写回到特征值存储模块中。
平均池化模式的计算流程为:
(1)累加器的结果寄存器初始化为零;
(2)将乘法器的第2个乘法因数输入端口配置成立即数1/n,这里n为平均池化窗口的元素个数;
(3)可重构计算单元从特征值存储模块中接收输入特征值,经乘法器与立即数1/n相乘后,与结果寄存器中的数值相加,将相加获得的部分和存储在结果寄存器中;
(4)重复步骤(3),直到完成平均池化运算,此时结果寄存器中的结果即是最终的平均池化结果,将其写回到特征值存储模块中。
上述可重构计算单元,其乘法器和加法器可以根据时序需要采用组合逻辑实现,或采用多级流水线实现。
上述特征值存储模块和卷积权重存储模块,可以根据不同数据流,在物理上可采用一个或多个存储模块实现。
在实际实施中,可采用若干所述可重构计算单元组成可重构阵列以提高运算并行度。
本发明运算装置克服了现有技术的用于卷积和池化运算的运算装置中需要多个不同部件分别处理卷积和池化运算的技术问题,节省了电路面积和功耗,提高了系统能效。
附图说明
图1为本发明实施例的顶层模块框图。
图2为本发明实施例的可重构计算单元的结构。
图中标号:11为控制模块,12为可重构计算单元,13为片上存储系统;21为乘法器,22为乘法器输出寄存器,23为加法器,24为结果寄存器。
具体实施方式
以下结合附图和具体实施例对本发明的技术方案做进一步说明。应理解,以下描述的实施例是用于对本发明技术方案的说明而非限制。附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例的顶层模块框图,是一个深度卷积神经网络的计算装置。
所述装置包括一个控制模块11、16个可重构计算单元12、和一个片上存储系统13。其中可重构单元12的结构如图2所示,包括一个乘法器21、一个乘法器输出寄存器22、一个加法器23和一个结果寄存器24。
在本实施例中,输入特征值、输出特征值和卷积权重均存储于片上存储系统13上。
具体地,下面是该实施例执行3x3卷积运算的步骤。
步骤1:控制模块11首先计算参加卷积计算的输入特征值和卷积权重在存储系统13中存放的地址,同时将可重构计算单元12中的多路选择器a和多路选择器b均选通1端,然后通过寄存器控制信号将结果寄存器24初始化清零。
步骤2:根据预先计算好的地址序列,每个时钟周期16个可重构计算单元12从存储系统13中并行地读取来自不同特征值矩阵的数据与对应的滤波器权重数据。参与计算的数据按照流水线在乘法器21中相乘并暂存于乘法器输出寄存器22,而后与结果寄存器24中的中间结果在加法器23中相加并将加法器输出写入结果寄存器24中。
步骤3:上述步骤2反复9次,即9个时钟周期后,结果寄存器24中存储的即是9个部分积的和,即卷积的输出。16个可重构计算单元12并行地将输出写回到存储系统13中。
具体地,下面是该实施例执行3x3最大池化运算的步骤。
步骤1:控制模块11首先计算参加最大池化计算的输入特征值在存储系统13中存放的地址,同时将可重构计算单元12中的多路选择器a和多路选择器b均选通2端,乘法器立即数输入端置为-1,然后通过寄存器控制信号将结果寄存器24初始化置位最小值。
步骤2:根据预先计算好的地址序列,每个时钟周期16个可重构计算单元12从存储系统13中并行地读取来自不同特征值矩阵的数据。参与计算的数据按照流水线在乘法器21中相乘并暂存于乘法器输出寄存器22,而后与结果寄存器24中的中间结果在加法器23中相加。之后检查加法器23的输出(本质上是输入特征值与结果寄存器24中的中间结果相减作差),若为负数,则将该输入特征值写入结果寄存器24,否则结果寄存器24保持不变。
步骤3:上述步骤2反复9次,即9个时钟周期后,结果寄存器24中存储的即是9个输入特征值的最大值,即最大池化的输出。16个可重构计算单元12并行地将输出写回到存储系统13中。
具体地,下面是该实施例执行3x3平均池化运算的步骤。
步骤1:控制模块11首先计算参加卷积计算的输入特征值在存储系统13中存放的地址,同时将可重构计算单元12中的多路选择器a选通2端,将多路选择器b选通1端,然后通过寄存器控制信号将结果寄存器24初始化清零。
步骤2:根据预先计算好的地址序列,每个时钟周期16个可重构计算单元12从存储系统13中并行地读取来自不同特征值矩阵的数据与对应的滤波器权重数据。参与计算的数据按照流水线在乘法器21中相乘并暂存于乘法器输出寄存器22,而后与结果寄存器24中的中间结果在加法器23中相加并将加法器输出写入结果寄存器24中。
步骤3:上述步骤2反复9次,即9个时钟周期后,结果寄存器24中存储的即是9个输入特征值的平均值,即平均池化的输出。16个可重构计算单元12并行地将输出写回到存储系统13中。

Claims (6)

1.一种基于可重构技术的用于加速卷积和池化运算的装置,其特征在于,包括:
可重构计算单元,用于重构成卷积、最大池化、平均池化三个模式,进行计算;
特征值存储模块,用于存储参加计算的特征值;
卷积权重存储模块,用于存储卷积运算的滤波器权重;
控制模块,用于接收上位机的指令,对所述可重构计算单元进行动态重构;
其中,所述可重构计算单元,在所述控制模块的控制下,从所述特征值存储模块中读取参与计算的特征值,在卷积模式时同时从卷积权重存储模块中读取权重,进行计算后将结果写回特征值存储模块中;
在不同的可重构模式下,可重构单元的电路行为不同,具体如下:
卷积模式的计算流程为:
(1)累加器的结果寄存器初始化为零,或者初始化为偏置;
(2)将乘法器的第2个乘法因数输入端口配置成从卷积权重存储模块接收滤波器权重;
(3)可重构计算单元从特征值存储模块中接收输入特征值,经乘法器与相应的滤波器权重相乘后,与结果寄存器中的数值相加,将相加获得的部分和存储在结果寄存器中;
(4)反复步骤(3),直到完成卷积运算,此时结果寄存器中的结果即是最终的卷积结果,将其写回到特征值存储模块中;
最大池化模式的计算流程为:
(1)累加器的结果寄存器初始化为最小值;
(2)将乘法器的第2个乘法因数输入端口配置成立即数-1;
(3)可重构计算单元从特征值存储模块中接收输入特征值,经乘法器与立即数-1相乘后,与结果寄存器中的数值相加,这一操作相当于两数相减作差;若相加的结果为负数,说明该输入特征值大于结果寄存器中存储的中间结果,则将该输入特征值存入结果寄存器中;若相加的结果为非负数,说明该输入特征值小于或等于结果寄存器中存储的中间结果,则结果寄存器无需更新;
(4)反复步骤(3),直到完成最大池化运算,此时结果寄存器中的结果即是最终的最大池化结果,将其写回到特征值存储模块中;
平均池化模式的计算流程为:
(1)累加器的结果寄存器初始化为零;
(2)将乘法器的第2个乘法因数输入端口配置成立即数1/n,这里n为平均池化窗口的元素个数;
(3)可重构计算单元从特征值存储模块中接收输入特征值,经乘法器与立即数1/n相乘后,与结果寄存器中的数值相加,将相加获得的部分和存储在结果寄存器中;
(4)反复步骤(3),直到完成平均池化运算,此时结果寄存器中的结果即是最终的平均池化结果,将其写回到特征值存储模块中。
2.根据权利要求1所述的装置,其特征在于,所述的可重构计算单元,包括一个乘法器和一个累加器;其中:
可重构计算单元的乘法器,具有以下特征:
第一个乘法因数输入端口接收来自所述特征值存储模块的输入特征值;
第二个乘法因数输入端口被重构为接收来自所述卷积权重存储模块的卷积滤波器权重,或被直接重构为立即数;
可重构计算单元的累加器,具有以下特征:
所述累加器由一个加法器和一个结果寄存器组成;
所述加法器接收来自所述乘法器的输出,将其与所述结果寄存器中存储的数值相加后,产生加法器的输出。
3.根据权利要求1所述的装置,其特征在于,在每次卷积或池化运算开始前,结果寄存器中存储的数值进行初始化。
4.根据权利要求2所述的装置,其特征在于,所述的可重构计算单元中,乘法器和加法器根据时序需要采用组合逻辑实现,或采用多级流水线实现。
5.根据权利要求1-3之一所述的装置,其特征在于,所述特征值存储模块和所述卷积权重存储模块,根据不同数据流,采用一个或多个存储模块物理实现。
6.根据权利要求1-3之一所述的装置,其特征在于,所述可重构计算单元为若干个,组成可重构计算阵列,以提高运算并行度。
CN201811024320.5A 2018-09-04 2018-09-04 一种基于可重构技术的用于加速卷积和池化运算的装置 Active CN109284824B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811024320.5A CN109284824B (zh) 2018-09-04 2018-09-04 一种基于可重构技术的用于加速卷积和池化运算的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811024320.5A CN109284824B (zh) 2018-09-04 2018-09-04 一种基于可重构技术的用于加速卷积和池化运算的装置

Publications (2)

Publication Number Publication Date
CN109284824A CN109284824A (zh) 2019-01-29
CN109284824B true CN109284824B (zh) 2021-07-23

Family

ID=65183942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811024320.5A Active CN109284824B (zh) 2018-09-04 2018-09-04 一种基于可重构技术的用于加速卷积和池化运算的装置

Country Status (1)

Country Link
CN (1) CN109284824B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109978161B (zh) * 2019-03-08 2022-03-04 吉林大学 一种通用的卷积-池化同步处理卷积核系统
CN110348564B (zh) * 2019-06-11 2021-07-09 中国人民解放军国防科技大学 基于systolic阵列的SCNN推理加速装置、处理器及计算机设备
CN110942145A (zh) * 2019-10-23 2020-03-31 南京大学 基于可重构计算的卷积神经网络池化层、硬件实现方法及系统
CN111124490A (zh) * 2019-11-05 2020-05-08 复旦大学 使用posit的无精度损失低功耗mfcc提取加速器
CN111126580B (zh) * 2019-11-20 2023-05-02 复旦大学 采用Booth编码的多精度权重系数神经网络加速芯片运算装置
GB2608591B (en) * 2021-06-28 2024-01-24 Imagination Tech Ltd Implementation of pooling and unpooling or reverse pooling in hardware
CN113591025B (zh) * 2021-08-03 2024-06-14 深圳思谋信息科技有限公司 特征图的处理方法、装置、卷积神经网络加速器和介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107862374A (zh) * 2017-10-30 2018-03-30 中国科学院计算技术研究所 基于流水线的神经网络处理系统和处理方法
CN108171317A (zh) * 2017-11-27 2018-06-15 北京时代民芯科技有限公司 一种基于soc的数据复用卷积神经网络加速器
CN108197705A (zh) * 2017-12-29 2018-06-22 国民技术股份有限公司 卷积神经网络硬件加速装置及卷积计算方法及存储介质
CN108241890A (zh) * 2018-01-29 2018-07-03 清华大学 一种可重构神经网络加速方法及架构

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552370B2 (en) * 2015-10-08 2020-02-04 Via Alliance Semiconductor Co., Ltd. Neural network unit with output buffer feedback for performing recurrent neural network computations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107862374A (zh) * 2017-10-30 2018-03-30 中国科学院计算技术研究所 基于流水线的神经网络处理系统和处理方法
CN108171317A (zh) * 2017-11-27 2018-06-15 北京时代民芯科技有限公司 一种基于soc的数据复用卷积神经网络加速器
CN108197705A (zh) * 2017-12-29 2018-06-22 国民技术股份有限公司 卷积神经网络硬件加速装置及卷积计算方法及存储介质
CN108241890A (zh) * 2018-01-29 2018-07-03 清华大学 一种可重构神经网络加速方法及架构

Also Published As

Publication number Publication date
CN109284824A (zh) 2019-01-29

Similar Documents

Publication Publication Date Title
CN109284824B (zh) 一种基于可重构技术的用于加速卷积和池化运算的装置
CN111459877B (zh) 基于FPGA加速的Winograd YOLOv2目标检测模型方法
Yepez et al. Stride 2 1-D, 2-D, and 3-D Winograd for convolutional neural networks
US8051124B2 (en) High speed and efficient matrix multiplication hardware module
CN108629406B (zh) 用于卷积神经网络的运算装置
US20230026006A1 (en) Convolution computation engine, artificial intelligence chip, and data processing method
CN110807522B (zh) 一种神经网络加速器的通用计算电路
CN109446996B (zh) 基于fpga的人脸识别数据处理装置及处理方法
CN113486298A (zh) 基于Transformer神经网络的模型压缩方法、矩阵乘法模块
CN110851779A (zh) 用于稀疏矩阵运算的脉动阵列架构
Shu et al. High energy efficiency FPGA-based accelerator for convolutional neural networks using weight combination
CN115310037A (zh) 矩阵乘法计算单元、加速单元、计算系统和相关方法
CN114003198B (zh) 内积处理部件、任意精度计算设备、方法及可读存储介质
CN112149047A (zh) 数据的处理方法及装置、存储介质和电子装置
Domingos et al. An efficient and scalable architecture for neural networks with backpropagation learning
US20200097253A1 (en) Digital Circuit With Compressed Carry
CN117454946A (zh) 支持非结构化稀疏矩阵计算的张量核架构系统
CN107506332B (zh) Kalman滤波器快速实现方法
CN115167815A (zh) 乘加器电路、芯片及电子设备
Wu et al. Skeletongcn: a simple yet effective accelerator for gcn training
CN112346704B (zh) 一种用于卷积神经网络的全流水线型乘加单元阵列电路
El-Khashab et al. An architecture for a radix-4 modular pipeline fast Fourier transform
CN112836793A (zh) 浮点可分离卷积计算加速装置、系统以及图像处理方法
CN111832714A (zh) 运算方法及装置
CN113836481B (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
GR01 Patent grant
GR01 Patent grant