CN108182471B - 一种卷积神经网络推理加速器及方法 - Google Patents
一种卷积神经网络推理加速器及方法 Download PDFInfo
- Publication number
- CN108182471B CN108182471B CN201810068051.6A CN201810068051A CN108182471B CN 108182471 B CN108182471 B CN 108182471B CN 201810068051 A CN201810068051 A CN 201810068051A CN 108182471 B CN108182471 B CN 108182471B
- Authority
- CN
- China
- Prior art keywords
- data
- convolution
- image
- image data
- buffer
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000013527 convolutional neural network Methods 0.000 title claims description 35
- 239000000872 buffer Substances 0.000 claims abstract description 91
- 230000001133 acceleration Effects 0.000 claims description 14
- 238000009825 accumulation Methods 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 10
- 230000000717 retained effect Effects 0.000 claims description 6
- 230000003139 buffering effect Effects 0.000 claims description 2
- 238000013528 artificial neural network Methods 0.000 abstract description 18
- 230000010349 pulsation Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 9
- 239000000463 material Substances 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 206010034962 Photopsia Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000011176 pooling 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/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
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/95—Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种卷积神经网络推理加速器及方法,所述加速器包括:输入图像缓存器模块,包括N个缓存器,用于载入输入图像数据,每个缓存器存储图像对应一行的数据;N*N个运算单元,连接所述输入图像缓存器模块,用于进行卷积运算,所述N*N个运算单元支持图像数据在相邻运算单元间传递的脉动形式,其连接缓存器的运算单元从缓存器中读取图像数据,剩余的运算单元从邻近的运算单元读取图像数据,本发明针对卷积神经网络带来的数据可复用性设计双向脉动阵列,提高了数据的加载效率,从而加速了卷积神经网络。
Description
技术领域
本发明涉及针对卷积神经网络的专用加速架构,特别是涉及一种用于卷积神经网络的推理阶段,加速其推理运算速度的基于双向脉动与多级流水线的卷积神经网络推理加速器及方法。
背景技术
卷积神经网络是一种前馈神经网络,常应用于图像识别,一般包括卷积层、池化层和全连接层。卷积层的卷积操作是,卷积核中的每一个权值与其对应的输入数据点对点相乘,然后将点乘结果累加,得到输出的一个数据,之后,根据卷积层的步长设定,滑动卷积核,重复上述操作。
目前,针对神经网络的加速架构很多,包括通用处理器做神经网络加速,专用ASIC加速架构,以及利用新型材料对神经网络进行加速。
Nvidia公司提出了一种基于GPU通用架构的加速器,它既支持GPU的传统运算,又加速了神经网络的计算,这一架构的优势在于可以保留原有的通用计算框架,支持cuda语言编程,对习惯于cuda编程的程序员来说,该架构易于上手,但是缺点在于为了支持通用计算,无法灵活地根据神经网络运算的特点改变原本的GPU架构,另外,这种设计为了灵活性,能耗是无可避免的,因此该架构对神经网络的加速不是最优化的。
专用ASIC加速架构多种多样,Xie Y等人提出“an instruction setarchitecture for neural networks”(International Symposium on ComputerArchitecture.IEEE Press,2016:393-405),考虑到机器学习的算法是具有专用性的,一种算法对某个数据集效果特别好,换了一个数据集后准确率可能直线下降,而投入市场的芯片,面向的应用多种多样,不可能用一种机器学习的算法就能完全解决,因此,为了能支持多种机器学习的算法,该设计分析了各种神经网络、机器学习算法的运算特点,比如,矩阵乘向量的运算、向量乘标量的运算都会出现在各类神经网络中,将运算细化到矩阵、向量这一层级,设计了一套通用于各类算法的指令集。但是该设计的指令粒度太细,导致流水线过长,在执行过程中,更可能出现阻塞,因此,该设计的架构的运算性能并不是很好。Chen Y,Luo等于“A Machine-Learning Supercomputer”(Ieee/acm International Symposium onMicroarchitecture.IEEE,2014:609-622.)中提出了一种针对神经网络的芯片,该芯片将神经网络的全部权值存储在片上,通过调度使得所需的权值可以快速被找到,解决处理器常见的数据加载的瓶颈问题。但是随着神经网络的发展,网络规模越来越大,权值信息越来越多,如果要存储所有的权值信息,那么耗费的硬件资源将不可想象,因此该架构对于存储方面,过于大方,不符合实际应用的需求。Du Z等人于“shifting vision processingcloser to the sensor”(International Symposium on Computer Architecture.ACM,2015:92-104.)中提出利用卷积神经网络的权值共享的特性,将权值整体载入静态随机存储器中,减少了访问动态随机存储器带来的内存开销,但是由于大型网络的权值太多,而静态随机存储器的容量很小,因此该设计只能应用于非常小的网络中,应用面不广。
利用新型材料对神经网络进行加速的工作也有很多,Shafiee A等人于“AConvolutional Neural Network Accelerator with In-Situ Analog Arithmetic inCrossbars”(International Symposium on Computer Architecture.IEEE Press,2016:14-26)利用了新型材料忆阻器可用于存储又可用于计算矩阵乘加的特性,实现了神经网络的前向传播过程。Song L等人于“A Pipelined ReRAM-Based Accelerator for DeepLearning”(IEEE International Symposium on High PERFORMANCE ComputerArchitecture.IEEE,2017:541-552.)同样利用了忆阻器的特性,实现了卷积神经网络的前向传播与反向传播,为后人提供了一种加速器设计的新思路,但是利用新型材料做加速器设计的工作都有一个问题,那就是新型材料由于还未投入市场,其真实性能无法考量,暂时无法应用在实际的开发中。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种卷积神经网络推理加速器及方法,以针对卷积神经网络带来的数据可复用性,设计双向脉动阵列,提高数据的加载效率,从而加速卷积神经网络。
为达上述及其它目的,本发明提出一种卷积神经网络推理加速器,包括:
输入图像缓存器模块,包括N个缓存器,用于载入输入图像数据,每个缓存器存储图像对应一行的数据;
N*N个运算单元,连接所述输入图像缓存器模块,用于进行卷积运算,于进行卷积运算时,所述N*N个运算单元支持图像数据在相邻运算单元间传递的脉动形式,其连接缓存器的运算单元从缓存器中读取图像数据,其他的运算单元从邻近的运算单元读取图像数据。
优选地,于进行卷积运算时,针对卷积运算换行,所述N*N个运算单元中的权值寄存器支持上下移动原有的权值数据,并接收其他寄存器传输过来的权值数据。
优选地,所述输入图像缓存器模块每隔k行放置一个额外的缓存器,用于在卷积运算换行前,缓存图像下一行的数据,以提高数据加载效率,并结合支持权值上下滑动的脉动阵列,可以实现高效的卷积换行操作。
优选地,将同一通道的不同卷积核横向存放在运算单元的权值寄存器中,将对应图像的不同通道的同位置的卷积核纵向存放在运算单元的权值寄存器。
优选地,所述加速器还包括多级流水线加法器,包括多个加法器,用于对每列的运算单元的输出结果进行累加。
优选地,所述加速器还包括多路选择器,用于根据控制信号,选择特定的列进行加法运算。
为达到上述目的,本发明还提供一种卷积神经网络推理加速方法,包括如下步骤:
步骤S1,将输入图像数据载入输入图像缓存器模块的多个输入图像缓存器中,同时向运算单元中的权值寄存器载入权值数据;
步骤S2,对N*N个运算单元进行卷积运算,于进行卷积运算时,所述N*N个运算单元支持图像数据在相邻运算单元间传递的脉动形式,其连接缓存器的运算单元从缓存器中读取图像数据,其他的运算单元从邻近的运算单元读取图像数据。
优选地,所述方法还包括:
当运算单元完成一次乘法后,对每一列的运算单元的输出值进行多级流水线形式累加运算。
优选地,所述方法还包括:
在进行了多级流水线形式累加运算后,根据卷积核的大小,选取特定列的累加和进一步加法运算,得到N/k个输出结果,所述卷积核大小为k*k。
优选地,所述方法还包括:
当完成了图像N/(k+1)个通道k行的卷积运算后,需要进行图像的换行操作,针对卷积运算换行,所述N*N个运算单元中的权值寄存器支持上下移动原有的权值数据,并接收其他寄存器传输过来的权值数据。
现有技术相比,本发明一种卷积神经网络推理加速器针对卷积神经网络带来的数据可复用性,设计了双向脉动阵列,以提高数据的加载效率,从而加速卷积神经网络,同时,本发明还设计了多级流水线加法器结构进行卷积加法,提高了加法效率。
附图说明
图1为本发明一种卷积神经网络推理加速器之一实施例的架构示意图;
图2a为本发明具体实施例中多卷积核对多通道图像进行卷积运算的示意图;
图2b为不同周期卷积核与图像进行卷积的示意图;
图3为本发明具体实施例中支持多级流水线的加法器示意图;
图4为本发明具体实施例中支持多种卷积核运算的多路选择器示意图;
图5a为本发明具体实施例中完成数据初始化载入后图像数据及权值数据的排布情况示意图;
图5b为本发明具体实施例中支持输入数据向左滑动示意图;
图5c为本发明具体实施例中支持权值向下滑动示意图;
图6为本发明一种卷积神经网络推理加速方法的步骤流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明一种卷积神经网络推理加速器之一实施例的架构示意图。如图1所示,本发明一种卷积神经网络推理加速器,基于双向脉动与多级流水线,包括:
输入图像缓存器模块101,包括N个缓存器,用于载入输入图像数据,每个缓存器存储图像一行的数据。
由于在动态随机存储器中,图像数据是按行顺序存储的,这意味着从动态随机存储器读取图像数据会一行行读入图像数据,但是在卷积运算中,卷积核会先对图像的前k行的k列数据(k为卷积核大小)进行卷积,而非图像的一行数据,因此本发明设计了输入图像缓存器模块,每一个缓存器存储图像一行的数据,以支持正确有效的卷积运算。
在本发明具体实施例中,假设运算单元共有N*N个,卷积核大小为k*k,则缓存器共有N个,可载入N/(k+1)个通道的图像数据。具体来说,将第一通道的前k行数据载入输入图像缓存器1,2,3…k中,将第二通道的前k行载入缓存器k+2,k+3,…2k+1中,依次类推。
较佳地,每k个缓存器预留一个额外的缓存器来存储图像第k+1行的数据,以提前缓存下一行的新的图像数据。在本发明中,卷积运算在换行时,图像数据会与换行前的图像数据有(k-1)行的数据可以复用,为了利用这一特点,因此在本发明中,每隔k行放置一个额外的缓存器,用于提前缓存下一行的新的图像数据,而可复用的(k-1)行图像数据保留在原本的缓存器中。
N*N个运算单元102,用于进行卷积运算,N*N个运算单元102针对卷积神经网络的滑动计算,支持横向相邻运算单元复用图像数据。具体地说,每个运算单元中有两个寄存器单元,分别用于存储输入图像数据和权值,以及一个乘法器,对两个寄存器中的数据进行乘法操作,其中存储输入图像数据的寄存器支持横向相邻运算单元复用图像数据的操作,权值寄存器支持上下移动权值数据的操作。
一般来说,不同的卷积核在对同一个输入图像数据进行卷积时,最直接的方法是,其所对应的运算单元都从输入图像缓存器模块中读取数据,这样做的缺点在于从缓存器中读取了重复的图像数据,增加了访问带宽,容易造成数据读取冲突。而根据图2a所示,不同的卷积核在对同一个输入图像数据进行卷积时,灰色矩形块表示的输入图像数据是可复用的,根据图2b所示,在周期1和周期2,卷积核在一张输入图像上滑动时,灰色矩形块覆盖的输入图像数据,是两次操作中可复用的数据,这都是卷积运算带来的数据可复用性,基于此,本发明设计了一种支持相邻运算单元复用图像数据的脉动形式,能支持连接缓存器的运算单元从缓存器中读取图像数据,而剩余的运算单元从邻近的运算单元读取图像数据,以此来避免从缓存器中读取大量可复用数据,同时又能实现多个卷积核同时对一张图像进行卷积运算的功能,极大地减少了访问带宽,减少数据访问冲突,提高了架构的运算性能。
较佳地,N*N个运算单元102针对卷积运算换行,支持权值上下滑动。具体地,卷积核会从图像的前k(k为卷积核大小)行开始滑动,滑到前k行的末尾后,卷积核会向下滑动一行,接着,重复上述操作。换行意味着输入图像数据与之前载入缓存器中的数据不一样了,最直接的办法是,保留运算单元的权值寄存器中的权值数据,将图像数据缓存器中的数据擦除后,重新写入新的k行的输入图像数据,但是实际上,换行后的图像数据与换行前的图像数据有(k-1)行图像数据是可复用,若可以避免写重复数据,则可以节省载入数据的时间,因此,本发明设计了支持权值上下滑动的脉动形式,为此每隔k个缓存器增加了一个空缓存器,用于存储换行后新的一行图像数据,可复用的多行图像数据保留在原本的图像数据缓存器中,同时,令运算单元中的权值寄存器支持上下移动原有的数据,并接收其他寄存器传输过来的权值数据,通过这样的改进,可以避免将图像数据缓存器中的图像数据擦除后重新写入新的k行的图像数据,节约了大量的数据加载时间。
优选地,本发明之卷积神经网络推理加速器还包括:
多级流水线加法器,包括多个加法器,用于对每列的运算单元的输出结果进行累加。由卷积运算规则可知,每列的运算单元的输出结果要进行累加运算,为提高加法效率,本发明设计了多级流水线加法器,将累加操作变为流水线形式,可有效的提高加法效率。
多路选择器,用于根据控制信号,选择特定的列进行加法运算。同一列运算单元的乘积结果累加后,需要根据卷积核大小进行进一步累加,即根据卷积核的大小决定特定的列进行加法,得到一个输出结果,因此本发明设计了多路选择器,根据控制信号,选择特定的列进行加法运算,即可支持多种卷积核的卷积运算。
以下将配合一具体实施例来进一步说明本发明:如图1所示,所述加速器其包括矩形框表示的N*N个运算单元,包括N个缓冲器的输入图像缓存器模块,每个运算单元中有两个寄存器单元,分别用于存储输入图像数据和权值,以及一个乘法器,对两个寄存器中的数据进行乘法操作,由卷积运算规则可知,每列的运算单元的输出结果要进行累加运算,如图3所示,在本发明具体实施例中,采用了多级流水线加法器对每列的运算单元的输出结果进行累加。
每列完成累加运算后,特定列还需要进行进一步加法运算,如图4所示,采用多路选择器,根据控制信号,选择特定的列进行加法运算,即可支持多种卷积核的卷积运算。
具体地,首先,将输入图像数据载入输入图像缓存器模块的多个输入图像缓存器中,假设运算单元共有N*N个,卷积核大小为k*k,则缓存器共有N个,可载入N/(k+1)个通道的图像数据。具体来说,第一通道的前k行数据载入输入图像缓存器1,2,3…k中,将第二通道的前k行载入缓存器k+2,k+3,…2k+1中,依次类推,较佳地,每k个缓存器会预留一个额外的缓存器来存储图像第k+1行的数据。
在载入图像数据时,同时向运算单元中的权值寄存器载入权值数据。在本发明具体实施例中,卷积核排布规则如图5a所示,将同一通道的不同卷积核横向存放在运算单元的权值寄存器中,将对应图像的不同通道的同位置的卷积核纵向存放在运算单元的权值寄存器中。从图5a可以看出,若横向的运算单元共有N个,则可以放置N/k个不同的卷积核,如果该卷积层的卷积核个数大于N/k个,则需要载入新的卷积核,保留原来的图像数据,重复一遍卷积运算;若纵向的运算单元共有N个,则可以放置N/(k+1)个通道的卷积核,同理,如果该图像的通道数大于N/(k+1)个,则需要载入剩余通道对应的卷积核和输入图像数据,重复一遍卷积运算。
之后,开始卷积运算,卷积运算的滑动操作由图像数据向左滑动的方式得以实现,如图5b所示,当运算单元做完一次乘法运算后,会发出控制指令,令图像数据在相邻运算单元可相互传输,图中的输入图像缓存器会将一个图像数据向左边相连的运算单元中传输,接收到图像数据的运算单元会向其左侧邻近的运算单元传输可复用的图像数据,1个周期后,只有最右侧的一列运算单元接收了缓存器中的新的图像数据,其他运算单元均在复用其右侧运算单元点乘过的图像数据,当所有运算单元都得到新的图像数据后,运算单元即可统一做乘法运算,在图中,即第一行最右侧的运算单元在某周期完成了1*9的点乘后,会接收输入图像缓存器传来的10,而1则会传输到其左侧的运算单元中,替代7的位置,而7会被传输到其左侧的单元中,依次类推。需要注意的是,由于缓存器中的图像数据只会向最右侧的运算单元传输数据,因此,图像每k行数据开始做卷积运算时,都有一小段填充运算单元的时间。在该过程中,额外的缓存器开始载入图像下一行的数据。
根据卷积运算的规则,当运算单元完成一次乘法后,每一列的运算单元的输出值在进行了图3的多级流水线形式累加运算后,会根据卷积核的大小,选取特定列的累加和进一步加法运算,如图4所示。经过图3和图4的运算后,即可得到N/k个输出结果。
当完成了图像N/(k+1)个通道k行的卷积运算后,需要进行图像的换行操作,输入图像缓存器k+1,2k+2…在之前的卷积运算时已载入图像的N/(k+1)个通道的第k+1行数据,此时,输入图像缓存器1,k+2…中的图像数据将会被清空,因为它们不会再被复用,而缓存器2,3,…,k,k+3,k+4,…,k+5,…中的图像数据将被保留。此时,为了匹配新的图像数据,权值数据要整体移动,除了最下方一行的权值数据将移动到最上方的运算单元外,其他运算单元中的权值数据均会移动到其下方相连的运算单元。如图5c所示,第一排的运算单元中的权值数据2,4,3,2,9将会替代第二排运算单元中的权值数据,而第二排的运算单元中的权值数据3,7,3,5,2将会替代第三排运算单元中的权值数据,依次类推,另外,第1行的图像数据被清空,第二行的图像数据48,39,92,38,47,33,61,81以及第三行的图像数据82,29,30,98,67,78,91,73将被保留,第四行的图像数据89,90,29,39,42,21,35已完成载入。
当图像完成换行操作后,运算单元重复如图5b所描述的滑动计算卷积和预填充下一行图像数据的操作。
图6为本发明一种卷积神经网络推理加速方法的步骤流程图。如图6所示,本发明一种卷积神经网络推理加速方法,包括如下步骤:
步骤S1,将输入图像数据载入输入图像缓存器模块的多个输入图像缓存器中,同时向运算单元中的权值寄存器载入权值数据。假设运算单元共有N*N个,卷积核大小为k*k,则输入图像缓存器共有N个,可载入N/(k+1)个通道的图像数据。具体来说,第一通道的前k行数据载入输入图像缓存器1,2,3…k中,将第二通道的前k行载入缓存器k+2,k+3,…2k+1中,依次类推,较佳地,每k个缓存器会预留一个额外的缓存器来存储图像第k+1行的数据。
步骤S2,进行卷积运算,针对卷积运算的滑动操作,支持横向相邻运算单元复用图像数据。在本发明具体实施例中,卷积运算的滑动操作由图像数据向左滑动的方式得以实现,即当运算单元做完一次乘法运算后,会发出控制指令,令图像数据在相邻运算单元可相互传输,输入图像缓存器会将一个图像数据向左边相连的运算单元中传输,接收到图像数据的运算单元会向其左侧邻近的运算单元传输可复用的图像数据,1个周期后,只有最右侧的一列运算单元接收了缓存器中的新的图像数据,其他运算单元均在复用其右侧运算单元点乘过的图像数据,当所有运算单元都得到新的图像数据后,运算单元即可统一做乘法运算。需要注意的是,由于缓存器中的图像数据只会向最右侧的运算单元传输数据,因此,图像每k行数据开始做卷积运算时,都有一小段填充运算单元的时间。在该过程中,额外的缓存器开始载入图像下一行的数据。
优选地,本发明之卷积神经网络推理加速方法还包括:
当运算单元完成一次乘法后,每一列的运算单元的输出值会进行多级流水线形式累加运算。
优选地,本发明之卷积神经网络推理加速方法还包括:
在进行了多级流水线形式累加运算后,根据卷积核的大小,选取特定列的累加和进一步加法运算,即可得到N/k个输出结果。
优选地,当完成了图像N/(k+1)个通道k行的卷积运算后,需要进行图像的换行操作,针对卷积运算换行,本发明支持权值上下滑动。具体地,输入图像缓存器k+1,2k+2…在之前的卷积运算时已载入图像的N/(k+1)个通道的第k+1行数据,此时,输入图像缓存器1,k+2…中的图像数据将会被清空,因为它们不会再被复用,而缓存器2,3,…,k,k+3,k+4,…,k+5,…中的图像数据将被保留,此时,为了匹配新的图像数据,权值数据要整体移动,除了最下方一行的权值数据将移动到最上方的运算单元外,其他运算单元中的权值数据均会移动到其下方相连的运算单元。
当图像完成换行操作后,返回步骤S2重复滑动计算卷积和预填充下一行图像数据的操作。
综上所述,本发明一种卷积神经网络推理加速器针对卷积神经网络带来的数据可复用性,设计了双向脉动阵列,以提高数据的加载效率,从而加速卷积神经网络,同时,本发明还设计了多级流水线加法器结构进行卷积加法,提高了加法效率。
与现有技术相比,本发明具有如下优点:
(1)本发明提出了双向脉动阵列的设计,其中支持权值上下滑动的设计,充分利用了图像换行时数据的可复用性,权值配合图像数据进行滚动,用最少的开销,即可实现原本需要载入很多重复数据的换行操作。
(2)本发明设计了专用的输入图像缓存器,以支持正确的卷积操作,并配备额外的图像缓存器,配合权值上下滑动的脉动阵列,共同支持图像换行,虽然有少量的硬件开销,但避免了向缓存器写入大量重复的数据,减少了数据载入时间。
(3)本发明中的多级流水线加法器和多路选择器均是为了支持多卷积核、多通道并行运算设计的,用少量的硬件资源,即可实现最大程度的并行,使本发明的架构运算性能达到最优。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (4)
1.一种卷积神经网络推理加速器,包括:
输入图像缓存器模块,包括N个缓存器,用于载入输入图像数据,每个缓存器存储图像对应一行的数据,所述输入图像缓存器模块每隔k行放置一个额外的缓存器,用于在卷积运算换行前,缓存图像下一行的数据,以提高数据加载效率;
N*N个运算单元,连接所述输入图像缓存器模块,用于进行卷积运算,于进行卷积运算时,所述N*N个运算单元支持图像数据在相邻运算单元间传递的脉动形式,其连接缓存器的运算单元从缓存器中读取图像数据,其他的运算单元从邻近的运算单元读取图像数据,在卷积运算中,各卷积核对图像的每k行数据进行卷积,而非图像的一行数据,其中,k为卷积核大小,利用图像每k行数据开始做卷积运算时填充运算单元的时间,于所述额外的缓存器载入图像k+1行的数据,并将权值通过运算单元的寄存器向下滑动到下方邻近的寄存器中,换行前的k-1行图像数据保留在原缓存器复用,从而实现高效的卷积换行操作;
多级流水线加法器,包括多个加法器,用于对每列的运算单元的输出结果进行累加;
多路选择器,用于根据控制信号,根据卷积核的大小选择特定的列进行相加。
2.如权利要求1所述的一种卷积神经网络推理加速器,其特征在于:于进行卷积运算时,针对卷积运算换行,所述N*N个运算单元中的权值寄存器支持上下移动原有的权值数据,并接收其他寄存器传输过来的权值数据。
3.如权利要求1所述的一种卷积神经网络推理加速器,其特征在于:将同一通道的不同卷积核横向存放在运算单元的权值寄存器中,将对应图像的不同通道的同位置的卷积核纵向存放在运算单元的权值寄存器。
4.一种卷积神经网络推理加速方法,包括如下步骤:
步骤S1,将输入图像数据载入输入图像缓存器模块的多个输入图像缓存器中,同时向运算单元中的权值寄存器载入权值数据;
步骤S2,对N*N个运算单元进行卷积运算,于进行卷积运算时,所述N*N个运算单元支持图像数据在相邻运算单元间传递的脉动形式,其连接缓存器的运算单元从缓存器中读取图像数据,其他的运算单元从邻近的运算单元读取图像数据,在卷积运算中,各卷积核对图像的每k行数据进行卷积,而非图像的一行数据,其中,k为卷积核大小,利用图像每k行数据开始做卷积运算时填充运算单元的时间,于所述额外的缓存器载入图像k+1行的数据,并将权值通过运算单元的寄存器向下滑动到下方邻近的寄存器中,换行前的k-1行图像数据保留在原缓存器复用,从而实现高效的卷积换行操作;
步骤S3,当运算单元完成一次乘法后,对每一列的运算单元的输出值进行多级流水线形式累加运算;
步骤S4,在进行了多级流水线形式累加运算后,根据卷积核的大小,选取特定列的累加和进一步加法运算,得到N/k个输出结果,所述卷积核大小为k*k。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810068051.6A CN108182471B (zh) | 2018-01-24 | 2018-01-24 | 一种卷积神经网络推理加速器及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810068051.6A CN108182471B (zh) | 2018-01-24 | 2018-01-24 | 一种卷积神经网络推理加速器及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108182471A CN108182471A (zh) | 2018-06-19 |
CN108182471B true CN108182471B (zh) | 2022-02-15 |
Family
ID=62551355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810068051.6A Expired - Fee Related CN108182471B (zh) | 2018-01-24 | 2018-01-24 | 一种卷积神经网络推理加速器及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108182471B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647975B (zh) * | 2018-06-27 | 2022-09-13 | 龙芯中科技术股份有限公司 | 一种数据处理方法、装置、设备以及介质 |
CN110716751B (zh) * | 2018-07-12 | 2022-10-18 | 赛灵思公司 | 高并行度计算平台、系统及计算实现方法 |
CN108984426B (zh) * | 2018-08-03 | 2021-01-26 | 北京字节跳动网络技术有限公司 | 用于处理数据的方法和装置 |
CN110826707B (zh) * | 2018-08-10 | 2023-10-31 | 北京百度网讯科技有限公司 | 应用于卷积神经网络的加速方法和硬件加速器 |
WO2020034079A1 (zh) * | 2018-08-14 | 2020-02-20 | 深圳市大疆创新科技有限公司 | 基于脉动阵列的神经网络处理装置 |
CN109255437B (zh) * | 2018-08-17 | 2019-06-14 | 郑州轻工业学院 | 一种可灵活配置的忆阻神经网络电路 |
CN109214504B (zh) * | 2018-08-24 | 2020-09-04 | 北京邮电大学深圳研究院 | 一种基于fpga的yolo网络前向推理加速器设计方法 |
CN109460817B (zh) | 2018-09-11 | 2021-08-03 | 华中科技大学 | 一种基于非易失存储器的卷积神经网络片上学习系统 |
CN109543140B (zh) * | 2018-09-20 | 2020-07-10 | 中国科学院计算技术研究所 | 一种卷积神经网络加速器 |
CN109472355B (zh) * | 2018-11-06 | 2021-01-01 | 地平线(上海)人工智能技术有限公司 | 卷积处理引擎及控制方法和相应的卷积神经网络加速器 |
CN109598335B (zh) * | 2018-12-04 | 2022-04-22 | 郑州云海信息技术有限公司 | 一种二维卷积脉动阵列结构及实现方法 |
CN109871951A (zh) * | 2019-03-06 | 2019-06-11 | 苏州浪潮智能科技有限公司 | 一种深度学习处理器及电子设备 |
CN109934339B (zh) * | 2019-03-06 | 2023-05-16 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
KR20200116268A (ko) * | 2019-04-01 | 2020-10-12 | 에스케이하이닉스 주식회사 | 버퍼 메모리, 이를 이용하는 연산 장치 및 시스템 |
CN111767994B (zh) * | 2019-04-01 | 2024-06-11 | 中国科学院半导体研究所 | 一种神经元计算装置 |
CN111832713B (zh) * | 2019-04-19 | 2024-06-18 | 北京灵汐科技有限公司 | 一种基于行缓冲Linebuffer的并行计算方法及计算设备 |
CN110059818B (zh) * | 2019-04-28 | 2021-01-08 | 山东师范大学 | 卷积核参数可配的神经卷积阵列电路核、处理器及电路 |
CN110188869B (zh) * | 2019-05-05 | 2021-08-10 | 北京中科汇成科技有限公司 | 一种基于卷积神经网络算法的集成电路加速计算的方法及系统 |
CN110348564B (zh) * | 2019-06-11 | 2021-07-09 | 中国人民解放军国防科技大学 | 基于systolic阵列的SCNN推理加速装置、处理器及计算机设备 |
CN110378469B (zh) * | 2019-07-11 | 2021-06-04 | 中国人民解放军国防科技大学 | 基于异步电路的scnn推理装置及其pe单元、处理器及计算机设备 |
CN110516801B (zh) * | 2019-08-05 | 2022-04-22 | 西安交通大学 | 一种高吞吐率的动态可重构卷积神经网络加速器 |
CN112348732B (zh) | 2019-08-08 | 2023-11-17 | 华为技术有限公司 | 基于图形渲染管线的模型推理方法、装置及存储介质 |
CN112348160B (zh) * | 2019-08-08 | 2024-04-12 | 浙江欣奕华智能科技有限公司 | 一种卷积神经网络加速方法及系统 |
CN110543934B (zh) * | 2019-08-14 | 2022-02-01 | 北京航空航天大学 | 一种用于卷积神经网络的脉动阵列计算结构及方法 |
CN110533177B (zh) * | 2019-08-22 | 2023-12-26 | 安谋科技(中国)有限公司 | 一种数据读写装置、方法、设备、介质及卷积加速器 |
CN110764602B (zh) * | 2019-10-16 | 2021-06-18 | 北京航空航天大学 | 用于降低存储开销的汇流阵列 |
CN113313228B (zh) * | 2020-02-26 | 2022-10-14 | 杭州知存智能科技有限公司 | 数据缓存电路和方法 |
US11562240B2 (en) | 2020-05-27 | 2023-01-24 | International Business Machines Corporation | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference |
CN112100118B (zh) * | 2020-08-05 | 2021-09-10 | 中科驭数(北京)科技有限公司 | 神经网络计算方法、装置和存储介质 |
CN111897579B (zh) * | 2020-08-18 | 2024-01-30 | 腾讯科技(深圳)有限公司 | 图像数据处理方法、装置、计算机设备和存储介质 |
CN112183732A (zh) * | 2020-10-22 | 2021-01-05 | 中国人民解放军国防科技大学 | 卷积神经网络加速方法、装置和计算机设备 |
CN112614043B (zh) * | 2020-12-16 | 2023-04-07 | 上海壁仞智能科技有限公司 | 用于卷积的方法、计算设备和计算机可读存储介质 |
CN113011574B (zh) * | 2021-03-22 | 2022-11-04 | 西安交通大学 | 一种卷积神经网络系统、忆阻器阵列和卷积神经网络 |
CN112801294B (zh) * | 2021-04-02 | 2022-10-04 | 福州大学 | 基于图信号处理的用于加速神经网络推理的方法 |
CN113517007B (zh) * | 2021-04-29 | 2023-07-25 | 西安交通大学 | 一种流水处理方法、系统和忆阻器阵列 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631854A (zh) * | 2015-12-16 | 2016-06-01 | 天津天地伟业数码科技有限公司 | 一种基于fpga平台的自适应图像清晰度评价算法 |
WO2016186811A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Computing convolutions using a neural network processor |
CN106250103A (zh) * | 2016-08-04 | 2016-12-21 | 东南大学 | 一种卷积神经网络循环卷积计算数据重用的系统 |
CN106951395A (zh) * | 2017-02-13 | 2017-07-14 | 上海客鹭信息技术有限公司 | 面向压缩卷积神经网络的并行卷积运算方法及装置 |
CN107533667A (zh) * | 2015-05-21 | 2018-01-02 | 谷歌公司 | 神经网络处理器中的向量计算单元 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0694854B1 (en) * | 1994-07-28 | 2002-06-05 | International Business Machines Corporation | Improved neural semiconductor chip architectures and neural networks incorporated therein |
CN100510836C (zh) * | 2007-05-11 | 2009-07-08 | 中国科学院光电技术研究所 | 用于自适应光学系统波前控制运算的脉动阵列处理电路 |
EP3035204B1 (en) * | 2014-12-19 | 2018-08-15 | Intel Corporation | Storage device and method for performing convolution operations |
CN104915322B (zh) * | 2015-06-09 | 2018-05-01 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法 |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN106127297B (zh) * | 2016-06-02 | 2019-07-12 | 中国科学院自动化研究所 | 基于张量分解的深度卷积神经网络的加速与压缩方法 |
US10546211B2 (en) * | 2016-07-01 | 2020-01-28 | Google Llc | Convolutional neural network on programmable two dimensional image processor |
CN106875011B (zh) * | 2017-01-12 | 2020-04-17 | 南京风兴科技有限公司 | 二值权重卷积神经网络加速器的硬件架构及其计算流程 |
CN107292388A (zh) * | 2017-06-27 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种基于神经网络的热点数据的预测方法及系统 |
CN107491416B (zh) * | 2017-08-31 | 2020-10-23 | 中国人民解放军信息工程大学 | 适用于任意维数卷积需求的可重构计算结构及计算调度方法和装置 |
-
2018
- 2018-01-24 CN CN201810068051.6A patent/CN108182471B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016186811A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Computing convolutions using a neural network processor |
CN107533667A (zh) * | 2015-05-21 | 2018-01-02 | 谷歌公司 | 神经网络处理器中的向量计算单元 |
CN105631854A (zh) * | 2015-12-16 | 2016-06-01 | 天津天地伟业数码科技有限公司 | 一种基于fpga平台的自适应图像清晰度评价算法 |
CN106250103A (zh) * | 2016-08-04 | 2016-12-21 | 东南大学 | 一种卷积神经网络循环卷积计算数据重用的系统 |
CN106951395A (zh) * | 2017-02-13 | 2017-07-14 | 上海客鹭信息技术有限公司 | 面向压缩卷积神经网络的并行卷积运算方法及装置 |
Non-Patent Citations (1)
Title |
---|
Automated systolic array architecture synthesis for high throughput CNN inference on FPGAs;Xuechao Wei et al;《2017 54th ACM/EDAC/IEEE Design Automation Conference (DAC)》;20170622;第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108182471A (zh) | 2018-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108182471B (zh) | 一种卷积神经网络推理加速器及方法 | |
CN112840356B (zh) | 运算加速器、处理方法及相关设备 | |
JP7329533B2 (ja) | 演算を加速するための方法および加速器装置 | |
US10592241B2 (en) | Apparatus and methods for matrix multiplication | |
CN109034373B (zh) | 卷积神经网络的并行处理器及处理方法 | |
CN106228238B (zh) | 现场可编程门阵列平台上加速深度学习算法的方法和系统 | |
CN111897579B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
JP2021521516A (ja) | 演算を加速するための加速器及びシステム | |
CN111047036B (zh) | 神经网络处理器、芯片和电子设备 | |
CN112395092B (zh) | 数据处理方法及人工智能处理器 | |
CN110580519B (zh) | 一种卷积运算装置及其方法 | |
CN113807509A (zh) | 神经网络加速装置、方法和通信设备 | |
CN110991619A (zh) | 神经网络处理器、芯片和电子设备 | |
CN111639701B (zh) | 一种图像特征提取的方法、系统、设备及可读存储介质 | |
CN112991142A (zh) | 图像数据的矩阵运算方法、装置、设备及存储介质 | |
US11669733B2 (en) | Processing unit and method for computing a convolution using a hardware-implemented spiral algorithm | |
CN110377874B (zh) | 卷积运算方法及系统 | |
CN112712457B (zh) | 数据处理方法以及人工智能处理器 | |
JP6906622B2 (ja) | 演算回路および演算方法 | |
CN115860080A (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
CN113627587A (zh) | 一种多通道式卷积神经网络加速方法及装置 | |
CN114912596A (zh) | 面向稀疏卷积神经网络的多chiplet系统及其方法 | |
CN110751263B (zh) | 一种高并行度的卷积运算取数方法和电路 | |
CN111340224A (zh) | 适用于低资源嵌入式芯片的cnn网络的加速设计方法 | |
CN114626517B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220215 |