大卷积核硬件实现方法、计算机设备及可存储介质

文档序号:1953921 发布日期:2021-12-10 浏览:16次 >En<

阅读说明:本技术 大卷积核硬件实现方法、计算机设备及可存储介质 (Large convolution kernel hardware implementation method, computer equipment and storage medium ) 是由 王丹阳 杨东天 陶为 王中风 林军 于 2021-11-10 设计创作,主要内容包括:本申请提供的大卷积核硬件实现方法、计算机设备及计算机可读存储介质,该方法包括加载一个大卷积核;在输出通道方向上对所述大卷积核进行扩展,生成层3×3子卷积核;按照层3×3子卷积核配置卷积神经网络硬件加速器。本申请提供的大卷积核硬件实现方法可以将大卷积核拆分生成若干个3×3子卷积核,其中,3×3子卷积核之间有重叠的部分;并将复杂的大卷积核运算直接部署在NPU中现有的简单卷积硬件上,降低了NPU硬件的复杂度,提高了NPU的处理性能。(The application provides a large convolution kernel hardware implementation method, computer equipment and a computer readable storage medium, wherein the method comprises the steps of loading a large convolution kernel; expanding the large convolution kernel in the direction of the output channel to generate A layer 3 × 3 sub-convolution kernel; according to The layer 3x3 sub-convolution kernel configures the convolutional neural network hardware accelerator. The large convolution kernel hardware implementation method provided by the application can split the large convolution kernel to generate a plurality of 3 × 3 sub-convolution kernels, wherein the 3 × 3 sub-convolution kernels have overlapped parts; and the complex large convolution kernel operation is directly deployed on the existing simple convolution hardware in the NPU, thereby reducing the complexity of the NPU hardware and increasing the complexity of the NPU hardwareThe processing performance of the NPU is improved.)

大卷积核硬件实现方法、计算机设备及可存储介质

技术领域

本申请涉及卷积神经网络技术领域,尤其涉及大卷积核硬件实现方法、计算机设备及可存储介质。

背景技术

在卷积神经网络

技术领域

中,大卷积核一般指5×5卷积核及更大的卷积核。现有NPU(Neural-network Processing Unit,嵌入式神经网络处理器)中已经有卷积硬件能直接实现1×1卷积核和3×3卷积核等较小的卷积核,但尚未有能直接简单实现5×5卷积核等大卷积核的卷积硬件。

当NPU在处理过程中遇到大卷积核的卷积运算时,一般把这些卷积运算重新加载到CPU(central processing unit,中央处理器)或者GPU(graphics processing unit,图形处理器)当中,采用软件的方式实现大卷积核的卷积运算。

但采用上述软件方式会带来明显的数据传输负担,并且软件处理的速度较慢,这都增加了NPU的等待时间,降低NPU的实际处理性能。

发明内容

为了解决采用软件的方式实现大卷积核的卷积运算会增加了NPU的等待时间,降低NPU的实际处理性能的问题,本申请通过以下方面公开了大卷积核硬件实现方法、计算机设备及可存储介质。

本申请第一方面公开了一种大卷积核硬件实现方法,包括:

加载一个大卷积核;其中,大卷积核的输入通道数为第一输入通道数,输出通道数为第一输出通道数;大卷积核的大小为n×n,n大于等于5;

在输出通道方向上对大卷积核进行扩展,生成L层子卷积核,每个子卷积核的大小 为3×3;其中L等于

按照L层子卷积核配置卷积神经网络硬件加速器。

可选的,在输出通道方向上对所述大卷积核进行扩展,生成L层子卷积核,包括:

生成第一层子卷积核,第一层子卷积核的输入通道数为第一输入通道数,输出通 道数为第二输出通道数,第二输出通道数等于第一输出通道数乘以

生成第二层子卷积核,第二层子卷积核的输入通道数为第二输出通道数,输出通 道数为第三输出通道数,第三输出通道数为第一输出通道数乘以

生成其余层子卷积核,其余层子卷积核包括第三层至最后一层子卷积核;针对其 余层子卷积核,第i层子卷积核的输出通道数为所述第一输出通道数乘以,输 入通道数为前一层的输出通道数。

可选的,生成第一层子卷积核,包括:

在输出通道方向上,从大卷积核中按照目标步长选取子卷积核,生成第一层子卷 积核,第一层子卷积核包括个子卷积核;其中,目标步长等于2;任一新生成的子卷积核 与已生成的任一子卷积核重叠的位置填充数据0;第一层子卷积核中的任一子卷积核位于 不同的输出通道上。

可选的,生成第二层子卷积核,包括:

