CN112540854A - 在限定硬件资源条件下的深度学习模型调度部署方法及系统 - Google Patents
在限定硬件资源条件下的深度学习模型调度部署方法及系统 Download PDFInfo
- Publication number
- CN112540854A CN112540854A CN202011584721.3A CN202011584721A CN112540854A CN 112540854 A CN112540854 A CN 112540854A CN 202011584721 A CN202011584721 A CN 202011584721A CN 112540854 A CN112540854 A CN 112540854A
- Authority
- CN
- China
- Prior art keywords
- component
- state
- stage
- task
- model
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种在限定硬件资源条件下的深度学习模型调度部署方法及系统,包括:步骤M1:获取深度学习推理任务中多个有依赖关系的阶段任务;步骤M2:对多个阶段任务资源消耗分别进行评估;步骤M3:对当前可用部署硬件资源进行评估;步骤M4:从多个有依赖关系的阶段任务中选取当前可运行的阶段任务;根据当前可用部署硬件资源调度当前可运行的阶段任务并更新可用部署硬件资源评估,重复执行步骤M4,直至深度学习推理任务中所有的阶段任务均完成。本发明实现不同部署环境计算资源的高效适配,后续推理模型变更的灵活适配。
Description
技术领域
本发明涉及深度学习模型的调度和部署技术领域,具体地,涉及在限定硬件资源条件下的深度学习模型调度部署方法及系统。
背景技术
随着计算机硬件的提升与深度学习领域的快速发展,各种神经网络模型被应用与生命健康,零售,工业等各个领域。深度学习模型的成功应用于商业领域依赖于多个环节,除了模型训练之外,通常还需要将训练好的模型针对使用场景进行优化和部署。用户向部署好的模型传入数据,在输入数据经过模型推理运算后,用户得到对应的输出结果。
为优化模型推理过程,各种方便于工业部署的模型推理引擎也陆续被开发出来。Nvidia公司推出了针对nvidia GPU进行优化的模型推理引擎Triton。其优势在于对多模型服务部署的支持与针对nvidia GPU的优化。但其无法实现在有限计算资源条件下,对部署的多模型按推理任务的特征进行有效的调度。
Intel公司推出的针对Intel硬件拓展的卷积神经网络模型推理引擎OpenVINO等。其优势在于对Intel硬件的拓展的支持以及针对卷积神经网络模型推理的优化。
各个深度学习框架如tensorflow,pytorch,mxnet等也都推出了适用于自身框架模型或通用模型的推理部署工具。这些工具的优点在于完美兼容通过框架所构建出的模型,对多模型部署没有特殊的优化。
这些现有工具和引擎采用的推理优化方法的抽象方式、执行方法和具体参数均与本次提出的方法有比较大区别。这些引擎及工具的优化方向更着重于针对自身硬件或框架本身,无法实现在有限计算资源条件下,对部署的多模型按推理任务的特征进行有效的自动加载卸载以及合理调度方面的优化。在现有医疗影像识别场景下,整体业务流程由多个包含复杂依赖关系的大规模深度模型推理任务共同完成,包含前处理,模型推理以及后处理等多个模块,占用显存较多,依赖关系复杂。因为GPU显存有限并难以扩容,使得整体推理任务受显存制约,推理过程时间较长。当前大部分已有推理部署引擎虽然可以实现同时部署多个模型服务,然而在显存限制条件下,不能够根据模型推理运行时的资源消耗情况合理地调度模型推理任务,不能对计算资源进行精细控制。本发明提供了一个深度学习模型部署方法,可以在相对有限的计算资源环境下,对有复杂依赖关系的多模型推理进行高效的调度部署。
专利文献CN111966485A(申请号:202010612526.0)公开了计算资源的调度方法、装置、电子设备以及存储介质,涉及资源调度、人工智能、深度学习技术领域。具体实现方案为:获取待调度应用程序中的多个算法模型和多个算法模型之间的逻辑关系;获取算法模型的特性;根据相邻两个算法模型之间的逻辑关系确定相邻两个算法模型之间的数据流量;获取计算资源池中多个计算资源的指标;根据算法模型的特性、相邻两个算法模型之间的数据流量和计算资源的指标,从多个计算资源中选择出与算法模型匹配的计算资源,并确定为目标计算资源;以及将算法模型部署到匹配的目标计算资源上。本发明区别于该专利根据指标选择匹配的计算资源去部署,本发明单个计算资源中会灵活运行多个阶段任务,而不是限定部署资源中运行某个阶段任务,优化的层级不同。优化的层次不同,进一步表明本发明在部署后仍然有资源中运行阶段/模型的调度灵活性,而非限定某个资源运行某个模型。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种在限定硬件资源条件下的深度学习模型调度部署方法及系统。
根据本发明提供的一种在限定硬件资源条件下的深度学习模型调度部署方法,包括:
步骤M1:获取深度学习推理任务中多个有依赖关系的阶段任务;
步骤M2:对多个阶段任务资源消耗分别进行评估;
步骤M3:对当前可用部署硬件资源进行评估;
步骤M4:从多个有依赖关系的阶段任务中选取当前可运行的阶段任务;根据当前可用部署硬件资源调度当前可运行的阶段任务并更新可用部署硬件资源评估,重复执行步骤M4,直至深度学习推理任务中所有的阶段任务均完成。
优选地,所述深度学习推理任务包括:将深度学习推理任务转换为任务组件、各个阶段组件和阶段状态组件;
所述任务组件是对深度学习推理任务进行抽象,任务组件由任务具体信息及任务执行逻辑组成,任务执行逻辑由输入输出前后相互有依赖关系的阶段组件组合而成,运行完成整个任务组件须按照依赖顺序依次执行各个阶段组件;
所述阶段组件是任务执行逻辑的拆分,包含阶段执行逻辑以及当前阶段的资源消耗估计;
所述阶段状态组件是任务组件按阶段组件分解后具体子任务的抽象,包含子任务具体信息、状态以及关联阶段组件,根据阶段组件运行依赖关系确定阶段状态组件状态初始值,并根据阶段状态组件状态将阶段状态组件传递到调度组件中;
所述调度组件是维护阶段状态组件状态池容器,存放各个阶段状态组件。
优选地,所述调度组件包括:根据阶段状态组件的状态,将调度组件状态池分为等待池、就绪池和完成池;当阶段状态组件的状态改变为等待、就绪或完成状态时,就将当前阶段状态组件从原状态池中去除放入相应的状态池中;
所述等待池是以哈希表形式实现的,将即将运行的阶段状态组件放入等待池;
所述就绪池是以多个队列形式实现的,将当前可运行的阶段状态组件放入就绪池;
所述完成池是以队列的形式实现,将已经执行完成的阶段状态组件放入完成池。
优选地,所述步骤M2包括:调度组件启动调度功能并启动运行状态统计组件对多个阶段任务资源消耗进行统计;
所述运行状态统计组件提供对每个阶段状态组件的执行时间、显存实际资源消耗情况进行统计,并根据当前统计信息对阶段组件资源估计信息进行动态修正。
优选地,所述步骤M3包括:利用每个处理组件评估当前实时可用硬件资源;
所述处理组件是对当前计算资源的抽象,包含了所属资源种类、当前可用资源估计、当前关联的阶段组件推理模型及可服务状态。
优选地,所述步骤M4包括:
步骤M4.1:获取调度组件就绪池中可运行的阶段状态组件;
步骤M4.2:基于处理组件当前可用资源评估和当前可运行的阶段任务资源消耗的评估,预设可运行的阶段组件的优先级及就绪池中存储时间,从就绪池取出合适的阶段状态组件,执行器组件对该阶段状态组件绑定运行所述处理组件调度运行;该过程会更新处理组件中估计和记录,重复执行步骤M4.2,直至当前可运行的阶段状态组件运行完成;
步骤M4.3:执行器调度运行的阶段状态组件完成后,更新阶段状态组件状态,调整调度组件中阶段状态组件,修改当前实时可用资源;重复执行步骤M4.1至步骤M4.3,直至所有任务组件的阶段状态组件均完成;
所述执行器组件提供实际运行阶段状态组件的执行方式。
优选地,所述阶段组件包括GPU型阶段组件和CPU型阶段组件;
执行器运行时,当阶段状态组件关联阶段组件为GPU型:
运行前绑定处理组件必须相关推理模型必须已经加载并可提供服务;
当推理模型在运行时,该推理模型设置为不可服务状态,且从当前可用资源估计中减少模型运行显存消耗;当推理模型不再运行时,该推理模型设置为可服务状态,且向当前可用资源估计中增加模型运行显存消耗;
在运行前,检查处理组件关联的推理模型中是否存在当前可运行阶段组件对应的推理模型,且推理模型为空闲可服务状态,当存在时,则当前阶段组件使用该推理模型运行;当不存在时,则加载相应的推理模型,并将推理模型与处理组件进行关联,从当前可用资源估计中减少模型加载显存消耗;
在当前处理组件可用资源估计小于当前可运行阶段状态组件关联的阶段组件资源消耗评估时:删除当前处理组件中空闲可服务的推理模型并向当前处理组件可用资源估计中增加相应模型加载显存消耗。
优选地,所述CPU型阶段组件的资源消耗估计包括运行CPU核数估计和运行时间消耗;
所述GPU型阶段组件的资源消耗估计包括模型加载显存消耗、模型推理显存消耗、运行时间消耗以及模型是否需要预加载。
根据本发明提供的一种在限定硬件资源条件下的深度学习模型调度部署系统,其特征在于,包括:
模块M1:获取深度学习推理任务中多个有依赖关系的阶段任务;
模块M2:对多个阶段任务资源消耗分别进行评估;
模块M3:对当前可用部署硬件资源进行评估;
模块M4:从多个有依赖关系的阶段任务中选取当前可运行的阶段任务;根据当前可用部署硬件资源调度当前可运行的阶段任务并更新可用部署硬件资源评估,重复触发模块M4执行,直至深度学习推理任务中所有的阶段任务均完成。
优选地,所述深度学习推理任务包括:将深度学习推理任务转换为任务组件、各个阶段组件和阶段状态组件;
所述任务组件是对深度学习推理任务进行抽象,任务组件由任务具体信息及任务执行逻辑组成,任务执行逻辑由输入输出前后相互有依赖关系的阶段组件组合而成,运行完成整个任务组件须按照依赖顺序依次执行各个阶段组件;
所述阶段组件是任务执行逻辑的拆分,包含阶段执行逻辑以及当前阶段的资源消耗估计;
所述阶段状态组件是任务组件按阶段组件分解后具体子任务的抽象,包含子任务具体信息、状态以及关联阶段组件,根据阶段组件运行依赖关系确定阶段状态组件状态初始值,并根据阶段状态组件状态将阶段状态组件传递到调度组件中;
所述调度组件是维护阶段状态组件状态池容器,存放各个阶段状态组件;
所述调度组件包括:根据阶段状态组件的状态,将调度组件状态池分为等待池、就绪池和完成池;当阶段状态组件的状态改变为等待、就绪或完成状态时,就将当前阶段状态组件从原状态池中去除放入相应的状态池中;
所述等待池是以哈希表形式实现的,将即将运行的阶段状态组件放入等待池;
所述就绪池是以多个队列形式实现的,将当前可运行的阶段状态组件放入就绪池;
所述完成池是以队列的形式实现,将已经执行完成的阶段状态组件放入完成池;
所述模块M2包括:调度组件启动调度功能并启动运行状态统计组件对多个阶段任务资源消耗进行统计;
所述运行状态统计组件提供对每个阶段状态组件的执行时间、显存实际资源消耗情况进行统计,并根据当前统计信息对阶段组件资源估计信息进行动态修正;
所述模块M3包括:利用每个处理组件评估当前实时可用硬件资源;
所述处理组件是对当前计算资源的抽象,包含了所属资源种类、当前可用资源估计、当前关联的阶段组件推理模型及可服务状态;
所述模块M4包括:
模块M4.1:获取调度组件就绪池中可运行的阶段状态组件;
模块M4.2:基于处理组件当前可用资源评估和当前可运行的阶段任务资源消耗的评估,预设可运行的阶段组件的优先级及就绪池中存储时间,从就绪池取出合适的阶段状态组件,执行器组件对该阶段状态组件绑定运行所述处理组件调度运行;该过程会更新处理组件中估计和记录,重复执行模块M4.2,直至当前可运行的阶段状态组件运行完成;
模块M4.3:执行器调度运行的阶段状态组件完成后,更新阶段状态组件状态,调整调度组件中阶段状态组件,修改当前实时可用资源;重复执行模块M4.1至模块M4.3,直至所有任务组件的阶段状态组件均完成;
所述执行器组件提供实际运行阶段状态组件的执行方式;
所述阶段组件包括GPU型阶段组件和CPU型阶段组件;
执行器运行时,当阶段状态组件关联阶段组件为GPU型:
运行前绑定处理组件必须相关推理模型必须已经加载并可提供服务;
当推理模型在运行时,该推理模型设置为不可服务状态,且从当前可用资源估计中减少模型运行显存消耗;当推理模型不再运行时,该推理模型设置为可服务状态,且向当前可用资源估计中增加模型运行显存消耗;
在运行前,检查处理组件关联的推理模型中是否存在当前可运行阶段组件对应的推理模型,且推理模型为空闲可服务状态,当存在时,则当前阶段组件使用该推理模型运行;当不存在时,则加载相应的推理模型,并将推理模型与处理组件进行关联,从当前可用资源估计中减少模型加载显存消耗;
在当前处理组件可用资源估计小于当前可运行阶段状态组件关联的阶段组件资源消耗评估时:删除当前处理组件中空闲可服务的推理模型并向当前处理组件可用资源估计中增加相应模型加载显存消耗;
所述CPU型阶段组件的资源消耗估计包括运行CPU核数估计和运行时间消耗;
所述GPU型阶段组件的资源消耗估计包括模型加载显存消耗、模型推理显存消耗、运行时间消耗以及模型是否需要预加载。
与现有技术相比,本发明具有如下的有益效果:
1、本发明通过对计算资源的合理抽象,模型推理的实时计算资源消耗评估,可执行推理模型任务优先级评估等方式,实现相对有限的计算条件下,以灵活调度计算资源与推理任务的方式,高效利用当前的计算资源。使得深度学习模型推理部署只须要关心推理任务之间本身的依赖关系,无须关心计算资源条件限制对推理任务高效执行的影响,自动达到当前计算资源的充分利用。做到对不同部署环境计算资源的高效适配,后续推理模型变更的灵活适配;
2、本发明通过对运行状态的统计分析,为各个推理模型的持续优化提供方向;
3、本发明通过组件化,实现该系统中的模块分离解耦,方便后续拓展升级。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为框架运行主要流程与相关进程线程协作关系;
图2为框架运行处理任务时阶段状态组件状态变化以及相关概念之间的关系。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例1
本发明涉及深度学习模型的调度和部署领域。本发明为满足在限定的硬件资源条件下进行深度学习模型多模型部署调度的需求,提供了可以充分利用限定的计算资源,灵活调度模型和分配资源的多任务调度方法。它可以实现在多个深度学习模型有复杂依赖关系时,根据部署环境资源情况,将深度学习模型进行灵活调度,从而合理利用有限的计算资源,降低整体推理任务的时间消耗。
复杂的深度学习模型推理任务一般可由多个模型推理、阶段任务以及跟这些模型推理任务输入输出前后处理相关的阶段任务组合而成。按一定依赖顺序依次运行各个阶段任务即完成了一个复杂推理任务。
这些阶段任务因为对运行输入输出的依赖,所以在运行时会有一定的依赖关系,即先后顺序限制。可以通过配置标识出每个阶段任务的前驱任务,后继任务;在不同输入的条件下,这些阶段任务每次的运行时间以及运行时的CPU资源,GPU显存资源消耗等相对较为固定。可以通过配置标识出每个阶段任务的运行时间估计,CPU核心资源,GPU显存资源消耗估计;以当前部署环境所限定的CPU核心数,GPU显存大小等为环境硬件资源限制条件,利用这些阶段任务的输入输出依赖以及运行资源消耗配置信息,调度组件可以评估出当前实时可用资源以及可运行的阶段任务。调度组件再通过这些信息选择合适的阶段任务执行。调度组件根据阶段任务的执行情况会不断的更新评估并选择阶段任务执行。从而灵活根据部署环境这些硬件资源限制条件,合理的编排各个阶段任务的执行顺序,完成大批量复杂深度学习模型推理任务。
对于模型推理阶段任务,其GPU显存资源消耗估计可分为模型显存占用(会在模型加载卸载时发生变化)推理时显存占用(会在运行具体模型推理阶段任务时发生变化)两部分。
根据本发明提供的一种在限定硬件资源条件下的深度学习模型调度部署方法,包括:
步骤M1:获取深度学习推理任务中多个有依赖关系的阶段任务;
步骤M2:对多个阶段任务资源消耗分别进行评估;
步骤M3:对当前可用部署硬件资源进行评估;
步骤M4:从多个有依赖关系的阶段任务中选取当前可运行的阶段任务;根据当前可用部署硬件资源调度当前可运行的阶段任务并更新可用部署硬件资源评估,重复执行步骤M4,直至深度学习推理任务中所有的阶段任务均完成。
具体地,所述深度学习推理任务包括:将深度学习推理任务转换为任务组件、各个阶段组件和阶段状态组件;
所述任务组件是对深度学习推理任务进行抽象,任务组件由任务具体信息及任务执行逻辑组成,任务执行逻辑由输入输出前后相互有依赖关系的阶段组件组合而成,运行完成整个任务组件须按照依赖顺序依次执行各个阶段组件;
所述阶段组件是任务执行逻辑的拆分,包含阶段执行逻辑以及当前阶段的资源消耗估计;
更为具体地,阶段组件提供了(1)涉及的深度学习模型加载和推断逻辑,(2)资源消耗信息的预估(执行是否需要GPU,显存预估,执行时间预估),(3)与其他阶段组件(Stage)的依赖关系(包括所依赖的父阶段(前驱)和子阶段(后继)组件列表)等信息。
所述阶段状态组件是任务组件按阶段组件分解后具体子任务的抽象,包含子任务具体信息、状态以及关联阶段组件,根据阶段组件运行依赖关系确定阶段状态组件状态初始值,并根据阶段状态组件状态将阶段状态组件传递到调度组件中;
更为具体地,阶段状态组件包含了该Task运行状态相关信息(如任务的状态码,优先级等信息),该Task执行时输入输出,运行控制等信息(如根据Stage的依赖关系确定的父(前驱)Task子(后继)Task列表);
所述调度组件是维护阶段状态组件状态池容器,存放各个阶段状态组件。
更为具体地,所述调度组件是维护阶段状态组件状态池容器来存放各个阶段状态组件;通过获取当前处理组件信息和阶段状态组件信息,实现对阶段状态组件的调度运行,并通过阶段状态组件调度给处理组件上执行器执行组件运行,更新处理组件、阶段状态组件以及阶段状态组件在阶段状态组件状态池中的位置;根据当前处理组件状态,当前阶段状态组件状态逻辑,调度处理组件执行阶段状态组件任务;
具体地,所述调度组件包括:根据阶段状态组件的状态,将调度组件状态池分为等待池、就绪池和完成池;当阶段状态组件的状态改变为等待、就绪或完成状态时,就将当前阶段状态组件从原状态池中去除放入相应的状态池中;
所述等待池是以哈希表形式实现的,将即将运行的阶段状态组件放入等待池;
更为具体地,所述等待池通过阶段状态组件位移标识获取到对应的阶段状态组件实例;当新任务组件被传递到调度组件时,部分当前仍未就绪的阶段状态组件、其对应父前驱阶段状态组件仍存在非完成状态会被放入等待池中。等待池中阶段状态组件的状态更新为就绪状态时(父(前驱)阶段状态组件都已经是完成状态),会被移动到就绪池。
所述就绪池是以多个队列形式实现的,将当前可运行的阶段状态组件放入就绪池;
更为具体地,所述就绪池队列的数目与阶段状态组件优先级的最大值大小相同,实现在就绪池中按优先级插入取出相应的阶段状态组件;当新任务组件被传递到调度组件时,部分当前已就绪的阶段状态组件(其对应父(前驱)阶段状态组件不存在或都已经是完成状态)会被放入就绪池中。当完成池中阶段状态组件对应的子(后继)阶段状态组件已经没有未完成的父(前驱)阶段状态组件时,会将该阶段状态组件从等待池移动到就绪池中。当就绪池中的阶段状态组件被调度组件找到合适的处理组件上执行器执行器组件执行时,会被从就绪池移除。(当执行失败会被移送回就绪池,执行成功则移动到完成池)。
所述完成池是以队列的形式实现,将已经执行完成的阶段状态组件放入完成池。
更为具体地,完成池用于依次执行阶段状态组件完成后定义的回调功能(如子(后继)阶段状态组件状态变更等)
具体地,所述步骤M2包括:调度组件启动调度功能并启动运行状态统计组件对多个阶段任务资源消耗进行统计;
所述运行状态统计组件提供对每个阶段状态组件的执行时间、显存实际资源消耗情况进行统计,并根据当前统计信息对阶段组件资源估计信息进行动态修正。
具体地,所述步骤M3包括:利用每个处理组件评估当前实时可用硬件资源;
所述处理组件是对当前计算资源的抽象,包含了所属资源种类、当前可用资源估计、当前关联的阶段组件推理模型及可服务状态。
更为具体地,所述处理组件包括对CPU内存或某个GPU显存资源的评估,当前已经在其上加载的运行状态统计组件中的模型,正在运行的阶段状态组件以及剩余可用内存显存等资源的评估。处理组件为调度组件进行调度提供必要的判断依据,而调度组件的每次阶段状态组件调度也会相应更新处理组件。
具体地,所述步骤M4包括:
步骤M4.1:获取调度组件就绪池中可运行的阶段状态组件;
步骤M4.2:基于处理组件当前可用资源评估和当前可运行的阶段任务资源消耗的评估,根据预设可运行的阶段组件的优先级或就绪池中存储时间,执行器组件对可运行的阶段状态组件绑定运行所述处理组件调度运行;更新处理组件中估计和记录,重复执行步骤M4.2,直至当前可运行的阶段组件运行完成;
步骤M4.3:更新阶段状态组件状态,调整调度组件中阶段状态组件,修改当前实时可用资源;即当执行器调度运行的阶段状态组件完成后,会更新处理组件中估计和记录,更新阶段状态组件状态为完成,移动到完成池。完成的阶段状态组件会依次通知等待池中依赖其的阶段状态组件。如果等待池中被通知的阶段状态组件的所有依赖阶段状态任务状态都已完成,该会转移该阶段状态组件到就绪池中。重复执行步骤M4.1至步骤M4.3,直至任务组件中所有的阶段状态组件均完成;
所述执行器组件提供实际运行阶段状态组件的执行方式。如根据阶段组件的特殊性,以线程进程或远程过程调用的方式执行任务。
具体地,所述阶段组件包括GPU型阶段组件和CPU型阶段组件;
执行器运行时,当阶段状态组件关联阶段组件为GPU型:
运行前绑定处理组件必须相关推理模型必须已经加载并可提供服务;
当推理模型在运行时,该推理模型设置为不可服务状态,且从当前可用资源估计中减少模型运行显存消耗;当推理模型不再运行时,该推理模型设置为可服务状态,且向当前可用资源估计中增加模型运行显存消耗;
在运行前,检查处理组件关联的推理模型中是否存在当前可运行阶段组件对应的推理模型,且推理模型为空闲可服务状态,当存在时,则当前阶段组件使用该推理模型运行;当不存在时,则加载相应的推理模型,并将推理模型与处理组件进行关联,从当前可用资源估计中减少模型加载显存消耗;
在当前处理组件可用资源估计小于当前可运行阶段状态组件关联的阶段组件资源消耗评估时:删除当前处理组件中空闲可服务的推理模型并向当前处理组件可用资源估计中增加相应模型加载显存消耗。
具体地,所述CPU型阶段组件的资源消耗估计包括运行CPU核数估计和运行时间消耗;
所述GPU型阶段组件的资源消耗估计包括模型加载显存消耗、模型推理显存消耗、运行时间消耗以及模型是否需要预加载。
根据本发明提供的一种在限定硬件资源条件下的深度学习模型调度部署系统,包括:
模块M1:获取深度学习推理任务中多个有依赖关系的阶段任务;
模块M2:对多个阶段任务资源消耗分别进行评估;
模块M3:对当前可用部署硬件资源进行评估;
模块M4:从多个有依赖关系的阶段任务中选取当前可运行的阶段任务;根据当前可用部署硬件资源调度当前可运行的阶段任务并更新可用部署硬件资源评估,重复执行模块M4,直至深度学习推理任务中所有的阶段任务均完成。
具体地,所述深度学习推理任务包括:将深度学习推理任务转换为任务组件、各个阶段组件和阶段状态组件;
所述任务组件是对深度学习推理任务进行抽象,任务组件由任务具体信息及任务执行逻辑组成,任务执行逻辑由输入输出前后相互有依赖关系的阶段组件组合而成,运行完成整个任务组件须按照依赖顺序依次执行各个阶段组件;
所述阶段组件是任务执行逻辑的拆分,包含阶段执行逻辑以及当前阶段的资源消耗估计;
更为具体地,阶段组件提供了(1)涉及的深度学习模型加载和推断逻辑,(2)资源消耗信息的预估(执行是否需要GPU,显存预估,执行时间预估),(3)与其他阶段组件(Stage)的依赖关系(包括所依赖的父阶段(前驱)和子阶段(后继)组件列表)等信息。
所述阶段状态组件是任务组件按阶段组件分解后具体子任务的抽象,包含子任务具体信息、状态以及关联阶段组件,根据阶段组件运行依赖关系确定阶段状态组件状态初始值,并根据阶段状态组件状态将阶段状态组件传递到调度组件中;
更为具体地,阶段状态组件包含了该Task运行状态相关信息(如任务的状态码,优先级等信息),该Task执行时输入输出,运行控制等信息(如根据Stage的依赖关系确定的父(前驱)Task子(后继)Task列表);
所述调度组件是维护阶段状态组件状态池容器,存放各个阶段状态组件。
更为具体地,所述调度组件是维护阶段状态组件状态池容器来存放各个阶段状态组件;通过获取当前处理组件信息和阶段状态组件信息,实现对阶段状态组件的调度运行,并通过阶段状态组件调度给处理组件上执行器执行组件运行,更新处理组件、阶段状态组件以及阶段状态组件在阶段状态组件状态池中的位置;根据当前处理组件状态,当前阶段状态组件状态逻辑,调度处理组件执行阶段状态组件任务;
具体地,所述调度组件包括:根据阶段状态组件的状态,将调度组件状态池分为等待池、就绪池和完成池;当阶段状态组件的状态改变为等待、就绪或完成状态时,就将当前阶段状态组件从原状态池中去除放入相应的状态池中;
所述等待池是以哈希表形式实现的,将即将运行的阶段状态组件放入等待池;
更为具体地,所述等待池通过阶段状态组件位移标识获取到对应的阶段状态组件实例;当新任务组件被传递到调度组件时,部分当前仍未就绪的阶段状态组件、其对应父前驱阶段状态组件仍存在非完成状态会被放入等待池中。等待池中阶段状态组件的状态更新为就绪状态时(父(前驱)阶段状态组件都已经是完成状态),会被移动到就绪池。
所述就绪池是以多个队列形式实现的,将当前可运行的阶段状态组件放入就绪池;
更为具体地,所述就绪池队列的数目与阶段状态组件优先级的最大值大小相同,实现在就绪池中按优先级插入取出相应的阶段状态组件;当新任务组件被传递到调度组件时,部分当前已就绪的阶段状态组件(其对应父(前驱)阶段状态组件不存在或都已经是完成状态)会被放入就绪池中。当完成池中阶段状态组件对应的子(后继)阶段状态组件已经没有未完成的父(前驱)阶段状态组件时,会将该阶段状态组件从等待池移动到就绪池中。当就绪池中的阶段状态组件被调度组件找到合适的处理组件上执行器执行器组件执行时,会被从就绪池移除。(当执行失败会被移送回就绪池,执行成功则移动到完成池)。
所述完成池是以队列的形式实现,将已经执行完成的阶段状态组件放入完成池。
更为具体地,完成池用于依次执行阶段状态组件完成后定义的回调功能(如子(后继)阶段状态组件状态变更等)
具体地,所述模块M2包括:调度组件启动调度功能并启动运行状态统计组件对多个阶段任务资源消耗进行统计;
所述运行状态统计组件提供对每个阶段状态组件的执行时间、显存实际资源消耗情况进行统计,并根据当前统计信息对阶段组件资源估计信息进行动态修正。
具体地,所述模块M3包括:利用每个处理组件评估当前实时可用硬件资源;
所述处理组件是对当前计算资源的抽象,包含了所属资源种类、当前可用资源估计、当前关联的阶段组件推理模型及可服务状态。
更为具体地,所述处理组件包括对CPU内存或某个GPU显存资源的评估,当前已经在其上加载的运行状态统计组件中的模型,正在运行的阶段状态组件以及剩余可用内存显存等资源的评估。处理组件为调度组件进行调度提供必要的判断依据,而调度组件的每次阶段状态组件调度也会相应更新处理组件。
具体地,所述模块M4包括:
模块M4.1:获取调度组件就绪池中可运行的阶段状态组件;
模块M4.2:基于处理组件当前可用资源评估和当前可运行的阶段任务资源消耗的评估,根据预设可运行的阶段组件的优先级或就绪池中存储时间,执行器组件对可运行的阶段状态组件绑定运行所述处理组件调度运行;更新处理组件中估计和记录,重复触发模块M4.2执行,直至当前可运行的阶段组件运行完成;
模块M4.3:更新阶段状态组件状态,调整调度组件中阶段状态组件,修改当前实时可用资源;即当执行器调度运行的阶段状态组件完成后,会更新处理组件中估计和记录,更新阶段状态组件状态为完成,移动到完成池。完成的阶段状态组件会依次通知等待池中依赖其的阶段状态组件。如果等待池中被通知的阶段状态组件的所有依赖阶段状态任务状态都已完成,该会转移该阶段状态组件到就绪池中。重复触发模块M4.1至模块M4.3执行,直至任务组件中所有的阶段状态组件均完成;
所述执行器组件提供实际运行阶段状态组件的执行方式。如根据阶段组件的特殊性,以线程进程或远程过程调用的方式执行任务。
具体地,所述阶段组件包括GPU型阶段组件和CPU型阶段组件;
执行器运行时,当阶段状态组件关联阶段组件为GPU型:
运行前绑定处理组件必须相关推理模型必须已经加载并可提供服务;
当推理模型在运行时,该推理模型设置为不可服务状态,且从当前可用资源估计中减少模型运行显存消耗;当推理模型不再运行时,该推理模型设置为可服务状态,且向当前可用资源估计中增加模型运行显存消耗;
在运行前,检查处理组件关联的推理模型中是否存在当前可运行阶段组件对应的推理模型,且推理模型为空闲可服务状态,当存在时,则当前阶段组件使用该推理模型运行;当不存在时,则加载相应的推理模型,并将推理模型与处理组件进行关联,从当前可用资源估计中减少模型加载显存消耗;
在当前处理组件可用资源估计小于当前可运行阶段状态组件关联的阶段组件资源消耗评估时:删除当前处理组件中空闲可服务的推理模型并向当前处理组件可用资源估计中增加相应模型加载显存消耗。
具体地,所述CPU型阶段组件的资源消耗估计包括运行CPU核数估计和运行时间消耗;
所述GPU型阶段组件的资源消耗估计包括模型加载显存消耗、模型推理显存消耗、运行时间消耗以及模型是否需要预加载。
实施例2
实施例2是实施例1的变化例
当部署该框架来处理医疗影像识别推断的系统任务。该框架会在主线程中根据部署环境情况及配置信息初始化处理组件与阶段组件信息,启动调度组件线程,提供服务。
如图2所示,主线程在收到5例病人的医疗影像输入请求后,会构建5个任务组件Job,Job_1-Job_5,并将每个任务组件Job根据需要完成的4个模型推断阶段组件Stage生成4个阶段状态组件Task,Task_A_1即标识出对应任务组件Job_1需要执行阶段组件Stage_A模型推断时的阶段状态组件Task。并根据阶段状态组件Task的状态是否就绪,将阶段状态组件Task添加到等待池或就绪池中。
如图1所示,调度组件Scheduler线程中的调度组件Scheduler通过某处理组件Processor的当前可用资源状态,就绪池中阶段状态组件Task对应阶段组件Stage运行时资源预期占用情况,处理组件Processor上相同阶段组件Stage在运行的阶段状态组件Task数目以及阶段状态组件Task优先级等信息,判断当前阶段状态组件Task是否为可运行并适合当前运行的任务。如判断为否,则会根据处理组件Processor的其他状态判断是否可以卸载该处理组件Processor上未运行中的推理模型并更新处理组件Processor重新判断或是跳过分配当前阶段状态组件Task或是跳过分配当前处理组件Processor。如果判断为是,则会控制执行器组件Executor将阶段状态组件Task从就绪池中取出并使用该处理组件Processor运行阶段状态组件Task任务。
在当该阶段状态组件Task对应阶段组件Stage中的模型没有预先加载到处理组件Processor上时,会在执行前加载推断模型到处理组件Processor上并更新处理组件Processor的资源状态信息。而当前可用资源估计小于阶段状态组件关联的阶段组件资源消耗的评估时,会删除空闲可服务的关联阶段组件推理模型服务并向当前可用资源估计中增加模型加载显存消耗后重新判断阶段状态组件是否可运行;当阶段状态组件Task相关的阶段组件Stage模型推断执行成功后,会将该阶段状态组件Task放入完成池中,并触发在等待池中的相关子(后继)阶段状态组件Task的状态更新。如果有子阶段状态组件Task状态变为可执行状态,则会将阶段状态组件Task添加到就绪池中。直到所有阶段状态组件Task都执行完毕,即完成了Job1-5的处理。
当框架需要提供多任务长期服务时,运行状态统计组件Stat会根据推断运行时收集到的统计信息对应阶段组件的资源消耗信息预估按一定时间间隔进行动态的变更。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,包括:
步骤M1:获取深度学习推理任务中多个有依赖关系的阶段任务;
步骤M2:对多个阶段任务资源消耗分别进行评估;
步骤M3:对当前可用部署硬件资源进行评估;
步骤M4:从多个有依赖关系的阶段任务中选取当前可运行的阶段任务;根据当前可用部署硬件资源调度当前可运行的阶段任务并更新可用部署硬件资源评估,重复执行步骤M4,直至深度学习推理任务中所有的阶段任务均完成。
2.根据权利要求1所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述深度学习推理任务包括:将深度学习推理任务转换为任务组件、各个阶段组件和阶段状态组件;
所述任务组件是对深度学习推理任务进行抽象,任务组件由任务具体信息及任务执行逻辑组成,任务执行逻辑由输入输出前后相互有依赖关系的阶段组件组合而成,运行完成整个任务组件须按照依赖顺序依次执行各个阶段组件;
所述阶段组件是任务执行逻辑的拆分,包含阶段执行逻辑以及当前阶段的资源消耗估计;
所述阶段状态组件是任务组件按阶段组件分解后具体子任务的抽象,包含子任务具体信息、状态以及关联阶段组件,根据阶段组件运行依赖关系确定阶段状态组件状态初始值,并根据阶段状态组件状态将阶段状态组件传递到调度组件中;
所述调度组件是维护阶段状态组件状态池容器,存放各个阶段状态组件。
3.根据权利要求2所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述调度组件包括:根据阶段状态组件的状态,将调度组件状态池分为等待池、就绪池和完成池;当阶段状态组件的状态改变为等待、就绪或完成状态时,就将当前阶段状态组件从原状态池中去除放入相应的状态池中;
所述等待池是以哈希表形式实现的,将即将运行的阶段状态组件放入等待池;
所述就绪池是以多个队列形式实现的,将当前可运行的阶段状态组件放入就绪池;
所述完成池是以队列的形式实现,将已经执行完成的阶段状态组件放入完成池。
4.根据权利要求2所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述步骤M2包括:调度组件启动调度功能并启动运行状态统计组件对多个阶段任务资源消耗进行统计;
所述运行状态统计组件提供对每个阶段状态组件的执行时间、显存实际资源消耗情况进行统计,并根据当前统计信息对阶段组件资源估计信息进行动态修正。
5.根据权利要求2所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述步骤M3包括:利用每个处理组件评估当前实时可用硬件资源;
所述处理组件是对当前计算资源的抽象,包含了所属资源种类、当前可用资源估计、当前关联的阶段组件推理模型及可服务状态。
6.根据权利要求3所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述步骤M4包括:
步骤M4.1:获取调度组件就绪池中可运行的阶段状态组件;
步骤M4.2:基于处理组件当前可用资源评估和当前可运行的阶段任务资源消耗的评估,预设可运行的阶段组件的优先级及就绪池中存储时间,从就绪池取出合适的阶段状态组件,执行器组件对该阶段状态组件绑定运行所述处理组件调度运行;该过程会更新处理组件中估计和记录,重复执行步骤M4.2,直至当前可运行的阶段状态组件运行完成;
步骤M4.3:执行器调度运行的阶段状态组件完成后,更新阶段状态组件状态,调整调度组件中阶段状态组件,修改当前实时可用资源;重复执行步骤M4.1至步骤M4.3,直至所有任务组件的阶段状态组件均完成;
所述执行器组件提供实际运行阶段状态组件的执行方式。
7.根据权利要求6所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述阶段组件包括GPU型阶段组件和CPU型阶段组件;
执行器运行时,当阶段状态组件关联阶段组件为GPU型:
运行前绑定处理组件中相关推理模型必须已经加载并可提供服务;
当推理模型在运行时,该推理模型设置为不可服务状态,且从当前可用资源估计中减少模型运行显存消耗;当推理模型不再运行时,该推理模型设置为可服务状态,且向当前可用资源估计中增加模型运行显存消耗;
在运行前,检查处理组件关联的推理模型中是否存在当前可运行阶段组件对应的推理模型,且推理模型为空闲可服务状态,当存在时,则当前阶段组件使用该推理模型运行;当不存在时,则加载相应的推理模型,并将推理模型与处理组件进行关联,从当前可用资源估计中减少模型加载显存消耗;
在当前处理组件可用资源估计小于当前可运行阶段状态组件关联的阶段组件资源消耗评估时:删除当前处理组件中空闲可服务的推理模型并向当前处理组件可用资源估计中增加相应模型加载显存消耗。
8.根据权利要求7所述的在限定硬件资源条件下的深度学习模型调度部署方法,其特征在于,所述CPU型阶段组件的资源消耗估计包括运行CPU核数估计和运行时间消耗;
所述GPU型阶段组件的资源消耗估计包括模型加载显存消耗、模型推理显存消耗、运行时间消耗以及模型是否需要预加载。
9.一种在限定硬件资源条件下的深度学习模型调度部署系统,其特征在于,包括:
模块M1:获取深度学习推理任务中多个有依赖关系的阶段任务;
模块M2:对多个阶段任务资源消耗分别进行评估;
模块M3:对当前可用部署硬件资源进行评估;
模块M4:从多个有依赖关系的阶段任务中选取当前可运行的阶段任务;根据当前可用部署硬件资源调度当前可运行的阶段任务并更新可用部署硬件资源评估,重复触发模块M4执行,直至深度学习推理任务中所有的阶段任务均完成。
10.根据权利要求9所述的在限定硬件资源条件下的深度学习模型调度部署系统,其特征在于,所述深度学习推理任务包括:将深度学习推理任务转换为任务组件、各个阶段组件和阶段状态组件;
所述任务组件是对深度学习推理任务进行抽象,任务组件由任务具体信息及任务执行逻辑组成,任务执行逻辑由输入输出前后相互有依赖关系的阶段组件组合而成,运行完成整个任务组件须按照依赖顺序依次执行各个阶段组件;
所述阶段组件是任务执行逻辑的拆分,包含阶段执行逻辑以及当前阶段的资源消耗估计;
所述阶段状态组件是任务组件按阶段组件分解后具体子任务的抽象,包含子任务具体信息、状态以及关联阶段组件,根据阶段组件运行依赖关系确定阶段状态组件状态初始值,并根据阶段状态组件状态将阶段状态组件传递到调度组件中;
所述调度组件是维护阶段状态组件状态池容器,存放各个阶段状态组件;
所述调度组件包括:根据阶段状态组件的状态,将调度组件状态池分为等待池、就绪池和完成池;当阶段状态组件的状态改变为等待、就绪或完成状态时,就将当前阶段状态组件从原状态池中去除放入相应的状态池中;
所述等待池是以哈希表形式实现的,将即将运行的阶段状态组件放入等待池;
所述就绪池是以多个队列形式实现的,将当前可运行的阶段状态组件放入就绪池;
所述完成池是以队列的形式实现,将已经执行完成的阶段状态组件放入完成池;
所述模块M2包括:调度组件启动调度功能并启动运行状态统计组件对多个阶段任务资源消耗进行统计;
所述运行状态统计组件提供对每个阶段状态组件的执行时间、显存实际资源消耗情况进行统计,并根据当前统计信息对阶段组件资源估计信息进行动态修正;
所述模块M3包括:利用每个处理组件评估当前实时可用硬件资源;
所述处理组件是对当前计算资源的抽象,包含了所属资源种类、当前可用资源估计、当前关联的阶段组件推理模型及可服务状态;
所述模块M4包括:
模块M4.1:获取调度组件就绪池中可运行的阶段状态组件;
模块M4.2:基于处理组件当前可用资源评估和当前可运行的阶段任务资源消耗的评估,预设可运行的阶段组件的优先级及就绪池中存储时间,从就绪池取出合适的阶段状态组件,执行器组件对该阶段状态组件绑定运行所述处理组件调度运行;该过程会更新处理组件中估计和记录,重复执行模块M4.2,直至当前可运行的阶段状态组件运行完成;
模块M4.3:执行器调度运行的阶段状态组件完成后,更新阶段状态组件状态,调整调度组件中阶段状态组件,修改当前实时可用资源;重复执行模块M4.1至模块M4.3,直至所有任务组件的阶段状态组件均完成;
所述执行器组件提供实际运行阶段状态组件的执行方式;
所述阶段组件包括GPU型阶段组件和CPU型阶段组件;
执行器运行时,当阶段状态组件关联阶段组件为GPU型:
运行前绑定处理组件必须相关推理模型必须已经加载并可提供服务;
当推理模型在运行时,该推理模型设置为不可服务状态,且从当前可用资源估计中减少模型运行显存消耗;当推理模型不再运行时,该推理模型设置为可服务状态,且向当前可用资源估计中增加模型运行显存消耗;
在运行前,检查处理组件关联的推理模型中是否存在当前可运行阶段组件对应的推理模型,且推理模型为空闲可服务状态,当存在时,则当前阶段组件使用该推理模型运行;当不存在时,则加载相应的推理模型,并将推理模型与处理组件进行关联,从当前可用资源估计中减少模型加载显存消耗;
在当前处理组件可用资源估计小于当前可运行阶段状态组件关联的阶段组件资源消耗评估时:删除当前处理组件中空闲可服务的推理模型并向当前处理组件可用资源估计中增加相应模型加载显存消耗;
所述CPU型阶段组件的资源消耗估计包括运行CPU核数估计和运行时间消耗;
所述GPU型阶段组件的资源消耗估计包括模型加载显存消耗、模型推理显存消耗、运行时间消耗以及模型是否需要预加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011584721.3A CN112540854B (zh) | 2020-12-28 | 2020-12-28 | 在限定硬件资源条件下的深度学习模型调度部署方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011584721.3A CN112540854B (zh) | 2020-12-28 | 2020-12-28 | 在限定硬件资源条件下的深度学习模型调度部署方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112540854A true CN112540854A (zh) | 2021-03-23 |
CN112540854B CN112540854B (zh) | 2021-10-08 |
Family
ID=75017738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011584721.3A Active CN112540854B (zh) | 2020-12-28 | 2020-12-28 | 在限定硬件资源条件下的深度学习模型调度部署方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112540854B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965808A (zh) * | 2021-04-06 | 2021-06-15 | 湖南大学 | 一种深度学习预测服务系统的优化方法 |
CN115373507A (zh) * | 2022-10-26 | 2022-11-22 | 北京品立科技有限责任公司 | 一种基于电能损耗的整机资源均衡管理方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354553A (zh) * | 2015-07-14 | 2017-01-25 | 咪咕音乐有限公司 | 一种大数据系统中基于资源估算的任务调度方法及装置 |
CN108280084A (zh) * | 2017-01-06 | 2018-07-13 | 上海前隆信息科技有限公司 | 一种数据仓库的构建方法、系统及服务器 |
CN110231986A (zh) * | 2019-06-18 | 2019-09-13 | 北京邮电大学 | 基于多fpga的动态可重配置的多任务调度和放置方法 |
CN110390387A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 对深度学习应用所用资源进行评估 |
KR102140730B1 (ko) * | 2019-12-17 | 2020-08-04 | (주) 씨이랩 | Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법 |
WO2020219375A1 (en) * | 2019-04-23 | 2020-10-29 | Interdigital Vc Holdings, Inc. | Framework for coding and decoding low rank and displacement rank-based layers of deep neural networks |
CN111966485A (zh) * | 2020-06-30 | 2020-11-20 | 北京百度网讯科技有限公司 | 计算资源的调度方法、装置、电子设备以及存储介质 |
-
2020
- 2020-12-28 CN CN202011584721.3A patent/CN112540854B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354553A (zh) * | 2015-07-14 | 2017-01-25 | 咪咕音乐有限公司 | 一种大数据系统中基于资源估算的任务调度方法及装置 |
CN108280084A (zh) * | 2017-01-06 | 2018-07-13 | 上海前隆信息科技有限公司 | 一种数据仓库的构建方法、系统及服务器 |
CN110390387A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 对深度学习应用所用资源进行评估 |
WO2020219375A1 (en) * | 2019-04-23 | 2020-10-29 | Interdigital Vc Holdings, Inc. | Framework for coding and decoding low rank and displacement rank-based layers of deep neural networks |
CN110231986A (zh) * | 2019-06-18 | 2019-09-13 | 北京邮电大学 | 基于多fpga的动态可重配置的多任务调度和放置方法 |
KR102140730B1 (ko) * | 2019-12-17 | 2020-08-04 | (주) 씨이랩 | Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법 |
CN111966485A (zh) * | 2020-06-30 | 2020-11-20 | 北京百度网讯科技有限公司 | 计算资源的调度方法、装置、电子设备以及存储介质 |
Non-Patent Citations (2)
Title |
---|
Z. CHEN, L. LUO, W. QUAN, M. WEN AND C. ZHANG: "Deep Learning Workloads Scheduling with Reinforcement Learning on GPU Clusters", 《IEEE CONFERENCE ON COMPUTER COMMUNICATIONS WORKSHOPS》 * |
何杨,肖基毅: "基于深度强化学习的网络共享资源智能调度方法", 《自动化与仪器仪表》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965808A (zh) * | 2021-04-06 | 2021-06-15 | 湖南大学 | 一种深度学习预测服务系统的优化方法 |
CN115373507A (zh) * | 2022-10-26 | 2022-11-22 | 北京品立科技有限责任公司 | 一种基于电能损耗的整机资源均衡管理方法及系统 |
CN115373507B (zh) * | 2022-10-26 | 2023-01-06 | 北京品立科技有限责任公司 | 一种基于电能损耗的整机资源均衡管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112540854B (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413391B (zh) | 基于容器集群的深度学习任务服务质量保证方法和系统 | |
US9417935B2 (en) | Many-core process scheduling to maximize cache usage | |
CA2909748C (en) | Controlling tasks performed by a computing system | |
CN112540854B (zh) | 在限定硬件资源条件下的深度学习模型调度部署方法及系统 | |
CN114217966A (zh) | 基于资源调整的深度学习模型动态批处理调度方法和系统 | |
CN112486641A (zh) | 一种基于图神经网络的任务调度方法 | |
WO2013165450A1 (en) | Process scheduling using scheduling graph to minimize managed elements | |
EP3908920B1 (en) | Optimizing hardware fifo instructions | |
CN116702907B (zh) | 一种服务器无感知的大语言模型推理系统、方法和设备 | |
US7747426B2 (en) | System simulation using multi-tasking computer code | |
US20220129315A1 (en) | Deep learning autotuning task optimization | |
CN113032119A (zh) | 一种任务调度方法、装置、存储介质及电子设备 | |
US8108868B2 (en) | Workflow execution plans through completion condition critical path analysis | |
CN116069473A (zh) | 一种基于深度强化学习的Yarn集群工作流调度方法 | |
CN114995971A (zh) | 实现kubernetes中pod批量调度方法及系统 | |
WO2023015787A1 (zh) | 一种高吞吐云计算资源回收系统 | |
EP1387266A1 (en) | Software pipelining for branching control flow | |
CN112130979B (zh) | 调度任务及训练神经网络模型的方法、装置、终端和介质 | |
CN114816703A (zh) | 一种任务处理方法、装置、设备及介质 | |
Madureira et al. | A genetic approach for dynamic job-shop scheduling problems | |
CN113010290A (zh) | 一种任务管理方法、装置、设备及存储介质 | |
Rongfa | Adaptive software test management system based on software agents | |
CN117742928B (zh) | 一种用于联邦学习的算法组件执行调度方法 | |
CN112711478B (zh) | 基于神经网络的任务处理方法、装置、服务器和存储介质 | |
CN117453388B (zh) | 一种分布式算力智能调度系统及方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |