优化神经网络模型执行策略的方法和装置制造方法及图纸

技术编号:38006848 阅读:14 留言:0更新日期:2023-06-30 10:23
本申请涉及优化神经网络模型执行策略的方法和装置。公开了一种优化神经网络模型的执行策略的方法,包括:接收一神经网络模型,神经网络模型包括多个节点,其中每个节点对应神经网络模型的至少一个运算层;识别各节点之间的数据依赖关系;根据识别的各节点之间的数据依赖关系确定多个节点执行顺序的约束条件;在满足执行顺序的约束条件的基础上,进行至少一个搜索算法以确定可能的候选节点执行顺序;基于每种候选节点执行顺序估计与神经网络模型的多个节点执行相关的存储需求;基于估计的与每种候选节点执行顺序相关的存储需求、根据预定的存储器使用效率指标从候选节点执行顺序中选择节点执行顺序,其中,改变节点执行顺序能够改变神经网络模型执行过程中多个节点中一个或多个节点的相应输出驻留在存储器中的时间;以及输出选择的神经网络模型的节点执行顺序。序。序。

【技术实现步骤摘要】
优化神经网络模型执行策略的方法和装置


[0001]本公开一般涉及人工智能中的机器学习领域,具体来说,本公开涉及基于人工智能的神经网络模型的执行策略的方法及装置。

技术介绍

[0002] 近年来神经网络模型呈现计算规模增加、复杂度提升的趋势。同时,人工智能物联网(Artificial Intelligence of Things (AIoT))等的应用市场正在持续增长,而高效能、低功耗、高云端整合成为发展趋势。
[0003]对于低硬件资源架构而言,面临的一个问题便是存储器容量限制,因此如何优化神经网络的执行策略以提高有限存储器的使用效率便成为一个迫切的问题。
[0004] US20190303762A1涉及神经网络计算图的优化方法。该计算图用于计算平台进行神经网络计算。计算平台从片外存储器中读取计算所需的数据。该专利申请定义用于识别水平和/或纵向相邻层的规则,基于优化规则选择可融合的层,以降低计算平台与片外存储器之间的数据交换频率。使用定义的融合规则来确定神经网络模型的不同融合策略,以及进行模拟来评估不同融合策略的时间成本和计算效率,并选择性能最佳的一种。
[0005] US10699186B2 涉及确定神经网络的执行顺序的方法。该方法先确定给定内存空间中用于运行网络推理的可用内存量,然后确定神经网络中每个运算的内存需求,并且提出一些图搜索算法来确定神经网络运算的执行顺序,以使得内存的使用不超过可用内存量。
[0006] CN112346877B涉及有效加速深度学习计算的内存分配方法。该申请提出先根据多分支运算层计算出所需内存空间大小,确定多分支运算层的目标运算顺序,然后根据目标内存分配方案以及确定的目标运算顺序来确定执行所述多分支运算层的内存分配方案。

技术实现思路

[0007]有鉴于此,本申请提出通过从整体上缩短神经网络模型中运算层的输出驻留在存储器中的时间来提高存储器的使用效率。基于这种理念,本申请的一个实施例提出满足神经网络模型各运算层之间的数据依赖关系对各运算层执行顺序的约束的前提下,通过优化神经网络模型中运算层的执行顺序来从整体上缩短神经网络模型中各运算层的输出驻留在存储器中的总的时间,由此降低运行时存储器平均使用量和使用峰值。
[0008]为了提高搜索优化运算的执行顺序的处理效率,本申请的一个实施例提出基于神经网络模型中的分支节点将神经网络模型中的节点进行多级分组,将直接跟随一个分支节点的至少两个节点确定为分支组始节点,并将每个分支组始节点连同数据依赖于该分支组始节点的节点分别指定为同一个分支组,基于该分支节点的每个分支组的进行排列组合排序以降低候选执行顺序数量,由此来提高处理效率。本申请的优选实施例提出基于分支组采用从神经网络中接近输入的顶部根节点开始逐级以自上而下的方式遍历各级分组的排序,每次遍历能够使得从神经网络中靠近输出的底部的依赖级别最高的节点执行顺序得到
最优化,进而通过多次遍历从神经网络的底部依赖级别最高的节点开始逐级以自下而上的方式实现神经网络模型节点执行顺序全局最优化。
[0009]通过本申请实施例优化神经网络模型的执行策略的方法,能够提升计算机设备的硬件性能效率,特别是降低神经网络模型运行时存储器的平均使用量和存储器的使用峰值,同时不改变神经网络模型架构,对神经网络算法性能没有影响,特别是不影响模型准确度。而且,获得优化运算的执行顺序的处理能够基于训练好的神经网络模型一次性离线进行,而无需在线实时处理。
[0010]本申请一方面公开了一种优化神经网络模型的执行策略的方法,包括:接收一神经网络模型,神经网络模型包括多个节点,其中每个节点对应所述神经网络模型的至少一个运算层;识别所述各节点之间的数据依赖关系;根据识别的各节点之间的数据依赖关系确定多个节点执行顺序的约束条件;在满足所述执行顺序的约束条件的基础上,进行至少一个搜索算法以确定可能的候选节点执行顺序;基于每种候选节点执行顺序估计与所述神经网络模型的多个节点执行相关的存储需求;基于估计的与每种候选节点执行顺序相关的存储需求、根据预定的存储器使用效率指标从所述候选节点执行顺序中选择节点执行顺序,其中,改变节点执行顺序能够改变所述神经网络模型执行过程中多个节点中一个或多个节点的相应输出驻留在存储器中的时间;以及输出选择的所述神经网络模型的节点执行顺序。
[0011]本申请另一方面公开了一种优化神经网络节点的执行策略的装置,包括:接收单元,被配置为接收神经网络模型,神经网络模型包括多个节点,其中每个节点对应神经网络模型的至少一个运算层;识别单元,被配置为识别所述各节点之间的数据依赖关系;确定单元,被配置为根据识别的各节点之间的数据依赖关系确定多个节点执行顺序的约束条件;搜索单元,被配置为在满足所述执行顺序的约束条件的基础上,进行至少一个搜索算法以确定可能的候选节点执行顺序;估计单元,被配置为基于每种候选节点执行顺序估计与所述神经网络模型的多个节点执行相关的存储需求;择优单元,被配置为基于估计的与每种候选节点执行顺序相关的存储需求、根据预定的存储器使用效率指标从所述候选节点执行顺序中选择节点执行顺序,其中,改变节点执行顺序能够改变所述神经网络模型执行过程中多个节点中一个或多个节点的相应输出驻留在存储器中的时间;以及输出单元,被配置为输出选择的所述神经网络模型的节点执行顺序。
[0012]本申请的又一方面公开了一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序在计算装置上运行时,使该计算装置执行根据本申请公开的优化神经网络模型的执行策略的方法。
附图说明
[0013]在下面结合附图对于示例性实施例的描述中,公开了本公开的更多细节、特征和优点,在附图中:图1示意性示出了伪代码形式的网络描述符和图形形式的网络描述符的示例;图2示意性示出了神经网络模型各运算层之间的数据依赖关系;图3示意性示出了以不同的顺序执行神经网络模型中各运算层对存储器使用的影响的示例;
图4示意性示出了根据本公开实施例的获得神经网络模型优化节点执行顺序的流程图;图5 示出了分支节点的示意图;图6 示意性示出了基于分支获得神经网络模型优化节点执行顺序的优选实施例的流程图;图6A

