用于优化神经网络模型的编译方法及其相关产品技术

技术编号:30320836 阅读:25 留言:0更新日期:2021-10-09 23:39
本公开涉及一种用于优化神经网络模型的编译方法、编译器、设备、计算装置和板卡,该计算装置包括在组合处理装置中,该组合处理装置还可以包括接口装置和其他处理装置。该计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于存储该计算装置和其他处理装置的数据。本公开的方案可以显著提升包括人工智能处理器的智能计算系统的计算性能。理器的智能计算系统的计算性能。理器的智能计算系统的计算性能。

【技术实现步骤摘要】
用于优化神经网络模型的编译方法及其相关产品


[0001]本公开一般地涉及人工智能领域。更具体地,本公开涉及一种用于优化神经网络模型的编译方法、编译器、用过执行前述编译方法的设备和计算机程序产品、包括前述编译器或设备的集成电路装置,以及包括该集成电路装置的板卡。

技术介绍

[0002]近些年来,随着数据获取难度的下降和硬件算力的大幅提升,深度学习获得了迅猛的发展并且其算法也被广泛应用于各行各业。尽管如此,随着神经网络输入的图片尺寸逐年增长并且网络的参数也随之增长,对于拥有海量参数的网络来说,算力仍然是阻碍算法发展和应用的瓶颈。因此,如何提高硬件算力的利用率和改进网络的运行效率成为了众多算法提供商的优化重点。
[0003]在包括深度学习的神经网络中,算力通常集中在卷积(“conv”)操作中,并且卷积操作中输入的增大通常会带来计算量的指数级增加。为了减少网络的参数量,通常会通过平均池化(“AvgPooling”)操作来对网络的特征进行进一步的提取。由此,在神经网络中经常会出现Conv+AvgPooling的结构。然而,这样的架构存在多种缺陷。首先,由于Conv中存在求和的过程,而AvgPooling本质上也是求和,因此Conv+AvgPooling的结构中存在多余的加法运算,从而造成算力的浪费。其次,Conv计算后的输出结果需要存储到额外的位置。由于Conv输出的大小通常是AvgPooling输出的若干倍,这就使得现有的结构不能充分的利用当前的存储资源,并且这样的方式还增加了I/O带宽,从而导致输出和计算的效率折损。再者,由于Conv+AvgPooling结构中的算法是分两次运算的,一次在Conv中而另一次在AvgPooling中,这可能会引入浮点数精度带来的“大数吃小数”问题,即在数据累加中,由于浮点精度的限制,绝对值较小的数会被绝对值大的数“吃掉”,这会引入一定的误差。

技术实现思路