根据第一层子卷积核的卷积结果,生成第二层的等效卷积核;等效卷积核的大小为(n-2)×(n-2);等效卷积核的输入通道数等于第二层子卷积核的输入通道数,输出通道数等于第二层子卷积核的输出通道数;第二层的等效卷积核的任一有效元素位于不同的输入通道上;

在输出通道方向上,从第二层的等效卷积核中按照所述目标步长选取子卷积核, 生成第二层子卷积核,第二层子卷积核包括个子卷积核;第二层子卷积核 中任一子卷积核位于不同的输出通道上。

可选的,生成其余层子卷积核,包括:

根据前一层子卷积核的卷积结果,生成目标层的等效卷积核;目标层为其余层子卷积核中的任一层;

在输出通道方向上,从目标层的等效卷积核中按照目标步长选取所述子卷积核,生成其余层子卷积核;其余层子卷积核中任一子卷积核位于相应层不同的输出通道上。

可选的,等效卷积核为稀疏卷积核。

可选的,大卷积核的附属操作在最后一层子卷积核完成。

可选的,附属操作包括批标准化计算、激活值计算及完成残差相加计算。

本申请的第二方面公开了一种计算机设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现本申请第一方面公开的大卷积核硬件实现方法的步骤。

本申请的第三方面公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如本申请第一方面公开的大卷积核硬件实现方法的步骤。

本申请提供的大卷积核硬件实现方法、计算机设备及计算机可读存储介质,该方 法包括加载一个大卷积核在输出通道方向上对所述大卷积核进行扩展,生成层3×3子卷 积核;按照层3×3子卷积核配置卷积神经网络硬件加速器。本申请提供的大卷积核硬件实 现方法可以将大卷积核拆分生成若干个3×3子卷积核,其中,3×3子卷积核之间有重叠的 部分;并将复杂的大卷积核运算直接部署在NPU中现有的简单卷积硬件上,降低了NPU硬件 的复杂度,提高了NPU的处理性能。

附图说明

图1为本申请实施例公开的大卷积核硬件实现方法的工作流程示意图;

图2为本申请实施例公开的大卷积核硬件实现方法应用于5×5卷积核的硬件实现过程中生成第一层子卷积核的过程示意图;

图3为本申请实施例公开的大卷积核硬件实现方法应用于5×5卷积核的硬件实现过程中第一层子卷积核的卷积结果示意图;

图4为本申请实施例公开的大卷积核硬件实现方法应用于5×5卷积核的硬件实现过程中生成的第二层子卷积核的数据填充示意图;

图5是本申请实施例公开的大卷积核硬件实现方法应用于7×7卷积核的硬件实现过程中每一层的数据填充示意图;

图6为本申请实施例公开的大卷积核硬件实现方法应用于7×7卷积核的硬件实现过程中第一层子卷积核的卷积结果示意图。

具体实施方式

为了解决采用软件方式实现大卷积核的卷积运算将导致增加NPU的等待时间,降低NPU的实际处理性能的问题,本申请通过以下实施例公开了大卷积核硬件实现方法、计算机设备及可存储介质。

本申请第一实施例公开了一种卷积神经网络中的大卷积核硬件实现方法,参见图1所述的工作流程示意图,所述大卷积核硬件实现方法包括:

步骤10,加载一个大卷积核;其中,大卷积核的输入通道数为第一输入通道数,输出通道数为第一输出通道数,所述大卷积核的大小为n×n,n大于等于5。

通常,卷积核的尺寸写成(out_ch,in_ch,n,n),其中out_ch对应卷积神经网络的输出通道数,in_ch对应卷积神经网络的输入通道数,n对应卷积核的大小。

步骤20,在输出通道方向上对大卷积核进行扩展,生成L层子卷积核,每个子卷积 核的大小为3×3;其中,

一般的,对大卷积核进行扩展,需要扩展成L层。

步骤30,按照L层子卷积核配置卷积神经网络硬件加速器。

进一步的,卷积神经网络中大卷积核原本的附属操作都在经扩展的L层子卷积核的最后一层完成。

更进一步的,上述附属操作包括但不限于以下操作:BN(Batch Normalization),主要对数据进行归一化,保证数据的分布符合预期,方便之后的卷积运算;激活值计算,主要进行非线性计算,包括relu、sirelu、mish、hardswish等激活函数;Resadd(Residualadd),完成残差相加计算。

进一步的,在输出通道方向上对所述大卷积核进行扩展,生成层子卷积核,包括:

步骤21,生成第一层子卷积核。第一层子卷积核的输入通道数为第一输入通道数, 输出通道数为第二输出通道数,所述第二输出通道数等于所述第一输出通道数乘以,即 第一层子卷积核的尺寸为(out_ch×,in_ch,3,3)。

