【技术实现步骤摘要】
一种软硬件协同优化卷积神经网络计算的方法及装置
[0001]本专利技术涉及深度学习和神经网络加速的
,尤其涉及一种软硬件协同优化卷积神经网络计算的方法及装置。
技术介绍
[0002]随着深度学习技术的发展,卷积神经网络CNN因其高推断精度和强自适应性的特点,研究领域已经从图像扩展到文本、视频和语音。CNN也在不断的发展优化,出现了SqueezeNet、MobileNet、ShuffleNet、Xception等使用特殊的结构或单元以减少计算量的轻量化模型。但在传统CNN变体网络的卷积计算中,其核心的矩阵运算需要很高的算力,尤其是网络深度的增加使得计算效率下降。如何面向CNN构建高效的计算系统成为亟待解决的问题。解决这一问题方法主要依赖于对CNN进行网络优化,或者根据CNN的特点设计硬件加速器。
[0003]本申请专利技术人在实施本专利技术的过程中,发现现有技术的方法,至少存在如下技术问题:
[0004]当前方法,新型的深度神经网络模型需要去匹配硬件架构,导致在通用硬件架构下模型特点不能够被充分利用;而神经网络模型加速器设计也没有充分考虑模型本身的特性,无法实现更高效的计算。
技术实现思路
[0005]卷积神经网络CNN(Convolutional Neural Networks)是应用于模式识别、图像处理等领域的一种高效识别算法。对于CNN中的卷积核和池化的运算来说,其核心是矩阵运算,需要很高的算力要求,同时卷积和池化运算都是流式运算模式。面向CNN构建高效的计算系统传统上主要以 ...
【技术保护点】
【技术特征摘要】
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...
【专利技术属性】
技术研发人员:何炎祥,刘芳,胡刚,彭敏,范子蒙,黄飞虎,
申请(专利权)人:武汉大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。