CN113435586B - 用于卷积神经网络的卷积运算装置、系统和图像处理装置 - Google Patents
用于卷积神经网络的卷积运算装置、系统和图像处理装置 Download PDFInfo
- Publication number
- CN113435586B CN113435586B CN202110883251.9A CN202110883251A CN113435586B CN 113435586 B CN113435586 B CN 113435586B CN 202110883251 A CN202110883251 A CN 202110883251A CN 113435586 B CN113435586 B CN 113435586B
- Authority
- CN
- China
- Prior art keywords
- matrix
- convolution
- convolved
- enabling
- convolution kernel
- 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
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本申请公开一种用于卷积神经网络的卷积运算装置,包括使能矩阵获取模块、使能矩阵控制器、待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块。使能矩阵获取模块分别将待卷积矩阵X与卷积核矩阵W的非零元素值都设置为第一预设值,以获取待卷积使能矩阵X′和卷积核使能矩阵W′。使能矩阵控制器、待卷积矩阵控制器和卷积核矩阵控制器依次将待卷积矩阵X与卷积核矩阵W的元素发送给卷积运算模块。卷积运算模块只有当待卷积使能矩阵X′和卷积核使能矩阵W′的元素的值都为第一预设值时,才对待卷积矩阵X和卷积核矩阵W中对应的元素进行乘法运算。由于在卷积运算过程中只对非零的元素进行乘法运算,减少了硬件负荷,并和提高了卷积运算速度。
Description
技术领域
本发明涉及图像处理技术领域,具体涉及一种用于卷积神经网络的卷积运算装置、系统和图像处理装置。
背景技术
随着基于神经网络的人工智能解决方案的需求越来越多,在一些移动平台如无人机、机器人等都应用卷积神经网络构建,这些都正在深刻的改变人类的生产、生活方式。而对应在卷积神经网络专用硬件设计研究方面,已有基于CPU、GPU、FPGA、ASIC和RRAM等新型器件的实现方式。从云端到边缘设备端,不同应用场景对卷积神经网络的计算能力提出了不同的需求,再加上卷积神经网络的结构多样、数据量大、计算量大,也给硬件实现神经网络算法设计提出了巨大挑战。例如,基于猫脑视觉皮层神经细胞工作机制构建的带独特感受野结构的卷积神经网络在视觉应用领域取得了巨大的成功,比如CNN在大型的图片分类数据集ImageNet上取得了超过人眼的识别正确率。但是这种强大的算法在走向实际应用的过程中碰到很大的障碍,这是因为CNN能有用武之地的真实世界应用很多都是在计算资源少的边缘设备上实现,如带AI能力的智能手机和智慧安防摄像头,而如今最为出名的CNN网络ResNet-50,它由50层基本结构堆叠而成,每层基本结构包含大量的卷积运算,这样的计算密集型算法如果不加以改造或者不针对其特点设计专门的加速硬件,直接在边缘设备的CPU上实现,难以满足很多应用对实时性的要求。
要真正让卷积神经网络在边缘设备运行起来,目前有两种途径达到这个目的。一种途径就是对网络进行轻量化改造,让它的网络结构更简单,运算量更少,比如模型压缩技术中的剪枝技术,参数量化技术中的二值网络XNOR-Net和改变卷积方式的轻型网络MobileNet等。另一种途径就是针对卷积神经网络的运算特点设计专门的芯片来对它进行硬件加速,由于卷积神经网络中的卷积运算占据了90%以上的计算量,所以一般是精心设计针对卷积过程进行加速的硬件结构。如何设计硬件以让卷积计算的更快,一般是从以下三个方面着手去考虑,一是让卷积运算包含的乘法和加法运算数量更少以让运算更快地完成,二是数据传输带宽更大以更快的获取到卷积运算需要的操作数,三是精心设计数据重用机制以求能够在低传输带宽下也能快速计算完卷积。
综上所述,基于现有的电路计算资源如何加速卷积运算的运算速度是卷积神经网络加速器的热点研发方向。
发明内容
本申请提供了一种用于卷积神经网络卷积运算的加速方法,以提高卷积神经网络在边缘设备上的运行速度。
根据第一方面,一种实施例中提供一种用于卷积神经网络的卷积运算装置,用于对待卷积矩阵X与卷积核矩阵W进行卷积计算以获取卷积结果矩阵P,所述卷积运算装置包括使能矩阵获取模块、使能矩阵控制器、待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块;
所述使能矩阵获取模块用于获取待卷积使能矩阵X′和卷积核使能矩阵W′;所述待卷积使能矩阵X′和卷积核使能矩阵W′分别为将待卷积矩阵X与卷积核矩阵W的非零元素值都设置为一非零的第一预设值的矩阵;
所述卷积核矩阵控制器按卷积运算顺序依次将卷积核矩阵W的元素发送给所述卷积运算模块;所述使能矩阵控制器用于依据发送给所述卷积运算模块的卷积核矩阵W元素的矩阵位置信息,将对应的卷积核使能矩阵W′的元素发送给所述卷积运算模块;
所述待卷积矩阵控制器按卷积运算顺序依次将待卷积矩阵X的元素发送给所述卷积运算模块;所述使能矩阵控制器还用于依据将发送给所述卷积运算模块的待卷积矩阵X元素矩阵位置信息,将对应的待卷积使能矩阵X′的元素发送给所述卷积运算模块;
所述卷积运算模块用于对待卷积矩阵X和卷积核矩阵W进行卷积运算以获取卷积结果矩阵P;当所述卷积运算模块对待卷积矩阵X和卷积核矩阵W的元素进行乘法运算时,先获取待乘法运算的待卷积矩阵X和卷积核矩阵W的元素所对应的待卷积使能矩阵X′和卷积核使能矩阵W′的元素,只有当获取的待卷积使能矩阵X′和卷积核使能矩阵W′的元素的值都为所述第一预设值时,再对待卷积矩阵X和卷积核矩阵W的元素进行乘法运算。
根据第二方面,一种实施例中提供一种用于卷积神经网络的卷积运算系统,用于对待卷积矩阵M(i,j)与卷积核矩阵W(p,k)进行卷积计算以获取卷积结果矩阵P(q,l),包括卷积核获取模块、卷积矩阵分割模块和第一方面所述的卷积运算装置;
所述卷积核获取模块用于获取卷积核矩阵W(p,k),还用于依据卷积核矩阵W(p,k)获取卷积核编码矩阵W",并将卷积核矩阵W(p,k)和卷积核编码矩阵W"发送给所述卷积运算装置;
所述卷积矩阵分割模块用于将待卷积矩阵M(i,j)分割成n个待卷积子矩阵待卷积子矩阵X(i,j);所述卷积矩阵分割模块用于依据预设卷积顺序依次将n个待卷积子矩阵X(i,j)发送给所述卷积运算装置;待卷积子矩阵X(i,j)为正方矩阵,且待卷积子矩阵X(i,j)的行数和列数分别不小于卷积核矩阵W(p,k)的行数和列数;
所述卷积运算装置用于将n个待卷积子矩阵X(i,j)分别与卷积核矩阵W(p,k)依次进行卷积运算,并依据n个卷积运算结果获取卷积结果矩阵P(q,l);其中,n、i、j、p、k、q 和l是自然数。
根据第三方面,一种实施例中提供一种图像处理装置,用于边缘设备对图像数据的卷积运算,包括图像获取设备、图像存储器和如第三方面所述的卷积运算系统;
所述图像获取设备用于采集图像数据,并将所述采集图像数据发送给所述图像存储器;
所述卷积运算系统用于从所述图像存储器获取所述图像数据,并应用卷积神经网络对图像数据进行卷积运算。
依据上述实施例的一种用于卷积神经网络的卷积运算装置,包括使能矩阵获取模块、使能矩阵控制器、待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块。使能矩阵获取模块分别将待卷积矩阵X与卷积核矩阵W的非零元素值都设置为第一预设值,以获取待卷积使能矩阵X′和卷积核使能矩阵W′。使能矩阵控制器、待卷积矩阵控制器和卷积核矩阵控制器依次将待卷积矩阵X与卷积核矩阵W的元素发送给卷积运算模块。卷积运算模块只有当待卷积使能矩阵X′和卷积核使能矩阵W′的元素的值都为第一预设值时,才对待卷积矩阵X和卷积核矩阵W中对应的元素进行乘法运算。由于在卷积运算过程中只对非零的元素进行乘法运算,减少了硬件负荷,并和提高了卷积运算速度。
附图说明
图1为一种卷积神经网络的结构图;
图2为一种卷积运算示意图;
图3为一种卷积神经网络的卷积运算的示意图;
图4为一种三维矩阵卷积运算的示意图;
图5为一种实施例中卷积运算装置的结构示意图;
图6为一种实施例中使能矩阵获取模块的结构示意图;
图7为一种实施例中使能矩阵获取流程示意图;
图8为一种实施例中卷积运算模块的结构示意图;
图9为一种实施例中卷积乘加器的结构示意图;
图10为一种实施例中卷积运算系统的结构示意图;
图11为一种实施例中卷积矩阵分割模块的矩阵分割示意图;
图12为另一种实施例中图像处理装置的结构示意图;
图13为一种实施例中卷积乘加器的存储与计算方法示意图;
图14为一种实施例中脉动阵列计算单元的结构示意图;
图15为一种实施例中脉动阵列计算单元的计算流程示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
卷积神经网络是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,一般可以分为输入层、隐藏层和输出层,隐藏层又可分为卷积层和采样层。下面用一个具体的实例讲解下卷积神经网络的结构,请参考图1,为一种卷积神经网络的结构图。该卷积神经网络输入的是一张a*a分辨率的图像,例如28*28分辨率的图像。卷积层C1用M个n*n的卷积核对上述图像做卷积运算,获得M个b*b分辨率的图像,一般还会加偏置和激活的操作,便于理解卷积神经网络的结构省略了这两个步骤。采样层S2对卷积层C1获得的M个 b *b分辨率的图像进行采样操作获得M个 (b /2)*( b /2)分辨率的图像。卷积层C3用12个5*5的卷积核对采样层S2获得6个12*12分辨率的图像进行卷积运算,获得12个8*8分辨率的图像。采样层S3对卷积层C3获得的12个8*8分辨率的图像进行采样操作获得12个4*4分辨率的图像。输出层是对采样层S3获得的12个4*4分辨率的图像进行全连接输出,得到图像的12个特征信息。从上述例子中卷积神经网络采用两个卷积层,并且输出层的全连接输出也是一种特殊的卷积运算,所以卷积计算是卷积神经网络的运算的核心。
随着移动设备和物联网的发展,将卷积神经网络应用于这些有限硬件资源的设备成为一种发展趋势,其应用场景要求低延时,低带宽,低功耗。然而,卷积神经网络具有高密度计算和高密度存储的特点,这限制了卷积神经网络的广泛应用。卷积神经网络自有稀疏性:对于特征值(act_in),线性整流函数(Rectified Linear Unit, ReLU)将负特征值置0,使特征值变稀疏;对于权重(weight),浮点型的权重值量化到8位甚至更少位的整型,使得许多weight变为0。甚至,通过剪枝技术,将一些不重要的weight直接置为0,再重训练卷积神经网络恢复准确度,在极小甚至没有准确度下降的代价下,极大增加卷积神经网络的稀疏度,极大减少参数量,减少计算和存储量。已经有许多定制的利用稀疏性的卷积神经网络硬件加速器,但是面临许多问题,首先,不同的卷积神经网络有不同的稀疏度,即使同一个神经网络,不同层的稀疏度也有很大的差异,尤其是特征值和权重这两种数据类型差异也很大,而且特征值的稀疏度与实际输入有关。
请参考图2,为一种卷积运算示意图,Xij为待卷积矩阵的元素,Wij为卷积核矩阵的元素,Yij为特征矩阵的元素。待卷积矩阵X与卷积核矩阵W卷积计算后获取特征矩阵Y。如图2所示,表示一个3×3卷积核与6×6的输入特征图进行卷积以获得4×4输出特征图的过程。卷积核中的9个值分别乘以输入特征图中的相应值,然后将获得的9个积求和作为输出特征图的一个元素。为了获得下一个输出特征图的元素,卷积窗口要在输入特征图上按一定的步长滑动,以重复求积取和的操作,最终获得完整的输出特征图。
请参考图3,为一种卷积神经网络的卷积运算的示意图;输入特征图像数据201可包含D个通道,且每一通道的输入特征图像数据可具有为H的列大小及为W的行大小(其中D、H及W为自然数)的元素。卷积核数据202中的每一组数据可具有为R的列大小及为S的行大小的元素,且卷积核数据202可包含数目与输入特征图像数据201的通道数目D(或深度)相同且相对应,其中R及S是自然数。输出特征图像数据203可通过输入特征图像数据201与卷积核数据202之间的三维卷积运算而被产生,且根据三维卷积运算可包含Y个通道,每个通过用于获取不同的图像特征。
请参考图4,为一种三维矩阵卷积运算的示意图,用于示意三维矩阵卷积运算矢量方向单一通道的卷积运算,包括输入图像数据X(i,j,k)、卷积核数据W(i,j,k)和输出特征图像数据P(i,j),其中,i,j和k为自然数,用于表示元素的位置,D表示矩阵宽方向,H表示矩阵高方向,L表示矩阵矢量方向。其中,输入图像数据X(i,j,k)和卷积核数据W(i,j,k)的矢量方向的层数相同,输出特征图像数据P(i,j)任意元素是矢量方向的输入图像数据X(i,j,k)和卷积核数据W(i,j,k)相应各层元素的积的累加,例如,输入图像数据X(1,1,k)和卷积核数据W(1,1,k)矢量方向的卷积运算是X(1,1,1)* W(1,1,1)+ X(1,1,2)* W(1,1,2)+…+X(1,1,k)* W(1,1,k)。
本申请实施例中公开的卷积运算装置,包括使能矩阵获取模块、使能矩阵控制器、待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块。使能矩阵获取模块分别将待卷积矩阵X与卷积核矩阵W的非零元素值都设置为第一预设值,以获取待卷积使能矩阵X′和卷积核使能矩阵W′。使能矩阵控制器、待卷积矩阵控制器和卷积核矩阵控制器依次将待卷积矩阵X与卷积核矩阵W的元素发送给卷积运算模块。卷积运算模块只有当待卷积使能矩阵X′和卷积核使能矩阵W′的元素的值都为第一预设值时,才对对应的待卷积矩阵X和卷积核矩阵W的元素进行乘法运算。由于在卷积运算过程中只对非零的元素进行乘法运算,减少了硬件负荷,并和提高了卷积运算速度。
实施例一
请参考图5,为一种实施例中卷积运算装置的结构示意图,卷积运算装置用于对待卷积矩阵X与卷积核矩阵W进行卷积计算以获取卷积结果矩阵P,包括使能矩阵获取模块1、使能矩阵控制器2、待卷积矩阵控制器3、卷积核矩阵控制器4、卷积运算模块5和卷积结果矩阵获取模块6。使能矩阵获取模块1用于获取待卷积使能矩阵X′和卷积核使能矩阵W′。其中,待卷积使能矩阵X′为将待卷积矩阵X的非零元素值都设置为一非零的第一预设值的矩阵,卷积核使能矩阵W′为将卷积核矩阵W的非零元素值都设置为一非零的第一预设值的矩阵。卷积核矩阵控制器3按卷积运算顺序依次将卷积核矩阵W的元素发送给卷积运算模块5,使能矩阵控制器2用于依据发送给卷积运算模块5的卷积核矩阵W元素的矩阵位置信息,将对应的卷积核使能矩阵W′的元素发送给卷积运算模块5。待卷积矩阵控制器4按卷积运算顺序依次将待卷积矩阵X的元素发送给卷积运算模块5,使能矩阵控制器2还用于依据将发送给卷积运算模块5的待卷积矩阵X元素矩阵位置信息,将对应的待卷积使能矩阵X′的元素发送给卷积运算模块5。卷积运算模块5用于对待卷积矩阵X和卷积核矩阵W进行卷积运算以获取卷积结果矩阵P。当卷积运算模块5对待卷积矩阵X和卷积核矩阵W的元素进行乘法运算时,先获取待乘法运算的待卷积矩阵X和卷积核矩阵W的元素所对应的待卷积使能矩阵X′和卷积核使能矩阵W′的元素,只有当获取的待卷积使能矩阵X′和卷积核使能矩阵W′的元素的值都为第一预设值时,再对待卷积矩阵X和卷积核矩阵W的元素进行乘法运算。卷积结果矩阵获取模块6用于获取卷积运算模块5输出的卷积运算结果,并依据卷积运算结果卷积结果矩阵P。
请参考图6,为一种实施例中使能矩阵获取模块的结构示意图,一实施例中,使能矩阵获取模块1包括矩阵编码模块11、编码存储模块12和矩阵还原模块13。矩阵编码模块11用于对待卷积矩阵X中元素值为零的元素进行编码,以获取待卷积编码矩阵X",待卷积编码矩阵X"用于记录待卷积矩阵X中每个元素值为零的元素的位置信息。矩阵编码模块11还用于对卷积核矩阵W中元素值为零的元素进行编码以获取卷积核编码矩阵W",卷积核编码矩阵W"用于记录卷积核矩阵W中每个元素值为零的元素的位置信息。编码存储模块12用于存储待卷积编码矩阵X"和卷积核编码矩阵W"。矩阵还原模块13用于依据待卷积编码矩阵X"获取待卷积使能矩阵X′。矩阵还原模块13还用于依据卷积核编码矩阵W"获取卷积核使能矩阵W′。一实施例中,矩阵编码模块11的编码方式包括游程编码方式、行压缩格式编码、列压缩格式编码或稀疏矩阵压缩存储编码方式。
请参考图7,为一种实施例中使能矩阵获取流程示意图,以待卷积矩阵X或卷积核矩阵W为例。首先,按行对图像执行行程长度编码,同一行中不连通的零可以构成一个零块。零块最多有N个零(N为列数,这里为9,最少有1个零),一行中最多零块数M为,其中,当N为奇数时,M=(N+1)÷2,当N为偶数时,M=N÷2。在此例中最多有5个零块,每个零块中有1个零。以第4行为例,编码后为(40372),“4”表示第4行,4以后的第一对数“03”表示第一个零块始于第0列,有3个零,第二对数“72”表示第二个零块始于第7列,有2个零。在卷积运算模块进行卷积计算时,可先对卷积核矩阵W都进行编码,以获取卷积核编码矩阵W",并分别存入使能矩阵缓存区,再依据卷积运算次序依次还原卷积核使能矩阵W′的元素,当该卷积核矩阵W的元素完成所有卷积运算时,再转换下一个卷积核矩阵W。同理,可一次性编码多个预设数量的卷积编码矩阵X", 在依据卷积运算顺序依次还原出卷积使能矩阵X′的元素。一实施例中,卷积使能矩阵X′是依据卷积顺序依次被还原,卷积核使能矩阵W′是预先还原好的,因为卷积核使能矩阵W′在卷积运算中更改的概率低,可以是随着已训练好的卷积权重数据一同从卷积运算模块的片外存储器读入。
请参考图8,为一种实施例中卷积运算模块的结构示意图,卷积运算模块包括待卷积矩阵缓存器51、卷积核矩阵缓存器53、待卷积使能矩阵缓存器54、卷积核使能矩阵缓存器52和卷积乘加器55。矩阵编码模块包括零值检测器111。待卷积矩阵缓存器51用于缓存待卷积矩阵X,并将待卷积矩阵X的元素按预设的卷积顺序依次发送给卷积乘加器55。卷积核矩阵缓存器53用于缓存卷积核矩阵W,并将卷积核矩阵W的元素按预设的卷积顺序依次发送给卷积乘加器55。零值检测器111用于依据待卷积矩阵缓存器51缓存的待卷积矩阵X获取待卷积编码矩阵X",并将待卷积编码矩阵X"发送给编码存储模块。矩阵还原模块用于依据待卷积编码矩阵X"获取待卷积使能矩阵X′,并将待卷积使能矩阵X′发送给待卷积使能矩阵缓存器54。待卷积使能矩阵缓存器55用于缓存待卷积使能矩阵X′,并将待卷积使能矩阵X′的元素按预设的卷积顺序依次发送给卷积乘加器55。卷积核使能矩阵缓存器52用于缓存卷积核使能矩阵W′,并将卷积核使能矩阵W′的元素按预设的卷积顺序依次发送给卷积乘加器55。卷积乘加器55用于对待卷积矩阵X和卷积核矩阵W的元素进行卷积乘加运算,以获取卷积乘加运算结果。卷积乘加器55在对待卷积矩阵X和卷积核矩阵W的元素进行乘法运算时,先获取待乘法运算的待卷积矩阵X和卷积核矩阵W的元素所对应的待卷积使能矩阵X′和卷积核使能矩阵W′的元素,只有当获取的待卷积使能矩阵X′和卷积核使能矩阵W′的元素的值都为第一预设值,再对待卷积矩阵X和卷积核矩阵W的元素进行乘法运算。一实施例中,第一预设值为1。一实施例中,卷积运算模块还包括片内缓存器50,用于缓存待卷积矩阵X、卷积核矩阵W和卷积核使能矩阵W′。一实施例中,卷积运算装置还包括数据传输接口7,用于使能矩阵获取模块、使能矩阵控制器、待卷积矩阵控制器、卷积核矩阵控制器、卷积运算模块和卷积结果矩阵获取模块之间的数据传输。
一实施例中,卷积运算模块还包括乘加结果输出单元56、激活单元57、池化单元58和卷积运算结果输出单元59。乘加结果输出单元59用于将卷积乘加器输出的卷积乘加运算结果与一预设的全局偏置值相加的和输出给激活单元57。激活单元57用于获取卷积乘加运算结果与全局偏置值相加的和为正数还是负数。池化单元58用对卷积结果矩阵P进行池化。卷积运算结果输出单元用于输出池化后的卷积结果矩阵P。片内缓存器50还用于缓存全局偏置值和池化后的卷积结果矩阵P。数据传输接口7还用于全局偏置值的传输和池化后的卷积结果矩阵P的数据传输。
请参考图9,为一种实施例中卷积乘加器的结构示意图,一实施例中,卷积乘加器55包括至少一个乘加单元551。乘加单元551包括至少一个脉动阵列计算单元。
请参考图10,为一种实施例中卷积运算系统的结构示意图,在本申请一实施例中,还公开一种用于卷积神经网络的卷积运算系统,用于对待卷积矩阵M(i,j)与卷积核矩阵W(p,k)进行卷积计算以获取卷积结果矩阵P(q,l)。该卷积运算系统包括卷积核获取模块10、卷积矩阵分割模块20和如上所述的卷积运算装置30。卷积核获取模块10用于获取卷积核矩阵W(p,k),还用于依据卷积核矩阵W(p,k)获取卷积核编码矩阵W",并将卷积核矩阵W(p,k)和卷积核编码矩阵W"发送给卷积运算装置30。卷积矩阵分割模块20用于将待卷积矩阵M(i,j)分割成n个待卷积子矩阵待卷积子矩阵X(i,j)。卷积矩阵分割模块20用于依据预设卷积顺序依次将n个待卷积子矩阵X(i,j)发送给卷积运算装置30。其中,待卷积子矩阵X(i,j)为正方矩阵,且待卷积子矩阵X(i,j)的行数和列数分别不小于卷积核矩阵W(p,k)的行数和列数。卷积运算装置30用于将n个待卷积子矩阵X(i,j)分别与卷积核矩阵W(p,k)依次进行卷积运算,并依据n个卷积运算结果获取卷积结果矩阵P(q,l),n、i、j、p、k、q 和l是自然数。
请参考图11,为一种实施例中卷积矩阵分割模块的矩阵分割示意图,卷积矩阵分割模块先获取输入特征图(即待卷积矩阵M),再分割输入特征图。卷积矩阵分割模块分割方法包括:
根据输入特征图大小,计算分割参数tc和ts,根据分割参数将输入特征图分割为大小为ts×ts×tc的若干个小3D切块,再根据输入特征图大小来计算分割参数tc和ts时,可以预先建立特征图大小与分割参数tc和ts的模型函数,将特征图大小输入模型函数,得到对应分割参数tc和ts。例如,输入特征图的尺寸为S×S×C,卷积核尺寸为k,行或列维度上的分割次数为p,那么ts=(S+2p+k-1)/(p+1)。从长宽方向,根据ts,可将输入特征图分割为大小为ts×ts×C的(p+1)2个大3D切块。再从深度方向,根据tc将每个大3D切块分割为C/tc个小3D切块,小3D切块的深度为tc,在卷积运算系统的设计中, tc个脉动阵列计算单元组成一个乘加单元,共同承担C/tc个小3D切块的计算任务,每个小3D切块由tc个2D切块组成,每个乘加单元承担C/tc个2D切块的计算任务。第一个脉动阵列计算单元两次使能间需要f(tc,ts,k)个时钟,而一个乘加单元计算完一个2D切块需要g(ts,k)个时钟,乘加单元处于空闲的时间为T,T=f(tc,ts,k)-g(ts,k)。确定卷积核尺寸后,通过求取函数T的最小值,可以得到对应的分割参数tc和ts。图11表示,先从长宽方向将特征图分割为16个3D大切块,再从深度方向将每个3D大切块分割为C/tc个3D小切块。其中Ti(1,1)表示第一个2D切块,实际上代表了ts×ts个数据,其他坐标同理。
请参考图12,为另一种实施例中图像处理装置的结构示意图,本申请一实施例还公开了一种图像处理装置,用于边缘设备对图像数据的卷积运算,该图像处理装置包括图像获取设备100、图像存储器200和如上所述的卷积运算系统300。图像获取设备100用于采集图像数据,并将采集图像数据发送给图像存储器200存储。卷积运算系统300用于从图像存储器200获取图像数据,并应用卷积神经网络对图像数据进行卷积运算。一实施例中,卷积运算系统还包括卷积运算装置310、卷积核获取模块320和使能矩阵获取模块330。卷积核获取模块320用于将预识别的特征图像输入到一预设的数学模型中,以获取卷积核矩阵W。一实施例中,图像处理装置还包括边缘设备控制模块400和网络输出端口500。边缘设备控制模块400分别与网络输出端口500和卷积运算系统300连接,边缘设备控制模块400用于通过网络输出端口500将卷积运算系统300获取的卷积运算结果发送给一云端。一实施例中,边缘设备控制模块400为基于RISC-V指令集的BOOM开源处理器,图像获取设备100为图像传感器,作为输入图像采集设备,采集到图像后存入片外的图像存储器200中。多级多带宽存储结构包括卷积运算装置310中的寄存器堆栈、片上L1级缓存和L2级缓存,L1级缓存采用大带宽存储器存储中间数据,采用小带宽存储器存储最终数据。一实施例中,图像处理装置还包括调试接口600,用于系统的调试与控制器程序修改。一实施例中,图像处理装置还包括指令输入接口700,负责将需要的指令传入边缘设备控制模块400。网络输出端口500用于多个系统之间、系统与网关之间的信息交互。指令的数据流是二进制形式,使用前根据RISC-V指令集格式由高层次语言编译得到,系统开始工作时,BOOM开源处理器逐条读取指令,控制图像传感器获取图像数据并存入片外图像存储器200,同时控制卷积运算装置300进行卷积神经网络的推理运算加速。数据经过两级缓存到达卷积运算装置300的寄存器堆栈,其中图像数据会经过使能矩阵获取模块330,检测零值数据并生成行程长度编码和使能矩阵,存回L1级缓存,用于发送给卷积运算装置300进行卷积计算。
如图8所示,LIB Group表示待卷积矩阵缓存器51,一实施例中,LIB表示被分割后的局部图像集群,即待卷积矩阵X的部分元素,其中包含tc个LIB。LIEB Group表示待卷积使能矩阵缓存器,作为局部图像使能矩阵的缓存,即对应待卷积矩阵缓存器存储的待卷积矩阵X部分元素的待卷积使能矩阵X′的部分元素,其中包含tc个LIEB。LPB Group表示乘加结果输出单元,用于获取局部卷积运算的和,其中包含tm个LPB。LWB Group表示卷积核矩阵缓存器,作为局部权重缓存集,以用于缓存卷积核矩阵W的元素,其中包含tm个LWB。LWEBGroup表示卷积核使能矩阵缓存器,缓存局部权重使能矩阵的值,即缓存卷积核使能矩阵W′的元素,其中包含tm个LWEB。LOB Group表示卷积运算结果输出单元,用于获取池化后的卷积运算结果,其中包含tm个LOB。GIB表示全局图像缓存(缓存全部待卷积矩阵X的元素),GWB表示全局权重缓存(缓存全部卷积核矩阵W的元素),GWEB表示全局权重使能编码缓存,用于缓存全部卷积核编码矩阵W"的元素,GBB表示全局偏置缓存,GOB表示全局输出缓存。图像传感器将调理后的图像数据存入DRAM,同时DRAM中还存有已训练好的卷积核权重数据和每一层的偏置数据。DRAM通过异步先入先出存储器A、异步先入先出存储器B、异步先入先出存储器C与L2级缓存交换数据,将图像数据、权重数据、全局权重使能编码数据、偏置数据分别传入L2级缓存中的GIB、GWB、GWEB、GBB。根据实例一所述方法,GIB通过全局广播的形式将输入图像发给tc个LIB,同时附带发送一个特征值,每个LIB都有对应的特征值,只有特征值符合的LIB才可以接收数据。LIB中的图像数据经过使能生成器检测零值数据并生成行程长度编码和使能矩阵,存入LIEB Group,其中,编码存放在编码缓存区,使能矩阵存放在使能矩阵缓存区。卷积乘加器对3×3卷积设计,共配置了tm个PE Array,每个PE Array中有tc个PElane,tc个PE lane和tc个LIB一一对应,每个PE Lane中有3个PE Unit,每个PE Unit可以在一个时钟同时完成3次MAC操作,记为TriMACs。LWB Group中有tm个LWB,与tm个PE Array一一对应。LWEB Group中有tm个LWEB,与tm个PE Array一一对应。推理开始之前,GWB将通过全局广播的形式将权重发给tm个LWB,同时附带发送一个特征值,每个LWB都有对应的特征值,只有特征值符合的LWB才可以接收数据,GWEB以同样的方式将权重使能编码发给tm个LWEB,LWEB可根据编码还原使能矩阵并存储备用,其中,编码存放在编码缓存区,使能矩阵存放在使能矩阵缓存区;同一PE Array的所有PE Lane共享同一LWB和同一LWEB,LWB通过全局广播的形式将权重和权重使能发给tc个PE Lane,同时附带发送一个特征值,每个LWB都有对应的特征值,只有特征值符合的PE Lane才可以接收数据,LWEB以同样的方式将权重使能发给tc个PE Lane。LBP Group中有tm个LPB,与tm个PE Array一一对应。推理开始之前,GBB将通过全局广播的形式将偏置值发给tm个LPB,同时附带发送一个特征值,每个LPB都有对应的特征值,只有特征值符合的LPB才可以接收数据。第一次运算时,LPB存储的是偏置值,之后的运算中,LPB中存储上一次运算后的部分和,并在下一次运算时输入到PE Array中。零值检测器判断每个数据的最高位是否为0,如果为0,表示数据为正,则保持原值,如果为1,表示数据为负,则置0,由此实现非线性激活。池化单元POOL可以将处于分割状态的输出特征图拼接起来,并采用尺寸为2×2、步长为2的参数执行池化。LOB Group中有tm个LOB,与tm个PE Array一一对应。POOL将池化后的输出特征值存入对应的LOB,最后存入L2级缓存中的GOB,GOB通过异步先入先出存储器D将数据存入DRAM,作为下一层的特征图数据。
请参考图13,为一种实施例中卷积乘加器的存储与计算方法示意图。被等分的C/tc个3D小切块,每个小切块包含tc个2D切块,每个2D切块的所处深度与LIB的特征值相对应,分别存储在tc个LIB中,每个LIB的深度为C/tc。这样一来,每一个3D小切块就被重分配到tc个LIB中,保证卷积乘加器里的乘加单元可以同时处理同一输入特征图的不同部分。
请参考图14,为一种实施例中脉动阵列计算单元的结构示意图,一个时钟里,脉动阵列计算单元PE Unit可以完成三次MAC操作,记为TriMACs。特征图流、权重流、特征图使能信号流和权重使能信号流被输入PE Unit后,分别流入3个MAC,近似加法器将3个MAC的计算结果以及偏置(PE Unit #1)或输入部分和(其他PE Unit)相加,经过一个寄存器打一拍后输出。近似加法器的工作原理为:将加数按位宽分为高部和低部,分开相加;高部从右至左运算,执行标准加法;低部取消进位链,进行按位或运算,作为对应位的运算结果,同时将低部最高位进行与运算,将结果作为低部的进位,传输给高部。MAC由2个寄存器、1个乘法器和1个多路复用器构成,根据图像使能信号和权重使能信号选择输出是乘法结果还是零值。寄存器可以将权重和权重使能进行固定。
请参考图15,为一种实施例中脉动阵列计算单元的计算流程示意图,给出了乘加单元PE Lane的数据流设计方法。该数据流采用权重固定的方法,具体过程如下:
在第0个时间周期:向3个PE Unit广播输入特征图行1及其使能信号流,向3个脉动阵列计算单元PE Unit分别输入卷积核的3行权重及对应的3行使能矩阵,PE Unit #1完成特征图行1和权重行1的TriMACs,生成部分和行1;权重和使能信号存储在MAC的寄存器中,实现权重固定模式的脉动阵列计算;
在第1个时间周期:向3个PE Unit广播输入特征图行2及其使能信号流,部分和行1从PE Unit #1流向PE Unit #2进行累加,PE Unit #1完成特征图行2和权重行1的TriMACs,生成部分和行2;PE Unit #2完成特征图行2和权重行2的TriMACs,更新部分和行1;
在第2个时间周期:向3个PE Unit广播输入特征图行3及其使能信号流,部分和行1从PE Unit #2流向PE Unit #3进行累加,部分和行2从PE Unit #1流向PE Unit #2进行累加,PE Unit #1完成特征图行3和权重行1的TriMACs,生成部分和行3;PE Unit #2完成特征图行3和权重行2的TriMACs,更新部分和行2;PE Unit #3完成特征图行3和权重行3的TriMACs,更新并输出部分和行1;
以此类推,在第3个时间周期,PE Unit #3更新并输出部分和行2;在第2个时间周期,PE Unit #3更新并输出部分和行3,一直到输出最后一行部分和行,则完成了一个2D小切块在PE Lane中和一个卷积核的卷积运算。
在本申请实施例中,公开了一种用于卷积神经网络的卷积运算装置,包括使能矩阵获取模块、使能矩阵控制器、待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块。使能矩阵获取模块分别将待卷积矩阵X与卷积核矩阵W的非零元素值都设置为第一预设值,以获取待卷积使能矩阵X′和卷积核使能矩阵W′。使能矩阵控制器、待卷积矩阵控制器和卷积核矩阵控制器依次将待卷积矩阵X与卷积核矩阵W的元素发送给卷积运算模块。卷积运算模块只有当待卷积使能矩阵X′和卷积核使能矩阵W′的元素的值都为第一预设值时,才对待卷积矩阵X和卷积核矩阵W中对应的元素进行乘法运算。由于在卷积运算过程中只对非零的元素进行乘法运算,减少了硬件负荷,并和提高了卷积运算速度。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (9)
1.一种用于卷积神经网络的卷积运算装置,其特征在于,用于对待卷积矩阵X与卷积核矩阵W进行卷积计算以获取卷积结果矩阵P,所述卷积运算装置包括使能矩阵获取模块、使能矩阵控制器、待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块;
所述使能矩阵获取模块用于获取待卷积使能矩阵X′和卷积核使能矩阵W′;所述待卷积使能矩阵X′和卷积核使能矩阵W′分别为将待卷积矩阵X与卷积核矩阵W的非零元素值都设置为一非零的第一预设值的矩阵;
所述卷积核矩阵控制器按卷积运算顺序依次将卷积核矩阵W的元素发送给所述卷积运算模块;所述使能矩阵控制器用于依据发送给所述卷积运算模块的卷积核矩阵W元素的矩阵位置信息,将对应的卷积核使能矩阵W′的元素发送给所述卷积运算模块;
所述待卷积矩阵控制器按卷积运算顺序依次将待卷积矩阵X的元素发送给所述卷积运算模块;所述使能矩阵控制器还用于依据将发送给所述卷积运算模块的待卷积矩阵X元素矩阵位置信息,将对应的待卷积使能矩阵X′的元素发送给所述卷积运算模块;
所述卷积运算模块用于对待卷积矩阵X和卷积核矩阵W进行卷积运算以获取卷积结果矩阵P;当所述卷积运算模块对待卷积矩阵X和卷积核矩阵W的元素进行乘法运算时,先获取待乘法运算的待卷积矩阵X和卷积核矩阵W的元素所对应的待卷积使能矩阵X′和卷积核使能矩阵W′的元素,只有当获取的待卷积使能矩阵X′和卷积核使能矩阵W′的元素的值都为所述第一预设值时,再对待卷积矩阵X和卷积核矩阵W的元素进行乘法运算;
所述使能矩阵获取模块包括矩阵编码模块、编码存储模块和矩阵还原模块;
所述矩阵编码模块用于对待卷积矩阵X中元素值为零的元素进行编码,以获取待卷积编码矩阵X",待卷积编码矩阵X"用于记录待卷积矩阵X中每个元素值为零的元素的位置信息;
所述矩阵编码模块还用于对卷积核矩阵W中元素值为零的元素进行编码以获取卷积核编码矩阵W",卷积核编码矩阵W"用于记录卷积核矩阵W中每个元素值为零的元素的位置信息;
所述编码存储模块用于存储待卷积编码矩阵X"和卷积核编码矩阵W";
所述矩阵还原模块用于依据所述待卷积编码矩阵X"获取待卷积使能矩阵X′;所述矩阵还原模块还用于依据所述卷积核编码矩阵W"获取卷积核使能矩阵W′。
2.如权利要求1所述的卷积运算装置,其特征在于,所述矩阵编码模块的编码方式包括游程编码方式、行压缩格式编码、列压缩格式编码或稀疏矩阵压缩存储编码方式。
3.如权利要求1所述的卷积运算装置,其特征在于,所述卷积运算模块包括待卷积矩阵缓存器、卷积核矩阵缓存器、待卷积使能矩阵缓存器、卷积核使能矩阵缓存器和卷积乘加器;所述矩阵编码模块包括零值检测器;
所述待卷积矩阵缓存器用于缓存待卷积矩阵X,并将待卷积矩阵X的元素按预设的卷积顺序依次发送给所述卷积乘加器;
所述卷积核矩阵缓存器用于缓存卷积核矩阵W,并将卷积核矩阵W的元素按预设的卷积顺序依次发送给所述卷积乘加器;
所述零值检测器用于依据所述待卷积矩阵缓存器缓存的待卷积矩阵X获取待卷积编码矩阵X",并将待卷积编码矩阵X"发送给所述编码存储模块;所述矩阵还原模块用于依据待卷积编码矩阵X"获取待卷积使能矩阵X′,并将待卷积使能矩阵X′发送给所述待卷积使能矩阵缓存器;
所述待卷积使能矩阵缓存器用于缓存待卷积使能矩阵X′,并将待卷积使能矩阵X′的元素按预设的卷积顺序依次发送给所述卷积乘加器;
所述卷积核使能矩阵缓存器用于缓存卷积核使能矩阵W′,并将卷积核使能矩阵W′的元素按预设的卷积顺序依次发送给所述卷积乘加器;
所述卷积乘加器用于对待卷积矩阵X和卷积核矩阵W的元素进行卷积乘加运算,以获取卷积乘加运算结果;所述卷积乘加器在对待卷积矩阵X和卷积核矩阵W的元素进行乘法运算时,先获取待乘法运算的待卷积矩阵X和卷积核矩阵W的元素所对应的待卷积使能矩阵X′和卷积核使能矩阵W′的元素,只有当获取的待卷积使能矩阵X′和卷积核使能矩阵W′的元素的值都为所述第一预设值,再对待卷积矩阵X和卷积核矩阵W的元素进行乘法运算。
4.如权利要求3所述的卷积运算装置,其特征在于,所述卷积运算模块还包括乘加结果输出单元、激活单元、池化单元和卷积运算结果输出单元;
所述乘加结果输出单元用于将所述卷积乘加器输出的所述卷积乘加运算结果与一预设的全局偏置值相加的和输出给所述激活单元;
所述激活单元用于获取所述卷积乘加运算结果与所述全局偏置值相加的和为正数还是负数;
所述池化单元用对所述卷积结果矩阵P进行池化;
所述卷积运算结果输出单元用于输出池化后的所述卷积结果矩阵P。
5.如权利要求3所述的卷积运算装置,其特征在于,所述卷积乘加器包括至少一个乘加单元;所述乘加单元包括至少一个脉动阵列计算单元。
6.一种用于卷积神经网络的卷积运算系统,用于对待卷积矩阵M(i,j)与卷积核矩阵W(p,k)进行卷积计算以获取卷积结果矩阵P(q,l),其特征在于,包括卷积核获取模块、卷积矩阵分割模块和如权利要求1至5任一项所述的卷积运算装置;
所述卷积核获取模块用于获取卷积核矩阵W(p,k),还用于依据卷积核矩阵W(p,k)获取卷积核编码矩阵W",并将卷积核矩阵W(p,k)和卷积核编码矩阵W"发送给所述卷积运算装置;
所述卷积矩阵分割模块用于将待卷积矩阵M(i,j)分割成n个待卷积子矩阵X(i,j);所述卷积矩阵分割模块用于依据预设卷积顺序依次将n个待卷积子矩阵X(i,j)发送给所述卷积运算装置;待卷积子矩阵X(i,j)为正方矩阵,且待卷积子矩阵X(i,j)的行数和列数分别不小于卷积核矩阵W(p,k)的行数和列数;
所述卷积运算装置用于将n个待卷积子矩阵X(i,j)分别与卷积核矩阵W(p,k)依次进行卷积运算,并依据n个卷积运算结果获取卷积结果矩阵P(q,l);其中,n、i、j、p、k、q 和l是自然数。
7.一种图像处理装置,其特征在于,用于边缘设备对图像数据的卷积运算,包括图像获取设备、图像存储器和如权利要求6所述的卷积运算系统;
所述图像获取设备用于采集图像数据,并将所述采集图像数据发送给所述图像存储器;
所述卷积运算系统用于从所述图像存储器获取所述图像数据,并应用卷积神经网络对图像数据进行卷积运算。
8.如权利要求7所述的图像处理装置,其特征在于,所述卷积运算系统还包括卷积核获取模块;
所述卷积核获取模块用于将预识别的特征图像输入到一预设的数学模型中,以获取卷积核矩阵W。
9.如权利要求7所述的图像处理装置,其特征在于,还包括边缘设备控制模块和网络输出端口;
所述边缘设备控制模块分别与所述网络输出端口和所述卷积运算系统连接,所述边缘设备控制模块用于通过所述网络输出端口将所述卷积运算系统获取的卷积运算结果发送给一云端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110883251.9A CN113435586B (zh) | 2021-08-03 | 2021-08-03 | 用于卷积神经网络的卷积运算装置、系统和图像处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110883251.9A CN113435586B (zh) | 2021-08-03 | 2021-08-03 | 用于卷积神经网络的卷积运算装置、系统和图像处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113435586A CN113435586A (zh) | 2021-09-24 |
CN113435586B true CN113435586B (zh) | 2021-11-30 |
Family
ID=77762651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110883251.9A Active CN113435586B (zh) | 2021-08-03 | 2021-08-03 | 用于卷积神经网络的卷积运算装置、系统和图像处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113435586B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114332258B (zh) * | 2021-12-22 | 2024-09-13 | 珠海格力电器股份有限公司 | 一种卷积神经网络的高效编码方法、设备、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107305538A (zh) * | 2016-04-22 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种子矩阵运算装置及方法 |
WO2019190139A1 (ko) * | 2018-03-27 | 2019-10-03 | 에스케이텔레콤 주식회사 | 합성곱 연산을 위한 장치 및 방법 |
CN111652360A (zh) * | 2020-05-25 | 2020-09-11 | 北京大学深圳研究生院 | 一种基于脉动阵列的卷积运算装置 |
CN111831254A (zh) * | 2019-04-15 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 图像处理加速方法、图像处理模型存储方法及对应装置 |
CN111882028A (zh) * | 2020-06-08 | 2020-11-03 | 北京大学深圳研究生院 | 用于卷积神经网络的卷积运算装置 |
US10990650B1 (en) * | 2018-03-22 | 2021-04-27 | Amazon Technologies, Inc. | Reducing computations for data including padding |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112465110B (zh) * | 2020-11-16 | 2022-09-13 | 中国电子科技集团公司第五十二研究所 | 一种卷积神经网络计算优化的硬件加速装置 |
-
2021
- 2021-08-03 CN CN202110883251.9A patent/CN113435586B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107305538A (zh) * | 2016-04-22 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种子矩阵运算装置及方法 |
US10990650B1 (en) * | 2018-03-22 | 2021-04-27 | Amazon Technologies, Inc. | Reducing computations for data including padding |
WO2019190139A1 (ko) * | 2018-03-27 | 2019-10-03 | 에스케이텔레콤 주식회사 | 합성곱 연산을 위한 장치 및 방법 |
CN111831254A (zh) * | 2019-04-15 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 图像处理加速方法、图像处理模型存储方法及对应装置 |
CN111652360A (zh) * | 2020-05-25 | 2020-09-11 | 北京大学深圳研究生院 | 一种基于脉动阵列的卷积运算装置 |
CN111882028A (zh) * | 2020-06-08 | 2020-11-03 | 北京大学深圳研究生院 | 用于卷积神经网络的卷积运算装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113435586A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271933B (zh) | 基于视频流进行三维人体姿态估计的方法 | |
CN110097172B (zh) | 一种基于winograd卷积运算的卷积神经网络数据处理方法及装置 | |
CN109993707B (zh) | 图像去噪方法和装置 | |
EP3855367A1 (en) | Operation accelerator, processing method, and related device | |
CN107239824A (zh) | 用于实现稀疏卷积神经网络加速器的装置和方法 | |
CN107256424B (zh) | 三值权重卷积网络处理系统及方法 | |
CN113326930B (zh) | 数据处理方法、神经网络的训练方法及相关装置、设备 | |
CN113595993B (zh) | 边缘计算下模型结构优化的车载感知设备联合学习方法 | |
CN112115744B (zh) | 点云数据的处理方法及装置、计算机存储介质、电子设备 | |
CN111626403A (zh) | 一种基于cpu-fpga内存共享的卷积神经网络加速器 | |
CN111931901A (zh) | 一种神经网络构建方法以及装置 | |
CN112633477A (zh) | 一种基于现场可编程阵列的量化神经网络加速方法 | |
CN114978189A (zh) | 一种数据编码方法以及相关设备 | |
CN111091183B (zh) | 一种神经网络加速系统和方法 | |
CN113435586B (zh) | 用于卷积神经网络的卷积运算装置、系统和图像处理装置 | |
CN115022637A (zh) | 一种图像编码方法、图像解压方法以及装置 | |
CN112561050A (zh) | 一种神经网络模型训练方法及装置 | |
CN110874605B (zh) | 图像识别处理方法和装置 | |
CN111882028B (zh) | 用于卷积神经网络的卷积运算装置 | |
CN115913245A (zh) | 数据编码方法、数据解码方法以及数据处理装置 | |
CN113919479B (zh) | 一种提取数据特征的方法和相关装置 | |
CN112541972B (zh) | 一种视点图像处理方法及相关设备 | |
CN117035028A (zh) | 一种基于fpga的卷积加速器高效计算方法 | |
CN116095183A (zh) | 一种数据压缩方法以及相关设备 | |
CN114120245B (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 |