基于深度神经网络的加速方法、装置、设备及介质制造方法及图纸

技术编号:37223960 阅读:27 留言:0更新日期:2023-04-20 23:08
本申请公开了基于深度神经网络的加速方法、装置、设备及介质,应用于深度学习技术领域,包括:获取神经网络加速设备的缓存空间以及待运算卷积层的权重参数的占用空间;基于缓存空间确定阈值,判断占用空间是否大于阈值;若占用空间大于阈值,则输入特征图拆分为目标数量个子特征图,以及将权重参数拆分为目标数量个子权重参数;基于子特征图以及子权重参数生成第一运算指令,并下发至神经网络加速设备,以便神经网络加速设备基于第一运算指令对目标数量个子特征图以及目标数量个子权重参数分别进行卷积运算得到目标数量个子卷积结果,并将目标数量个子卷积结果相加得到待运算卷积层对应的卷积运算结果。在保障网络精度的前提下,提升推理速度。提升推理速度。提升推理速度。

【技术实现步骤摘要】
基于深度神经网络的加速方法、装置、设备及介质


[0001]本申请涉及深度神经网络加速运算
,特别涉及基于深度神经网络的加速方法、装置、设备及介质。

技术介绍

[0002]目前,DNN(即Deep Neural Network,深度神经网络)已经大大推动了人工智能的发展。深度神经网络已广泛应用于计算机视觉、语音识别、自动驾驶、自然语言处理、超分辨率等诸多领域中。虽然深度学习在计算机视觉中的识别性能已经远超于传统的机器学习算法,但涉及到部署并应用在生产环境的这一步,往往不是件轻松的事情。
[0003]深度神经网络模型的计算量主要集中在卷积层的计算,由于较大网络的卷积层数量多、单个卷积层计算量较大,使得整体计算量也较大。在卷积层计算时,通常需要将权重参数(训练参数)以及输入特征图读入缓存中进行计算,由于缓存大小的限制,某些权重较大的卷积层无法顺利计算,导致模型推理过程出错。目前,针对计算量较大的网络,通常采用CPU(即central processing unit,中央处理器)与FPGA(即Field Programmable Gate Array,现场可编程逻辑门阵列)异构计算方式,将受限于存储空间大小的卷积层,放在CPU上计算,而后将其计算结果传输到FPGA上以进行下一层的计算,或者采用模型剪枝、量化来减小网络规模。将计算量较大的卷积层放于CPU端计算,在卷积计算前后,存在大量的数据传输,不仅增加硬件设计成本,而且影响推理速度。而减小网络规模虽然可以缓解现有卷积神经网络参数量大、计算量大、内存占用多等问题,但在实际应用过程中存在诸多限制和前提条件,网络模型的精度也可能会降低。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供基于深度神经网络的加速方法、装置、设备及介质,能够在保障网络精度的前提下,提升推理速度。其具体方案如下:第一方面,本申请公开了一种基于深度神经网络的加速方法,应用于神经网络编译设备,包括:获取神经网络加速设备的缓存空间以及待运算卷积层的权重参数的占用空间;基于所述缓存空间确定阈值,并判断所述占用空间是否大于所述阈值;若所述占用空间大于所述阈值,则将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图,以及将所述权重参数拆分为目标数量个子权重参数;基于所述目标数量个子特征图以及所述目标数量个子权重参数生成第一运算指令,并将所述第一运算指令下发至所述神经网络加速设备,以便所述神经网络加速设备基于所述第一运算指令对所述目标数量个子特征图以及所述目标数量个子权重参数分别进行卷积运算得到目标数量个子卷积结果,并将所述目标数量个子卷积结果相加得到所述待运算卷积层对应的卷积运算结果,以提升深度神经网络的推理速度。
[0005]可选的,所述将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征
图,包括:沿通道方向将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图。
[0006]可选的,所述将所述权重参数拆分为目标数量个子权重参数,包括:沿通道方向将所述权重参数拆分为目标数量个子权重参数。
[0007]可选的,在所述沿通道方向将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图之前,包括:判断所述待运算卷积层对应的输入特征图是否满足预设拆分条件;若所述待运算卷积层对应的输入特征图满足所述预设拆分条件,则触发所述沿通道方向将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图的步骤。
[0008]可选的,所述判断所述待运算卷积层对应的输入特征图是否满足预设拆分条件,包括:判断所述待运算卷积层对应的输入特征图的通道数量是否大于1;若所述待运算卷积层对应的输入特征图的通道数量大于1,则判定所述待运算卷积层对应的输入特征图满足所述预设拆分条件。
[0009]可选的,还包括:若所述待运算卷积层对应的输入特征图的通道数量等于1,则判定所述待运算卷积层对应的输入特征图不满足所述预设拆分条件。
[0010]可选的,在判定所述待运算卷积层对应的输入特征图不满足所述预设拆分条件之后,还包括:直接对所述输入特征图和所述权重参数进行卷积运算,得到卷积运算结果。
[0011]可选的,在所述将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图,以及将所述权重参数拆分为目标数量个子权重参数,包括:将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图,以及将所述权重参数拆分为目标数量个子权重参数;判断所述目标数量个子特征图以及所述目标数量个子权重参数是否满足预设运算条件;若所述目标数量个子特征图以及所述目标数量个子权重参数满足所述预设运算条件,则触发所述基于所述目标数量个子特征图以及所述目标数量个子权重参数生成第一运算指令的步骤。
[0012]可选的,所述判断所述目标数量个子特征图以及所述目标数量个子权重参数是否满足预设运算条件,包括:从所述目标数量个子特征图中确定出占用空间最大的子特征图以得到目标子特征图;从所述目标数量个子权重参数中确定出占用空间最大的子权重参数以得到目标子权重参数;判断所述目标子特征图以及所述目标子权重参数的占用空间之和是否小于或等于所述阈值;若所述目标子特征图以及所述目标子权重参数的占用空间之和小于或等于阈值,则判定所述目标数量个子特征图以及所述目标数量个子权重参数是否满足预设运算条件。
[0013]可选的,还包括:若所述目标数量个子特征图以及所述目标数量个子权重参数不满足所述预设运算条件,则增大所述目标数量,并基于增大后的目标数量将所述待运算卷积层对应的输入特征图以及将述权重参数拆分,直到满足所述预设运算条件。
[0014]可选的,还包括:获取配置参数,所述配置参数包括初始的目标数量以及增量参数;相应的,所述增大所述目标数量,包括:基于所述增量参数增大所述目标数量。
[0015]可选的,还包括:获取深度神经网络;基于所述深度神经网络的网络结构将所述深度神经网络的多个卷积层依次确定为待运算卷积层。
[0016]可选的,还包括:获取所述神经网络加速设备返回的所述待运算卷积层对应的卷积运算结果。
[0017]可选的,还包括:获取TVM编译器,以利用所述TVM编译器,获取神经网络加速设备的缓存空间以及待运算卷积层的权重参数的占用空间;基于所述缓存空间确定阈值,并判断所述占用空间是否大于所述阈值;若所述占用空间大于所述阈值,则将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图,以及将所述权重参数拆分为目标数量个子权重参数;基于所述目标数量个子特征图以及所述目标数量个子权重参数生成第一运算指令,并将所述第一运算指令下发至所述神经网络加速设备。
[0018]可选的,还包括:若所述占用空间小于或所述阈值,则生成所述待运算卷积层对应的第二运算指令,并将所述第二运算指令下发至所述神经网络加速设备,以便所述神经网络加速设备基于所述第二运算指令对所述输入特征图和所述权重参数进行卷积运算,得到卷积运算结果。
[0019]第二方面,本申请公开了一种基于深度神经网络的加速方法本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于深度神经网络的加速方法,其特征在于,应用于神经网络编译设备,包括:获取神经网络加速设备的缓存空间以及待运算卷积层的权重参数的占用空间;基于所述缓存空间确定阈值,并判断所述占用空间是否大于所述阈值;若所述占用空间大于所述阈值,则将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图,以及将所述权重参数拆分为目标数量个子权重参数;基于所述目标数量个子特征图以及所述目标数量个子权重参数生成第一运算指令,并将所述第一运算指令下发至所述神经网络加速设备,以便所述神经网络加速设备基于所述第一运算指令对所述目标数量个子特征图以及所述目标数量个子权重参数分别进行卷积运算得到目标数量个子卷积结果,并将所述目标数量个子卷积结果相加得到所述待运算卷积层对应的卷积运算结果,以提升深度神经网络的推理速度。2.根据权利要求1所述的基于深度神经网络的加速方法,其特征在于,所述将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图,包括:沿通道方向将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图。3.根据权利要求2所述的基于深度神经网络的加速方法,其特征在于,所述将所述权重参数拆分为目标数量个子权重参数,包括:沿通道方向将所述权重参数拆分为目标数量个子权重参数。4.根据权利要求2所述的基于深度神经网络的加速方法,其特征在于,在所述沿通道方向将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图之前,包括:判断所述待运算卷积层对应的输入特征图是否满足预设拆分条件;若所述待运算卷积层对应的输入特征图满足所述预设拆分条件,则触发所述沿通道方向将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图的步骤。5.根据权利要求4所述的基于深度神经网络的加速方法,其特征在于,所述判断所述待运算卷积层对应的输入特征图是否满足预设拆分条件,包括:判断所述待运算卷积层对应的输入特征图的通道数量是否大于1;若所述待运算卷积层对应的输入特征图的通道数量大于1,则判定所述待运算卷积层对应的输入特征图满足所述预设拆分条件。6.根据权利要求5所述的基于深度神经网络的加速方法,其特征在于,还包括:若所述待运算卷积层对应的输入特征图的通道数量等于1,则判定所述待运算卷积层对应的输入特征图不满足所述预设拆分条件。7.根据权利要求6所述的基于深度神经网络的加速方法,其特征在于,在判定所述待运算卷积层对应的输入特征图不满足所述预设拆分条件之后,还包括:直接对所述输入特征图和所述权重参数进行卷积运算,得到卷积运算结果。8.根据权利要求1所述的基于深度神经网络的加速方法,其特征在于,在所述将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图,以及将所述权重参数拆分为目标数量个子权重参数,包括:将所述待运算卷积层对应的输入特征图拆分为目标数量个子特征图,以及将所述权重参数拆分为目标数量个子权重参数;判断所述目标数量个子特征图以及所述目标数量个子权重参数是否满足预设运算条件;
若所述目标数量个子特征图以及所述目标数量个子权重参数满足所述预设运算条件,则触发所述基于所述目标数量个子特征图以及所述目标数量个子权重参数生成第一运算指令的步骤。9.根据权利要求8所述的基于深度神经网络的加速方法,其特征在于,所述判断所述目标数量个子特征图以及所述目标数量个子权重参数是否满足预设运算条件,包括:从所述目标数量个子特征图中确定出占用空间最大的子特征图以得到目标子特征图;从所述目标数量个子权重参数中确定出占用空间最大的子权重参数以得到目标子权重参数;判断所述目标子特征图以及所述目标子权重参数的占用空间之和是否小于或等于所述阈值;若所述目标子特征图以及所述目标子权重参数的占用空间之和小于或等于阈值,则判定所述目标数量个子特征图以及所述目标数量个子权重参数是否满足预设运算条件。10.根据权利要求8所述的基于深度神经网络的加速方法,其特征在于,还包括:若所述目标数量个子特征图以及所述目标数量个子权重参数不满足所述预设运算条件,则增大所述目标数量,并基于增大后的目标数量将所述待运算卷积层对应的输入特征图以及将述权重参数拆分,直到满足所述预设运算条件。11.根据权利要求10所述的基于深度神经网络的...

【专利技术属性】
技术研发人员:张会朋
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1