CN114707649A - 一种通用卷积运算装置 - Google Patents
一种通用卷积运算装置 Download PDFInfo
- Publication number
- CN114707649A CN114707649A CN202210312193.9A CN202210312193A CN114707649A CN 114707649 A CN114707649 A CN 114707649A CN 202210312193 A CN202210312193 A CN 202210312193A CN 114707649 A CN114707649 A CN 114707649A
- Authority
- CN
- China
- Prior art keywords
- convolution
- module
- data
- convolution operation
- control module
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 88
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000010586 diagram Methods 0.000 claims abstract description 25
- 238000011176 pooling Methods 0.000 claims description 26
- 230000004913 activation Effects 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 6
- 230000003213 activating effect Effects 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 17
- 238000013461 design Methods 0.000 abstract description 10
- 238000013528 artificial neural network Methods 0.000 abstract description 9
- 238000004458 analytical method Methods 0.000 abstract description 7
- 238000003672 processing method Methods 0.000 abstract description 3
- 238000013527 convolutional neural network Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本公开通用卷积运算装置,包括运算参数接收及解析模块、图像数据和权重参数接收及解析模块、状态控制模块、第一数据参数控制模块、第二数据参数控制模块、第三数据参数控制模块、卷积运算模块、存储器模块、卷积结果处理模块和处理结果输出模块。通过各模块采用全并行流水处理架构进行设计,通过卷积层数、卷积运算精度、卷积运算方式、卷积运算次数、特征图数据处理方法等工作参数实现卷积运算模块的工作流程控制,满足当前主流的卷积神经网络的卷积运算的需求;简化计算架构,提高计算效率和设计效率,通用化程度高、灵活型好、能效比高,能够并行完成多个多种卷积核大小的卷积运算,具备良好的扩展性和裁剪性。
Description
技术领域
本公开属于数字图像信号处理技术领域,特别是涉及到一种通用卷积运算装置。
背景技术
卷积运算在传统数字图像处理上定义为一种加权求和的处理方式,广泛应用于通讯、电子、自动化等领域的线性系统的仿真、分析及数字信号处理等方面。近年来,基于卷积神经网络的深度学习技术广泛兴起,而卷积运算是卷积神经网络的核心计算,一个卷积神经网络的深度学习网络前向推理模型包含有大量的卷积运算。比如,VGG-16模型总共包含1634496次卷积核大小为3×3的二维卷积运算。如此庞大的运算量,计算方法和实现手段的选择成为保障计算性能的关键所在。
公开号CN106951395B(面向压缩卷积神经网络的并行卷积运算方法及装置)的现有专利公开了:根据输入控制信号卷积数据移位链长度选择、累加偏移量使能以及卷积计算使能决定所采用的操作方式。采用两条串行移位寄存器链,分别输入卷积数据和卷积参数与通道偏移量,在同一输入卷积数据流同时进行3×3和1×1卷积运算。本发明的方法在原有的基于串行移位寄存器的3×3卷积运算的基础上仅仅增加了一个乘法器、一个累加器、一个参数寄存器和一个便宜量寄存器,实现方法简单,执行效率高,能够有效加快压缩神经网络算法中卷积运算。
公开号CN108629411A(一种卷积运算硬件实现装置和方法)的现有专利公开了,包括输入RAM阵列,由若干RAM缓存组成,用于缓存卷积运算中需要的输入数据;卷积控制单元,连接并控制读取输入RAM阵列的地址以及卷积深度、步长;卷积运算寄存器阵列,连接卷积控制单元,通过移位输入数据,实现卷积的对应乘加运算。该发明通过将输入数据与权重在矩阵式寄存器阵列中移动,实现卷积的对应乘加运算,通过适当的控制可以实现任意卷积深度、卷积步长的卷积运算,该设计具有灵活通用的特点。
公开号CN109165728A(一种卷积神经网络的基本计算单元及计算方法)的现有专利公开了,包括控制器、加法树、输入端缓存器、若干计算单元、输出端缓冲器;计算单元包括块随机存储器、若干卷积运算单元、内部加法器、激活池化单元。基于控制器的控制,输入端缓存器向各个计算单元加载相应行数图像数据,块随机存储器向各个卷积运算单元下发有效行数和起始行数以及使其获取相应行数图像数据;卷积运算单元处理图像数据后经内部加法器发送给加法树;加法树处理各内部加法器发来的图像数据发送给激活池化单元;激活池化单元完成池化处理后,将结果发送给输出端缓冲器输出。
但上述方法主要存在以下问题:
(1)不同的卷积神经网络模型对处理精度的要求会不同,处理精度直接决定了权重参数和中间数据处理结果的数据位宽,数据位宽决定了乘加计算器、逻辑寄存器和存储器的位宽,直接影响了计算、逻辑、存储等硬件资源的使用量、卷积运算的计算效率、功耗和体积等方面。现有的卷积运算方法在上述方面难以达到较好平衡。
(2)通过分析卷积神经网络的发展,卷积运算是朝着卷积核小型化、多变化等方向发展。2014年后出的卷积神经网络的卷积核大小基本都是3×3和1×1两种,为卷积运算的模块通用设计提供了理论基础。现有的卷积运算方法采用的技术手段难以在通用性、灵活性和计算效率等方面达到平衡。
(3)利用GPU实现卷积运算,有编程简单、运行速度快等优点,但存在功耗过高、散热困难等问题。例如,NVIDIA GTX-1080Ti GPU虽具有向量数据搬移操作,在内部计算过程中具备上千个节点对数据并行计算,但这一过程占用了巨额的硬件资源,耗费大量的能量功耗,功耗达到250w。
发明内容
有鉴于此,本公开提出了一种基于通用卷积运算方法的装置,简化了计算架构,提高了计算效率和设计效率,通用化程度高、灵活型好、能效比高,能够并行完成多个多种卷积核大小的卷积运算,具备良好的扩展性和裁剪性,通过更改工作配置参数完成设计的更改。
根据本公开的一方面,本公开提出了一种通用卷积运算装置,所述装置包括:运算参数接收及解析模块、图像数据和权重参数接收及解析模块、状态控制模块、第一数据参数控制模块、第二数据参数控制模块、第三数据参数控制模块、卷积运算模块、存储器模块、卷积结果处理模块和处理结果输出模块;
运算参数接收及解析模块,用于接收和解析所述通用卷积运算装置的控制参数,并将所述控制参数发送给所述状态控制模块,通过所述状态控制模块对所述数据参数控制模块、卷积运算模块、图像数据和权重参数接收及解析模块、卷积结果处理模块的参数配置;其中,所述控制参数包括卷积核权重参数、原始图像尺寸、特征图尺寸、每一层卷积运算次数、卷积运算输入数据精度、卷积结果截取方法、特征图尺寸;
所述图像数据和权重参数接收及解析模块,用于将卷积核权重参数通过所述第一数据参数控制模块保存到所述存储器模块,及根据原始图像尺寸解析出图像数据或特征图像数据启动卷积运算模块进行卷积运算;
所述第二数据参数控制模块,用于所述卷积核权重参数、原始图数据、特征图数据和卷积运算结果数据的拼接,并根据所述状态控制模块的控制信息将拼接的数据发送给所述卷积结果处理模块;
所述状态控制模块,用于控制所述数据参数控制模块、卷积运算模块、存储器模块、卷积结果处理模块根据所述控制参数进行卷积运算,并经处理结果输出模块输出卷积处理结果;
所述卷积结果处理模块,用于将接收所述第二数据参数控制模块发送的拼接数据根据所述状态控制模块发送的运算参数进行处理,并将卷积运算的卷积结果的处理结果输出给第三数据参数控制模块;
所述第三数据参数控制模块,用于根据所述每一层卷积运算次数将每一层卷积运算结果输出到所述存储器模块,以及将所述卷积运算的卷积结果的处理结果输出到所述处理结果输出模块。
在一种可能的实现方式中,所述存储器模块包括内部存储器和外部存储器;
所述内部存储器根据所述状态控制模块的数据存储参数利用所述内部存储器的空信号、满信号、读信号、写信号控制外部存储器的存储和读取。
在一种可能的实现方式中,所述图像数据和权重参数接收及解析模块,用于将卷积核权重参数通过所述第一数据参数控制模块保存到所述存储器模块,包括:
根据所述卷积核权重参数存储模式确定存储在内部存储器或外部存储器,当所述内部存储器满足所述卷积核权重参数的存储,将所述卷积核权重参数存储在所述内部存储器,否则,存储到所述外部存储器。
在一种可能的实现方式中,所述根据原始图像尺寸解析出图像数据或特征图像数据启动卷积运算模块进行卷积运算,包括:
根据所述原始图像尺寸产生帧同步和行同步信号,并和解析出的图像数据或特征图数据同步处理后,通过所述数据参数控制模块发送给卷积运算模块进行卷积运算。
在一种可能的实现方式中,所述状态控制模块还用于产生读取特征图数据或卷积核权重参数的控制信号,读取存储在所述内部存储器的特征图数据或卷积核权重参数。
在一种可能的实现方式中,所述状态控制模块还包括:
通过对所述帧同步信号的下降沿进行计数实现每一层卷积运算模块的卷积层运算个数统计,将所述卷积层运算个数与每一层卷积运算模块的卷积运算次数进行比对,若所述卷积层运算计数满足所述每一层卷积运算模块的卷积运算次数的要求,进行所述卷积运算模块的跳变。
在一种可能的实现方式中,所述状态控制模块还包括:通过对每一层卷积运算模块的卷积层数进行统计,将所述卷积层数与所述卷积运算模块的卷积层数参数进行比较,若两者相同,则此次卷积运算完成。
在一种可能的实现方式中,所述卷积运算模块采用全并行流水处理架构;所述卷积运算模块的工作模式由所述卷积运算输入数据精度、卷积结果截取方法、特征图尺寸进行控制。
在一种可能的实现方式中,所述将接收所述第二数据参数控制模块发送的拼接数据根据所述状态控制模块发送的运算参数进行处理,包括:
将接收所述第二数据参数控制模块发送的拼接数据根据所述状态控制模块发送的运算参数进行拼接、相加、阈值比较、激活和池化。
在一种可能的实现方式中,所述激活方式包括RELU方式;所述池化方式包括均值池化、最大值池化、最小值池化三种方式。
本公开通用卷积运算装置,包括运算参数接收及解析模块、图像数据和权重参数接收及解析模块、状态控制模块、第一数据参数控制模块、第二数据参数控制模块、第三数据参数控制模块、卷积运算模块、存储器模块、卷积结果处理模块和处理结果输出模块。通过各模块采用全并行流水处理架构进行设计,通过卷积层数、卷积运算精度、卷积运算方式、卷积运算次数、特征图数据处理方法等工作参数实现卷积运算模块的工作流程控制,满足当前主流的卷积神经网络的卷积运算的需求。简化了计算架构,提高了计算效率和设计效率,通用化程度高、灵活型好、能效比高,能够并行完成多个多种卷积核大小的卷积运算,具备良好的扩展性和裁剪性,通过更改工作配置参数完成设计的更改。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出了根据本公开一实施例的通用卷积运算装置的结构框图;
图2示出了根据本公开另一实施例的通用卷积运算装置的结构框图;
图3示出了根据本公开一实施例的卷积运算模块的结构框图;
图4示出了根据本公开另一实施例的卷积运算模块的结构框图;
图5示出了根据本公开一实施例的卷积结果处理模块的结构框图;
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1、图2分别示出了根据本公开一实施例的通用卷积运算装置的结构框图。该装置采用全并行流水处理架构设计,如图1所示,该装置可以包括:运算参数接收及解析模块、图像数据和权重参数接收及解析模块、状态控制模块、第一数据参数控制模块、第二数据参数控制模块、第三数据参数控制模块、卷积运算模块、存储器模块、卷积结果处理模块和处理结果输出模块;
运算参数接收及解析模块,用于接收和解析所述通用卷积运算装置的控制参数,并将所述控制参数发送给所述状态控制模块,通过所述状态控制模块对所述数据参数控制模块、卷积运算模块、图像数据和权重参数接收及解析模块、卷积结果处理模块的参数配置;其中,所述控制参数包括卷积核权重参数、原始图像尺寸、特征图尺寸、每一层卷积运算次数、卷积运算输入数据精度、卷积结果截取方法、特征图尺寸;
图像数据和权重参数接收及解析模块,用于将卷积核权重参数通过所述第一数据参数控制模块保存到所述存储器模块,及根据原始图像尺寸解析出图像数据或特征图像数据启动卷积运算模块进行卷积运算;
第二数据参数控制模块,用于所述卷积核权重参数、原始图数据、特征图数据和卷积运算结果数据的拼接,并根据所述状态控制模块的控制信息将拼接的数据发送给所述卷积结果处理模块;如图2所示,第二数据参数控制模块可以对卷积核权重参数、原始图数据、特征图数据及卷积运算结果进行拼接,根据状态控制模块的每一层卷积运算次数、卷积运算输入数据精度、卷积核大小、卷积结果截取方法、特征图尺寸、特征图处理模式、处理结果截取方法、处理结果拼接方法等控制信息将拼接数据分发给卷积运算模块、卷积结果处理模块以及内部存储器等。
状态控制模块,用于控制所述数据参数控制模块、卷积运算模块、存储器模块、卷积结果处理模块根据所述控制参数进行卷积运算,并经处理结果输出模块输出卷积处理结果;
卷积结果处理模块,用于将接收所述第二数据参数控制模块发送的拼接数据根据所述状态控制模块发送的运算参数进行处理,并将卷积运算的卷积结果的处理结果输出给第三数据参数控制模块;
第三数据参数控制模块,用于根据所述每一层卷积运算次数将每一层卷积运算结果输出到所述存储器模块,以及将所述卷积运算的卷积结果的处理结果输出到所述处理结果输出模块。如图2所示,第三数据参数控制模块根据状态控制模块发送过来的每一层卷积运算次数参数将每一层卷积运算结果输出到内部存储器进行存储,内部存储器根据状态控制模块的数据存储参数并利用内部存储器的空、满和读、写等信号控制外部存储器实现卷积运算结果的处理结果的存储和读取。
其中,控制参数还可以包括卷积层数、卷积核权重参数存储模式、卷积运算输入数据精度、卷积核大小、特征图处理模式、处理结果截取方法、处理结果拼接方法、数据存储方法等,在此不做一一限定。
在一示例中,根据原始图像尺寸解析出图像数据或特征图像数据启动卷积运算模块进行卷积运算,可以包括:根据所述原始图像尺寸产生帧同步和行同步信号,并和解析出的图像数据或特征图数据同步处理后,通过所述数据参数控制模块发送给卷积运算模块进行卷积运算。为便于卷积运算模块的卷积运算,行同步信号个数比原始图像的实际行数要多(N-1)/2行,其中,N为卷积核的尺寸大小。
本公开通用卷积运算装置,包括运算参数接收及解析模块、图像数据和权重参数接收及解析模块、状态控制模块、第一数据参数控制模块、第二数据参数控制模块、第三数据参数控制模块、卷积运算模块、存储器模块、卷积结果处理模块和处理结果输出模块。通过各模块采用全并行流水处理架构进行设计,通过卷积层数、卷积运算精度、卷积运算方式、卷积运算次数、特征图数据处理方法等工作参数实现卷积运算模块的工作流程控制,满足当前主流的卷积神经网络的卷积运算的需求。简化了计算架构,提高了计算效率和设计效率,通用化程度高、灵活型好、能效比高,能够并行完成多个多种卷积核大小的卷积运算,具备良好的扩展性和裁剪性,通过更改工作配置参数完成设计的更改。
在一种可能的实现方式中,如图2所示,存储器模块包括内部存储器和外部存储器;内部存储器根据所述状态控制模块的数据存储参数利用所述内部存储器的空信号、满信号、读信号、写信号控制外部存储器的存储和读取。
内部存储器可以采用FIFO存储器,FIFO存储器的总位宽为2560bit。其中,2048bit为一组,主要用于存储卷积运算模块中原始图数据和特征图数据;512bit为另一组进行分组主要用于存储卷积运算模块中卷积核权重参数。
外部存储器可以采用DDR4存储器,DDR4存储器的物理位宽为80bit,逻辑位宽为2560bit。其中,64bit(逻辑位宽为2048bit)为一组,主要用于卷积运算模块中原始图数据和特征图数据的存储;16bit(逻辑位宽为512bit)为另一组,主要用于卷积运算模块中卷积核权重参数的存储。
内部存储器根据状态控制模块的数据存储参数利用内部存储器的空、满和读、写等信号控制外部存储器实现卷积运算处理结果的存储和读取。例如,利用FIFO存储器的空、满和读、写等信号控制外部存储器实现卷积运算处理结果的存储和读取。在存储模式下,当内部存储器为非空时,利用非空信号产生读内部存储器信号,利用存储数据和存储数据的有效信号产生外部存储器的写信号和写数据,直到内部存储器空信号变为有效;在读存储模式下,内部存储器满信号无效时,产生外部存储器读信号,读取外部存储的存储数据,并将存储数据写入内部存储器中,当内部存储器满信号有效时,将外部存储器读信号置为无效,停止读取数据。
在一种可能的实现方式中,所述图像数据和权重参数接收及解析模块,用于将卷积核权重参数通过所述第一数据参数控制模块保存到所述存储器模块,包括:
根据所述卷积核权重参数存储模式确定存储在内部存储器或外部存储器,当所述内部存储器满足所述卷积核权重参数的存储,将所述卷积核权重参数存储在所述内部存储器,否则,存储到所述外部存储器。
举例来说,图像数据和权重参数接收及解析模块可以根据卷积核权重参数存储模式确定是否需要将卷积核权重参数存储到外部存储器中,如果内部存储器存储资源满足卷积核权重参数的存储,将卷积核权重参数按存储模式参数要求存储到内部存储器中。如果内部存储器存储资源不能满足卷积核权重参数的存储要求,通过内部存储器将卷积核权重参数通过内部存储器调整到适应于外部存储器存储的格式,进而将卷积核权重参数保存到外部存储器中。
在一种可能的实现方式中,所述状态控制模块还用于产生读取特征图数据或卷积核权重参数的控制信号,读取存储在所述内部存储器的特征图数据或卷积核权重参数。
例如,状态控制模块可以产生读取特征图数据的控制信号,进而读取预存储在内部存储器的特征图数据,并产生帧同步信号和行同步信号,发送帧同步信号和行同步信号给卷积运算模块,同时,内部存储器产生读外部存储器的读信号给外部存储器,能够从外部存储器读取同样数据量的特征图数据补充至内部存储器,便于下次卷积运算使用。
同理,状态控制模块可以产生读取卷积核权重参数的控制信号,读取预存在内部存储器的卷积核权重参数,完成卷积运算模块卷积核权重参数的更新。具体为:状态控制模块通过帧同步信号的下降沿作为卷积核权重参数读取触发信号,产生宽度为N×N的读信号,并与读取的N×N个卷积核权重参数同步,如图2所示,通过第一数据参数控制模块发送给卷积运算模块实现卷积核权重参数的更新。其中,N为当层卷积核尺寸大小。同时,内部存储器产生读信号给外部存储器,从外部存储器读取N×N个卷积核参数补充至内部存储器,便于下次卷积运算使用。
在一种可能的实现方式中,所述状态控制模块还包括:通过对所述帧同步信号的下降沿进行计数实现每一层卷积运算模块的卷积层运算个数统计,将所述卷积层运算个数与每一层卷积运算模块的卷积运算次数进行比对,若所述卷积层运算计数满足所述每一层卷积运算模块的卷积运算次数的要求,进行所述卷积运算模块的跳变。
例如,状态控制模块可以通过对帧同步信号的下降沿进行计数实现卷积运算个数的统计,并与每一层卷积运算次数参数进行比对,若卷积运算个数达到每一层卷积运算次数参数要求,则进行卷积运算模块状态跳变,从而实现卷积层跳变的控制。若帧同步下降沿个数为m,卷积运算模块例化个数为k,则卷积运算个数为m*k。
在一种可能的实现方式中,所述状态控制模块还包括:通过对每一层卷积运算模块的卷积层数进行统计,将所述卷积层数与所述卷积运算模块的卷积层数参数进行比较,若两者相同,则此次卷积运算完成。
例如,状态控制模块可以通过对计算完成的每一层卷积运算进行卷积层数统计,并与卷积运算的卷积层数参数进行比较,若卷积层数统计数据达到了与卷积运算的卷积层数参数一致,则此次卷积运算完成。如图2所示,状态控制模块产生卷积运算结束信号给第三数据参数控制模块,第三数据参数控制模块根据该信号产生读存储器信号给内部存储器,内部存储器根据读存储器信号控制外部存储器将最终的卷积结果读出,并发送给第三数据参数控制模块,第三数据参数控制模块将最终的卷积结果输出给处理结果输出模块。输出完成后,处理结果输出模块产生结束信号通过第三数据参数控制模块发送给状态控制模块,状态控制模块根据该信号产生初始化信号给第一数据参数控制模块、第二数据参数控制模块、第三数据参数控制模块、卷积运算模块、卷积结果处理模块、内部存储器模块,使其处于初始化状态,便于下一次卷积运算处理。
图3示出了根据本公开一实施例的卷积运算模块的结构框图;图4示出了根据本公开另一实施例的卷积运算模块的结构框图。
在一种可能的实现方式中,所述卷积运算模块采用全并行流水处理架构;所述卷积运算模块的工作模式由所述卷积运算输入数据精度、卷积结果截取方法、特征图尺寸进行控制。
如图2所示,卷积运算模块主要完成卷积运算的基本操作,采用全并行流水处理架构,运算数据格式选用有符号定点数据。单卷积运算模块可以完成单幅特征图的卷积核大小为3×3或者最多9幅特征图的卷积核大小为1×1的卷积运算,在此不做限定,可以根据卷积核大小参数进行控制。另外,卷积核大小为3×3的二维卷积延时为2*PIX_CNT+16个时钟周期,其中PIX_CNT为每行图像的点数;卷积核大小为1×1的一维卷积延时为4个时钟周期。
如图4所示,卷积运算模块的工作模式可以通过第一数据参数控制模块的卷积运算输入数据精度、卷积结果截取方法、特征图尺寸等参数实现控制。其中,卷积模块运算输入数据最高精度为16位定点数据,通过卷积运算输入数据精度调整卷积运算输入精度。卷积运算模块输出数据最高精度为36位定点,通过卷积结果截取方法实现卷积运算输出精度可调。其中,原始图像尺寸和特征图尺寸最大支持2048×2048,即PIX_CNT≤2048,通过原始图像尺寸和特征图尺寸两个参数实现配置。
图5示出了根据本公开一实施例的卷积结果处理模块的结构框图。
在一种可能的实现方式中,所述将接收所述第二数据参数控制模块发送的拼接数据根据所述状态控制模块发送的运算参数进行处理,包括:
将接收所述第二数据参数控制模块发送的拼接数据根据所述状态控制模块发送的运算参数进行拼接、相加、阈值比较、激活和池化。
在一种可能的实现方式中,所述激活方式包括RELU方式;所述池化方式包括均值池化、最大值池化、最小值池化三种方式。
卷积结果处理模块可以通过接收第二数据参数控制模块传送过来的特征图数据,然后根据状态控制模块传送过来的实现多幅特征图数据的拼接、相加、阈值比较、激活和池化等运算,并将结果输出给第三数据参数控制模块。其中,上述运算方法通过特征图处理模式实现控制,处理结果输出通过处理结果截取方法和处理结果拼接方法实现控制。
如图5所示,激活方式主要采用RELU方式,阈值参数可以特征图处理模式参数配置,默认阈值为0。池化方式主要包含均值池化、最大值池化、最小值池化三种方式,计算过程中,三种池化结果同时通过计算得到,池化步长可以为1,2,4三种,两者可以通过特征图处理模式参数进行选择控制。
本公开的通用卷积运算装置,通过分析当前主流卷积神经网络前向推理运算的特点和发展规律,通过裁剪一些落后卷积神经网络前向推理模型的计算方法,有效简化计算架构,提高计算和设计效率,具备通用化程度高、灵活性好、能效比高、工作流程可参数配置的高并行计算和存储的卷积运算架构。采用全并行流水处理设计卷积运算的基本架构,能够并行完成多个多种卷积核大小的卷积运算,并能够根据工作参数配置和数据流驱动的方式完成当前主流卷积神经网络的卷积运算。该计算架构具有良好的扩展性和裁剪性,可根据硬件计算存储资源和运算实时性要求快速完成计算模块的裁剪和例化,通过更改工作配置参数完成设计的更改。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种通用卷积运算装置,其特征在于,所述装置包括:运算参数接收及解析模块、图像数据和权重参数接收及解析模块、状态控制模块、第一数据参数控制模块、第二数据参数控制模块、第三数据参数控制模块、卷积运算模块、存储器模块、卷积结果处理模块和处理结果输出模块;
运算参数接收及解析模块,用于接收和解析所述通用卷积运算装置的控制参数,并将所述控制参数发送给所述状态控制模块,通过所述状态控制模块对所述数据参数控制模块、卷积运算模块、图像数据和权重参数接收及解析模块、卷积结果处理模块的参数配置;其中,所述控制参数包括卷积核权重参数、原始图像尺寸、特征图尺寸、每一层卷积运算次数、卷积运算输入数据精度、卷积结果截取方法、特征图尺寸;
所述图像数据和权重参数接收及解析模块,用于将卷积核权重参数通过所述第一数据参数控制模块保存到所述存储器模块,及根据原始图像尺寸解析出图像数据或特征图像数据启动卷积运算模块进行卷积运算;
所述第二数据参数控制模块,用于所述卷积核权重参数、原始图数据、特征图数据和卷积运算结果数据的拼接,并根据所述状态控制模块的控制信息将拼接的数据发送给所述卷积结果处理模块;
所述状态控制模块,用于控制所述数据参数控制模块、卷积运算模块、存储器模块、卷积结果处理模块根据所述控制参数进行卷积运算,并经处理结果输出模块输出卷积处理结果;
所述卷积结果处理模块,用于将接收所述第二数据参数控制模块发送的拼接数据根据所述状态控制模块发送的运算参数进行处理,并将卷积运算的卷积结果的处理结果输出给第三数据参数控制模块;
所述第三数据参数控制模块,用于根据所述每一层卷积运算次数将每一层卷积运算结果输出到所述存储器模块,以及将所述卷积运算的卷积结果的处理结果输出到所述处理结果输出模块。
2.根据权利要求1所述的通用卷积运算装置,其特征在于,所述存储器模块包括内部存储器和外部存储器;
所述内部存储器根据所述状态控制模块的数据存储参数利用所述内部存储器的空信号、满信号、读信号、写信号控制外部存储器的存储和读取。
3.根据权利要求2所述的通用卷积运算装置,其特征在于,所述图像数据和权重参数接收及解析模块,用于将卷积核权重参数通过所述第一数据参数控制模块保存到所述存储器模块,包括:
根据所述卷积核权重参数存储模式确定存储在内部存储器或外部存储器,当所述内部存储器满足所述卷积核权重参数的存储,将所述卷积核权重参数存储在所述内部存储器,否则,存储到所述外部存储器。
4.根据权利要求1所述的通用卷积运算装置,其特征在于,所述根据原始图像尺寸解析出图像数据或特征图像数据启动卷积运算模块进行卷积运算,包括:
根据所述原始图像尺寸产生帧同步和行同步信号,并和解析出的图像数据或特征图数据同步处理后,通过所述数据参数控制模块发送给卷积运算模块进行卷积运算。
5.根据权利要求1所述的通用卷积运算装置,其特征在于,所述状态控制模块还用于产生读取特征图数据或卷积核权重参数的控制信号,读取存储在所述内部存储器的特征图数据或卷积核权重参数。
6.根据权利要求4所述的通用卷积运算装置,其特征在于,所述状态控制模块还包括:
通过对所述帧同步信号的下降沿进行计数实现每一层卷积运算模块的卷积层运算个数统计,将所述卷积层运算个数与每一层卷积运算模块的卷积运算次数进行比对,若所述卷积层运算计数满足所述每一层卷积运算模块的卷积运算次数的要求,进行所述卷积运算模块的跳变。
7.根据权利要求4所述的通用卷积运算装置,其特征在于,所述状态控制模块还包括:
通过对每一层卷积运算模块的卷积层数进行统计,将所述卷积层数与所述卷积运算模块的卷积层数参数进行比较,若两者相同,则此次卷积运算完成。
8.根据权利要求1所述的通用卷积运算装置,其特征在于,所述卷积运算模块采用全并行流水处理架构;所述卷积运算模块的工作模式由所述卷积运算输入数据精度、卷积结果截取方法、特征图尺寸进行控制。
9.根据权利要求1所述的通用卷积运算装置,其特征在于,所述将接收所述第二数据参数控制模块发送的拼接数据根据所述状态控制模块发送的运算参数进行处理,包括:
将接收所述第二数据参数控制模块发送的拼接数据根据所述状态控制模块发送的运算参数进行拼接、相加、阈值比较、激活和池化。
10.根据权利要求9所述的通用卷积运算装置,其特征在于,
所述激活方式包括RELU方式;
所述池化方式包括均值池化、最大值池化、最小值池化三种方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210312193.9A CN114707649B (zh) | 2022-03-28 | 2022-03-28 | 一种通用卷积运算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210312193.9A CN114707649B (zh) | 2022-03-28 | 2022-03-28 | 一种通用卷积运算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114707649A true CN114707649A (zh) | 2022-07-05 |
CN114707649B CN114707649B (zh) | 2024-07-02 |
Family
ID=82170929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210312193.9A Active CN114707649B (zh) | 2022-03-28 | 2022-03-28 | 一种通用卷积运算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114707649B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115601223A (zh) * | 2022-09-08 | 2023-01-13 | 重庆位图信息技术有限公司(Cn) | 一种图像预处理装置、方法和芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020258528A1 (zh) * | 2019-06-25 | 2020-12-30 | 东南大学 | 一种可配置的通用卷积神经网络加速器 |
CN113313171A (zh) * | 2021-05-28 | 2021-08-27 | 武汉理工大学 | 基于fpga实现图像识别的方法、装置、设备及存储介质 |
CN113344179A (zh) * | 2021-05-31 | 2021-09-03 | 哈尔滨理工大学 | 基于fpga的二值化卷积神经网络算法的ip核 |
-
2022
- 2022-03-28 CN CN202210312193.9A patent/CN114707649B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020258528A1 (zh) * | 2019-06-25 | 2020-12-30 | 东南大学 | 一种可配置的通用卷积神经网络加速器 |
CN113313171A (zh) * | 2021-05-28 | 2021-08-27 | 武汉理工大学 | 基于fpga实现图像识别的方法、装置、设备及存储介质 |
CN113344179A (zh) * | 2021-05-31 | 2021-09-03 | 哈尔滨理工大学 | 基于fpga的二值化卷积神经网络算法的ip核 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115601223A (zh) * | 2022-09-08 | 2023-01-13 | 重庆位图信息技术有限公司(Cn) | 一种图像预处理装置、方法和芯片 |
CN115601223B (zh) * | 2022-09-08 | 2023-08-04 | 重庆位图信息技术有限公司 | 一种图像预处理装置、方法和芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN114707649B (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110390385B (zh) | 一种基于bnrp的可配置并行通用卷积神经网络加速器 | |
CN110378468B (zh) | 一种基于结构化剪枝和低比特量化的神经网络加速器 | |
CN109635944B (zh) | 一种稀疏卷积神经网络加速器及实现方法 | |
CN106844294B (zh) | 卷积运算芯片和通信设备 | |
CN108090560A (zh) | 基于fpga的lstm递归神经网络硬件加速器的设计方法 | |
CN110458279A (zh) | 一种基于fpga的二值神经网络加速方法及系统 | |
CN107423816B (zh) | 一种多计算精度神经网络处理方法和系统 | |
CN110059811A (zh) | 权重缓冲器 | |
CN111414994A (zh) | 一种基于FPGA的Yolov3网络计算加速系统及其加速方法 | |
CN111767994B (zh) | 一种神经元计算装置 | |
CN109472361A (zh) | 神经网络优化方法 | |
CN114707649B (zh) | 一种通用卷积运算装置 | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
CN112396072B (zh) | 基于asic与vgg16的图像分类加速方法及装置 | |
CN109902821B (zh) | 一种数据处理方法、装置及相关组件 | |
CN113313244B (zh) | 面向加法网络的近存储神经网络加速器及其加速方法 | |
CN113222129B (zh) | 一种基于多级缓存循环利用的卷积运算处理单元及系统 | |
CN112712457A (zh) | 数据处理方法以及人工智能处理器 | |
CN111626399A (zh) | 卷积神经网络计算装置、数据计算方法 | |
CN109343826B (zh) | 一种面向深度学习的可重构处理器运算单元 | |
CN115081603A (zh) | 执行Winograd卷积的计算装置、集成电路装置及板卡 | |
CN113610221A (zh) | 一种基于fpga的可变膨胀卷积运算硬件系统 | |
You et al. | A flexible dnn accelerator design with layer pipeline for fpgas | |
CN115081600A (zh) | 执行Winograd卷积的变换单元、集成电路装置及板卡 | |
CN112346703B (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 |