更进一步的,生成第一层子卷积核,包括:在输出通道方向上,从大卷积核中按照 目标步长选取所述子卷积核,生成第一层子卷积核,第一层子卷积核包括个所述子卷积 核;其中,目标步长等于2;任一新生成的子卷积核与已生成的任一子卷积核重叠的位置填 充数据0;第一层子卷积核中的任一子卷积核位于不同的输出通道上。

步骤22,生成第二层子卷积核。第二层子卷积核的输入通道数为第二输出通道数, 输出通道数为第三输出通道数,第三输出通道数为所述第一输出通道数乘以;即 第二层子卷积核的尺寸为(out_ch×,out_ch×,3,3)。

进一步的,生成第二层子卷积核,包括:根据第一层子卷积核的卷积结果,生成第 二层的等效卷积核;等效卷积核的大小为(n-2)×(n-2);等效卷积核的输入通道数等于所 述第二层子卷积核的输入通道数,输出通道数等于所述第二层子卷积核的输出通道数;所 述第二层的等效卷积核的任一有效元素位于不同的输入通道上;即等效卷积核的尺寸为 (out_ch×,out_ch×,n-2,n-2)。

在输出通道方向上,从第二层的等效卷积核中按照目标步长等于2选取子卷积核, 生成第二层子卷积核,第二层子卷积核包括个子卷积核;第二层子卷积核中 任一子卷积核位于不同的输出通道上。

步骤23,生成其余层子卷积核,其余层子卷积核包括第三层至最后一层子卷积核; 针对其余层子卷积核,第i层子卷积核的输出通道数为所述第一输出通道数乘以,输入通道数为前一层的输出通道数;即第i层子卷积核的尺寸为(out_ch×,out_ch×,3,3)。

需要说明的是,针对第一层子卷积核至最后一层子卷积核的输出通道数都可以按 照out_ch×的规律进行扩展。

进一步的,任一大小的大卷积核经本发明提供的一种卷积神经网络中的大卷积核 硬件实现方法扩展后生成的最后一层子卷积核的尺寸均为(out_ch,out_ch×,3,3)。

进一步的,生成其余层子卷积核,包括:根据前一层子卷积核的卷积结果,生成目标层的等效卷积核;其中,目标层为所述其余层子卷积核中的任一层。在输出通道方向上,从目标层的等效卷积核中按照目标步长等于2选取所述子卷积核,生成其余层子卷积核;其余层子卷积核中任一子卷积核位于相应层不同的输出通道上。

示例一,本实施例公开的一种大卷积核硬件实现方法应用于5×5卷积核的实现过程。

对于一个(out_ch,in_ch,5,5)的大卷积核,在输出通道方向上进行扩展,生成两层3×3子卷积核,按照生成后的两层3×3子卷积核配置卷积神经网络硬件加速器。

参见图2,生成第一层子卷积核。首先在输出通道方向,从5×5卷积核扩展按照步长等于2选取4个3x3子卷积核Conv1、Conv2、Conv3和Conv4,生成第一层子卷积核(out_ch×4,in_ch,3,3)。任一新生成的3x3子卷积核与已生成的任一3x3子卷积核重叠的位置填充数据0;即Conv2的第一列、Conv3的第一行、Conv4的第一行及第一列都填充数据0。

经过第一层子卷积核的卷积运算后,卷积结果排列如图3所示。Conv1、Conv2、Conv3和Conv4位于不同的输出通道上,从而把out_ch扩充为out_ch×4。

在具体的实现过程中,可以先在输出通道方向上对大卷积核(out_ch,in_ch,5,5)进行复制,扩展成(out_ch×4,in_ch,5,5),然后按照步长为2将每一个复制后的5×5卷积核裁剪成3x3子卷积核,得到第一层子卷积核(out_ch×4,in_ch,3,3)。

生成第二层子卷积核。

首先,根据第一层子卷积核的卷积结果,生成第二层的等效卷积核。第二层的等效卷积核的尺寸为(out_ch,out_ch×4,3,3)。第二层的等效卷积核中的任一有效元素位于不同的输入通道上,其中,一个有效元素对应于一个第一层子卷积核的卷积结果。

然后,在输出通道方向上,从第二层的等效卷积核中按照目标步长等于2选取4个3×3子卷积核,生成第二层子卷积核(out_ch,out_ch×4,3,3)。第二层子卷积核中任一3×3子卷积核位于不同的输出通道上。

在实际应用中,等效卷积核一般为稀疏卷积核,即等效卷积核中的有效元素为数据1。进一步的,生成的第二层的3×3子卷积核也都是稀疏卷积核。在本实施例中利用稀疏卷积运算单元的高效计算优势,提高NPU的计算效率。

第二层子卷积核(out_ch,out_ch×4,3,3)的具体填充方案见图4。

