CN118228762A - 深度神经网络推理的图替代和并行化联合优化方法及装置 - Google Patents
深度神经网络推理的图替代和并行化联合优化方法及装置 Download PDFInfo
- Publication number
- CN118228762A CN118228762A CN202410336802.3A CN202410336802A CN118228762A CN 118228762 A CN118228762 A CN 118228762A CN 202410336802 A CN202410336802 A CN 202410336802A CN 118228762 A CN118228762 A CN 118228762A
- Authority
- CN
- China
- Prior art keywords
- graph
- joint optimization
- calculation
- determining
- subgraph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 211
- 238000006467 substitution reaction Methods 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims abstract description 133
- 238000012545 processing Methods 0.000 claims abstract description 52
- 238000010586 diagram Methods 0.000 claims description 39
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000012014 frustrated Lewis pair Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种深度神经网络推理的图替代和并行化联合优化方法及装置,所述方法包括:基于初始计算图确定多个计算子图;对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图;根据各目标联合优化图,确定初始计算图的优化结果。本申请先使用图替换再进行自动并行化,有效消除了并行化方案中冗余的流,从而最大化利用了硬件的性能,最大化减少了DNN推理的时间。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种深度神经网络推理的图替代和并行化联合优化方法及装置。
背景技术
在人工智能高速发展期间,深度神经网络(Deep Neural Network,DNN)凭借其强大的学习能力,在计算机视觉或自然语言处理等经典任务场景下均取得了相当优异的效果。现如今终端智能化成为当前物联网时代发展的必然趋势,越来越多的智能终端应用在关注并解决实际问题,对应用的实时性与准确性提出了严格的要求。智能应用往往是数据密集型与计算密集型任务,它所依赖的深度神经网络模型,主要通过增加网络深度、优化网络结构来获得更优的特征表达与学习推理能力,以达到更高的准确率。然而,目前推理时间优化后仍然较长。
发明内容
基于此,有必要针对上述技术问题,提供一种能够缩短优化推理时长的深度神经网络推理的图替代和并行化联合优化方法及装置。
第一方面,本申请提供了一种深度神经网络推理的图替代和并行化联合优化方法,上述方法包括:
基于初始计算图确定多个计算子图;
对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图;
根据各目标联合优化图,确定初始计算图的优化结果;优化结果用于表征推理时间符合预设需求的计算图。
在其中一个实施例中,上述对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图,包括:
根据多个计算子图构建优先队列;
从优先队列的第一个计算子图开始迭代直至最后一个计算子图,在每一轮迭代过程中,对计算子图进行图替代处理,得到计算子图对应的多个候选联合优化图;
对于各候选联合优化图,通过并行执行候选联合优化图中的分支得到候选联合优化图的执行成本数据;
根据执行成本数据从多个候选联合优化图中确定计算子图对应的目标联合优化图。
在其中一个实施例中,上述对计算子图进行图替代处理,得到计算子图对应的多个候选联合优化图,包括:
对计算子图中的多个算子进行多种组合;
在每种组合中,对组合算子进行图替代处理,得到计算子图对应的多个候选联合优化图。
在其中一个实施例中,上述通过并行执行候选联合优化图中的分支得到执行成本数据,包括:
对于候选联合优化图中的各分支,顺序执行各算子,得到分支的执行成本数据;
对多个分支的执行成本数据进行汇总处理,得到候选联合优化图的执行成本数据。
在其中一个实施例中,上述顺序执行各算子,得到分支的执行成本数据,包括:
基于预设的卷积算子和预设步幅,确定基准执行时间和基准计算量;
顺序执行各算子,得到各算子和计算量;
根据基准执行时间、基准计算量和各算子的计算量,确定各算子的执行成本数据;
对分支中多个算子的执行成本数据进行汇总处理,得到分支的执行成本数据。
在其中一个实施例中,上述对多个分支的执行成本数据进行汇总处理,得到候选联合优化图的执行成本数据,包括:
获取代表计算图的基准执行时间,以及代表计算图中多个分支的平均硬件利用率;
确定候选联合优化图中各分支的硬件利用率;
根据平均硬件利用率和多个分支的最大硬件利用率,确定目标比值;
根据目标比值和代表计算图的基准执行时间,得到候选联合优化图的执行成本数据。
在其中一个实施例中,上述根据执行成本数据从多个候选联合优化图中确定计算子图对应的目标联合优化图,包括:
将各候选联合优化图对应的执行成本数据进行比较,根据比较结果确定目标联合优化图。
在其中一个实施例中,上述根据各目标联合优化图,确定初始计算图的优化结果,包括:
对各目标联合优化图进行合并处理,得到初始计算图的优化结果。
在其中一个实施例中,上述基于初始计算图确定多个计算子图包括:
基于初始计算图确定多个算子集,并计算各算子集的权重和;
根据各权重和以及预先构建的最小割算法模型对初始计算图进行分割处理,得到多个计算子图。
第二方面,本申请还提供了一种深度神经网络推理的图替代和并行化联合优化装置,其特征在于,装置包括:
子图确定模块,用于基于初始计算图确定多个计算子图;
优化图确定模块,用于对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图;
结果确定模块,用于根据各目标联合优化图,确定初始计算图的优化结果;优化结果用于表征推理时间符合预设需求的计算图。
第三方面,本申请还提供了一种计算机设备。该计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
基于初始计算图确定多个计算子图;
对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图;
根据各目标联合优化图,确定初始计算图的优化结果;优化结果用于表征推理时间符合预设需求的计算图。
第四方面,本申请还提供了一种计算机可读存储介质。该计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
基于初始计算图确定多个计算子图;
对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图;
根据各目标联合优化图,确定初始计算图的优化结果;优化结果用于表征推理时间符合预设需求的计算图。
第五方面,本申请还提供了一种计算机程序产品。该计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
基于初始计算图确定多个计算子图;
对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图;
根据各目标联合优化图,确定初始计算图的优化结果;优化结果用于表征推理时间符合预设需求的计算图。
上述深度神经网络推理的图替代和并行化联合优化方法及装置,基于初始计算图确定多个计算子图;对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图;根据各目标联合优化图,确定初始计算图的优化结果。本申请先使用图替换再进行自动并行化,有效消除了并行化方案中冗余的流,从而最大化利用了硬件的性能,最大化减少了DNN推理的时间。
附图说明
图1为一个实施例中现有技术的中图替代的流程示意图;
图2a为一个实施例中现有技术的中无任何优化的流程示意图;
图2b为一个实施例中现有技术的图替代的流程示意图;
图2c为一个实施例中现有技术的并行化的流程示意图;
图3a为一个实施例中现有技术的中无任何优化的流程示意图;
图3b为一个实施例中现有技术的图替代的流程示意图;
图3c为一个实施例中现有技术的并行化的流程示意图;
图4为一个实施例中深度神经网络推理的图替代和并行化联合优化方法的应用环境图;
图5为一个实施例中深度神经网络推理的图替代和并行化联合优化方法的流程示意图;
图6为一个实施例中计算子图各支路进行图替代和并行化处理的示意图;
图7为一个实施例中确定各计算子图对应的目标联合优化图的流程示意图;
图8为一个实施例中得到多个候选联合优化图的流程示意图;
图9为一个实施例中得到执行成本数据的流程示意图;
图10为一个实施例中得到分支的执行成本数据的流程示意图;
图11为一个实施例中得到候选联合优化图的执行成本数据的流程示意图;
图12为一个实施例中基于初始计算图确定多个计算子图的流程示意图;
图13为一个实施例中对计算子图进行分割的流程示意图;
图14为另一个实施例中深度神经网络推理的图替代和并行化联合优化方法的流程示意图;
图15为一个实施例中利用算子间并行性得到的推理时间示意图;
图16为一个实施例中深度神经网络推理的图替代和并行化联合优化装置的结构框图;
图17为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
首先,在具体介绍本申请实施例的技术方案之前,先对本申请实施例基于的技术背景进行介绍。
相关技术一,如图1所示,使用具有改进性能的等效子图替换原始的DNN子图,将两个或多个算子组合成一个语义等效的算子,可以消除中间结果以减少系统开销,例如内存访问和内核启动等,从而可以有效减少推理时间。允许进行增加计算量的操作,从而获得更多算子融合的机会,减少更多的系统开销时间,使总推理时间减小。下图展示了如何将具有1*3卷积核和3*1卷积核的卷积算子合并为具有3*3卷积核的卷积算子,共分为两个步骤。第一步是通过补零将卷积核大小从1*3和3*1扩大到3×3,第二步执行两个具有3*3卷积核卷积操作的算子融合。其中第一步会增加计算量,即使计算时间增大,但是第二步会减少系统开销,若系统开销减少的时间大于增多的计算时间,那么就会使总推理时间变少,从而获得更好的DNN推理性能。在搜索最优执行计算图时采用穷举的方法,即找到每一个可进行图替换的目标子图,逐一测试进行图替换后能否获得性能提升。
上述方式忽略了算子间的并行化,硬件利用率低。该方法虽然能够减少系统开销,从而减少DNN推理时间,但是其采用顺序执行的方式,每个内核独占所有硬件资源,导致硬件利用率较低(随着当前硬件的不断发展,计算性能的不断提高,单个内核难以充分利用全部计算资源)。即没有充分利用硬件的计算能力,从而缩小计算时间。从左至右分别为顺序执行,无任何优化(图2a)、图替代(图2b)、并行化(图2c)。可以看到顺序执行该DNN计算图的推理时间为1.56ms,图替代优化后推理时间为1.44ms,而利用算子间并行优化后推理时间为1.22ms。
采用穷举算法找到最优优化图,搜索时间过长。具体为穷举找到每一个可进行图替换的目标子图(S1,S2,…,Sn),逐一测试进行图替换后能否获得性能提升,最后替换所有能够获得性能提升的目标子图Si得到优化后的计算图。随着计算图规模的增大,图替换的目标子图的数量n会呈类指数增加,从而使得搜索时间大大增加。对于像Nasnet-A这种复杂计算图来说,搜索时间会大到令人难以接受。
相关技术二,通过多流或者其他方式同时执行多个计算图分支,提高硬件资源的利用率,缩短计算时间,从而减少DNN推理时间。
若计算图中分支较多,不同流之间的同步开销将会增大,且会导致不同时段的工作负载不平衡,从而损害硬件性能。即增加了新的系统开销(不同流之间的同步),且没有最大化减少计算时间(工作负载不平衡)。展示了在执行示例DNN计算图的结果,从左至右分别为顺序执行,无任何优化(图3a)、图并行化(图3b和图3c)、我们的联合优化框架。可以看到顺序执行该DNN计算图的推理时间为1.56ms,利用算子间并行优化后的推理时间为1.22ms,而我们的优化框架的推理时间仅为0.88ms。
基于此,本申请提供了一种深度神经网络推理的图替代和并行化联合优化方法及装置,旨在解决上述技术问题。
本申请实施例提供的深度神经网络推理的图替代和并行化联合优化方法,可以应用于如图4所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102基于初始计算图确定多个计算子图;对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图;根据各目标联合优化图,确定初始计算图的优化结果;优化结果用于表征推理时间符合预设需求的计算图。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个示例性的实施例中,如图5所示,本申请实施例提供了一种深度神经网络推理的图替代和并行化联合优化方法,以该方法应用于图4中的终端为例进行说明,包括以下S201至S203。其中:
S201,基于初始计算图确定多个计算子图。
其中,计算图被定义为有向图,其节点对应于数学运算。
本申请实施例中,终端首先获取准备执行计算的初始计算图,对初始计算图可以进行分割处理。其中,分割处理可以是将初始计算图输入预先构建的分割模型中进行处理得到多个计算子图,也可以是采用预设的流的图分割策略,缩小搜索空间并最大程度地提高联合优化的机会。
S202,对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图。
其中,我们引入了联合优化图作为深度神经网络(DNN)推理的统一表示,联合优化图是专为联合优化定制的计算图表示,允许同时表达图替代和并行化。
其中,图替代是指:使用具有改进性能的等效子图替换原始的DNN子图。并行化:一般指算子间并行,通过多流或者其他方式同时执行多个计算图分支。
本申请实施例中,基于上述实施例得到的多个计算子图,终端可以以流的方式,对计算子图各支路进行图替代和并行化处理如图6所示,通过对各计算子图分别进行图替代处理和并行化处理,找出各计算子图对应的最优的目标联合优化图。联合优化图扩展了传统的计算图表示,实现了在算子级别同时表示两种优化方法。对于图替代,联合优化图通过用性能更好的等效子图替换原始子图来重写计算图。
S203,根据各目标联合优化图,确定初始计算图的优化结果。
其中,优化结果用于表征推理时间符合预设需求的计算图。
本申请实施例中,基于上述实施例得到的各计算子图对应的目标联合优化图,终端可以将目标联合优化图进行融合处理得到初始计算图的优化结果。也可以通过对各目标联合优化图进行进一步地处理,得到初始计算图的优化结果。
上述深度神经网络推理的图替代和并行化联合优化方法,基于初始计算图确定多个计算子图;对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图;根据各目标联合优化图,确定初始计算图的优化结果。本申请先使用图替换再进行自动并行化,有效消除了并行化方案中冗余的流,从而最大化利用了硬件的性能,最大化减少了DNN推理的时间。
在一个示例性的实施例中,基于上述实施例,请参见图7,本申请实施例涉及的是对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图的过程,包括以下S301至S304。其中:
S301,根据多个计算子图构建优先队列。
本申请实施例中,通过在算子级别应用图替代和并行化,可以生成不同的联合优化图。枚举所有可能的候选图并进行详尽测量非常低效。为了解决低效问题,终端以每个计算子图为输入,创建一个优先队列Q,其初值为输入计算子图。
S302,从优先队列的第一个计算子图开始迭代直至最后一个计算子图,在每一轮迭代过程中,对计算子图进行图替代处理,得到计算子图对应的多个候选联合优化图。
本申请实施例中,基于上述实施例构建地优先队列,在每一轮迭代搜索中,取出Q中的第一个子图,使用联合优化图生成候选图,完成图替代和并行化操作,得到计算子图对应的多个候选联合优化图。
S303,对于各候选联合优化图,通过并行执行候选联合优化图中的分支得到候选联合优化图的执行成本数据。
其中,执行成本数据可以通过FLOPs(浮点运算次数)、内核启动次数、内存使用情况、执行时间和硬件利用率得到。
本申请实施例中,基于上述实施例得到的候选联合优化图,可以通过并行计算的方式计算各分支的执行成本,得到候选联合优化图的执行成本数据。
S304,根据执行成本数据从多个候选联合优化图中确定计算子图对应的目标联合优化图。
本申请实施例中,基于上述实施例得到的各候选联合优化图的执行成本数据,可以选择执行成本最少的候选联合优化图,作为计算子图对应的目标联合优化图。
本申请实施例中,通过联合图替代和并行化两种优化方法,并通过计算联合优化图的成本,选出最优的子图,由该子图得到的计算图成本最低,最大化减少了计算时间和系统开销,提高了DNN的推理速度。
在一个示例性的实施例中,基于上述实施例,请参见图8,本申请实施例涉及的是对计算子图进行图替代处理,得到计算子图对应的多个候选联合优化图,包括的过程,包括以下S401至S402。其中:
S401,对计算子图中的多个算子进行多种组合。
本申请实施例中,基于上述实施例得到的计算子图,终端可以对计算子图中的各算子进行组合,例如基于流分为多条支路。
S402,在每种组合中,对组合算子进行图替代处理,得到计算子图对应的多个候选联合优化图。
本申请实施例中,基于上述实施例得到的多种组合,对于每种组合,终端可以对相邻的支路上的算子进行图替代处理,得到计算子图对应的多个候选联合优化图。
本申请实施例中通过对各算子进行任意组合,可以得到多个候选联合优化图,以便后续进行最优的联合优化图的选取。
在一个示例性的实施例中,基于上述实施例,请参见图9,本申请实施例涉及的是通过并行执行候选联合优化图中的分支得到执行成本数据的过程,包括以下S501至S502。其中:
S501,对于候选联合优化图中的各分支,顺序执行各算子,得到分支的执行成本数据。
本申请实施例中,基于上述实施例得到的候选联合优化图,终端对于图中的各分支以流的方式执行各算子,执行结束后,计算出该分支执行计算时得到的分支的执行成本数据。
S502,对多个分支的执行成本数据进行汇总处理,得到候选联合优化图的执行成本数据。
本申请实施例中,基于上述实施例多个分支的执行成本数据,终端可以对多个分支的执行成本数据进行汇总处理,其中汇总处理可以是将各支路的成本数据进行相加。
本申请实施例中,通过联合图替代和并行化两种优化方法,并通过顺序执行各分支,计算联合优化图的成本选出最优的子图,由该子图得到的计算图成本最低,最大化减少了计算时间和系统开销,提高了DNN的推理速度。
在一个示例性的实施例中,基于上述实施例,请参见图10,本申请实施例涉及的是顺序执行各算子,得到分支的执行成本数据的过程,包括以下S601至S604。其中:
S601,基于预设的卷积算子和预设步幅,确定基准执行时间和基准计算量。
本申请实施例中,对于一个卷积算子,例如,内核大小为3*3,步幅为1,终端可以预先测量具有相同参数和给定输入的代表性算子,并存储其基准执行时间和FLOPs。
S602,顺序执行各算子,得到各算子和计算量。
本申请实施例中,对于新的算子,终端可以按照顺序执行各算子,得到各算子和计算量。
S603,根据基准执行时间、基准计算量和各算子的计算量,确定各算子的执行成本数据。
我们可以使用算子Oi的FLOPs指标来估算其执行时间,如公式(1)所示。
………………………(1)
其中,cost(Oi)为gai算子的成本,FLOPs(i)为该算子的计算量,FLOPs(i)为基准计算量,Execution_time(c)为基准执行时间。
S604,对分支中多个算子的执行成本数据进行汇总处理,得到分支的执行成本数据。
本申请实施例中,基于上述实施例得到的各算子的执行成本数据,终端将多个算子的执行成本数据进行汇总处理,得到分支的执行成本数据。
在一个示例性的实施例中,基于上述实施例,请参见图11,本申请实施例涉及的是对多个分支的执行成本数据进行汇总处理,得到候选联合优化图的执行成本数据的过程,包括以下S701至S704。其中:
S701,获取代表计算图的基准执行时间,以及代表计算图中多个分支的平均硬件利用率。
本申请实施例中,将测量具有多个分支的代表性计算图(不同分支数量、每个分支的FLOPs和算子类型)的执行时间,并存储它们的平均硬件利用率。
S702,确定候选联合优化图中各分支的硬件利用率。
本申请实施例中,在执行完各分支后,我们可以确定候选联合优化图中各分支的硬件利用率。并可以使用多项式回归模型基于测量结果在并行执行情景下建立各种指标与平均硬件利用率之间的关系。因此,对于需要并行执行的计算图,我们可以通过结合平均硬件利用率和其他指标(每个分支独立执行的FLOPs和硬件利用率等)来预测其成本。
S703,根据平均硬件利用率和多个分支的最大硬件利用率,确定目标比值。
本申请实施例中,基于上述实施例得到的平均硬件利用率,将多个分支的最大硬件利用率分别与平均硬件利用率进行比较,得到的多个分支对应的比值,将最大的比值确定为目标比值。
S704,根据目标比值和代表计算图的基准执行时间,得到候选联合优化图的执行成本数据。
在实际情况中,我们可以迭代使用顺序执行和并行执行这两种模式的成本模型来获取计算图的成本。例如,一个子图由多个分支组成,每个分支有多个算子线性连接。我们可以先应用顺序执行的规则,得到每个分支的成本,然后使用并行执行的规则得到最终的成本。其中,并行执行的公式如公式(2)所示:
…………………………………(2)
其中,Cost为具有多个分支的计算图的成本,max(βi/βα)为目标比值,cost(i)为代表计算图的基准执行时间。
本申请实施例中,通过计算各分支的成本,通过该成本选出的目标联合优化图考虑到了各分支在计算过程中的执行时间和硬件利用率等参数,使得优化后的计算图执行时间更短。
在一个示例性的实施例中,基于上述实施例,本申请实施例涉及的是根据执行成本数据从多个候选联合优化图中确定计算子图对应的目标联合优化图的过程,具体包括:将各候选联合优化图对应的执行成本数据进行比较,根据比较结果确定目标联合优化图。
本申请实施例中,通过选取出成本最小的候选联合优化图以使最终得到的计算图成本最小。
在一个示例性的实施例中,基于上述实施例,本申请实施例涉及的是根据各目标联合优化图,确定初始计算图的优化结果,具体包括:对各目标联合优化图进行合并处理,得到初始计算图的优化结果。
本申请实施例中,按照图分割的顺序逆向对各目标联合优化图进行子图合并,合并完成后的完整计算图即为优化后结果。该优化结果最大化减少了计算时间和系统开销。
在一个示例性的实施例中,基于上述实施例,请参见图12,本申请实施例涉及的是基于初始计算图确定多个计算子图的过程,包括以下S801至S802。其中:
S801,基于初始计算图确定多个算子集,并计算各算子集的权重和。
先进的深度神经网络(DNN)模型由于规模巨大,难以直接进行计算图优化。同时,图替代和并行化的复杂性进一步加剧了这个挑战。因此,迫切需要一种有效的图分割策略,以缩小搜索空间并最大程度地提高联合优化的机会。我们观察到,大多数DNN模型由多个块按顺序连接而成,图替代和并行化通常可以在一个块内进行,而块之间几乎没有优化机会。所以我们的目标变成了如何自动化地在块与块的连接处对模型进行切分。
本申请实施例中终端采用基于流的图分割策略将计算图划分为不相交的子图。对于每个算子,我们定义其权重为将该算子映射到优化规则的初始图中的算子的不同映射的数量。为了分割图,我们旨在找到具有最小权重和的算子集。通过使用每个算子的权重。
S802,根据各权重和以及预先构建的最小割算法模型对初始计算图进行分割处理,得到多个计算子图。
本申请实施例中,终端迭代使用最小割算法将计算图分割成小于阈值T的子图,并得到子图集合Sm={S1,S2,…Sn}。值得注意的是,子图Si和Si+1可能共享相同的算子Oi,通常我们选择将算子Oi分配给子图Si。然而,为了防止子图Si+1由于缺乏头算子而失去图替代和并行化的机会,我们将为子图Si+1创建一个虚拟节点Oi′来表示子图的输入,如图13所示。
本申请实施例中通过将计算图分割为计算子图,最大程度的减小了图替代和并行化的复杂性。
在一个示例性的实施例中,基于上述实施例,请参见图14,本申请实施例中,联合图替代和并行化两种优化方法,最大化减少了计算时间和系统开销,从而提高了DNN的推理速度。下图从左到右依次展示了图替代、并行化和我们的联合图替代和并行化方法执行示例DNN计算图的结果。可以看出我们的联合图替代和并行化方法的DNN推理时间是显著优于现存的这两种方法的。
如图15所示,与传统的图替代相比,本申请利用了算子间并行性,允许并行内核启动,提高了硬件利用率,缩短了计算时间,从而减少了DNN推理时间。而与并行化方法相比,本申请方法利用算子融合,缩减了计算图中的分支,减少了不同流之间的同步开销(系统开销),并解决了冗余流所导致的工作负载不平衡问题,最大化缩短了计算时间,从而减少了DNN推理时间。
在一个实施例中,如图16所示,提供了一种深度神经网络推理的图替代和并行化联合优化装置900,包括:
子图确定模块901,用于基于初始计算图确定多个计算子图;
优化图确定模块902,用于对各计算子图分别进行图替代处理和并行化处理,确定各计算子图对应的目标联合优化图;
结果确定模块903,用于根据各目标联合优化图,确定初始计算图的优化结果;优化结果用于表征推理时间符合预设需求的计算图。
在其中一个实施例中,上述优化图确定模块902包括:
队列构建单元,用于根据多个计算子图构建优先队列;
图替代单元,用于从优先队列的第一个计算子图开始迭代直至最后一个计算子图,在每一轮迭代过程中,对计算子图进行图替代处理,得到计算子图对应的多个候选联合优化图;
成本确定单元,用于对于各候选联合优化图,通过并行执行候选联合优化图中的分支得到候选联合优化图的执行成本数据;
优化图确定单元,用于根据执行成本数据从多个候选联合优化图中确定计算子图对应的目标联合优化图。
在其中一个实施例中,上述图替代单元包括:
组合子单元,用于对计算子图中的多个算子进行多种组合;
候选图确定子单元,用于在每种组合中,对组合算子进行图替代处理,得到计算子图对应的多个候选联合优化图。
在其中一个实施例中,上述成本确定单元包括:
分支成本确定子单元,用于对于候选联合优化图中的各分支,顺序执行各算子,得到分支的执行成本数据;
成本确定子单元,用于对多个分支的执行成本数据进行汇总处理,得到候选联合优化图的执行成本数据。
在其中一个实施例中,上述分支成本确定子单元具体用于:基于预设的卷积算子和预设步幅,确定基准执行时间和基准计算量;顺序执行各算子,得到各算子和计算量;根据基准执行时间、基准计算量和各算子的计算量,确定各算子的执行成本数据;对分支中多个算子的执行成本数据进行汇总处理,得到分支的执行成本数据。
在其中一个实施例中,上述成本确定子单元具体用于:获取代表计算图的基准执行时间,以及代表计算图中多个分支的平均硬件利用率;确定候选联合优化图中各分支的硬件利用率;根据平均硬件利用率和多个分支的最大硬件利用率,确定目标比值;根据目标比值和代表计算图的基准执行时间,得到候选联合优化图的执行成本数据。
在其中一个实施例中,上述优化图确定单元包括:
优化图确定子单元,用于将各候选联合优化图对应的执行成本数据进行比较,根据比较结果确定目标联合优化图。
在其中一个实施例中,上述结果确定模块903包括:
结果确定单元,用于对各目标联合优化图进行合并处理,得到初始计算图的优化结果。
在其中一个实施例中,上述子图确定模块901包括:
权值确定单元,用于基于初始计算图确定多个算子集,并计算各算子集的权重和;
子图确定单元,用于根据各权重和以及预先构建的最小割算法模型对初始计算图进行分割处理,得到多个计算子图。
上述深度神经网络推理的图替代和并行化联合优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图17所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种深度神经网络推理的图替代和并行化联合优化方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种深度神经网络推理的图替代和并行化联合优化方法,其特征在于,所述方法包括:
基于初始计算图确定多个计算子图;
对各所述计算子图分别进行图替代处理和并行化处理,确定各所述计算子图对应的目标联合优化图;
根据各所述目标联合优化图,确定所述初始计算图的优化结果;所述优化结果用于表征推理时间符合预设需求的计算图。
2.根据权利要求1所述的方法,其特征在于,所述对各所述计算子图分别进行图替代处理和并行化处理,确定各所述计算子图对应的目标联合优化图,包括:
根据多个所述计算子图构建优先队列;
从所述优先队列的第一个计算子图开始迭代直至最后一个计算子图,在每一轮迭代过程中,对所述计算子图进行图替代处理,得到所述计算子图对应的多个候选联合优化图;
对于各所述候选联合优化图,通过并行执行所述候选联合优化图中的分支得到所述候选联合优化图的执行成本数据;
根据所述执行成本数据从多个所述候选联合优化图中确定所述计算子图对应的目标联合优化图。
3.根据权利要求2所述的方法,其特征在于,所述对所述计算子图进行图替代处理,得到所述计算子图对应的多个候选联合优化图,包括:
对所述计算子图中的多个算子进行多种组合;
在每种组合中,对组合算子进行图替代处理,得到所述计算子图对应的多个候选联合优化图。
4.根据权利要求2所述的方法,其特征在于,所述通过并行执行所述候选联合优化图中的分支得到执行成本数据,包括:
对于所述候选联合优化图中的各分支,顺序执行各算子,得到所述分支的执行成本数据;
对多个所述分支的执行成本数据进行汇总处理,得到所述候选联合优化图的执行成本数据。
5.根据权利要求4所述的方法,其特征在于,所述顺序执行各算子,得到所述分支的执行成本数据,包括:
基于预设的卷积算子和预设步幅,确定基准执行时间和基准计算量;
顺序执行各算子,得到各所述算子和计算量;
根据所述基准执行时间、所述基准计算量和各所述算子的计算量,确定各所述算子的执行成本数据;
对所述分支中多个算子的执行成本数据进行汇总处理,得到所述分支的执行成本数据。
6.根据权利要求4所述的方法,其特征在于,所述对多个所述分支的执行成本数据进行汇总处理,得到所述候选联合优化图的执行成本数据,包括:
获取代表计算图的基准执行时间,以及所述代表计算图中多个分支的平均硬件利用率;
确定所述候选联合优化图中各所述分支的硬件利用率;
根据所述平均硬件利用率和多个分支的最大硬件利用率,确定目标比值;
根据所述目标比值和所述代表计算图的基准执行时间,得到所述候选联合优化图的执行成本数据。
7.根据权利要求2所述的方法,其特征在于,所述根据所述执行成本数据从多个所述候选联合优化图中确定所述计算子图对应的目标联合优化图,包括:
将各所述候选联合优化图对应的执行成本数据进行比较,根据比较结果确定所述目标联合优化图。
8.根据权利要求1所述的方法,其特征在于,所述根据各所述目标联合优化图,确定所述初始计算图的优化结果,包括:
对各所述目标联合优化图进行合并处理,得到所述初始计算图的优化结果。
9.根据权利要求1所述的方法,其特征在于,所述基于初始计算图确定多个计算子图包括:
基于所述初始计算图确定多个算子集,并计算各所述算子集的权重和;
根据各所述权重和以及预先构建的最小割算法模型对所述初始计算图进行分割处理,得到多个所述计算子图。
10.一种深度神经网络推理的图替代和并行化联合优化装置,其特征在于,所述装置包括:
子图确定模块,用于基于初始计算图确定多个计算子图;
优化图确定模块,用于对各所述计算子图分别进行图替代处理和并行化处理,确定各所述计算子图对应的目标联合优化图;
结果确定模块,用于根据各所述目标联合优化图,确定所述初始计算图的优化结果;所述优化结果用于表征推理时间符合预设需求的计算图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410336802.3A CN118228762A (zh) | 2024-03-22 | 2024-03-22 | 深度神经网络推理的图替代和并行化联合优化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410336802.3A CN118228762A (zh) | 2024-03-22 | 2024-03-22 | 深度神经网络推理的图替代和并行化联合优化方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118228762A true CN118228762A (zh) | 2024-06-21 |
Family
ID=91501943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410336802.3A Pending CN118228762A (zh) | 2024-03-22 | 2024-03-22 | 深度神经网络推理的图替代和并行化联合优化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118228762A (zh) |
-
2024
- 2024-03-22 CN CN202410336802.3A patent/CN118228762A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908667B (zh) | 神经网络联合编译的方法、装置和电子设备 | |
CN114186633B (zh) | 模型的分布式训练方法、装置、设备以及存储介质 | |
CN110390387B (zh) | 对深度学习应用所用资源进行评估 | |
JP2022511716A (ja) | 非集中的な分散型深層学習 | |
CN113095474A (zh) | 深度学习模型的资源使用情况预测 | |
CN111406264A (zh) | 神经架构搜索 | |
CN112101525A (zh) | 一种通过nas设计神经网络的方法、装置和系统 | |
US20210304066A1 (en) | Partitioning for an execution pipeline | |
JP7285977B2 (ja) | ニューラルネットワークトレーニング方法、装置、電子機器、媒体及びプログラム製品 | |
WO2021238305A1 (zh) | 一种基于强化学习的通用分布式图处理方法及系统 | |
WO2022178660A1 (zh) | 一种数据处理方法、装置、设备及介质 | |
CN112463159B (zh) | 编译方法、装置、电子设备和存储介质 | |
CN112836787A (zh) | 通过高效混合并行化减少深度神经网络训练次数 | |
CN113645637A (zh) | 超密集网络任务卸载方法、装置、计算机设备和存储介质 | |
CN113254867A (zh) | 一种自动配置模板生成方法、装置、服务器及存储介质 | |
TWI758223B (zh) | 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體 | |
Wu et al. | Adaptive client and communication optimizations in Federated Learning | |
Mirsadeghi et al. | PTRAM: A parallel topology-and routing-aware mapping framework for large-scale HPC systems | |
CN118228762A (zh) | 深度神经网络推理的图替代和并行化联合优化方法及装置 | |
CN114741029A (zh) | 应用于去重存储系统的数据分配方法及相关设备 | |
Erdem et al. | Runtime design space exploration and mapping of dcnns for the ultra-low-power orlando soc | |
CN112100446B (zh) | 搜索方法、可读存储介质和电子设备 | |
CN113760380A (zh) | 网络模型的运行代码的确定方法、装置、设备及存储介质 | |
CN117707795B (zh) | 基于图的模型划分的边端协同推理方法及系统 | |
KR20200024433A (ko) | 시간 가변적 예측(anytime prediction)을 위한 얇은 하위 네트워크를 활용하는 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |