一种卷积运算方法及装置和卷积核拆分方法及单元制造方法及图纸

技术编号:33709289 阅读:14 留言:0更新日期:2022-06-06 08:38
本申请适用于神经网络技术领域,涉及一种卷积运算方法及装置和卷积核拆分方法及单元,卷积运算方法,应用于大小为m*m的卷积运算单元,方法包括:获取用于卷积运算的卷积核和特征数据,所述卷积核为n*n的矩阵,n大于m,n和m为大于1的整数;将所述卷积核按照卷积运算单元的大小分成N个子核,并将所述特征数据对应拆分成N个与所述子核一一对应的子矩阵,N为大于1的整数;将N个所述子矩阵中的每个所述子矩阵与一一对应的所述子核进行卷积运算,得到N个第一运算结果;将N个所述第一运算结果进行累加得到第二运算结果,所述第二运算结果为所述卷积核和所述特征数据的卷积运算结果。本申请实施例可以提升计算资源利用率,降低成本。降低成本。

【技术实现步骤摘要】
一种卷积运算方法及装置和卷积核拆分方法及单元


[0001]本申请属于神经网络
,尤其涉及一种卷积运算方法及装置和卷积核拆分方法及单元。

技术介绍

[0002]近年来,随着人工智能的不断发展,神经网络在众多领域取得了巨大成功,其应用范围也越来越广泛。
[0003]目前,神经网络架构中常用的卷积核大小一般包括1*1、3*3、5*5和7*7。为了实现这些不同的卷积核的卷积计算,神经网络处理器(Neural

network Processing Unit,NPU)一般需要按照所支持的最大卷积核大小来设计计算资源,即按照7*7进行设置。
[0004]但是,神经网络架构中绝大部分计算所使用的卷积核是1*1和3*3大小,极少部分是5*5和7*7大小。为了支持7*7大小而按照7*7大小来设置计算资源的话,在大部分时间中就会有部分计算资源没有执行,导致资源的浪费,同时这部分计算资源也会导致芯片成本的增加。

技术实现思路

[0005]有鉴于此,本申请实施例提供了一种卷积运算方法及装置和卷积核拆分方法及单元,能够解决相关技术中的一个或多个技术问题。
[0006]第一方面,本申请一实施例提供了一种卷积运算方法,应用于大小为m*m的卷积运算单元,所述卷积运算方法包括:获取用于卷积运算的卷积核和特征数据,所述卷积核为n*n的矩阵,n大于m,n和m为大于1的整数;将所述卷积核按照卷积运算单元的大小拆分成N个子核,并将所述特征数据对应拆分成N个与所述子核一一对应的子矩阵,N为大于1的整数;将N个所述子矩阵中的每个所述子矩阵与一一对应的所述子核进行卷积运算,得到N个第一运算结果;将N个所述第一运算结果进行累加得到第二运算结果,所述第二运算结果为所述卷积核和所述特征数据的卷积运算结果。
[0007]在一些实施例中,所述将所述卷积核按照卷积运算单元的大小拆分成N个子核,包括:将所述n*n的矩阵在高度方向上拆分成N部分,得到N个大小为m*n的子核;所述将所述特征数据对应拆分成N个与所述子核一一对应的子矩阵,包括:将所述特征数据在高度方向上拆分成N部分以形成N个与所述子核一一对应的所述子矩阵;其中,所述特征数据在高度方向上包括h个数据,则所述子矩阵在高度方向上被配置为包括h

(n

m)个数据,并且复制前一个子矩阵的部分数据到后一个子矩阵中。
[0008]在一些实施例中,所述将所述n*n的矩阵在高度方向上拆分成N部分,得到N个大小为m*n的子核,包括:当n为m的N倍时,将所述n*n的矩阵在所述高度方向上以m为高度拆分成N部分,得到N个大小为m*n的子核;当n不为m的N倍时,将所述n*n的矩阵在所述高度方向上以m为高度拆分成N部分,在除第一部分外的其他部分的至少一个部分中用0数据补齐高度不足m的部分,得到N个大小为m*n的子核。
[0009]在一些实施例中,在所述至少一个部分中的属于所述n*n的矩阵的原数据行的前面或后面用0数据补齐高度不足m的部分。
[0010]在一些实施例中,当在所述至少一个部分中的属于所述n*n的矩阵的原数据行的后面用0数据补齐高度不足m的部分形成子核时,与该子核一一对应的所述子矩阵在所述高度方向上被配置为包括h