按照扩展生成的两层3×3子卷积核配置硬件加速器计算即可。

示例二,本实施例公开的一种大卷积核硬件实现方法应用于7×7卷积核的实现过程。

对于一个(out_ch,in_ch,7,7)的大卷积核,在输出通道方向上进行扩展,生成三层3×3子卷积核,按照生成后的两层3×3子卷积核配置卷积神经网络硬件加速器。每一层子卷积核的填充方案见图5。

生成第一层子卷积核。首先在输出通道方向,从7×7卷积核扩展按照步长等于2选取9个3x3子卷积核Conv1、Conv2、……、Conv9,生成第一层子卷积核(out_ch×9,in_ch,3,3)。任一新生成的3x3子卷积核与已生成的任一3x3子卷积核重叠的位置填充数据0。经过第一层子卷积核的卷积计算后的卷积结果排列如图6所示,其中Conv1、Conv2、……、Conv9位于不同的输出通道上,从而把out_ch扩充为out_ch×9。

生成第二层子卷积核。

首先,根据第一层子卷积核的卷积结果,生成第二层的等效卷积核。第二层的等效卷积核的尺寸为(out_ch×4,out_ch×9,5,5),排列如图6中的粗实线内所示;其中,一个有效元素对应于一个第一层子卷积核的卷积结果,第二层的等效卷积核中的任一有效元素位于不同的输入通道上。

然后,在输出通道方向上,从第二层的等效卷积核中按照目标步长等于2选取36个3×3子卷积核,生成第二层子卷积核(out_ch×4,out_ch×9,3,3)。第二层子卷积核中任一3×3子卷积核位于不同的输出通道上。

如图5所示,第二层子卷积核的在第一个输出通道方向上有四个有效元素,对应于第一层子卷积核的卷积结果Conv1、Conv2、Conv4及Conv5;第二个输出通道方向上有两个有效元素,对应于第一层子卷积核的卷积结果Conv3及Conv6;在第三个输出通道方向上有两个有效元素;对应于第一层子卷积核的卷积结果Conv7及Conv8、在第四个输出通道方向上有一个有效元素,对应于第一层子卷积核的卷积结果Conv9。

生成第三层子卷积核。

根据第二层子卷积核的卷积结果,生成第三层的等效卷积核。第三层的等效卷积核的尺寸为(out_ch,out_ch×4,3,3)。在输出通道方向上,从第三层的等效卷积核中按照目标步长等于2选取4个3×3子卷积核,生成第三层子卷积核(out_ch,out_ch×4,3,3)。

可以看出,7×7卷积核的第三层子卷积核与5×5卷积核的第二层子卷积核一致。

在实际应用中,对于一个大小为n×n的大卷积核,需要扩展成层3×3子卷 积核,仅需要重新设计前两层卷积核,其余层的卷积核和大小为(n-2)×(n-2)的大卷积核 的第二层至最后一层保持一致。

其中,根据步骤21对于第一层子卷积核进行扩展;对于第二层子卷积核的设计,相当于是对大小为(n-2)×(n-2)大卷积核按照步骤21进行扩展。区别之处在于:第一,(n-2)×(n-2)大卷积核为稀疏卷积核,只有部分有效元素;第二,大卷积核的扩展需要映射到多个输出通道上实现。

本实施例提供的大卷积核硬件实现方法,该方法包括:加载一个大卷积核;在输出 通道方向上对所述大卷积核进行扩展,生成层3×3子卷积核;按照层3×3子卷积核配置 卷积神经网络硬件加速器。本实施例提供的大卷积核硬件实现方法可以将大卷积核拆分生 成若干个3×3子卷积核,其中,3×3子卷积核之间有重叠的部分;并将复杂的大卷积核运算 直接部署在NPU中现有的简单卷积硬件上,降低了NPU硬件的复杂度,提高了NPU的处理性 能。。利用本实施例公开的大卷积核硬件实现方法仅依靠3×3卷积硬件即可实现不同子卷 积核的组合,也无需设计专门的硬件架构,简化NPU的设计。

进一步的,第二层子卷积核和其余层子卷积核的卷积运算是稀疏卷积运算,所以本实施例公开的大卷积核硬件实现方法能依靠稀疏卷积运算单元高效卷积的优势来提高计算效率。

本申请第二实施例公开了一种计算机设备,包括:

存储器,用于存储计算机程序。

处理器,用于执行计算机程序时实现如本申请第一实施例提供的大卷积核硬件实现方法的步骤。

本申请第三实施例公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序。所述计算机程序被处理执行时实现如本申请第一实施例提供的大卷积核硬件实现方法的步骤。

各个实施例和示例之间类似的部分相互参考即可。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:神经网络激活函数的通用拟合方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!