当前位置: 首页 > 专利查询>武汉大学专利>正文

一种软硬件协同优化卷积神经网络计算的方法及装置制造方法及图纸

技术编号:35098043 阅读:17 留言:0更新日期:2022-10-01 17:02
本发明专利技术公开了一种软硬件协同优化卷积神经网络计算的方法及装置,针对ShuffleNetV2模型进行模块分析和协同设计,通过实现量化、改进计算单元;针对模型的特点,以可重构计算设备为基础进行优化;实现了8bit的量化,同时重新设计了深度可分离卷积操作,使模块以硬件友好的形式进行运算,并使用HLS(High Level Synthesis)在FPGA平台xilinxzynqxc

【技术实现步骤摘要】
一种软硬件协同优化卷积神经网络计算的方法及装置


[0001]本专利技术涉及深度学习和神经网络加速的
,尤其涉及一种软硬件协同优化卷积神经网络计算的方法及装置。

技术介绍

[0002]随着深度学习技术的发展,卷积神经网络CNN因其高推断精度和强自适应性的特点,研究领域已经从图像扩展到文本、视频和语音。CNN也在不断的发展优化,出现了SqueezeNet、MobileNet、ShuffleNet、Xception等使用特殊的结构或单元以减少计算量的轻量化模型。但在传统CNN变体网络的卷积计算中,其核心的矩阵运算需要很高的算力,尤其是网络深度的增加使得计算效率下降。如何面向CNN构建高效的计算系统成为亟待解决的问题。解决这一问题方法主要依赖于对CNN进行网络优化,或者根据CNN的特点设计硬件加速器。
[0003]本申请专利技术人在实施本专利技术的过程中,发现现有技术的方法,至少存在如下技术问题:
[0004]当前方法,新型的深度神经网络模型需要去匹配硬件架构,导致在通用硬件架构下模型特点不能够被充分利用;而神经网络模型加速器设计也没有充分考虑模型本身的特性,无法实现更高效的计算。

技术实现思路