[0004]鉴于上述
技术介绍
部分所提及的技术问题,本公开提出一种对包括如上“Conv+AvgPooling”结构的神经网络模型进行优化的方案。利用本公开的方案,可以将神经网络中的卷积层和池化层进行融合,以得到本公开上下文中的融合卷积层。由此,可以减小现有“Conv+AvgPooling”结构中的运算复杂度并显著提升包括人工智能处理器的智能计算系统的计算性能。为此,本公开在如下的多个方面中提供用于优化神经网络模型的的方案。
[0005]在第一方面中,本公开提供了一种用于优化神经网络模型的编译方法,其中所述神经网络模型包括相互连接的卷积层和池化层,所述编译方法由通用处理器来执行,并且包括:获取所述卷积层的卷积参数和权重以及池化层的池化参数;将所述卷积参数和池化参数进行融合,以得到融合参数;根据所述融合参数和池化参数对所述神经网络模型进行优化,以将所述卷积层和池化层转化为融合卷积层,其中所述融合卷积层的融合权重是利用所述融合参数和所述池化参数对卷积层的权重的转换获得;以及将优化后的所述神经网络模型编译成对应的二进制指令序列,以分配至人工智能处理器上执行对应的任务。
[0006]在第二方面中,本公开提供了一种用于优化神经网络模型的编译器,其中所述神经网络模型包括相互连接的卷积层和池化层,所述编译器包括:获取模块,其用于获取所述卷积层的卷积参数和权重以及池化层的池化参数;融合模块,其用于将所述卷积参数和池化参数进行融合,以得到融合参数;优化模块,其用于根据所述融合参数和池化参数对所述神经网络模型进行优化,以将所述卷积层和池化层转化为融合卷积层,其中所述融合卷积层的融合权重是利用所述融合参数和所述池化参数对卷积层的权重的转换获得;以及分配模块,其用于将优化后的所述神经网络模型编译成对应的二进制指令序列,以分配至人工智能处理器上执行对应的任务。
[0007]在第三方面中,本公开提供了一种用于优化神经网络模型的设备,包括:至少一个处理器;以及至少一个存储器,其用于存储程序指令,当所述程序指令由所述至少一个处理器加载并执行时,使得所述设备执行前述以及在下文多个实施例中所述的方法。
[0008]在第四方面中,本公开提供了一种计算机程序产品,包括程序指令,所述程序指令在被处理器执行时,实现前述以及在下文多个实施例中所述的方法。
[0009]在第五方面中,本公开提供了一种计算装置,包括人工智能处理器,所述人工智能处理器配置成执行根据如上所述以及在下文多个实施例中所述的编译方法所编译的二进制指令序列。
[0010]在第五方面中,本公开提供了一种板卡,包括如上所述以及在下文多个实施例中所述的计算装置。
[0011]通过本公开如上多个方面中所提供的融合方案,现有的卷积操作和池化操作可以得到最大程度的优化。具体地,本公开的方案通过融合操作可以降低执行与神经网络模型关联的任务时的整体计算量。进一步,通过将卷积层和池化层进行融合,可以克服例如现有卷积层的输出所带来的I/O开销并且提高硬件的利用效率。同时,由于卷积层和池化层的融合,可以降低二者操作中累加所带来的误差,从而提高也提高了神经网络模型运算的精度和准确度。
附图说明
[0012]通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
[0013]图1是示出根据本公开实施例的板卡的结构图;
[0014]图2是示出根据本公开实施例的集成电路装置的结构图;
[0015]图3是示出根据本公开实施例的单核计算装置的内部结构示意图;
[0016]图4是示出根据本公开实施例的多核计算装置的内部结构示意图;
[0017]图5是示出根据本公开实施例的处理器核的内部结构示意图;
[0018]图6是示出本公开方案所涉及的神经网络模型的特定层的简化框图;
[0019]图7是示出根据本公开实施例的神经网络模型中卷积层操作的示意框图;
[0020]图8是示出根据本公开实施例的神经网络模型中池化层操作的示意框图;
[0021]图9是示出根据本公开实施例的用于优化神经网络模型的编译方法的流程图;
[0022]图10是示出根据本公开实施例的权重转换操作的示意图;
[0023]图11是示出根据本公开实施例的编译器的示意框图;以及
[0024]图12是示出根据本公开实施例的人工智能计算系统的操作框图。
具体实施方式
[0025]下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0026]应当理解,本公开的权利要求、说明书及附图中可能使用的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。本公开的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于优化神经网络模型的编译方法,其中所述神经网络模型包括相互连接的卷积层和池化层,所述编译方法由通用处理器来执行,并且包括:获取所述卷积层的卷积参数和权重以及池化层的池化参数;将所述卷积参数和池化参数进行融合,以得到融合参数;根据所述融合参数和池化参数对所述神经网络模型进行优化,以将所述卷积层和池化层转化为融合卷积层,其中所述融合卷积层的融合权重是利用所述融合参数和所述池化参数对卷积层的权重的转换获得;以及将优化后的所述神经网络模型编译成对应的二进制指令序列,以分配至人工智能处理器上执行对应的任务。2.根据权利要求1所述的编译方法,其中所述卷积层的卷积核和所述池化层的池化核的维度包括一维或多维,其中所述卷积参数包括所述卷积核的尺寸参数和步长参数,所述池化参数包括所述池化核的尺寸参数和步长参数,所述融合参数包括融合卷积核的尺寸参数和步长参数,并且其中将所述卷积参数和池化参数进行融合,以得到所述融合参数包括:以维度方向为基准,将所述卷积核的各个维度方向的尺寸参数和步长参数与所述池化核的对应维度方向的尺寸参数和步长参数分别进行融合,以分别得到融合卷积核的尺寸参数和步长参数。3.根据权利要求2所述的编译方法,其中所述维度方向是横向或纵向,并且其中将所述卷积参数和池化参数进行融合,以得到所述融合参数包括:将所述卷积核的横向的尺寸参数和步长参数与所述池化核的横向的尺寸参数和步长参数进行融合,以分别得到融合卷积核的尺寸参数和步长参数;和/或将所述卷积核的纵向的尺寸参数和步长参数与所述池化核的纵向的尺寸参数和步长参数进行融合,以分别得到融合卷积核的尺寸参数和步长参数。4.根据权利要求1

3的任意一项所述的编译方法,其中所述池化层包括平均池化层或求和池化层。5.根据权利要求4所述的编译方法,其中所述池化层为所述平均池化层,并且其中利用所述融合参数和所述池化参数对所述卷积层的权重进行...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:

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

1