用于卷积神经网络的卷积运算装置、系统和图像处理装置制造方法及图纸

技术编号:30177585 阅读:25 留言:0更新日期:2021-09-25 15:38
本申请公开一种用于卷积神经网络的卷积运算装置,包括使能矩阵获取模块、使能矩阵控制器、待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块。使能矩阵获取模块分别将待卷积矩阵X与卷积核矩阵W的非零元素值都设置为第一预设值,以获取待卷积使能矩阵X

【技术实现步骤摘要】
用于卷积神经网络的卷积运算装置、系统和图像处理装置


[0001]本专利技术涉及图像处理
,具体涉及一种用于卷积神经网络的卷积运算装置、系统和图像处理装置。

技术介绍

[0002]随着基于神经网络的人工智能解决方案的需求越来越多,在一些移动平台如无人机、机器人等都应用卷积神经网络构建,这些都正在深刻的改变人类的生产、生活方式。而对应在卷积神经网络专用硬件设计研究方面,已有基于CPU、GPU、FPGA、ASIC和RRAM等新型器件的实现方式。从云端到边缘设备端,不同应用场景对卷积神经网络的计算能力提出了不同的需求,再加上卷积神经网络的结构多样、数据量大、计算量大,也给硬件实现神经网络算法设计提出了巨大挑战。例如,基于猫脑视觉皮层神经细胞工作机制构建的带独特感受野结构的卷积神经网络在视觉应用领域取得了巨大的成功,比如CNN在大型的图片分类数据集ImageNet上取得了超过人眼的识别正确率。但是这种强大的算法在走向实际应用的过程中碰到很大的障碍,这是因为CNN能有用武之地的真实世界应用很多都是在计算资源少的边缘设备上实现,如带AI能力的智能手机和智慧安防摄像头,而如今最为出名的CNN网络ResNet

50,它由50层基本结构堆叠而成,每层基本结构包含大量的卷积运算,这样的计算密集型算法如果不加以改造或者不针对其特点设计专门的加速硬件,直接在边缘设备的CPU上实现,难以满足很多应用对实时性的要求。
[0003]要真正让卷积神经网络在边缘设备运行起来,目前有两种途径达到这个目的。一种途径就是对网络进行轻量化改造,让它的网络结构更简单,运算量更少,比如模型压缩技术中的剪枝技术,参数量化技术中的二值网络XNOR

Net和改变卷积方式的轻型网络MobileNet等。另一种途径就是针对卷积神经网络的运算特点设计专门的芯片来对它进行硬件加速,由于卷积神经网络中的卷积运算占据了90%以上的计算量,所以一般是精心设计针对卷积过程进行加速的硬件结构。如何设计硬件以让卷积计算的更快,一般是从以下三个方面着手去考虑,一是让卷积运算包含的乘法和加法运算数量更少以让运算更快地完成,二是数据传输带宽更大以更快的获取到卷积运算需要的操作数,三是精心设计数据重用机制以求能够在低传输带宽下也能快速计算完卷积。
[0004]综上所述,基于现有的电路计算资源如何加速卷积运算的运算速度是卷积神经网络加速器的热点研发方向。

技术实现思路

[0005]本申请提供了一种用于卷积神经网络卷积运算的加速方法,以提高卷积神经网络在边缘设备上的运行速度。
[0006]根据第一方面,一种实施例中提供一种用于卷积神经网络的卷积运算装置,用于对待卷积矩阵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的元素进行乘法运算。
[0007]根据第二方面,一种实施例中提供一种用于卷积神经网络的卷积运算系统,用于对待卷积矩阵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是自然数。
[0008]根据第三方面,一种实施例中提供一种图像处理装置,用于边缘设备对图像数据的卷积运算,包括图像获取设备、图像存储器和如第三方面所述的卷积运算系统;所述图像获取设备用于采集图像数据,并将所述采集图像数据发送给所述图像存储器;所述卷积运算系统用于从所述图像存储器获取所述图像数据,并应用卷积神经网络对图像数据进行卷积运算。
[0009]依据上述实施例的一种用于卷积神经网络的卷积运算装置,包括使能矩阵获取模块、使能矩阵控制器、待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块。使能矩阵获取模块分别将待卷积矩阵X与卷积核矩阵W的非零元素值都设置为第一预设值,以获取待卷积使能矩阵X

和卷积核使能矩阵W

。使能矩阵控制器、待卷积矩阵控制器和卷积核矩阵控制器依次将待卷积矩阵X与卷积核矩阵W的元素发送给卷积运算模块。卷积运算模块只有当
待卷积使能矩阵X

和卷积核使能矩阵W

的元素的值都为第一预设值时,才对待卷积矩阵X和卷积核矩阵W中对应的元素进行乘法运算。由于在卷积运算过程中只对非零的元素进行乘法运算,减少了硬件负荷,并和提高了卷积运算速度。
附图说明
[0010]图1为一种卷积神经网络的结构图;图2为一种卷积运算示意图;图3为一种卷积神经网络的卷积运算的示意图;图4为一种三维矩阵卷积运算的示意图;图5为一种实施例中卷积运算装置的结构示意图;图6为一种实施例中使能矩阵获取模块的结构示意图;图7为一种实施例中使能本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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的元素进行乘法运算。2.如权利要求1所述的卷积运算装置,其特征在于,所述使能矩阵获取模块包括矩阵编码模块、编码存储模块和矩阵还原模块;所述矩阵编码模块用于对待卷积矩阵X中元素值为零的元素进行编码,以获取待卷积编码矩阵X",待卷积编码矩阵X"用于记录待卷积矩阵X中每个元素值为零的元素的位置信息;所述矩阵编码模块还用于对卷积核矩阵W中元素值为零的元素进行编码以获取卷积核编码矩阵W",卷积核编码矩阵W"用于记录卷积核矩阵W中每个元素值为零的元素的位置信息;所述编码存储模块用于存储待卷积编码矩阵X"和卷积核编码矩阵W";所述矩阵还原模块用于依据所述待卷积编码矩阵X"获取待卷积使能矩阵X

;所述矩阵还原模块还用于依据所述卷积核编码矩阵W"获取卷积核使能矩阵W

。3.如权利要求2所述的卷积运算装置,其特征在于,所述矩阵编码模块的编码方式包括游程编码方式、行压缩格式编码、列压缩格式编码或稀疏矩阵压缩存储编码方式。4.如权利要求2所述的卷积运算装置,其特征在于,所述卷积运算模块包括待卷积矩阵缓存器、卷积核矩阵缓存器、待卷积使能矩阵缓存器、卷积核使能矩阵缓存器和卷积乘加器;所述矩阵编码模块包括零值检测器;所述待卷积矩阵缓存器用于缓存待卷积矩阵X,并将待卷积矩阵X的元素按预设的卷积顺序依次发送给所述卷积乘加器;所述卷积核矩阵缓存器用于缓存卷积核矩阵W,并将卷积核矩阵W的元素按预设的卷积顺序依次发送给所述卷积乘加器;所述零值检测器用于依据所述待卷积矩阵缓存器缓存的待卷积矩阵X获取待卷积编码矩阵X",并将待卷积编码矩阵X"发送给所述编码存储模块;所述矩阵还原模块用于依据待
卷积编码矩阵X"获取待卷积使能矩阵X

,并将待卷积使能矩阵X

发送给所述待卷积使能矩阵...

【专利技术属性】
技术研发人员:郭朋非张兴王新安李秋平雍珊珊高金潇刘焕双李肖飞
申请(专利权)人:北京大学深圳研究生院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1