(n

m)个数据,并且复制前一个子矩阵的部分数据以及补0以把高度方向补齐。
[0011]第二方面,本申请一实施例提供了一种卷积核拆分方法,适配于大小为m*m的卷积运算单元,所述卷积核拆分方法包括:获取用于卷积运算的卷积核,所述卷积核为n*n的矩阵,n大于m,n和m为大于1的整数;将所述卷积核按照卷积运算单元的大小拆分成N个大小为m*n的子核,N为大于1的整数。
[0012]在一些实施例中,所述将所述卷积核按照卷积运算单元的大小拆分成N个大小为m*n的子核,包括:将所述n*n的矩阵在高度方向上拆分成N部分,得到N个大小为m*n的子核。
[0013]在一些实施例中,所述将所述n*n的矩阵在高度方向上拆分成N部分,得到N个大小为m*n的子核,包括:当n为m的N倍时,将所述n*n的矩阵在所述高度方向上以m为高度拆分成N部分,得到N个大小为m*n的子核;当n不为m的N倍时,将所述n*n的矩阵在所述高度方向上以m为高度拆分成N部分,在除第一部分外的其他部分的至少一个部分中用0数据补齐高度不足m的部分,得到N个大小为m*n的子核。
[0014]第三方面,本申请一实施例提供了一种卷积运算装置,包括:拆分单元,用于获取用于卷积运算的卷积核和特征数据,所述卷积核为n*n的矩阵,n大于m,n和m为大于1的整数;将所述卷积核按照卷积运算单元的大小拆分成N个子核,并将所述特征数据对应拆分成N个与所述子核一一对应的子矩阵,N为大于1的整数;大小为m*m的卷积运算单元,用于将N个所述子矩阵中的每个所述子矩阵与一一对应的所述子核进行卷积运算,得到N个第一运算结果;将N个所述第一运算结果进行累加得到第二运算结果,所述第二运算结果为所述卷积核和所述特征数据的卷积运算结果。
[0015]第四方面,本申请一实施例提供了一种卷积核拆分单元,适配于大小为m*m的卷积运算单元,所述卷积核拆分单元包括:获取模块,用于获取用于卷积运算的卷积核,所述卷积核为n*n的矩阵,n大于m,n和m为大于1的整数;拆分执行模块,用于将所述卷积核按照卷积运算单元的大小拆分成N个大小为m*n的子核,N为大于1的整数。。
[0016]第五方面,本申请一实施例提供了一种芯片,包括如前述第三方面实施例所述的卷积运算装置,或,前述第四方面实施例所述的卷积核拆分单元。
[0017]第六方面,本申请一实施例提供了一种电子设备,包括如前述第五方面实施例所述的芯片。
[0018]第七方面,本申请一实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述第一方面任一实施例所述的卷积运算方法,或,实现如前述第二方面任一实施例所述的卷积核拆分方法。
[0019]第八方面,本申请一实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备实现如前述第一方面任一实施例所述的卷积运算方法,或,实现如前述第二方面任一实施例所述的卷积核拆分方法。
[0020]本申请实施例通过将高大于m的卷积核的卷积运算进行拆分后再执行卷积运算,
使用m*m大小卷积核的计算资源就可以进行大尺寸的卷积计算,从而提高芯片的单位面积性能(PPA),缩减成本。
附图说明
[0021]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022]图1是本申请一实施例提供的一种卷积核和图像数据的示意图;
[0023]图2是本申请一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种卷积运算方法,应用于大小为m*m的卷积运算单元,其特征在于,所述卷积运算方法包括:获取用于卷积运算的卷积核和特征数据,所述卷积核为n*n的矩阵,n大于m,n和m为大于1的整数;将所述卷积核按照所述卷积运算单元的大小拆分成N个子核,并将所述特征数据对应拆分成N个与所述子核一一对应的子矩阵,N为大于1的整数;将N个所述子矩阵中的每个所述子矩阵与一一对应的所述子核进行卷积运算,得到N个第一运算结果;将N个所述第一运算结果进行累加得到第二运算结果,所述第二运算结果为所述卷积核和所述特征数据的卷积运算结果。2.如权利要求1所述的卷积运算方法,其特征在于,所述将所述卷积核按照所述卷积运算单元的大小拆分成N个子核,包括:将所述n*n的矩阵在高度方向上拆分成N部分,得到N个大小为m*n的子核;所述将所述特征数据对应拆分成N个与所述子核一一对应的子矩阵,包括:将所述特征数据在所述高度方向上拆分成N部分以形成N个与所述子核一一对应的所述子矩阵;其中,所述特征数据在所述高度方向上包括h个数据,则所述子矩阵在所述高度方向上被配置为包括h

(n

m)个数据,并且基于所述复制前一个子矩阵的部分数据到后一个子矩阵中。3.如权利要求2所述的卷积运算方法,其特征在于,所述将所述n*n的矩阵在高度方向上拆分成N部分,得到N个大小为m*n的子核,包括:当n为m的N倍时,将所述n*n的矩阵在所述高度方向上以m为高度拆分成N部分,得到N个大小为m*n的子核;当n不为m的N倍时,将所述n*n的矩阵在所述高度方向上以m为高度拆分成N部分,在除第一部分外的其他部分的至少一个部分中用0数据补齐高度不足m的部分,得到N个大小为m*n的子核。4.如权利要求3所述的卷积运算方法,其特征在于,在所述至少一个部分中的属于所述n*n的矩阵的原数据行的前面或后面用0数据补齐高度不足m的部分。5.如权利要求4所述的卷积运算方法,其特征在于,当在所述至少一个部分中的属于所述n*n的矩阵的原数据行的后面用0数据补齐高度不足m的部分形成子核时,与该子核一一对应的所述子矩阵在所述高度方向上被配置为包括h

【专利技术属性】
技术研发人员:秦旋李冰华袁峰
申请(专利权)人:奥比中光科技集团股份有限公司
类型:发明
国别省市:

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

1