6B示意性示出了识别神经网络模型中的分支节点以及分组的过程;图6C

6I示意性示出了动态分组的具体过程;图7示出了神经网络模型节点执行顺序局部最优化的示意图;图8A和8B示出了确定节点依赖级别的示意图;图9示意性示出了根据本公开实施例的示例性的优化神经网络节点的执行策略的装置900的框图;图10A和10B示出了基于神经网络模型示例1Yolo和神经网络模型示例2 InceptionV1对于内存使用情况的对比;图11 示意性示出了根据本公开实施例的计算设备1100的框图。
具体实施方式
[0014]在详细介绍本公开的实施例之前,首先对一些相关的概念进行解释。
[0015]卷积神经网络(CNN)模型包括模型的输入以及多个运算层。多个运算层相互连接构成本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种优化神经网络模型的执行策略的方法,包括:接收一神经网络模型,所述神经网络模型包括多个节点,其中每个节点对应所述神经网络模型的至少一个运算层;识别所述各节点之间的数据依赖关系;根据识别的各节点之间的数据依赖关系确定多个节点执行顺序的约束条件;在满足所述执行顺序的约束条件的基础上,进行至少一个搜索算法以确定可能的候选节点执行顺序;基于每种候选节点执行顺序估计与所述神经网络模型的多个节点执行相关的存储需求;基于估计的与每种候选节点执行顺序相关的存储需求、根据预定的存储器使用效率指标从所述候选节点执行顺序中选择节点执行顺序,其中,改变节点执行顺序能够改变所述神经网络模型执行过程中多个节点中一个或多个节点的相应输出驻留在存储器中的时间;以及输出选择的所述神经网络模型的节点执行顺序。2.根据权利要求1所述的方法,其中,如果一个节点的输入来自另一节点的输出,则一个节点数据依赖于另一节点,以及将两个节点执行顺序的约束条件确定为:先运算另一节点再运算该一个节点;以及每个节点运行之后生成相应输出,所生成的输出驻留在存储器中直到调用该输出的所有节点运行完毕从存储器中释放。3.根据权利要求1所述的方法,其中,所述存储器使用效率指标包括存储器的平均使用量和/或存储器使用峰值,以及根据预定的存储器使用效率指标从所述候选节点执行顺序中选择节点执行顺序的步骤包括将存储需求最小的候选节点执行顺序选择为优化节点执行顺序,包括将运行神经网络模型时存储器的平均使用量最小和/或存储器使用峰值最低的候选节点执行顺序选择为优化节点执行顺序。4.根据权利要求1所述的方法,其中,识别所述多个节点之间的数据依赖关系的步骤包括:步骤A,基于预定识别方法来扫描所述神经网络模型中的多个节点以识别至少一个分支节点,其中如果一个节点直接跟随有至少两个单源类型的节点,则将该节点识别为分支节点,其中所述分支节点的输出被直接跟随的至少两个节点调用,并在该至少两个节点运行完毕后从存储器中释放该分支节点的输出;步骤B,将直接跟随所识别的一个分支节点的至少两个节点确定为至少两个分支组始节点,并将每个分支组始节点连同数据依赖于该分支组始节点的节点分别指定为同一个分支组,将至少两个分支组始节点连同相应分支组始节点的节点分别指定到分支组1,分支组2
……
分支组N。5. 根据权利要求4所述的方法,其中,确定可能的候选节点执行顺序和选择节点执行顺序的步骤包括:步骤C,确定所述分支组1至分支组N所有分支组可能的分支组候选执行顺序,基于每种分支组候选执行顺序估计与所...

【专利技术属性】
技术研发人员:张伟强陈文炽罗鹏
申请(专利权)人:联合微电子中心有限责任公司
类型:发明
国别省市:

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

1