CN109034373B - 卷积神经网络的并行处理器及处理方法 - Google Patents
卷积神经网络的并行处理器及处理方法 Download PDFInfo
- Publication number
- CN109034373B CN109034373B CN201810710911.1A CN201810710911A CN109034373B CN 109034373 B CN109034373 B CN 109034373B CN 201810710911 A CN201810710911 A CN 201810710911A CN 109034373 B CN109034373 B CN 109034373B
- Authority
- CN
- China
- Prior art keywords
- convolution
- parallel
- data
- control unit
- pooling
- 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
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供了卷积神经网络的并行处理器及处理方法,包括:输入数据划窗控制单元采用可变深度移位寄存器链的方式对输入特征平面数据进行二维重组,输出第一窗口数据,并将第一窗口数据加载至并行卷积与池化处理单元;卷积核存储控制单元将卷积核参数和卷积偏移量分别加载至并行卷积与池化处理单元;并行卷积与池化处理单元采用并行的方式,对第一窗口数据、卷积核参数和偏移量进行卷积运算和池化处理,得到并行的多个输出特征平面数据,并将输出特征平面数据分别输入至并行输出数据存储控制单元;并行输出数据存储控制单元采用并行的方式,将对应的输出特征平面数据进行存储。本发明可以优化CNN计算过程,加快计算速度。
Description
技术领域
本发明涉及数字信号处理技术领域,尤其是涉及卷积神经网络的并行处理器及处理方法。
背景技术
卷积神经网络(Convolutional Neural Network,CNN)是近年发展起来、并引起广泛重视的一种高效图像处理方法。CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。在机器学习中,卷积神经网络是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理具有非常出色表现。
CNN一般由多个卷积层(convolutional layer)和池化层(pooling layer)交替组成。CNN每层卷积运算都需要针对一组输入数据与多个卷积核进行卷积运算,每个卷积核的与输入数据的卷积运算可以并行执行,并且三维数据的卷积运算可以分成多个二维数据卷积计算之和,而池化操作是对卷积最后计算结果局部数据进行操作,因此只需要产生部分卷积计算结果就可以同步进行池化操作。现有的大部分CNN计算主要基于通用CPU(中央处理器,Central Processing Unit)或者GPU(图形处理器,Graphics Processing Unit),它们都是基于单个数据操作开发CNN的并行性,无法充分挖掘CNN算法的并行性,导致实现CNN算法的代价较高,计算时间较长。
发明内容
有鉴于此,本发明的目的在于提供卷积神经网络的并行处理器及处理方法,以优化CNN计算过程,加快计算速度。
第一方面,本发明实施例提供了一种卷积神经网络的并行处理器,其中,包括:并行卷积与池化处理单元,分别与所述并行卷积与池化处理单元相连的输入数据划窗控制单元、卷积核存储控制单元和并行输出数据存储控制单元;
所述输入数据划窗控制单元,用于采用可变深度移位寄存器链的方式对输入特征平面数据进行二维重组,输出第一窗口数据,并将所述第一窗口数据分别输入至所述并行卷积与池化处理单元;
所述卷积核存储控制单元,用于将卷积核参数和卷积偏移量分别加载至所述并行卷积与池化处理单元;其中,所述卷积核参数和所述卷积偏移量对应于所述输入特征平面数据的输入通道;
所述并行卷积与池化处理单元,用于采用并行的方式,对所述第一窗口数据、所述卷积核参数和所述偏移量进行卷积运算和池化处理,得到并行的多个输出特征平面数据,并将所述输出特征平面数据分别输入至所述并行输出数据存储控制单元;
所述并行输出数据存储控制单元,用于采用并行的方式,将对应的所述输出特征平面数据进行存储。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,还包括DMA控制器;
所述DMA控制器,用于从外部存储器中将所述输入特征平面数据搬移至所述输入数据划窗控制单元,将所述卷积核参数和所述卷积偏移量搬移至所述卷积核存储控制单元。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述输入数据划窗控制单元包括:
根据所述输入特征平面数据的长度配置第一移位寄存器链的实际移位长度;
在所述第一移位寄存器链上对所述输入特征平面数据进行二维重组和划窗操作,输出所述第一窗口数据;
将所述第一窗口数据分别输入至所述并行卷积与池化处理单元。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述并行卷积与池化处理单元包括并行的多路卷积与池化处理模块,每个所述卷积与池化处理模块均包括矩阵乘模块、累加模块、池化处理模块、卷积核寄存器链以及Bias;
所述卷积核寄存器链,用于在卷积运算前将所述卷积核参数进行存储,并在卷积运算时将所述卷积核参数加载至所述矩阵乘模块;
所述Bias,用于在卷积运算前将所述卷积偏移量进行存储,并在卷积运算时将所述卷积偏移量加载至所述矩阵乘模块;
所述矩阵乘模块,用于对所述第一窗口数据和所述卷积核参数进行乘运算,生成乘运算结果,并将所述乘运算结果加载至所述累加模块;
所述累加模块,用于根据所述乘运算结果和所述卷积核参数生成累加结果,并将所述累加结果加载至所述池化处理模块;
所述池化处理模块,用于对所述累加结果进行池化处理,得到所述输出特征平面数据,并将所述输出特征平面数据输入至所述并行输出数据存储控制单元。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述池化处理模块包括池化划窗控制模块和池化运算模块;
所述池化划窗控制模块,用于配置第二移位寄存器链的实际移位长度,在所述第二移位寄存器链上对所述累加结果进行二维重组和划窗操作,得到第二窗口数据;
池化运算模块,用于对所述第二窗口数据进行池化运算,得到所述输出特征平面数据。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述累加模块还包括:
在卷积运算的第一次循环中,将所述乘运算结果和所述卷积核参数进行累加,生成累加中间结果;
以及,
在卷积运算的再次循环中,将所述乘运算结果和所述累加中间结果进行累加,并最终生成所述累加结果。
结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述卷积与池化处理模块还包括MUX模块;
所述MUX模块,用于根据算法需求,对所述卷积核参数和所述累加中间结果进行选择,并将选择的结果输入至所述累加模块参与累加运算。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述并行输出数据存储控制单元包括并行的多路输出存储器,多路所述输出存储器分别与所述并行卷积与池化处理单元中的多路卷积与池化处理模块对应相连;
所述输出存储器,用于将对应的所述输出特征平面数据进行存储。
结合第一方面的第七种可能的实施方式,本发明实施例提供了第一方面的第八种可能的实施方式,其中,所述输出存储器为输出ping-pong存储bank。
第二方面,本发明实施例还提供一种卷积神经网络的并行处理方法,其中,包括:
输入数据划窗控制单元采用可变深度移位寄存器链的方式对输入特征平面数据进行二维重组,输出第一窗口数据,并将第一窗口数据加载至并行卷积与池化处理单元;
卷积核存储控制单元将卷积核参数和卷积偏移量分别加载至所述并行卷积与池化处理单元;
所述并行卷积与池化处理单元采用并行的方式,对所述第一窗口数据、所述卷积核参数和所述偏移量进行卷积运算和池化处理,得到并行的多个输出特征平面数据,并将所述输出特征平面数据分别输入至并行输出数据存储控制单元;
所述并行输出数据存储控制单元采用并行的方式,将对应的所述输出特征平面数据进行存储。
本发明实施例带来了以下有益效果:本发明提供的卷积神经网络的并行处理器及处理方法,包括:输入数据划窗控制单元采用可变深度移位寄存器链的方式对输入特征平面数据进行二维重组,输出第一窗口数据,并将第一窗口数据加载至并行卷积与池化处理单元;卷积核存储控制单元将卷积核参数和卷积偏移量分别加载至并行卷积与池化处理单元;并行卷积与池化处理单元采用并行的方式,对第一窗口数据、卷积核参数和偏移量进行卷积运算和池化处理,得到并行的多个输出特征平面数据,并将输出特征平面数据分别输入至并行输出数据存储控制单元;并行输出数据存储控制单元采用并行的方式,将对应的输出特征平面数据进行存储。本发明可以优化CNN计算过程,加快计算速度。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的卷积神经网络的并行处理器的结构示意图;
图2为本发明实施例二提供的输入数据划窗控制单元结构示意图;
图3为本发明实施例二提供的卷积与池化处理模块结构示意图;
图4为本发明实施例二提供的池化处理模块结构示意图;
图5为本发明实施例三提供的卷积神经网络的并行处理方法流程图。
图标:
100-输入数据划窗控制单元;200-卷积核存储控制单元;300-并行卷积与池化处理单元;310-矩阵乘模块;320-累加模块;330-Bias;340-池化处理模块;341-池化划窗控制模块;342-池化运算模块;350-MUX;400-并行输出数据存储控制单元;500-DMA控制器。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
CNN一般由多个卷积层和池化层交替组成,其中卷积层占据CNN整个网络运算规模的80%以上,卷积层的计算公式如下:
其中,fin为输入特征平面数据,它是一个三维数据;gi表示第i个卷积核,也是一个三维数据;bi为对应gi的卷积偏移量;nin为输入输入特征平面数据的通道数量,nout为输出特征平面数据的通道数量;表示三维数据卷积运算符。每个卷积层的输入特征平面数据fin一般是多个通道组成,每个通道是一个二维的数据,因此输入特征平面数据fin可以用一个三维的数组表示。另外,每层卷积运算都有多个卷积核,每个卷积核对应一个输出通道的数据。每个卷积核也是由三维数据组成,在每一层卷积运算当中,卷积核的深度与输入特征平面数据fin的通道数相等,每个卷积核与相应通道的输入特征平面数据fin进行划窗式的二维卷积运算,并且最后对每个输入通道对应位置的卷积结果进行累加,得到一个二维的输出特征平面数据fout。卷积层的输出有时需要进行池化操作,相当于对输入图像数据的降采样。现有的大部分CNN计算主要基于通用CPU或者GPU,它们都是基于单个数据操作开发CNN的并行性,无法充分挖掘CNN算法的并行性,导致实现CNN算法的代价较高,计算时间较长。
基于此,本发明实施例提供的卷积神经网络的并行处理器及处理方法,可以优化CNN计算过程,加快计算速度。
为便于对本实施例进行理解,首先对本发明实施例所公开的卷积神经网络的并行处理器进行详细介绍。
实施例一:
图1为本发明实施例一提供的卷积神经网络的并行处理器的结构示意图。
参照图1,卷积神经网络的并行处理器包括:并行卷积与池化处理单元,分别与并行卷积与池化处理单元相连的输入数据划窗控制单元、卷积核存储控制单元和并行输出数据存储控制单元,还包括分别与输入数据划窗控制单元、卷积核存储控制单元和并行输出数据存储控制单元相连的DMA(Direct Memory Access,直接内存存取)控制器。其中,并行卷积与池化处理单元包括并行的N路M×M的卷积与池化处理模块,并行输出数据存储控制单元包括并行的N路输出存储器,各个输出存储器分别与各个卷积与池化处理模块对应相连。这里,输出存储器为输出ping-pong存储bank。输出ping-pong存储bank可以实现DMA控制器数据访问与M×M的卷积与池化处理模块数据访问的同时进行。
DMA控制器,用于从外部存储器中将输入特征平面数据fin搬移至输入数据划窗控制单元,将卷积核参数和卷积偏移量搬移至卷积核存储控制单元。
输入数据划窗控制单元,用于采用可变深度移位寄存器链的方式对输入特征平面数据fin进行二维重组,输出第一窗口数据,并将第一窗口数据分别输入至并行卷积与池化处理单元。具体为,第一窗口数据为M×M的窗口数据。输入数据划窗控制单元将划窗输出的M×M的窗口数据同时加载至N路M×M的卷积与池化处理模块。
卷积核存储控制单元,用于在开始卷积运算时,将卷积核参数和卷积偏移量分别加载至并行卷积与池化处理单元;其中,卷积核参数和卷积偏移量对应于输入特征平面数据fin的输入通道。具体为,卷积核存储控制单元分别将卷积核参数和卷积偏移量同时加载至N路M×M的卷积与池化处理模块。
并行卷积与池化处理单元,用于采用并行的方式,对第一窗口数据、卷积核参数和偏移量进行卷积运算和池化处理,得到并行的多个输出特征平面数据fout,并将输出特征平面数据fout分别输入至并行输出数据存储控制单元。具体为,N路M×M的卷积与池化处理模块同时对第一窗口数据、卷积核参数和偏移量进行卷积运算和池化处理,并同时得到N个输出特征平面数据fout;这里,运算的中间结果和最终结果都将加载至相应的输出ping-pong存储bank中进行保存。
并行输出数据存储控制单元,用于采用并行的方式,将对应的输出特征平面数据fout进行存储。具体为,N个输出ping-pong存储bank同时对应的将N个输出特征平面数据fout进行存储。
待所有的运算完成之后开始下一层的卷积和池化运算。
实施例二:
图2为本发明实施例二提供的输入数据划窗控制单元结构示意图。
参照图2,输入数据划窗控制单元在具体实现其功能时,包括如下内容:
首先,根据输入特征平面数据fin的长度配置第一移位寄存器链的实际移位长度。第一寄存器链的实际工作长度可根据据输入特征平面数据fin的长度T进行配置,即每一层的第T个寄存器单元输出与下一层的第一个寄存器单元的输入相连,达到针对不同长度二维数据的划窗操作。第一移位寄存器链的实际移位长度为H=(M-1)×L+M,L≥T,M等于卷积核的长度。第一移位寄存器链分成M层,从1到M-1层,每层L个寄存器单元,第M层M个寄存器单元,每层前M寄存器单元组成一个二维M×M窗口。
其次,在第一移位寄存器链上对输入特征平面数据fin进行二维重组和划窗操作,输出M×M的窗口数据;以及将M×M的窗口数据分别输入至并行卷积与池化处理单元。DMA控制器将输入特征平面数据fin每次(按行)顺序地输入一个通道的一个数据,进而,寄存器单元的数据向后移动一个单元,并且通过移位,实现在二维通道数据上的划窗输出。这种采用移位寄存器链的方式可以最大化地共享相邻窗口的数据,有效地减少数据的重复加载。
参照图3,并行卷积与池化处理单元中的每路M×M的卷积与池化处理模块均包括矩阵乘模块、累加模块、池化处理模块、卷积核寄存器链以及Bias(偏移量寄存器)。其中,矩阵乘模块为M×M矩阵乘模块,卷积核寄存器链包括W11、W12、……、WMM。
卷积核寄存器链,用于在卷积运算前,将来自卷积核存储控制单元的卷积核参数进行存储,并在卷积运算时将卷积核参数加载至矩阵乘模块。
Bias,用于在卷积运算前,将来自卷积核存储控制单元的卷积偏移量进行存储,并在卷积运算时将卷积偏移量加载至矩阵乘模块。
M×M矩阵乘模块,用于对M×M窗口数据和卷积核参数进行乘运算,生成M×M个乘运算结果,并将乘运算结果加载至累加模块。
累加模块,用于根据乘运算结果和卷积核参数生成累加结果,并将累加结果加载至池化处理模块。这里,在进行累加运算过程中间,会有有累加中间结果的生成。具体的操作如下:在卷积运算的第一次循环中,将乘运算结果和卷积核参数进行累加,生成累加中间结果;以及,在卷积运算的再次循环(第二次至倒数第二次)中,将乘运算结果和累加中间结果进行累加,并最终生成累加结果。将最终的累加结果输出至池化处理模块。
另外,卷积与池化处理模块还包括MUX(Multiplexer,数据选择器)模块。MUX模块,用于根据算法需求,对Bias中的卷积核参数和对应的输出ping-pong存储bank中的累加中间结果进行选择,并将选择的结果输入至累加模块参与累加运算。
池化处理模块,用于在运算未结束不需要池化时,设置为bypass模式,将累加模块的输出的累加中间数据直接存储至对应的输出ping-pong存储bank中;以及,在运算结束需要池化时,对累加结果进行池化处理,得到输出特征平面数据fout,并将输出特征平面数据fout输入至对应的输出ping-pong存储bank。
参照图4,池化处理模块包括池化划窗控制模块和池化运算模块。
池化划窗控制模块,用于配置第二移位寄存器链的实际移位长度,在第二移位寄存器链上对累加结果进行二维重组和划窗操作,得到第二窗口数据。这里,第二窗口数据为K×K窗口数据。
与输入数据划窗控制单元相似的,池化划窗控制模块也采用可配置深度的移位寄存器链方式接收累加模块串行输出的累加结果数据,第二移位寄存器链的实际移位长度为h=Z×(K-1)+K,分成K层,其中1至K-1层具有Z个移位寄存器单元,第K层具有K个寄存器单元,每一层前K个寄存器单元组成一个K×K的矩阵。它将串行输入的累加结果数据重组成二维数据,并实现K×K的池化窗口数据的输出。当使用池化处理模块时,累加结果数据不断输入,模拟划窗的操作,K×K窗口数据输出至池化运算模块进行池化运算。
池化运算模块,用于对第二窗口数据进行池化运算,得到输出特征平面数据fout。
上述多个实施例所提供的卷积神经网络的并行处理器具有如下优点,采用移位寄存器链的方式实现串行输入数据到二维通道数据的重组,并且能够实现二维通道数据的划窗操作,最大化相邻窗口的数据共享,减少数据的重复读取与加载;每个输出通道的数据同时与N个卷积核进行卷积运算,减少卷积运算时间;输出采用具有双端口ping-pong存储器技术的输出ping-pong存储bank,实现数据加载和运算的同时进行。
实施例三:
图5为本发明实施例三提供的卷积神经网络的并行处理方法流程图。
基于上述实施例所提供的卷积神经网络的并行处理器,本实施例提供了一种卷积神经网络的并行处理方法,该方法包括如下主要内容:
第一,输入数据划窗控制单元采用可变深度移位寄存器链的方式对输入特征平面数据fin进行二维重组,输出第一窗口数据,并将第一窗口数据加载至并行卷积与池化处理单元;
第二,卷积核存储控制单元将卷积核参数和卷积偏移量分别加载至并行卷积与池化处理单元;
第三,并行卷积与池化处理单元采用并行的方式,对第一窗口数据、卷积核参数和偏移量进行卷积运算和池化处理,得到并行的多个输出特征平面数据fout,并将输出特征平面数据fout分别输入至并行输出数据存储控制单元;
第四,并行输出数据存储控制单元采用并行的方式,将对应的输出特征平面数据fout进行存储。
在具体实现时,计算一层卷积层需要I次循环,其中I等于输入特征平面数据fin的通道数,假设该数据存储在外部存储器当中,且fin的长度为H,经过卷积运算之后的得到的输出特征平面数据fout的长度为h,卷积核个数为N。参照图5,卷积神经网络的并行处理方法包括:
步骤S01,配置输入数据划窗控制单元中移位寄存器链的实际移位长度为H;配置池化划窗控制模块的移位寄存器链的实际移位长度了h。循环次数i=0。
步骤S02,配置并启动输入数据划窗控制单元将第i通道的输入特征平面数据进行处理后,向各个M×M卷积与池化处理模块加载M×M窗口数据;同时配置卷积核存储控制单元向各个M×M卷积与池化处理模块加载相应的第i通道对应的卷积核参数与卷积偏移量。
步骤S03,判断是否为i==1;如果是第1次循环,则执行步骤S04;如果不是第1次循环,则执行步骤S05;
步骤S04,累加模块选择Bias中的卷积核进行累加运算,输出累加中间结果
步骤S05,累加模块选择从输出ping-pong存储bank中的取累加中间结果进行累加运算,输出累加结果
步骤S06,判断是否i==I并且是否需要池化;如果不是第I次循环也不需要池化,则执行步骤S07;如果是第I次循环且需要池化,则执行步骤S08;
步骤S07,池化处理模块设置为bypass模式,将累加中间数据直接存储至对应的输出ping-pong存储bank中
步骤S08,池化处理模块对累加结果进行池化处理,得到输出特征平面数据
步骤S09,判断是否为i++&i>I,即:将循环次数i加1,并在i+1中判断是否满足i>I;如果循环次数i加1且i≤I,则返回步骤S02;如果循环次数i加1且i>I,表示已完成循环,则结束处理过程。
整个运算过程只需I次循环:第1次循环配置DMA控制器从外部存储器中将第一通道的输入特征平面数据fin搬移至输入数据划窗控制单元,输入数据划窗控制单元再将该输入特征平面数据进行处理后向各个M×M卷积与池化处理模块加载M×M窗口数据;同时配置卷积核存储控制单元向N个M×M卷积与池化处理模块分别加载N个卷积核的对应第一通道数据的卷积参数和卷积偏移量,累加模块选择累加Bias中的卷积偏移量,池化处理模块设置为bypass模式,输出累加中间结果存储在并行输出数据存储控制单元中;第2次至第I-1次循环与第一次循环处理基本类似,只有累加模块选择并行输出数据存储器中上一次循环对应的累加中间结果进行累加;第I次循环与前I-2次循环处理类似,只有根据该卷积层是否需要池化操作选择是否将池化处理模块设置为bypass模式。因此,基于卷积神经网络的并行处理器只需I次循环就能实现一个输入I个通道的输入特征平面数据fin的卷积和池化处理。
本发明实施例带来了以下有益效果:
本发明提供的卷积神经网络的并行处理器及处理方法,包括:输入数据划窗控制单元采用可变深度移位寄存器链的方式对输入特征平面数据进行二维重组,输出第一窗口数据,并将第一窗口数据加载至并行卷积与池化处理单元;卷积核存储控制单元将卷积核参数和卷积偏移量分别加载至并行卷积与池化处理单元;并行卷积与池化处理单元采用并行的方式,对第一窗口数据、卷积核参数和偏移量进行卷积运算和池化处理,得到并行的多个输出特征平面数据,并将输出特征平面数据分别输入至并行输出数据存储控制单元;并行输出数据存储控制单元采用并行的方式,将对应的输出特征平面数据进行存储。本发明的输入数据划窗控制单元和卷积与池化处理模块采用移位寄存器链的方式实现串行输入数据到二维通道数据的重组,并且能够实现二维通道数据的划窗操作,最大化相邻窗口的数据共享,减少数据的重复读取与加载,优化了运算过程;并行卷积与池化处理单元采用并行的方式,满足每个输出通道数据同时与N个卷积核的进行卷积运算,加快了卷积运算速度。
本发明实施例所提供的方法,其实现原理及产生的技术效果和前述处理器实施例相同,为简要描述,方法实施例部分未提及之处,可参考前述处理器实施例中相应内容。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种卷积神经网络的并行处理器,其特征在于,包括:并行卷积与池化处理单元,分别与所述并行卷积与池化处理单元相连的输入数据划窗控制单元、卷积核存储控制单元和并行输出数据存储控制单元;
所述输入数据划窗控制单元,用于采用可变深度移位寄存器链的方式对输入特征平面数据fin进行二维重组,输出第一窗口数据,并将所述第一窗口数据分别输入至所述并行卷积与池化处理单元;
所述卷积核存储控制单元,用于将卷积核参数和卷积偏移量分别加载至所述并行卷积与池化处理单元;其中,所述卷积核参数和所述卷积偏移量对应于所述输入特征平面数据fin的输入通道;
所述并行卷积与池化处理单元,用于采用并行的方式,对所述第一窗口数据、所述卷积核参数和所述偏移量进行卷积运算和池化处理,得到并行的多个输出特征平面数据fout,并将所述输出特征平面数据fout分别输入至所述并行输出数据存储控制单元;
所述并行输出数据存储控制单元,用于采用并行的方式,将对应的所述输出特征平面数据fout进行存储。
2.根据权利要求1所述的处理器,其特征在于,还包括直接内存存取DMA控制器;
所述DMA控制器,用于从外部存储器中将所述输入特征平面数据fin搬移至所述输入数据划窗控制单元,将所述卷积核参数和所述卷积偏移量搬移至所述卷积核存储控制单元。
3.根据权利要求1所述的处理器,其特征在于,所述输入数据划窗控制单元包括:
根据所述输入特征平面数据fin的长度配置第一移位寄存器链的实际移位长度;
在所述第一移位寄存器链上对所述输入特征平面数据fin进行二维重组和划窗操作,输出所述第一窗口数据;
将所述第一窗口数据分别输入至所述并行卷积与池化处理单元。
4.根据权利要求1所述的处理器,其特征在于,所述并行卷积与池化处理单元包括并行的多路卷积与池化处理模块,每个所述卷积与池化处理模块均包括矩阵乘模块、累加模块、池化处理模块、卷积核寄存器链以及偏移量寄存器Bias;
所述卷积核寄存器链,用于在卷积运算前将所述卷积核参数进行存储,并在卷积运算时将所述卷积核参数加载至所述矩阵乘模块;
所述Bias,用于在卷积运算前将所述卷积偏移量进行存储,并在卷积运算时将所述卷积偏移量加载至所述矩阵乘模块;
所述矩阵乘模块,用于对所述第一窗口数据和所述卷积核参数进行乘运算,生成乘运算结果,并将所述乘运算结果加载至所述累加模块;
所述累加模块,用于根据所述乘运算结果和所述卷积核参数生成累加结果,并将所述累加结果加载至所述池化处理模块;
所述池化处理模块,用于对所述累加结果进行池化处理,得到所述输出特征平面数据fout,并将所述输出特征平面数据fout输入至所述并行输出数据存储控制单元。
5.根据权利要求4所述的处理器,其特征在于,所述池化处理模块包括池化划窗控制模块和池化运算模块;
所述池化划窗控制模块,用于配置第二移位寄存器链的实际移位长度,在所述第二移位寄存器链上对所述累加结果进行二维重组和划窗操作,得到第二窗口数据;
池化运算模块,用于对所述第二窗口数据进行池化运算,得到所述输出特征平面数据fout。
6.根据权利要求4所述的处理器,其特征在于,所述累加模块还包括:
在卷积运算的第一次循环中,将所述乘运算结果和所述卷积核参数进行累加,生成累加中间结果;
以及,
在卷积运算的再次循环中,将所述乘运算结果和所述累加中间结果进行累加,并最终生成所述累加结果。
7.根据权利要求6所述的处理器,其特征在于,所述卷积与池化处理模块还包括数据选择器MUX模块;
所述MUX模块,用于根据算法需求,对所述卷积核参数和所述累加中间结果进行选择,并将选择的结果输入至所述累加模块参与累加运算。
8.根据权利要求1所述的处理器,其特征在于,所述并行输出数据存储控制单元包括并行的多路输出存储器,多路所述输出存储器分别与所述并行卷积与池化处理单元中的多路卷积与池化处理模块对应相连;
所述输出存储器,用于将对应的所述输出特征平面数据fout进行存储。
9.根据权利要求8所述的处理器,其特征在于,所述输出存储器为输出ping-pong存储bank。
10.一种卷积神经网络的并行处理方法,其特征在于,包括:
输入数据划窗控制单元采用可变深度移位寄存器链的方式对输入特征平面数据fin进行二维重组,输出第一窗口数据,并将所述第一窗口数据加载至并行卷积与池化处理单元;
卷积核存储控制单元将卷积核参数和卷积偏移量分别加载至所述并行卷积与池化处理单元;
所述并行卷积与池化处理单元采用并行的方式,对所述第一窗口数据、所述卷积核参数和所述偏移量进行卷积运算和池化处理,得到并行的多个输出特征平面数据fout,并将所述输出特征平面数据fout分别输入至并行输出数据存储控制单元;
所述并行输出数据存储控制单元采用并行的方式,将对应的所述输出特征平面数据fout进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810710911.1A CN109034373B (zh) | 2018-07-02 | 2018-07-02 | 卷积神经网络的并行处理器及处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810710911.1A CN109034373B (zh) | 2018-07-02 | 2018-07-02 | 卷积神经网络的并行处理器及处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109034373A CN109034373A (zh) | 2018-12-18 |
CN109034373B true CN109034373B (zh) | 2021-12-21 |
Family
ID=65521345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810710911.1A Active CN109034373B (zh) | 2018-07-02 | 2018-07-02 | 卷积神经网络的并行处理器及处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109034373B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871510B (zh) * | 2019-01-08 | 2024-01-23 | 广东浪潮大数据研究有限公司 | 二维卷积运算处理方法、***、设备及计算机存储介质 |
CN111488216B (zh) * | 2019-01-28 | 2024-04-30 | 北京灵汐科技有限公司 | 一种数据处理的方法、装置及电子设备 |
CN110516800B (zh) * | 2019-07-08 | 2022-03-04 | 山东师范大学 | 深度学习网络应用分布自组装指令处理器核、处理器、电路和处理方法 |
CN110414672B (zh) * | 2019-07-23 | 2022-11-01 | 江苏鼎速网络科技有限公司 | 卷积运算方法、装置及*** |
CN110516799A (zh) * | 2019-08-16 | 2019-11-29 | 浪潮电子信息产业股份有限公司 | 一种数据处理***、方法及介质 |
CN110674934B (zh) * | 2019-08-26 | 2023-05-09 | 陈小柏 | 一种神经网络池化层及其运算方法 |
CN110688616B (zh) * | 2019-08-26 | 2023-10-20 | 陈小柏 | 一种基于乒乓ram的条带阵列的卷积模块及其运算方法 |
CN112580675A (zh) * | 2019-09-29 | 2021-03-30 | 北京地平线机器人技术研发有限公司 | 图像处理方法及装置、计算机可读存储介质 |
CN112204606A (zh) * | 2019-10-25 | 2021-01-08 | 深圳市大疆创新科技有限公司 | 图像处理方法、设备和可移动平台 |
CN112825151A (zh) * | 2019-11-20 | 2021-05-21 | 上海商汤智能科技有限公司 | 数据处理方法、装置及设备 |
CN111027682A (zh) * | 2019-12-09 | 2020-04-17 | Oppo广东移动通信有限公司 | 神经网络处理器、电子设备及数据处理方法 |
CN111047035B (zh) * | 2019-12-09 | 2024-04-19 | Oppo广东移动通信有限公司 | 神经网络处理器、芯片和电子设备 |
CN111563580B (zh) * | 2020-04-28 | 2024-03-08 | 京东方科技集团股份有限公司 | 一种卷积神经网络实现装置及方法 |
CN111738432B (zh) * | 2020-08-10 | 2020-12-29 | 电子科技大学 | 一种支持自适应并行计算的神经网络处理电路 |
CN113570478B (zh) * | 2021-06-29 | 2023-10-31 | 中北大学 | 基于边缘计算的桥梁健康状态智能评估方法 |
CN116681114A (zh) * | 2022-02-22 | 2023-09-01 | 深圳鲲云信息科技有限公司 | 池化计算芯片、方法、加速器及*** |
CN114936633B (zh) * | 2022-06-15 | 2023-06-30 | 北京爱芯科技有限公司 | 用于转置运算的数据处理单元及图像转置运算方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036451A (zh) * | 2014-06-20 | 2014-09-10 | 深圳市腾讯计算机***有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
CN106951395A (zh) * | 2017-02-13 | 2017-07-14 | 上海客鹭信息技术有限公司 | 面向压缩卷积神经网络的并行卷积运算方法及装置 |
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
CN107836001A (zh) * | 2015-06-29 | 2018-03-23 | 微软技术许可有限责任公司 | 硬件加速器上的卷积神经网络 |
WO2018094294A1 (en) * | 2016-11-18 | 2018-05-24 | Salesforce.Com, Inc. | Spatial attention model for image captioning |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10572800B2 (en) * | 2016-02-05 | 2020-02-25 | Nec Corporation | Accelerating deep neural network training with inconsistent stochastic gradient descent |
US10339421B2 (en) * | 2017-03-30 | 2019-07-02 | Toyota Motor Engineering & Manufacturing North America, Inc. | RGB-D scene labeling with multimodal recurrent neural networks |
-
2018
- 2018-07-02 CN CN201810710911.1A patent/CN109034373B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036451A (zh) * | 2014-06-20 | 2014-09-10 | 深圳市腾讯计算机***有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
CN107836001A (zh) * | 2015-06-29 | 2018-03-23 | 微软技术许可有限责任公司 | 硬件加速器上的卷积神经网络 |
WO2018094294A1 (en) * | 2016-11-18 | 2018-05-24 | Salesforce.Com, Inc. | Spatial attention model for image captioning |
CN106951395A (zh) * | 2017-02-13 | 2017-07-14 | 上海客鹭信息技术有限公司 | 面向压缩卷积神经网络的并行卷积运算方法及装置 |
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
Non-Patent Citations (2)
Title |
---|
Maximum likelihood decoding of the partial response signal with analog parallel processing circuits of the CNN;Hongrak Son;《 2005 9th International Workshop on Cellular Neural Networks and Their Applications》;20051230;第134-137页 * |
深度神经网络并行化研究综述;朱虎明;《计算机学报》;20180119;第1-18页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109034373A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034373B (zh) | 卷积神经网络的并行处理器及处理方法 | |
CN107341547B (zh) | 一种用于执行卷积神经网络训练的装置和方法 | |
CN108304922B (zh) | 用于神经网络计算的计算设备和计算方法 | |
US20200202198A1 (en) | Neural network processor | |
US20200050453A1 (en) | Apparatus and methods for matrix multiplication | |
US11487845B2 (en) | Convolutional operation device with dimensional conversion | |
CN109324827B (zh) | 用于处理用于访问数据的指令的装置、方法和*** | |
US20180322381A1 (en) | Apparatus and method for performing a forward operation of artificil neural networks | |
CN108182471A (zh) | 一种卷积神经网络推理加速器及方法 | |
CN108170640B (zh) | 神经网络运算装置及应用其进行运算的方法 | |
KR20190126887A (ko) | 대안적인 루프 제한 | |
CN116541647A (zh) | 运算加速器、处理方法及相关设备 | |
CN110163338B (zh) | 具有运算阵列的芯片运算方法、装置、终端及芯片 | |
CN112395092B (zh) | 数据处理方法及人工智能处理器 | |
TW202123093A (zh) | 實行卷積運算的系統及方法 | |
US20220036165A1 (en) | Method and apparatus with deep learning operations | |
US11663452B2 (en) | Processor array for processing sparse binary neural networks | |
CN113673701A (zh) | 神经网络模型的运行方法、可读介质和电子设备 | |
CN108804973B (zh) | 基于深度学习的目标检测算法的硬件架构及其执行方法 | |
CN115803754A (zh) | 用于在神经网络中处理数据的硬件架构 | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
CN110377874B (zh) | 卷积运算方法及*** | |
CN111133457A (zh) | 电子设备及其控制方法 | |
CN110399976B (zh) | 计算装置和计算方法 | |
CN112712457B (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 |