[0005]卷积神经网络CNN(Convolutional Neural Networks)是应用于模式识别、图像处理等领域的一种高效识别算法。对于CNN中的卷积核和池化的运算来说,其核心是矩阵运算,需要很高的算力要求,同时卷积和池化运算都是流式运算模式。面向CNN构建高效的计算系统传统上主要以软件优化或硬件加速器来实现,而实际上软件算法和硬件架构在神经网络中通常是相互作用的。
[0006]有鉴于此,本专利技术旨在专利技术一种软硬件协同优化卷积神经网络计算的方法及装置,用以解决或者至少部分解决现有技术中存在的计算资源利用率过低和计算延时较高的技术问题。
[0007]为了解决上述技术问题,本专利技术第一方面提供了一种软硬件协同优化卷积神经网络计算的方法,包括:
[0008]S1:对原始卷积神经网络模型进行分析,得到原始神经网络模型的硬件资源消耗和时延;
[0009]S2:采用量化操作对原始卷积神经网络模型的权重参数进行压缩,得到压缩后的权重参数;
[0010]S3:对原始卷积神经网络模型按照功能划分为数据载入模块、数据存储模块、全连接模块、卷积模块以及池化模块,统计各个模块的调用频率和参数规模,其中,各个模块的调用频率模块根据模块复用率和模块并行数得到,参数规模由压缩后的权重参数划分给每
个模块后得到;
[0011]S4:构建依次包含数据载入模块、数据存储模块、全连接模块、卷积模块和池化模块的硬件架构并设置各模块的调用顺序,其中,所述数据载入模块用于按计算需求分批此的读取数据;所述数据存储模块用于将其他所有模块计算后的中间结果暂存于内部存储中;所述全连接模块、卷积模块和池化模块分别用于实现全连接计算、卷积计算和池化操作,通过卷积、池化、激活函数的多次迭代后,再经过全连接层对结果进行分类;
[0012]S5:根据划分的模块、构建的硬件架构以及设置的调用顺序,进行仿真实验,找出硬件实现过程中计算效率低于预设值的模块和调用频率超过阈值的模块,并对找出的这些模块进行优化,设计卷积模块的计算流程,然后根据原始卷积神经网络模型的硬件资源消耗和时延进行迭代以达到最优的运行效果,得到优化后的软件实现方案;
[0013]S6:基于优化后的软件实现方案,对硬件架构实现过程中对计算效率有影响的模块和调用频率超过阈值的模块的计算顺序进行重新设计,并根据原始卷积神经网络模型的硬件资源消耗和时延设计整体硬件架构方案。
[0014]在一种实施方式中,原始卷积神经网络模型为ShuffleNetV2模型。
[0015]在一种实施方式中,步骤S5对找出的这些模块进行优化包括:
[0016]针对计算效率低于预设值的模块进行硬件资源平铺以增加并行数;
[0017]针对调用频率超过阈值的模块进行功能拆分来降低单个模块的调用次数。
[0018]在一种实施方式中,卷积模块包括通道分割单元、计算单元,步骤S5中设计卷积模块的计算流程,包括:
[0019]将特征图像转递给卷积模块,设置一个标识符Flag用以区分本次卷积操作的类别,其中,当Flag=PW时,表示本次操作为通道卷积;当Flag=DW时本次操作为空间卷积;当Flag=CON时本次操作为普通卷积;
[0020]通道分割单元检测输入的特征图像是否按维度方向分为两部分,若没有,则对输入的特征图像进行分割,分割后的特征图像传输给计算单元,其中,计算单元包括若干个PE和加法树;
[0021]通过计算单元将分割后的特征图像与若干个PE并行对权重进行乘法操作,然后通过一组加法树完成卷积操作,最后每个输出结果与偏置做加法操作得到卷积后的三维特征矩阵。
[0022]在一种实施方式中,步骤S6包括:
[0023]通过参数量化操作将数据进行压缩处理使卷积神经网络模型能存储到块随机存储器数上,其中,数据的读取由AXI4总线实现,ARM核的命令通过AXI4总线进行传输;
[0024]当卷积神经网络模型计算完后会产生一个中断信号,通过终端控制返回给ARM核,标志着推理计算部分完成,由ARM核在块随机存储器数中取出推理的结果完成整个推理过程;
[0025]使用FPGA上的ARM核对系统进行整体控制,调用卷积神经网络模型进行推理,记录信息和参数配置。
[0026]在一种实施方式中,所述方法还包括:
[0027]利用部署好的原始神经网络模型对原始数据进行预测,获得预测结果。
[0028]基于同样的专利技术构思,本专利技术第二方面提供了一种软硬件协同优化卷积神经网络
计算的方法,包括:
[0029]分析模块,用于对原始卷积神经网络模型进行分析,得到原始神经网络模型的硬件资源消耗和时延;
[0030]压缩模块,用于采用量化操作对原始卷积神经网络模型的权重参数进行压缩,得到压缩后的权重参数;
[0031]软件设计模块,用于对原始卷积神经网络模型按照功能划分为数据载入模块、数据存储模块、全连接模块、卷积模块以及池化模块,统计各个模块的调用频率和参数规模,其中,各个模块的调用频率模块根据模块复用率和模块并行数得到,参数规模由压缩后的权重参数划分给每个模块后得到;
[0032]硬件架构构建模块,用于构建依次包含数据载入模块、数据存储模块、全连接模块、卷积模块和池化模块的硬件架构并设置各模块的调用顺序,其中,所述数据载入模块用于按计算需求分批此的读取数据;所述数据存储模块用于将其他所有模块计算后的中间结果暂存于内部存储中;所述全连接模块、卷积模块和池化模块分别用于实现全连接计算、卷积计算和池化操作,通过卷积、池化、激活函数的多次迭代后,再经过全连接层对结果进行分类;
[0033]模块优化模块,用于根据划分的模块、构建的硬件架构以及设置的调用顺序,进行仿真实验,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软硬件协同优化卷积神经网络计算的方法,其特征在于,包括:S1:对原始卷积神经网络模型进行分析,得到原始神经网络模型的硬件资源消耗和时延;S2:采用量化操作对原始卷积神经网络模型的权重参数进行压缩,得到压缩后的权重参数;S3:对原始卷积神经网络模型按照功能划分为数据载入模块、数据存储模块、全连接模块、卷积模块以及池化模块,统计各个模块的调用频率和参数规模,其中,各个模块的调用频率模块根据模块复用率和模块并行数得到,参数规模由压缩后的权重参数划分给每个模块后得到;S4:构建依次包含数据载入模块、数据存储模块、全连接模块、卷积模块和池化模块的硬件架构并设置各模块的调用顺序,其中,所述数据载入模块用于按计算需求分批此的读取数据;所述数据存储模块用于将其他所有模块计算后的中间结果暂存于内部存储中;所述全连接模块、卷积模块和池化模块分别用于实现全连接计算、卷积计算和池化操作,通过卷积、池化、激活函数的多次迭代后,再经过全连接层对结果进行分类;S5:根据划分的模块、构建的硬件架构以及设置的调用顺序,进行仿真实验,找出硬件实现过程中计算效率低于预设值的模块和调用频率超过阈值的模块,并对找出的这些模块进行优化,设计卷积模块的计算流程,然后根据原始卷积神经网络模型的硬件资源消耗和时延进行迭代以达到最优的运行效果,得到优化后的软件实现方案;S6:基于优化后的软件实现方案,对硬件架构实现过程中对计算效率有影响的模块和调用频率超过阈值的模块的计算顺序进行重新设计,并根据原始卷积神经网络模型的硬件资源消耗和时延设计整体硬件架构方案。2.如权利要求1所述的软硬件协同优化卷积神经网络计算的方法,其特征在于,原始卷积神经网络模型为ShuffleNetV2模型。3.如权利要求1所述的软硬件协同优化卷积神经网络计算的方法,其特征在于,步骤S5对找出的这些模块进行优化包括:针对计算效率低于预设值的模块进行硬件资源平铺以增加并行数;针对调用频率超过阈值的模块进行功能拆分来降低单个模块的调用次数。4.如权利要求1所述的软硬件协同优化卷积神经网络计算的方法,其特征在于,卷积模块包括通道分割单元、计算单元,步骤S5中设计卷积模块的计算流程,包括:将特征图像转递给卷积模块,设置一个标识符Flag用以区分本次卷积操作的类别,其中,当Flag=PW时,表示本次操作为通道卷积;当Flag=DW时本次操作为空间卷积;当Flag=CON时本次操作为普通卷积;通道分割单元检测输入的特征图像是否按维度方向分为两部分,若没有,则对输入的特征图像进行分割,分割后的特征图像传输给计算单元,其中,计算单元包括若干个PE和加法树;通过计算单元将分割后的特征图像与若干个PE并行对权重进行乘法操作,然后通过一组加法树完成卷积操作,最后每个输出结果与偏置做加法操作得到卷积后的三维特征矩阵。5...

【专利技术属性】
技术研发人员:何炎祥刘芳胡刚彭敏范子蒙黄飞虎
申请(专利权)人:武汉大学
类型:发明
国别省市:

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

1