CN110503188A - 实现基于异构模型图的深度神经网络模型的方法和装置 - Google Patents
实现基于异构模型图的深度神经网络模型的方法和装置 Download PDFInfo
- Publication number
- CN110503188A CN110503188A CN201910705424.0A CN201910705424A CN110503188A CN 110503188 A CN110503188 A CN 110503188A CN 201910705424 A CN201910705424 A CN 201910705424A CN 110503188 A CN110503188 A CN 110503188A
- Authority
- CN
- China
- Prior art keywords
- submodel
- isomery
- processor
- task
- neural network
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
提供了一种实现基于异构模型图的深度神经网络模型的方法和装置。所述方法可包括:执行根据预定拆分标准将深度神经网络模型拆分为多个子模型的拆分操作;根据拆分出的所述多个子模型在各个处理器上的性能表现,对所述多个子模型中的至少部分子模型进行合并以获得合并后的子模型以及合并后的子模型与各个处理器之间的对应关系,其中,所述对应关系表示合并后的子模型在相应的处理器上运行时具有最佳的性能表现;构建反映了所述对应关系的由合并后的子模型组成的异构图;针对输入任务执行异构图中的子模型。
Description
技术领域
本申请涉及深度学习领域,更具体地讲,涉及基于异构模型图的深度神经网络模型的方法和装置。
背景技术
随着计算能力的提高和科学计算的发展,图像识别、语音识别等识别技术的应用日益广泛。为了满足人们对识别速度和准确度等的不断增长的需求,技术人员研发出了神经网络。目前,主要通过基于硬件的设计方法和基于软件的设计方法来提高神经网络在硬件上运行时的性能。
为了提高神经网络的性能,现有技术往往采用基于硬件的设计方法,其中,基于硬件的设计方法通过将硬件设计为可配置系统级芯片(SOC)的方式或者通过硬件编程的方式来提高神经网络的性能。在将硬件设计为可配置系统级芯片(SOC)的方式中,SOC通常包括具有多种性能特性的芯片组,并且SOC在使用时必须有配套的驱动和软件支持。当神经网络在SOC上执行时,硬件会根据任务的类型将不同的任务派发给指定的处理器来完成相关计算工作。在硬件编程的方式中,针对指定的神经网络,通过硬件编程语言使得相关计算被提前设置在执行指令中,并且在执行过程中,通过将数据传输给相应硬件,使得相应硬件能够根据预设的执行指令进行相关神经网络的计算工作。
此外,为了使神经网络能够在异构平台上运行,现有技术往往采用基于软件的设计方法,其中,基于软件的设计方法利用OpenCL语言针对神经网络的每个执行操作进行编码,并且利用OpenCL能够支持目前主流的一些处理器这一特性,针对不同的硬件按照其特点编写不同的OpenCL内核代码,从而使得神经网络能够在异构平台上运行。此外,在执行框架的设计中,这些OpenCL代码按照执行操作类型或者资源使用情况被分别调用,从而实现一个神经网络在现有主流处理器上的异构执行。
但是,以上的基于硬件的设计方法和基于软件的设计方法存在以下的问题:(1)资源的利用率不高的问题:虽然可配置硬件能够在某种程度上提高神经网络的执行效率或者降低能耗,但在实际执行中会有很多硬件会被闲置,这也增加了硬件成本。(2)不够灵活的问题:由于很多设计直接针对特定模型定制编程,但是如果模型产生变化,则需要重新编程。随着模型越来越多且越来越复杂,这种方式将带来大量的开发与维护工作,大大降低了工作效率。(3)需要特定软硬件支持的问题:在基于硬件的异构中,必须有特定的SOC支持,但是目前主流嵌入式设备更多是传统的多种处理器的架构。基于软件设计的方法要求软件设计人员必须使用类似OpenCL这种跨平台语言,并且这种方式只能应用在OpenCL支持的那些硬件上,但是新出现的硬件(例如NPU)具有特殊的编译器和指令集,与传统编程方式完全不同,所以这些硬件无法通过现有软件架构实现与其他处理器协同工作。
因此,需要一种能够克服以上问题的可使神经网络在异构平台上高效运行的方法和装置。
发明内容
为了至少解决现有技术中存在的上述问题,本发明提供了一种实现基于异构模型图的深度神经网络模型的方法和装置。
本发明的一方面在于提供一种实现基于异构模型图的深度神经网络模型的方法,所述方法包括:执行根据预定拆分标准将深度神经网络模型拆分为多个子模型的拆分操作;根据拆分出的所述多个子模型在各个处理器上的性能表现,对所述多个子模型中的至少部分子模型进行合并以获得合并后的子模型以及合并后的子模型与各个处理器之间的对应关系,其中,所述对应关系表示合并后的子模型在相应的处理器上运行时具有最佳的性能表现;构建反映了所述对应关系的由合并后的子模型组成的异构图;针对输入任务执行异构图中的子模型。通过上述操作不仅可以在执行深度神经网络模型时减少延迟,还可以增加在执行深度神经网络模型时的吞吐量,并且提高了硬件设备中的各个硬件的利用率。
执行根据预定拆分标准将深度神经网络模型拆分为多个子模型的拆分操作的步骤可包括:根据所述预定拆分标准将深度神经网络模型拆分为待验证的多个子模型,其中,所述预定拆分标准是乘加次数;将所述待验证的多个子模型分别部署在各个处理器上并统计所述待验证的多个子模型分别在各个处理器上运行时的性能表现;如果所述待验证的多个子模型在任意一个处理器上运行时的性能表现满足预定条件,则将所述待验证的多个子模型确定为从深度神经网络模型最终拆分出的多个子模型;如果所述待验证的多个子模型在所有处理器上运行时的性能表现都不满足所述预定条件,则修改所述预定拆分标准并重新所述拆分操作。通过上述操作可以排除掉对深度神经网络模型的不可理的拆分方式,最终得到在任意一个处理器上运行时的性能表现满足所述预定条件的多个子模型,从而提高在深度神经网络模型在运行时各个硬件的利用率。
根据所述预定拆分标准将深度神经网络模型拆分为待验证的多个子模型的步骤可包括:按照测试数据的任务类型,根据所述预定拆分标准将深度神经网络模型拆分为所述待验证的多个子模型,其中,如果测试数据的任务类型是单输入任务,则所述待验证的多个子模型包括具有并行关系的子模型,如果测试数据的任务类型是流输入任务,则所述待验证的多个子模型不包括具有并行关系的子模型。通过上述操作能够得到适用于单输入任务的包括具有并行关系的子模型的多个子模型、以及适用于流输入任务的不包括具有并行关系的子模型的多个子模型,从而提高在深度神经网络模型在运行时的运行效率。
性能表现可以是指子模型分别在各个处理器上运行时所花费的时间、所耗费的电力或者所占用的存储器大小,使得能够选择合适的性能表现来满足用户的不同需求。
对所述多个子模型中的至少部分子模型进行合并以获得合并后的子模型以及合并后的子模型与各个处理器之间的对应关系的步骤可包括:当所述多个子模型中的在执行顺序上彼此相邻的至少两个子模型在运行于同一处理器上时均具有最佳性能表现时,将所述至少两个子模型合并为一个子模型并且确定所述一个子模型最适应于该处理器,其中,如果所述至少两个子模型之间的连接点被所述多个子模型中的其它子模型使用,则所述连接点被用作所述一个子模型的输出端。通过上述操作可提高硬件设备中的各个硬件的利用率并提高深度神经内网络模型的运行速度。
构建反映了所述对应关系的由合并后的子模型组成的异构图的步骤可包括:根据合并后的子模型之间的输入输出关系连接合并后的子模型以获得反映了所述对应关系的异构图,从而有利于提高硬件设备中的各个硬件的利用率。
异构图可包括与单输入任务相应的单输入类型异构图和与流输入任务相应的流输入类型异构图,其中,所述流输入类型异构图中的子模型的数量可与所述各个处理器的数量相同,从而使得深度神经网络模型能够针对不同的输入任务类型提供对应的异构图,从而提高硬件设备中的各个硬件的利用率。
针对输入任务执行异构图中的子模型的步骤可包括:判断所述输入任务是所述单输入任务还是所述流输入任务;如果所述输入任务是所述单输入任务,则按照在根据所述单输入类型异构图设置的执行管线中的执行顺序有序地执行单输入类型异构图中的每个子模型;如果所述输入任务是流输入任务,则按照在根据所述流输入类型异构图设置的执行管线中的执行顺序在所述流输入任务中的各个任务之间重叠地执行所述流输入类型异构图中的不同子模型。通过上述操作可针对不同类型的输入任务选择更合适的异构图,使得不仅可在执行深度神经网络模型时减少延迟并增加吞吐量,并且还可提高各硬件的利用率。
异构图中的子模型的初始化工作和结束工作可分别被统一地执行,可以在执行深度神经网络模型时提高运行速度。
本发明的另一方面在于提供一种实现基于异构模型图的深度神经网络模型的装置,所述装置包括:模型拆分模块,执行根据预定拆分标准将深度神经网络模型拆分为多个子模型的拆分操作;评测分析模块,根据拆分出的所述多个子模型在各个处理器上的性能表现,对所述多个子模型中的至少部分子模型进行合并以获得合并后的子模型以及合并后的子模型与各个处理器之间的对应关系,其中,所述对应关系表示合并后的子模型在相应的处理器上运行时具有最佳的性能表现;异构图构建模块,构建反映了所述对应关系的由合并后的子模型组成的异构图;模型图执行模块,针对输入任务执行异构图中的子模型。所述装置不仅可以在执行深度神经网络模型时减少延迟,还可以增加在执行深度神经网络模型时的吞吐量,并且提高了硬件设备中的各个硬件的利用率。
模型拆分模块可通过以下操作将深度神经网络模型拆分为多个子模型:根据所述预定拆分标准将深度神经网络模型拆分为待验证的多个子模型,其中,所述预定拆分标准是乘加次数,其中,评测分析模块将所述待验证的多个子模型分别部署在各个处理器上并统计所述待验证的多个子模型分别在各个处理器上运行时的性能表现;如果所述待验证的多个子模型在任意一个处理器上运行时的性能表现满足预定条件,则将所述待验证的多个子模型确定为从深度神经网络模型最终拆分出的多个子模型;如果所述待验证的多个子模型在所有处理器上运行时的性能表现都不满足所述预定条件,则修改所述预定拆分标准并重新所述拆分操作。模型拆分模块通过上述操作可以排除掉对深度神经网络模型的不可理的拆分方式,最终得到在任意一个处理器上运行时的性能表现满足所述预定条件的多个子模型,从而提高在深度神经网络模型在运行时各个硬件的利用率。
模型拆分模块可通过以下操作将深度神经网络模型拆分为待验证的多个子模型:按照测试数据的任务类型,根据所述预定拆分标准将深度神经网络模型拆分为所述待验证的多个子模型,其中,如果测试数据的任务类型是单输入任务,则所述待验证的多个子模型包括具有并行关系的子模型,如果测试数据的任务类型是流输入任务,则所述待验证的多个子模型不包括具有并行关系的子模型。模型拆分模块通过上述操作能够得到适用于单输入任务的包括具有并行关系的子模型的多个子模型、以及适用于流输入任务的不包括具有并行关系的子模型的多个子模型,从而提高在深度神经网络模型在运行时的运行效率。
性能表现可以是指子模型分别在各个处理器上运行时所花费的时间、所耗费的电力或者所占用的存储器大小,使得能够选择合适的性能表现来满足用户的不同需求。
当所述多个子模型中的在执行顺序上彼此相邻的至少两个子模型在运行于同一处理器上时均具有最佳性能表现时,评测分析模块可将所述至少两个子模型合并为一个子模型并且确定所述一个子模型最适应于该处理器,其中,如果所述至少两个子模型之间的连接点被所述多个子模型中的其它子模型使用,则所述连接点可被用作所述一个子模型的输出端。评测分析模块通过上述操作可提高硬件设备中的各个硬件的利用率并提高深度神经内网络模型的运行速度。
异构图构建模块可根据合并后的子模型之间的输入输出关系连接合并后的子模型以获得反映了所述对应关系的异构图,从而有利于提高硬件设备中的各个硬件的利用率。
异构图可包括与单输入任务相应的单输入类型异构图和与流输入任务相应的流输入类型异构图,其中,所述流输入类型异构图中的子模型的数量可与所述各个处理器的数量相同,从而使得深度神经网络模型能够针对不同的输入任务类型提供对应的异构图,从而提高硬件设备中的各个硬件的利用率。
模型图执行模块可通过以下操作针对输入任务执行异构图中的子模型:判断所述输入任务是所述单输入任务还是所述流输入任务;如果所述输入任务是所述单输入任务,则按照在根据所述单输入类型异构图设置的执行管线中的执行顺序有序地执行单输入类型异构图中的每个子模型;如果所述输入任务是流输入任务,则按照在根据所述流输入类型异构图设置的执行管线中的执行顺序在所述流输入任务中的各个任务之间重叠地执行所述流输入类型异构图中的不同子模型。模型图执行模块通过上述操作可针对不同类型的输入任务选择更合适的异构图,使得不仅可在执行深度神经网络模型时减少延迟并增加吞吐量,并且还可提高各硬件的利用率。
模型图执行模块可分别统一地执行异构图中的子模型的初始化工作和结束工作,从而可在深度神经网络模型运行时提高运行速度。
本发明的一方面在于提供一种存储有程序的计算机可读存储介质,所述程序在被处理器执行时实现以上所述的实现基于异构模型图的深度神经网络模型的方法。
本发明的一方面在于提供一种包括存储有计算机程序的可读介质的计算机,所述计算机程序在被计算机执行时实现以上所述的实现基于异构模型图的深度神经网络模型的方法。
附图说明
通过下面结合附图对本发明示例性实施例的详细描述,本领域技术人员将会获得对本发明的全面理解,其中:
图1是示出根据本发明的示例性实施例的实现基于异构模型图的深度神经网络模型的方法的流程图;
图2是示出根据本发明的示例性实施例的执行根据预定拆分标准将深度神经网络模型拆分为多个子模型的拆分操作的过程的流程图;
图3是示出根据本发明的示例性实施例的子模型的拆分示意图;
图4是示出根据本发明的示例性实施例的子模型的合并示意图;
图5示出了根据本发明的示例性实施例的异构图;
图6是示出根据本发明的示例性实施例的异构图的执行管线示意图和执行管线时序图;
图7是示出根据本发明的示例性实施例的实现基于异构模型图的深度神经网络模型的装置的框图。
具体实施方式
现在将详细参照本公开的示例性实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指示相同的部件。以下将通过参照附图来说明所述实施例,以便于解释本发明。
图1是示出根据本发明的示例性实施例的实现基于异构模型图的深度神经网络模型的方法的流程图。
在步骤S101,执行根据预定拆分标准将深度神经网络模型拆分为多个子模型的拆分操作。具体地讲,在上述拆分过程中,需要判断从深度神经网络模型中初步拆分出的子模型是否是能够进行后续合并操作的子模型,只有满足了预定的条件才能作为步骤S102的合并操作,下面将参照图2对此进行详细描述。
如图2中所示,首先,在步骤S201,根据预定拆分标准将深度神经网络模型拆分为待验证的多个子模型,其中,所述预定拆分标准是乘加次数,此外,在该步骤中还需要将待验证的多个子模型分别转换为可在各个处理器上运行的各种模型格式。具体地讲,深度神经网络模型由多个操作片段组成,每个操作片段包括至少一个乘加运算,所述方法根据作为所述预定标准的乘加次数(例如作为大于或等于1的正整数的N)对深度神经网络模型中的操作片段进行分组,即,将深度神经网络模型中的乘加次数之和大于或等于N的连续的至少一个操作片段分组为待验证的一个子模型,例如,如果作为所述预定标准的乘加次数为1000,深度神经网络模型包括5个操作片段,并且第1个操作片段至第5个操作片段的乘加次数分别为1005、900、200、1020和800,则按照所述预定标准将第1个操作片段确定为待验证的一个子模型,将连续的第2个和第3个操作片段确定为待验证的一个子模型,将第4个操作片段确定为待验证的一个子模型,并将第5个操作片段确定为待验证的一个子模型。
此外,为了满足不同类型的输入任务(例如单输入任务和流输入任务),需要针对深度神经网络模型中的可能的具有并行关系的子模型进行不同的处理。
具体地讲,在对深度神经网络模型进行拆分的过程中,按照测试数据的任务类型,根据所述预定拆分标准将深度神经网络模型拆分为待验证的多个子模型,其中,如果测试数据的任务类型是单输入任务,则拆分出的待验证的多个子模型包括具有并行关系的子模型,即,在步骤S201的拆分过程中,需要将深度神经网络模型中的能够拆分出的具有并行关系的子模型拆分出来,进而获得待验证的多个子模型。如果测试数据的任务类型是流输入任务,则拆分出的待验证的多个子模型不包括具有并行关系的子模型,即,在步骤S201的拆分过程中,需要将深度神经网络模型拆分为不包括具有并行关系的子模型的待验证的多个子模型。
换句话说,在步骤S201中,需要分别针对不同类型的输入任务,按照不同的拆分路线对深度神经网络模型进行拆分,即,将一个深度神经网络模型分别拆分为适合于单输入任务的多个子模型、以及适合于流输入任务的多个子模型。此外,在后续处理中需要分别针对被拆分为适合于单输入任务的多个子模型、以及适合于流输入任务的多个子模型进行相同的处理(即,步骤S202、S203、S204、S102和S103中)以最终得到与单输入任务相应的单输入类型异构图和与流输入任务相应的流输入类型异构图,因此,下面将不对此进行区分描述。
在步骤S202,将待验证的多个子模型分别部署在各个处理器上并统计待验证的多个子模型分别在各个处理器上运行时的性能表现,其中,性能表现可以是指子模型分别在各个处理器上运行时所花费的时间、所耗费的电力或者所占用的存储器大小。具体地讲,如果当前的计算装置上包括中央处理器(CPU)、图形处理器(GPU)和神经网络处理器(NPU)三个处理器,则需要将在步骤S201拆分出的待验证的多个子模型分别部署在CPU、GPU和NPU上,并统计待验证的多个子模型分别在CPU、GPU和NPU上运行时的性能表现。
在步骤S203,如果待验证的多个子模型在任意一个处理器上运行时的性能表现满足预定条件,则将待验证的多个子模型确定为从深度神经网络模型最终拆分出的多个子模型。
具体地讲,假设性能表现是子模型分别在各个处理器上运行时所花费的时间,如图3中所示,对于深度神经网络模型中存在的非并行分支结构,如果拆分出的待验证的子模型如图3的(a)中所示,那么所述预定条件可被表示为以下的公式(1):
Tma>Tw+Tr (1)
其中,Tma表示待验证的当前子模型的乘加运算的时间,Tw表示数据写入当前子模型所需的时间,Tr表示从当前子模型读出数据所需的时间。
对于深度神经网络模型中存在的并行分支结构,如果从中并行分支结构中拆分出的四个子模型x如图3的(b)中所示,那么所述预定条件可被表示为以下的公式(2)和(3):
Tmx=Tma+Tw+Tr,x=1,2,3和4 (2)
Tm1+max(Tm2,Tm3)+Tm4<Torg (3)
Torg表示上述四个子模型在被拆分之前作为一个整体时在处理器上运行时所花费的时间。
综上,如果当前拆分出的待验证的多个子模型在任意一个处理器上运行时的性能表现满足预定条件,则将待验证的多个子模型确定为从深度神经网络模型最终拆分出的多个子模型。
以上描述了性能表现是子模型分别在各个处理器上运行时所花费的时间的情况,但是当性能表现是子模型分别在各个处理器上运行时所耗费的电力或者所占用的存储器大小时,处理的方式相同,即,可以利用与以上的公式(1)、(2)和(3)结构相同的公式。具体地讲,当性能表现是子模型分别在各个处理器上运行时所耗费的电力(或者所占用的存储器大小)时,在以上的公式(1)、(2)和(3)中,Tma表示当前子模型的乘加运算所耗费的电力(或者所占用的存储器大小),Tw表示数据写入当前子模型所耗费的电力(或者所占用的存储器大小),Tr表示从当前子模型读出数据所耗费的电力(或者所占用的存储器大小),Torg表示上述四个子模型作为一个整体时在处理器上运行时所耗费的电力(或者所占用的存储器大小)。
相反,如果拆分出的待验证的多个子模型在所有处理器上运行时的性能表现都不满足所述预定条件,则说明当前拆分出的待验证的多个子模型的拆分操作不合理,因此在步骤S204,修改所述预定拆分标准,并返回执行步骤S201,即重新根据修改后的预定拆分标准执行拆分操作。
具体地讲,如以上参照步骤S201所描述的,所述预定拆分标准是乘加次数,因此,可在步骤S204中修改作为所述预定拆分标准的乘加次数,例如,将作为所述预定拆分标准的乘加次数从1000修改为1100或者900,其中,该修改的标准可由技术人员预先设置好,也可由用户在实际使用中进行设置。
通过以上参照图2和图3描述的内容,当拆分出的待验证的多个子模型满足通过了步骤S203的验证时,深度神经网络模型最终被拆分为需要进行后续的合并操作的多个子模型。
返回参照图1,在步骤S102,根据拆分出的所述多个子模型在各个处理器上的性能表现,对所述多个子模型中的至少部分子模型进行合并以获得合并后的子模型以及合并后的子模型与各个处理器之间的对应关系,其中,所述对应关系表示合并后的子模型在相应的处理器上运行时具有最佳的性能表现。
具体地讲,当所述多个子模型中的在执行顺序上彼此相邻的至少两个子模型在运行于同一处理器上时均具有最佳性能表现时,将所述至少两个子模型合并为一个子模型并且确定所述一个子模型最适应于该处理器,其中,如果所述至少两个子模型之间的连接点被所述多个子模型中的其它子模型使用,则所述连接点被用作所述一个子模型的输出端。以下将参照图4对此进行详细描述。
如图4中的(a)所示,对于两个子模型S1和S2,如果子模型S1的输出端B与子模型S2的输入端相同,子模型S1和S2在处理器ac1上运行时都具有最佳性能表现,并且没有其它子模型与子模型S2具有相同的输入端B,则将子模型S1和S2合并为具有输入端A和输出端C的一个子模型S’,并确定子模型S’最适应于处理器ac1。
如图4中的(b)所示,对于三个子模型S1、S2和S3,如果子模型S1的输出端B与子模型S2和S3的输入端相同,子模型S1、S2和S3在处理器ac1上运行时都具有最佳性能表现,则将子模型S1、S2和S3合并为具有输入端A以及输出端C和D的一个子模型S’,并确定子模型S’最适应于处理器ac1。
如图4中的(c)所示,对于三个子模型S1、S2和S3,如果子模型S1的输出端B与子模型S2和S3的输入端相同,子模型S1和S2在处理器ac1上运行时都具有最佳性能表现,但是子模型S3在处理器ac2上运行时具有最佳性能表现,则将子模型S1和S2合并为具有输入端A以及输出端B和C的一个子模型S’,并确定子模型S’最适应于处理器ac1,并且确定子模型S3最适应于处理器ac2。其中,由于在被合并的两个子模型S1和S2之间的连接点(即子模型S1的输出端B)被子模型S3使用,因此连接点B被用作子模型S’的输出端,即,子模型S3的输入端。
如图4中的(d)所示,对于两个子模型S1和S2,如果子模型S1的输出端B和C包括了子模型S2的输入端B,没有其它子模型与子模型S2再具有相同的输入端B,并且子模型S1和S2分别在处理器ac1和ac2上运行时具有最佳性能表现,则将子模型S1和S2合并为具有输入端A以及输出端C和D的子模型S’,并且确定子模型S1最适应于处理器ac1,子模型S2最适应于处理器ac2。
如图4中的(e)所示,对于三个子模型S1、S2和S3,如果子模型S1的输出端B均是子模型S2和S3的输入端,并且子模型S1和子模型S2在处理器ac1上运行时都具有最佳性能表现,但是子模型S3在处理器ac2上运行时具有最佳性能表现,则将子模型S1和S2合并为具有输入端A以及输出端B、C和D的子模型S’,并确定子模型S’最适应于处理器ac1,子模型S3最适应于处理器ac2。其中,由于子模型S1和S2之间的连接点B被子模型S3使用,因此该连接点B被用作子模型S’的输出端B。
以上参照图4示例性地描述了对子模型进行合并的过程。至此,在步骤S102之后,由步骤S101拆分出的多个子模型中的一些子模型被合并为了较大的子模型,当然也可能存在没有与其它子模型进行合并的子模型,但是为了方便描述,经过步骤S102得到的所有子模型都被统一称为“合并后的子模型”。此外,通过以上描述可知,合并后的子模型与各个处理器之间存在一定的对应关系,即,合并后的子模型在相应的处理器上运行时具有最佳的性能表现,例如,如图4中的(c)所示,合并后的子模型S’在处理器ac1上运行时具有最佳的性能表现,而合并后的子模型S3在处理器ac2上运行时具有最佳的性能表现,因此在步骤S102之后,还可得到合并后的子模型S’与处理器ac1之间的对应关系、以及合并后的子模型S3与处理器ac2之间的对应关系。
此后,在步骤S103,构建反映了所述对应关系的由合并后的子模型组成的异构图。具体地讲,构建反映了所述对应关系的由合并后的子模型组成的异构图步骤包括:根据合并后的子模型之间的输入输出关系连接合并后的子模型以获得反映了所述对应关系的异构图。如上所述,由于输入任务可能是不同类型的输入任务(例如单输入任务和流输入任务),因此在经过步骤S103之后得到的异构图包括与单输入任务相应的单输入类型异构图和与流输入任务相应的流输入类型异构图。下面将参照图5以举例的方式对此进行详细描述。
图5中的(a)中示出了根据合并后的子模型之间的输入输出关系连接合并后的子模型而得到的一种与单输入任务相应的单输入类型异构图,其中,该单输入类型异构图包括五个子模型S1、S2、S3、S4和S5,子模型S1和S4在处理器ac1上运行时具有最佳性能表现(即最适应于处理器ac1),子模型S2和S5在处理器ac2上运行时具有最佳性能表现(即最适应于处理器ac2),子模型S3在处理器ac3上运行时具有最佳性能表现(即最适应于处理器ac3),此外,该单输入类型异构图具有并行结构的两个子模型S3和S4。
图5中的(b)示出了根据合并后的子模型之间的输入输出关系连接合并后的子模型而得到的一种与流输入任务相应的流输入类型异构图,其中,该流输入类型异构图包括三个子模型S1、S2和S3,子模型S1、S2和S3分别在处理器ac1、ac2和ac3上运行时具有最佳性能表现(即,子模型S1、S2和S3分别最适应于处理器ac1、ac2和ac3),此外,由于该流输入类型异构图用于流输入任务,因此它不具有并行结构的子模型,即,各个子模型之间是线性连接,并且流输入类型异构图中的子模型的数量与处理器的数量相同。
此后,在步骤S104,针对输入任务执行异构图中的子模型。
具体地讲,首先,需要判断输入任务是单输入任务还是流输入任务。
如果输入任务是单输入任务,则按照在根据单输入类型异构图设置的执行管线中的执行顺序有序地执行单输入类型异构图中的每个子模型,例如,图6中的(a)示出了根据如图5中的(a)所示的单输入类型异构图设置的执行管线的示例,并且图6中的(b)示出了图6中的(a)所示的执行管线的执行时序,也就是说,按照与图6中的执行管线(a)对应的执行时序(b)来执行单输入类型异构图中的每个子模型,即先在处理器ac1上执行子模型S1,然后在处理器ac2上执行子模型S2,此后同时地在处理器ac1和处理器ac3上分别执行子模型S3和S4,此后在处理器ac2上执行子模型S5。
如果输入任务是流输入任务,则按照在根据流输入类型异构图设置的执行管线中的执行顺序在流输入任务中的各个任务之间重叠地执行流输入类型异构图中的不同子模型,例如,图6中的(c)示出了根据图5中的(b)所示的流输入类型异构图设置的执行管线,图6中的(d)示出了图6中的(c)所示的执行管线的执行时序,其中,fi-Sx表示通过子模型Sx运行帧i的第x个步骤。因此,如图6中所示,可按照与图6中的执行管线(c)对应的执行时序(d)在各个任务之间重叠地执行流输入类型异构图中的不同子模型,即,先由处理器ac1通过子模型S1运行任务f1的第1个步骤,然后重叠地由处理器ac2通过子模型S2运行任务f1的第2个步骤并且由处理器ac1通过子模型S1运行任务f2的第1个步骤,然后重叠地由处理器ac3通过子模型S3运行任务f1的第3个步骤、由处理器ac2通过子模型S2运行任务f2的第2个步骤、并由处理器ac1通过子模型S1运行任务f3的第1个步骤,依次类推地运行直到所有的任务都处理完为止。
此外,为了进一步提高异构图的执行速度,异构图中的各个子模型的初始化工作可被统一地执行,并且各个子模型的结束工作可被统一地执行。
图7是示出根据本发明的示例性实施例的实现基于异构模型图的深度神经网络模型的装置10的框图。
如图7中所示,所述装置10可包括模型拆分模块100、评测分析模块200、异构图构建模块300和模型图执行模块400。
模型拆分模块100可执行根据预定拆分标准将深度神经网络模型拆分为多个子模型的拆分操作。具体地讲,在上述拆分过程中,模型拆分模块100需要判断从深度神经网络模型中初步拆分出的子模型是否是能够进行后续合并操作的子模型,只有满足了预定的条件才能进行后续的合并操作。下面将对此进行详细描述。
具体地讲,模型拆分模块100可根据所述预定拆分标准将深度神经网络模型拆分为待验证的多个子模型,其中,所述预定拆分标准是乘加次数,此外,模型拆分模块100还需要将待验证的多个子模型分别转换为可在各个处理器上运行的各种模型格式,由于以上已参照图2对此进行了详细描述,因此此处不再赘述。
此外,为了满足不同类型的输入任务(例如单输入任务和流输入任务),模型拆分模块100需要针对深度神经网络模型中的可能的具有并行关系的子模型进行不同的处理。
具体地讲,在对深度神经网络模型进行拆分的过程中,模型拆分模块100按照测试数据的任务类型,根据所述预定拆分标准将深度神经网络模型拆分为待验证的多个子模型,其中,如果测试数据的任务类型是单输入任务,则拆分出的待验证的多个子模型包括具有并行关系的子模型,即,在上述拆分过程中,模型拆分模块100需要将深度神经网络模型中的能够拆分出的具有并行关系的子模型拆分出来,进而获得待验证的多个子模型。如果测试数据的任务类型是流输入任务,则拆分出的待验证的多个子模型不包括具有并行关系的子模型,即,在上述拆分过程中,模型拆分模块100需要将深度神经网络模型拆分为不包括具有并行关系的子模型的待验证的多个子模型。
换句话说,在以上过程中,模型拆分模块100需要分别针对不同类型的输入任务,按照不同的拆分路线对深度神经网络模型进行拆分,即,将一个深度神经网络模型分别拆分为适合于单输入任务的多个子模型、以及适合于流输入任务的多个子模型。此外,在后续处理中需要分别针对被拆分为适合于单输入任务的多个子模型、以及适合于流输入任务的多个子模型进行相同的处理以最终得到与单输入任务相应的单输入类型异构图和与流输入任务相应的流输入类型异构图,因此,下面将不对此进行区分描述。
在拆分出待验证的多个子模型之后,评测分析模块200将待验证的多个子模型分别部署在各个处理器上并统计待验证的多个子模型分别在各个处理器上运行时的性能表现,其中,性能表现可以是指子模型分别在各个处理器上运行时所花费的时间、所耗费的电力或者所占用的存储器大小。
如果待验证的多个子模型在任意一个处理器上运行时的性能表现满足预定条件,则模型拆分模块100将待验证的多个子模型确定为从深度神经网络模型最终拆分出的多个子模型。由于以上已参照图3对此进行了详细描述,因此此处不在赘述。
相反,如果所述待验证的多个子模型在所有处理器上运行时的性能表现都不满足所述预定条件,则说明当前拆分出的待验证的多个子模型的拆分操作不合理,因此模型拆分模块100可修改所述预定拆分标准并重新所述拆分操作,即重新根据修改后的预定拆分标准执行拆分操作。
在模型拆分模块100最终拆分出多个子模型之后,评测分析模块200可根据拆分出的多个子模型在各个处理器上的性能表现,对所述多个子模型中的至少部分子模型进行合并以获得合并后的子模型以及合并后的子模型与各个处理器之间的对应关系,其中,所述对应关系表示合并后的子模型在相应的处理器上运行时具有最佳的性能表现。
具体地讲,当所述多个子模型中的在执行顺序上彼此相邻的至少两个子模型在运行于同一处理器上时均具有最佳性能表现时,评测分析模块将所述至少两个子模型合并为一个子模型并且确定所述一个子模型最适应于该处理器,其中,如果所述至少两个子模型之间的连接点被所述多个子模型中的其它子模型使用,则所述连接点被用作所述一个子模型的输出端。由于以上已经参照图4对此进行了详细描述,因此此处不再进行赘述。
在以上合并过程中,评测分析模块200可将拆分出的多个子模型中的一些子模型合并为了较大的子模型,当然也可能没有对一些子模型进行合并操作,但是为了方便描述,将在合并操作之后的所有子模型都被统一称为“合并后的子模型”。此外,通过以上描述可知,合并后的子模型与各个处理器之间存在一定的对应关系,即,合并后的子模型在相应的处理器上运行时具有最佳的性能表现,例如,如图4中的(c)所示,合并后的子模型S’在处理器ac1上运行时具有最佳的性能表现,而合并后的子模型S3在处理器ac2上运行时具有最佳的性能表现,因此评测分析模块200在进行合并操作会后可得到合并后的子模型S’与处理器ac1之间的对应关系、以及合并后的子模型S3与处理器ac2之间的对应关系。
在评测分析模块200进行合并操作进而得到合并后的子模型以及合并后的子模型与各个处理器之间的对应关系之后,异构图构建模块300可构建反映了该对应关系的由合并后的子模型组成的异构图。具体地讲,异构图构建模块300可根据合并后的子模型之间的输入输出关系连接合并后的子模型以获得反映了所述对应关系的异构图。如上所述,由于输入任务可能是不同类型的输入任务(例如单输入任务和流输入任务),因此异构图构建模块300得到的异构图包括与单输入任务相应的单输入类型异构图和与流输入任务相应的流输入类型异构图,其中,所述流输入类型异构图中的子模型的数量与所述各个处理器的数量相同。由于以上已参照图5以举例的方式对此进行了详细描述,因此此处不再进行赘述。
在异构图构建模块300构建了异构图之后,模型图执行模块400可针对输入任务执行异构图中的子模型。
具体地讲,首先,模型图执行模块400判断所述输入任务是单输入任务还是流输入任务。
如果输入任务是单输入任务,则模型图执行模块400可按照在根据单输入类型异构图设置的执行管线中的执行顺序有序地执行单输入类型异构图中的每个子模型。如果所述输入任务是流输入任务,则模型图执行模块400可按照在根据流输入类型异构图设置的执行管线中的执行顺序在流输入任务中的各个任务之间重叠地执行流输入类型异构图中的不同子模型。由于以上已参照图6对此进行了详细描述,因此此处不再进行赘述。
此外,为了进一步提高异构图的执行速度,模型图执行模块400可分别统一地执行异构图中的子模型的初始化工作和结束工作,即,异构图中的各个子模型的初始化工作可被统一地执行,并且各个子模型的结束工作可被统一地执行。
以上所述的实现基于异构模型图的深度神经网络模型的方法和装置不仅可以在执行深度神经网络模型时减少延迟,还可以增加在执行深度神经网络模型时的吞吐量,并且提高了硬件设备中的各个硬件的利用率。
此外,本发明还提供了一种存储有程序的计算机可读存储介质,所述程序在被处理器执行时实现以上所述的实现基于异构模型图的深度神经网络模型的方法。
此外,本发明的一方面在于提供一种包括存储有计算机程序的可读介质的计算机,所述计算机程序在被计算机执行时实现以上所述的实现基于异构模型图的深度神经网络模型的方法。
以上描述了本发明的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本发明不限于所披露的各示例性实施例。在不偏离本发明的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本发明的保护范围应该以权利要求的范围为准。
Claims (12)
1.一种实现基于异构模型图的深度神经网络模型的方法,包括:
执行根据预定拆分标准将深度神经网络模型拆分为多个子模型的拆分操作;
根据拆分出的所述多个子模型在各个处理器上的性能表现,对所述多个子模型中的至少部分子模型进行合并以获得合并后的子模型以及合并后的子模型与各个处理器之间的对应关系,其中,所述对应关系表示合并后的子模型在相应的处理器上运行时具有最佳的性能表现;
构建反映了所述对应关系的由合并后的子模型组成的异构图;
针对输入任务执行异构图中的子模型。
2.如权利要求1所述的方法,其中,执行根据预定拆分标准将深度神经网络模型拆分为多个子模型的拆分操作的步骤包括:
根据所述预定拆分标准将深度神经网络模型拆分为待验证的多个子模型,其中,所述预定拆分标准是乘加次数;
将所述待验证的多个子模型分别部署在各个处理器上并统计所述待验证的多个子模型分别在各个处理器上运行时的性能表现;
如果所述待验证的多个子模型在任意一个处理器上运行时的性能表现满足预定条件,则将所述待验证的多个子模型确定为从深度神经网络模型最终拆分出的多个子模型;
如果所述待验证的多个子模型在所有处理器上运行时的性能表现都不满足所述预定条件,则修改所述预定拆分标准并重新所述拆分操作。
3.如权利要求2所述的方法,根据所述预定拆分标准将深度神经网络模型拆分为待验证的多个子模型的步骤包括:
按照测试数据的任务类型,根据所述预定拆分标准将深度神经网络模型拆分为所述待验证的多个子模型,
其中,如果测试数据的任务类型是单输入任务,则所述待验证的多个子模型包括具有并行关系的子模型,
如果测试数据的任务类型是流输入任务,则所述待验证的多个子模型不包括具有并行关系的子模型。
4.如权利要求1或2所述的方法,其中,性能表现是指子模型分别在各个处理器上运行时所花费的时间、所耗费的电力或者所占用的存储器大小。
5.如权利要求1所述的方法,其中,对所述多个子模型中的至少部分子模型进行合并以获得合并后的子模型以及合并后的子模型与各个处理器之间的对应关系的步骤包括:
当所述多个子模型中的在执行顺序上彼此相邻的至少两个子模型在运行于同一处理器上时均具有最佳性能表现时,将所述至少两个子模型合并为一个子模型并且确定所述一个子模型最适应于该处理器,其中,如果所述至少两个子模型之间的连接点被所述多个子模型中的其它子模型使用,则所述连接点被用作所述一个子模型的输出端。
6.如权利要求1所述的方法,其中,构建反映了所述对应关系的由合并后的子模型组成的异构图的步骤包括:
根据合并后的子模型之间的输入输出关系连接合并后的子模型以获得反映了所述对应关系的异构图。
7.如权利要求6所述的方法,其中,异构图包括与单输入任务相应的单输入类型异构图和与流输入任务相应的流输入类型异构图,
其中,所述流输入类型异构图中的子模型的数量与所述各个处理器的数量相同。
8.如权利要求7所述的方法,其中,针对输入任务执行异构图中的子模型的步骤包括:
判断所述输入任务是所述单输入任务还是所述流输入任务;
如果所述输入任务是所述单输入任务,则按照在根据所述单输入类型异构图设置的执行管线中的执行顺序有序地执行单输入类型异构图中的每个子模型;
如果所述输入任务是流输入任务,则按照在根据所述流输入类型异构图设置的执行管线中的执行顺序在所述流输入任务中的各个任务之间重叠地执行所述流输入类型异构图中的不同子模型。
9.如权利要求8所述的方法,其中,异构图中的子模型的初始化工作和结束工作分别被统一地执行。
10.一种实现基于异构模型图的深度神经网络模型的装置,包括:
模型拆分模块,执行根据预定拆分标准将深度神经网络模型拆分为多个子模型的拆分操作;
评测分析模块,根据拆分出的所述多个子模型在各个处理器上的性能表现,对所述多个子模型中的至少部分子模型进行合并以获得合并后的子模型以及合并后的子模型与各个处理器之间的对应关系,其中,所述对应关系表示合并后的子模型在相应的处理器上运行时具有最佳的性能表现;
异构图构建模块,构建反映了所述对应关系的由合并后的子模型组成的异构图;
模型图执行模块,针对输入任务执行异构图中的子模型。
11.一种存储有程序的计算机可读存储介质,所述程序在被处理器执行时实现如权利要求1-9中任一项所述的方法。
12.一种包括存储有计算机程序的可读介质的计算机,所述计算机程序在被计算机执行时实现如权利要求1-9中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910705424.0A CN110503188A (zh) | 2019-08-01 | 2019-08-01 | 实现基于异构模型图的深度神经网络模型的方法和装置 |
KR1020200094446A KR20210015685A (ko) | 2019-08-01 | 2020-07-29 | 이종 컴퓨팅 플랫폼에서 뉴럴 네트워크 모델을 구현하는 방법 및 이를 수행하는 장치 |
US16/983,520 US11803733B2 (en) | 2019-08-01 | 2020-08-03 | Method for implementing neural network model in heterogeneous computing platform and apparatus for performing the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910705424.0A CN110503188A (zh) | 2019-08-01 | 2019-08-01 | 实现基于异构模型图的深度神经网络模型的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110503188A true CN110503188A (zh) | 2019-11-26 |
Family
ID=68586896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910705424.0A Pending CN110503188A (zh) | 2019-08-01 | 2019-08-01 | 实现基于异构模型图的深度神经网络模型的方法和装置 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20210015685A (zh) |
CN (1) | CN110503188A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112001491A (zh) * | 2020-07-27 | 2020-11-27 | 三星(中国)半导体有限公司 | 针对处理器确定神经网络架构的搜索方法和装置 |
CN112016684A (zh) * | 2020-08-06 | 2020-12-01 | 广西大学 | 一种深度并行柔性发射网络的电力终端指纹识别方法 |
CN112308205A (zh) * | 2020-06-28 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 基于预训练模型的模型改进方法及装置 |
CN112465133A (zh) * | 2020-11-25 | 2021-03-09 | 安徽寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN112906745A (zh) * | 2021-01-21 | 2021-06-04 | 天津大学 | 基于边缘协同的诚信智能网络训练方法 |
CN113705766A (zh) * | 2020-05-22 | 2021-11-26 | 成都鼎桥通信技术有限公司 | 一种神经网络模型的实现方法 |
CN117496375A (zh) * | 2024-01-02 | 2024-02-02 | 中国科学院空天信息创新研究院 | 面向遥感基础模型的异构npu训练方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116170802B (zh) * | 2023-04-26 | 2023-07-07 | 浙江鹏信信息科技股份有限公司 | 物联网通信方法、系统及计算机可读存储介质 |
-
2019
- 2019-08-01 CN CN201910705424.0A patent/CN110503188A/zh active Pending
-
2020
- 2020-07-29 KR KR1020200094446A patent/KR20210015685A/ko active Search and Examination
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705766A (zh) * | 2020-05-22 | 2021-11-26 | 成都鼎桥通信技术有限公司 | 一种神经网络模型的实现方法 |
CN112308205A (zh) * | 2020-06-28 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 基于预训练模型的模型改进方法及装置 |
CN112001491A (zh) * | 2020-07-27 | 2020-11-27 | 三星(中国)半导体有限公司 | 针对处理器确定神经网络架构的搜索方法和装置 |
CN112016684A (zh) * | 2020-08-06 | 2020-12-01 | 广西大学 | 一种深度并行柔性发射网络的电力终端指纹识别方法 |
CN112016684B (zh) * | 2020-08-06 | 2022-09-02 | 广西大学 | 一种深度并行柔性发射网络的电力终端指纹识别方法 |
CN112465133A (zh) * | 2020-11-25 | 2021-03-09 | 安徽寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN112465133B (zh) * | 2020-11-25 | 2022-12-09 | 安徽寒武纪信息科技有限公司 | 控制流多核并行方法、计算机设备和存储介质 |
CN112906745A (zh) * | 2021-01-21 | 2021-06-04 | 天津大学 | 基于边缘协同的诚信智能网络训练方法 |
CN117496375A (zh) * | 2024-01-02 | 2024-02-02 | 中国科学院空天信息创新研究院 | 面向遥感基础模型的异构npu训练方法及系统 |
CN117496375B (zh) * | 2024-01-02 | 2024-03-19 | 中国科学院空天信息创新研究院 | 面向遥感基础模型的异构npu训练方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20210015685A (ko) | 2021-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110503188A (zh) | 实现基于异构模型图的深度神经网络模型的方法和装置 | |
CN105159761B (zh) | 用于在多处理器上进行数据并行计算的应用编程接口 | |
US8990827B2 (en) | Optimizing data warehousing applications for GPUs using dynamic stream scheduling and dispatch of fused and split kernels | |
CN104965761B (zh) | 一种基于gpu/cpu混合架构的流程序多粒度划分与调度方法 | |
US10579349B2 (en) | Verification of a dataflow representation of a program through static type-checking | |
AU2019204087B2 (en) | Data processing graph compilation | |
US20090106730A1 (en) | Predictive cost based scheduling in a distributed software build | |
US20090178044A1 (en) | Fair stateless model checking | |
CN115461763A (zh) | 量子电路的有效量子适应性执行方法 | |
Grabis | Optimization of Gaps Resolution Strategy in Implementation of ERP Systems. | |
US20150331787A1 (en) | Software verification | |
CN104156269B (zh) | 一种基于时间自动机的软硬件最优划分的可视化方法 | |
CN104598304A (zh) | 用于作业执行中的调度的方法和装置 | |
CN107239334B (zh) | 处理不规则应用的方法及装置 | |
Boucheneb et al. | Optimal reachability in cost time Petri nets | |
Čibej et al. | Adaptation and evaluation of the simplex algorithm for a data-flow architecture | |
Kulkarni et al. | In search of near-optimal optimization phase orderings | |
CN108846248B (zh) | 一种应用建模及性能预测方法 | |
Timcheck et al. | Reducing queuing impact in irregular data streaming applications | |
Mytilinis et al. | The vision of a heterogenerous scheduler | |
Hepp et al. | Worst-case execution time based optimization of real-time Java programs | |
Dahlem et al. | Optimal scheduling for exposed datapath architectures with buffered processing units by ASP | |
CN104951285A (zh) | 通过调用和协调算法来获取计算结果的方法和系统 | |
Khouri et al. | Memory binding for performance optimization of control-flow intensive behaviors | |
US20110301907A1 (en) | Accelerating Automatic Test Pattern Generation in a Multi-Core Computing Environment via Speculatively Scheduled Sequential Multi-Level Parameter Value Optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |