CN116737397A - 一种基于嵌入式平台的算力柔性组合方法及系统 - Google Patents
一种基于嵌入式平台的算力柔性组合方法及系统 Download PDFInfo
- Publication number
- CN116737397A CN116737397A CN202311023795.3A CN202311023795A CN116737397A CN 116737397 A CN116737397 A CN 116737397A CN 202311023795 A CN202311023795 A CN 202311023795A CN 116737397 A CN116737397 A CN 116737397A
- Authority
- CN
- China
- Prior art keywords
- computing
- task
- tasks
- resources
- execution
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000004364 calculation method Methods 0.000 title claims description 109
- 230000008569 process Effects 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims description 29
- 238000012544 monitoring process Methods 0.000 claims description 28
- 238000004458 analytical method Methods 0.000 claims description 27
- 238000013523 data management Methods 0.000 claims description 12
- 238000013135 deep learning Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/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/5044—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 hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于嵌入式平台的算力柔性组合方法及系统,通过解析用户设置的任务配置文件及构型配置文件实现为计算任务分配初始的计算平台资源,在计算任务执行过程中通过获取计算平台资源占用情况后再依据资源调度策略实时柔性动态调整组合计算平台资源实现算力柔性组合以完成计算任务的执行,由此针对嵌入式智能计算平台资源的特点实现了CPU、GPU及NPU等异构算力间柔性组合和按需调度,有效降低了嵌入式平台的开发成本。
Description
技术领域
本发明属于嵌入式异构框架开发技术领域,具体涉及一种基于嵌入式平台的算力柔性组合方法及系统。
背景技术
随着嵌入式技术的不断发展,人工智能(Artificial Intelligence,AI)技术逐渐成为其不可或缺的部分,演化为嵌入式人工智能(Embedded Artificial Intelligence,简称EAI)技术,并已广泛应用于语音识别、图像识别、智能控制及智能监测等多个领域。例如,在智能驾驶中,EAI可以实现规划决策、障碍物识别、融合定位、行为监测等功能。一般情况下由智能计算平台资源提供EAI功能,具体来说智能计算平台资源需要执行感知、融合定位、探测识别、规划决策等多种类型的计算任务,这些计算任务的执行都依赖于智能计算平台资源上搭载的CPU、GPU及NPU等异构算力资源(也称异构计算硬件)。其中,CPU适合执行批处理计算任务;GPU适合作为图形处理器,执行图像解析、图形渲染等任务;NPU适合作为嵌入式神经网络处理器,执行深度学习的计算任务,以加速神经网络的运算。
智能计算平台资源可能同时具有多个来自不同厂商的NPU,如寒武纪、瑞芯微等厂商的NPU。由于不同NPU提供的SDK不同,SDK用于提供二次开发的API接口,所以往往需要针对不同的NPU的SDK开发对应的任务,这将导致任务开发难度及智能计算平台资源适配难度增加的问题。此外,智能计算平台资源中各NPU或GPU间还存在资源分配不均的问题,执行多任务计算时往往也存在着计算平台资源分配不均的问题,这将导致任务执行效率降低、空闲资源浪费等问题。上述问题严重影响了嵌入式工况下任务执行的实时性、动态性及灵活性。
发明内容
有鉴于此,本发明提供了一种基于嵌入式平台的算力柔性组合方法及系统,实现为不同计算任务分配不同的嵌入式计算平台资源,并根据计算平台资源及计算任务的实时状态柔性动态调整组合计算平台资源以完成计算任务的执行。
本发明提供的一种基于嵌入式平台的算力柔性组合方法,具体包括以下步骤:
步骤1、用户定义任务配置文件,所述任务配置文件中包含计算任务的基本信息;所述计算任务为采用计算平台资源执行的深度学习计算的任务,基本信息包括任务名称、任务路径、Python解释器路径、计算任务模型、任务参数、任务输入格式、任务输出格式、任务计算优先级、任务执行方式及任务执行时间;根据用户定义的构型配置文件生成计算构型,并针对计算构型确定计算任务的部署平台即计算平台资源;获取当前可用的计算平台资源的使用情况及剩余计算平台资源;
步骤2、获取步骤1中计算任务的基本信息,根据计算任务模型确定与其匹配的计算平台资源,再由计算任务模型的参数量得到计算任务所需的计算平台资源的大小;
步骤3、获取步骤1中的计算构型,若计算构型为智能计算构型则执行步骤4,若计算构型为通用处理构型则执行步骤5,若计算构型为实时控制构型则执行步骤6;
步骤4、根据计算任务的基本信息,智能计算构型分析计算任务的可支持计算平台资源、计算平台资源的当前资源占用、执行各计算任务所需的资源占用;将计算任务按照其可支持计算平台资源类型划分为不同的任务列表,再采用智能计算资源调度策略,对任务列表中的计算任务进行柔性组合分配算力,以将各计算任务按其任务执行方式调度到相应计算平台资源上执行;
步骤5、根据计算任务的基本信息,通用处理构型分析获取当前的CPU资源占用和每个计算任务所需的资源占用;采用通用处理资源调度策略,按计算任务的任务执行方式将各计算任务调度到CPU上执行;
步骤6、根据计算任务的基本信息,实时控制构型分析计算任务的任务执行时间、任务计算优先级、可支持计算平台、可支持计算平台的资源占用及执行所需的资源占用;将计算任务按照其可支持计算平台资源划分为不同的任务列表,采用智能计算资源调度策略将任务列表中的计算任务进行柔性组合分配算力,以将各计算任务按其任务执行方式调度到相应计算平台资源上执行。
进一步地,所述步骤4中所述采用智能计算资源调度策略,对任务列表中的计算任务进行柔性组合分配算力,以将各计算任务按其任务执行方式调度到相应计算平台资源上执行,其方式为:
步骤4.1、若所有计算平台资源均为空闲,则将计算任务分配到与其相匹配的计算平台资源上执行;若所有剩余计算平台资源不能执行所有计算任务,则先分配部分计算任务,待其执行完毕释放资源后再分配并执行剩余计算任务;
步骤4.2、在同一计算平台资源下,若当前硬件资源占用较少能够执行所有计算任务,则将所有计算任务分配到该计算平台资源中并行执行;
步骤4.3、若当前已用NPU资源占用较多不能执行所有任务,其它NPU也不能执行计算任务,则将计算任务以串行方式执行,或将计算任务分配到其它类型的空闲计算平台资源上执行;
步骤4.4、若当前已用NPU资源占用较多不能执行所有任务,其它NPU空闲资源充足,则执行步骤4.1。
进一步地,所述步骤4.1中所述将计算任务分配到与其相匹配的计算平台资源上执行时,优先将计算任务分配至NPU执行,当NPU的资源不足时再选择其它计算平台。
进一步地,所述步骤5中所述采用通用处理资源调度策略,按计算任务的任务执行方式将各计算任务调度到CPU上执行的方式为:
步骤5.1、若当前已用CPU计算平台资源占用少,空闲资源足以执行所有计算任务,则将计算任务分配到该CPU计算平台资源中并行执行;
步骤5.2、若当前已用CPU计算平台资源占用多,空闲资源不足以执行所有计算任务,则按照计算任务的任务计算优先级由高到低的顺序串行执行计算任务。
进一步地,所述步骤6中所述采用智能计算资源调度策略将任务列表中的计算任务进行柔性组合分配算力,以将各计算任务按其任务执行方式调度到相应计算平台资源上执行,其方式为:
步骤6.1、若计算平台资源空闲且计算任务所需的计算平台资源不超过计算平台资源的最大计算负载则将计算任务分配至其对应的计算平台资源,否则按计算任务的任务计算优先级由高到低的顺序分别为计算任务调度分配计算平台资源;
步骤6.2、在相同计算平台资源下,根据计算任务的任务计算优先级和任务执行时间对计算任务进行排序更新任务列表,对任务列表柔性组合分配算力;
步骤6.3、若计算平台资源由其它计算任务占用,同时其它计算平台资源为空闲,则执行步骤6.2将计算任务分配到其它计算平台资源上执行;
步骤6.4、若计算平台资源由其它计算任务占用,同时其它计算平台资源也未空闲且待执行计算任务的任务计算优先级低于正在执行的计算任务,则等待资源空闲后再执行该计算任务;
步骤6.5、若当前计算平台资源由其它计算任务占用,同时其它计算平台资源也无空闲资源且待执行计算任务的任务计算优先级高于正在执行的计算任务,则采用立即抢占的优先权调度算法将正在执行的计算任务暂时挂起以空出资源;
步骤6.6、执行步骤6.5直至空闲资源大于具有较高优先级的待执行计算任务所需的计算平台资源,再执行该计算任务;
步骤6.7、重复执行步骤6.5及步骤6.6直至任务列表中任务均被执行或产生步骤6.3的情况;
步骤6.8、每当计算任务执行完毕后,采用快速切换调度算法执行下一个计算任务,并在计算任务执行过程中实时监控计算任务的状态及执行时间,若执行时间超过规定时间则立即停止执行该计算任务并执行下一计算任务。
进一步地,所述步骤6.8所述快速切换调度算法的执行方式为:在当前执行中的计算任务处于完成临界区时,提前准备下一个计算任务,在当前计算任务完成计算时立即切换计算任务。
进一步地,所述计算任务为基于NPU接口标准规范开发的各类任务。
进一步地,所述步骤1中所述计算平台资源的使用情况为正在使用的计算平台资源的占用率,所述剩余计算平台资源为处于空闲的计算平台资源。
进一步地,所述算力柔性组合方法还包括:在计算任务执行过程中,记录计算任务的运行日志形成任务日志文件,在计算任务执行结束后将计算任务的输出结果整理为其配置文件中规定的目标格式保存在规定的目录位置中。
本发明提供的一种基于嵌入式平台的算力柔性组合系统,具体包括构型生成模块、输入模块、解析模块、异构计算模块、输出模块、日志模块、数据管理模块及资源监控模块,所述算力柔性组合系统采用Docker容器化方式部署和运行;
所述构型生成模块,用于根据解析构型配置文件得到的信息灵活生成不同的计算构型,包括通用处理构型、智能计算构型及实时控制构型,通用处理构型在CPU下执行计算、智能计算构型在CPU和NPU下执行计算、实时控制构型在CPU和NPU以及GPU下均可执行计算;
所述输入模块,用于接收用户输入的任务配置文件,通过Curl向算力柔性组合系统发送POST输入请求以将任务配置文件输入到系统中,并将任务配置文件传递至解析模块;
所述解析模块,用于解析任务配置文件和计算任务,获取任务配置文件中的计算任务的基本信息包括任务名称、任务路径、Python解释器路径、参数详情、任务的输入输出格式、任务计算优先级、任务执行方式及任务执行时间,和计算任务的详细信息包括执行计算的硬件及计算平台资源占用,并将这些信息传递至异构计算模块,同时与数据管理模块相连接,由数据管理模块管理上述信息;
所述异构计算模块,用于根据构型生成模块生成的计算构型,生成相应的计算平台资源,所述计算平台资源包括通用处理构型计算模块、智能计算构型计算模块及实时控制构型计算模块;每种计算模块均包含分析模块和资源调度模块两个子模块,分析模块用于分析计算任务的基本信息和详细信息,资源调度模块用于根据分析结果确定资源调度策略,将计算任务调度到相应计算平台资源上执行,并与资源监控模块连接,由资源监控模块监控执行的计算任务;
所述输出模块,用于根据解析模块中解析出的任务输出格式中规定的目标格式整理计算任务的输出数据,并将整理后的结果保存到规定的目录位置;
所述日志模块,用于同步记录系统和计算任务执行过程中产生的日志输出,并记录异常信息;
所述数据管理模块,用于记录计算任务的详细信息和执行状态、任务执行时间,提供计算任务的增加、删除、修改及查询功能;
所述资源监控模块,用于监控所有在线计算任务的计算平台资源使用情况及剩余可分配的各类计算平台资源,同时监控计算任务的执行情况。
有益效果
本发明通过解析用户设置的任务配置文件及构型配置文件实现为计算任务分配初始的计算平台资源,在计算任务执行过程中通过获取计算平台资源占用情况后再依据资源调度策略实时柔性动态调整组合计算平台资源实现算力柔性组合以完成计算任务的执行,由此针对嵌入式智能计算平台资源的特点实现了CPU、GPU及NPU等异构算力间柔性组合和按需调度,有效降低了嵌入式平台的开发成本。
附图说明
图1为本发明提供的一种基于嵌入式平台的算力柔性组合方法的流程图。
图2为本发明提供的一种基于嵌入式平台的算力柔性组合系统的结构示意图。
图3为本发明提供的一种基于嵌入式平台的算力柔性组合系统的各模块间的数据流及执行流程示意图。
具体实施方式
下面列举实施例,对本发明进行详细描述。
本发明提供的一种基于嵌入式平台的算力柔性组合方法及系统,其基本思想是:解析用户设置的任务配置文件获取计算任务的基本信息和详细信息,根据用户配置的构型配置文件生成相应的计算构型,为计算任务选定对应的计算构型;由计算构型启动分析和资源调度策略,依据获取的计算任务的信息为计算任务分配执行计算平台资源,并在获取计算平台资源占用大小后再依据资源调度策略实时调度资源实现算力柔性组合以完成计算任务的执行。
本发明提供的一种基于嵌入式平台的算力柔性组合方法,其流程如图1所示,具体包括以下步骤:
步骤1、用户定义计算任务的基本信息,基于计算任务的基本信息形成任务配置文件,系统解析任务配置文件获取计算任务的详细信息。计算任务是指用户提交的需要用到异构算力资源(CPU、GPU、NPU等)处理进行深度学习计算的任务,如目标检测、融合定位等任务,该计算任务为基于NPU接口标准规范开发的各类任务。计算任务的基本信息包括任务名称、任务路径、Python解释器路径、计算任务模型、任务参数、任务输入格式、任务输出格式、任务计算优先级、任务执行方式及任务执行时间等。
其中,任务名称为用户为计算任务定义的名称。任务路径为计算任务对应的可执行程序或py程序的绝对路径。Python解释器路径为当任务路径为py程序的绝对路径时,用户所指定的执行py程序的Python解释器的绝对路径。任务参数为计算任务对应的可执行程序或py程序执行时需要传入的参数。任务输入格式为计算任务的输入数据的参数格式及其路径。任务输出格式为计算任务的输出数据的数据格式及其保存位置,以使计算得到的结果按照指定数据格式保存到指定位置,该指定位置由用户在任务输出格式中定义。
任务计算优先级为计算任务的执行优先程度,优先级较高的任务优先获得计算平台资源,优先级较低的任务则需等待有空闲计算平台资源后再执行,具体可包括:P1,表示优先级为紧急,使用数值“1”表示;P2,表示优先级为高,使用数值“2”表示;P3,表示优先级为中,使用数值“3”表示;P4,表示优先级为低,使用数值“4”表示等。
任务执行方式为任务执行的方式类型,包括:一次性任务,使用数值“1”表示;循环任务,使用数值“2”表示;定时任务,使用数值“3”表示。任务执行时间为任务从开始执行到结束执行所用的总时长,以毫秒为单位,用于实时控制计算构型中判断实时任务的执行时长,需要在其确定的时间内执行完对应的计算任务,否则不满足实时要求。
本发明中,计算任务的详细信息包括执行计算任务的硬件及计算平台资源占用等。其中,执行计算任务的硬件为执行计算任务的硬件设备,系统判断任务模型的可支持计算硬件自动为计算任务分配执行计算的硬件,使得资源调度时推送任务到该分配的计算平台资源,并执行计算,特别地,系统会优先分配NPU给任务。计算平台资源占用为执行计算任务时所需不同异构硬件的最大计算平台资源的值,特别地,系统会自动解析计算任务模型的参数量以计算其计算平台资源的占用情况,计算任务模型是指深度学习中的神经网络模型,在用户开发的计算任务中用于推理计算。
任务配置文件包含所述计算任务基本信息,并通过Json文件格式进行储存。任务配置文件Json格式如下所示:
{
“tasks”:[
{
“task_name”: “readconfig”,
“task_path”:”/home/xx/project/readconfig.bin”,
“python”:null,
“args”:”-c /home/xx/project/config.json”,
“remote_output”:null,
“priority”:3,
“trigger_type”: 1
},
{
…
}
]
}
步骤2、根据用户定义的构型配置文件生成对应的计算构型,并针对计算构型确定计算任务的部署平台,例如,CPU、NPU或GPU。
其中,构型配置文件用于定义计算构型的计算构型名称(configuration)及执行硬件类型(hardware),并可以储存为Json文件格式。构型配置文件的参考格式,如:
{
"configuration":"智能计算",
"hardware":"CPU;NPU"
}
上述示例中定义了名称为智能计算、执行硬件类型为CPU或NPU的计算构型。
计算构型为计算的模式,根据计算用途可分为通用处理构型、智能计算构型及实时控制构型,通用处理构型用于处理具有较低计算性能要求的计算任务,该类构型适用于在CPU上执行;智能计算构型用于处理人工智能相关计算任务,该类构型对计算性能要求较高,因此适用于在CPU和NPU上执行;实时控制构型用于处理具有较高实时性要求的计算任务,该类构型适用于在NPU及GPU上执行,也可在性能较高的CPU上执行。
步骤3、获取当前所有可用的计算平台资源的使用情况及剩余计算平台资源,使用情况包括正在使用的CPU、GPU或NPU等计算平台资源的占用率,剩余计算平台资源包括处于空闲状态的CPU、GPU或NPU等。
步骤4、解析步骤1生成的任务配置文件,获取任务配置文件中各计算任务的基本信息,根据计算任务模型得到与其匹配的计算平台资源,再由计算任务模型的参数量得到计算任务所需的计算平台资源的大小。此外,为了便于处理,可将计算任务的相关信息记录到数据库中持久化储存。
实际处理过程中,用户可通过输入接口将步骤1生成的任务配置文件输入到基于嵌入式平台的算力柔性组合系统中。具体来说,基于嵌入式平台的算力柔性组合系统的输入接口由Curl实现,通过Curl向基于嵌入式平台的算力柔性组合系统发送POST输入请求,请求参数结构体为Json格式,请求参数结构体的数据内容为任务配置文件的绝对路径地址,例如:curl -H "Content-Type: application/json" -X POST -d '{"config_path":"/root/config.json"}' http://127.0.0.1:8080/postTask;输入后若返回成功信息,则表示基于嵌入式平台的算力柔性组合系统接收到了任务配置文件,否则尝试重新发送请求。
步骤5、根据步骤2生成的计算构型,启用与计算构型相对应的分析方式和资源调度策略,具体来说,若计算构型为智能计算构型则执行步骤6,若计算构型为通用处理构型则执行步骤8,若计算构型为实时控制构型则执行步骤10。
步骤6、根据步骤4获取的计算任务的基本信息,智能计算构型分析各计算任务的可支持计算平台资源、计算平台资源的当前资源占用、执行各计算任务所需的资源占用。
依据上述分析的结果,系统提供合理的资源调用方式,供资源调度模块使用,对多任务进行灵活分配。
步骤7、根据步骤6得到的分析结果,将所有计算任务按照其可支持计算平台资源类型划分为不同的任务列表,并采用智能计算资源调度策略,对任务列表中的计算任务进行柔性组合分配算力,以将每个计算任务按其任务执行方式调度到相应计算平台资源上执行,具体算力柔性组合调度过程包括以下步骤:
步骤7.1、若所有计算平台资源均处于空闲状态,则将当前待分配计算任务分配到与其可支持计算平台资源类型相同的计算平台资源上执行;特别地,优先选择将其分配至NPU,当NPU的资源不足时再选择其它计算平台资源,如CPU;若所有剩余计算平台资源不足以执行所有的当前待分配计算任务,则先分配部分的当前待分配计算任务,等待这些计算任务执行完毕并释放资源后再分配并执行任务列表中的剩余计算任务;
步骤7.2、在同一计算平台资源下,若当前的硬件资源占用较少空闲资源充足能够执行所有计算任务,则将所有计算任务分配到该计算平台资源中并行执行,即同时执行所有计算任务,不分先后顺序;
步骤7.3、若当前NPU的资源占用较多空闲资源不足以执行所有任务,并且其它的NPU计算平台资源空闲资源同样不足以支持任务执行,则将多个任务按串行方式计算,即按任务列表顺序执行任务,或将其分配到能够支持计算的其它类型空闲的计算平台资源上执行,如CPU计算平台资源;
步骤7.4、若当前NPU的资源占用较多空闲资源不足以执行所有任务,但其它NPU计算平台资源空闲资源充足能够支持任务执行,则重新进行柔性组合分配算力,即将多个任务分配到空闲的计算硬件上执行计算,使空闲资源得以利用。
步骤8、根据步骤4获取的计算任务的基本信息,通用处理构型分析获取当前的CPU资源占用和每个计算任务所需的资源占用情况。
步骤9、根据步骤8分析的结果,采用通用处理资源调度策略,按计算任务的执行方式将每个计算任务调度到CPU上执行,具体执行过程包括以下步骤:
步骤9.1、若当前CPU计算平台资源占用较少空闲资源足以支持执行所有计算任务,则将任务列表中的计算任务分配到该计算平台资源中并行执行;
步骤9.2、若当前CPU计算平台资源占用比较多,空闲资源不足以支持执行所有计算任务,则按照计算任务的任务计算优先级由高到低的顺序串行执行计算任务,即优先执行高优先级任务,后续任务等待资源空闲再依次执行。
步骤10、根据步骤4获取的计算任务的基本信息,实时控制构型分析获取每个计算任务的任务执行时间、任务计算优先级、可支持计算平台资源、可支持计算平台资源的资源占用及执行所需的资源占用情况。
通过上述过程可见,系统通过提供合理的资源调用方式实现对多任务的灵活分配。在实时控制构型中本发明采用立即抢占的优先权调度算法与快速切换调度算法相配合的实时控制资源调度策略完成任务的调度。
其中,立即抢占的优先权调度算法调度过程如下:
使用优先队列存储所有计算任务的进程,并按照计算任务的优先级从高到低的顺序对计算任务的进程进行排序;当某个计算任务进程执行完毕或被抢占时,从优先队列中选取当前优先级最高的计算任务的进程进行执行;若存在多个具有相同优先级的计算任务的进程,则基于预设的时间片采用时间片轮转算法轮流执行这些进程。其中,被抢占是指计算任务由于其它具有较高优先级的计算任务抢占了计算平台资源而被中断执行的情况。
时间片轮转算法是指将计算平台资源上的时间分成若干时间片,每个进程在一个时间片内执行一定的时间,然后被暂停并被放回至就绪队列中,等待下一次调度;如果一个进程在一个时间片内未执行完毕,那么该进程将被暂停并放回至就绪队列的末尾,等待下一次调度。
此外,时间片轮转算法的实现过程中,最佳地设置如下:时间片的长度取值通常在10ms 到 100ms 之间;采用队列或链表等数据结构实现就绪队列,以便于快速插入和删除进程;每个进程需要记录自己的执行时间和剩余时间,以便于在时间片结束时判断是否需要继续执行;在每个时间片结束时,需要将当前进程放回就绪队列的末尾,并从队列中选择下一个进程执行。
快速切换调度算法的调度过程如下:
快速的任务分派,在实时监控计算平台资源的情况下,当上一个在执行中的计算任务处于完成临界区或出现外部中断时,系统提前准备下一个计算任务的进程,一旦上一个计算任务完成计算或出现中断系统立即进行计算任务的切换,以减少实时计算任务的等待时间。
步骤11、根据步骤10得到的分析结果,将所有计算任务按照其可执行计算平台资源划分为不同的任务列表,采用智能计算资源调度策略,将任务列表中的计算任务进行柔性组合分配算力,以将每个计算任务按其执行方式调度到相应计算平台资源上执行,具体柔性组合分配算力调度执行计算任务的过程包括以下步骤:
步骤11.1、在同一时间段内处理多个应用队列,实时监控用户输入的任务队列,并实时调整未执行任务的执行顺序;
步骤11.2、如硬件资源空闲且所有任务需要的计算平台资源不超过最大计算负载,则将多个任务按照其可支持的计算硬件进行资源分配,否则按照任务优先级由高到低的顺序进行调度并分配资源;特别地,优先选择NPU资源分配到计算任务,当NPU资源不足时再选择其它计算平台资源,如CPU等;
步骤11.3、在相同计算平台资源下,根据计算任务的优先级和执行时间对计算任务的执行顺序进行排序,对任务列表柔性组合分配算力;
步骤11.4、若当前计算平台资源由其它计算任务占用,同时其它计算平台资源存在空闲资源,则重复步骤11.3,将待执行的计算任务分配到其它计算平台资源上执行;
步骤11.5、若当前计算平台资源由其它计算任务占用,同时其它计算平台资源也无空闲资源且待执行计算任务的任务计算优先级低于正在执行的计算任务,则等待资源空闲后再执行该计算任务;
步骤11.6、若当前计算平台资源由其它计算任务占用,同时其它计算平台资源也无空闲资源且待执行计算任务的任务计算优先级高于正在执行的计算任务,则采用立即抢占的优先权调度算法将正在执行的计算任务暂时挂起以空出资源;
步骤11.7、重复执行步骤11.6直至空闲资源大于具有较高优先级的待执行计算任务所需的计算平台资源,再执行该计算任务;
步骤11.8、重复执行步骤11.6及步骤11.7直至任务列表中任务均被执行或产生步骤11.5的情况;
步骤11.9、每当完成一个计算任务的执行后,采用快速切换调度算法执行下一个计算任务,并在计算任务执行过程中实时监控计算任务的状态及执行时间,若执行时间超过规定时间则立即停止执行该计算任务并执行下一计算任务。
步骤12、在计算任务执行过程中,记录计算任务的运行日志形成任务日志文件。
步骤13、在计算任务执行结束后将计算任务的输出结果整理为其配置文件中规定的目标格式保存在规定的目录位置中。
本发明提供的一种基于嵌入式平台的算力柔性组合系统,其结构如图2所示,包括构型生成模块、输入模块、解析模块、异构计算模块、输出模块、日志模块、数据管理模块及资源监控模块。基于嵌入式平台的算力柔性组合系统在工作状态下各模块间的数据流动、执行流程如图3所示。基于嵌入式平台的算力柔性组合系统采用Docker容器化方式进行部署和运行,可提高系统的部署效率以适应各种不同的任务场景,也可为每个模块提供完全隔离的运行环境,在嵌入式平台中复杂的环境下,降低其它库或包干扰的影响,提高框架的可靠性。
其中,构型生成模块,用于根据解析构型配置文件得到的信息灵活生成不同的计算构型,包括通用处理构型、智能计算构型及实时控制构型。算力柔性组合系统会根据计算构型的执行硬件类型来限制执行的硬件,如通用处理构型在CPU下执行计算、智能计算构型在CPU和NPU下执行计算、实时控制构型在CPU和NPU以及GPU下均可执行计算。系统可根据不同任务场景部署平台的计算构型需求,灵活配置生成当前任务场景所满足的计算构型。
输入模块,用于接收用户输入的任务配置文件,通过Curl向算力柔性组合系统发送POST输入请求以将任务配置文件输入到系统中,并将任务配置文件传递至解析模块。
解析模块,用于解析任务配置文件和计算任务,获取配置文件中的计算任务的基本信息如任务名称、任务路径、Python解释器路径、参数详情、任务的输入输出格式、任务计算优先级、任务执行方式及任务执行时间等,和计算任务的详细信息如执行计算的硬件、计算平台资源占用等,并将这些信息传递至异构计算模块,同时与数据管理模块相连接,由数据管理模块管理上述信息。
异构计算模块,用于根据构型生成模块生成的计算构型,生成相应的计算模块包括通用处理构型计算模块、智能计算构型计算模块及实时控制构型计算模块。每种计算模块均包含分析模块和资源调度模块两个子模块,其中,分析模块用于分析计算任务的基本信息和详细信息,根据计算任务的详细信息自动分配执行计算任务的计算平台资源,并计算任务对计算平台资源占用大小;资源调度模块用于根据分析结果确定资源调度策略,对所有计算任务进行算力柔性组合,将计算任务调度到相应计算平台资源上执行,并与资源监控模块连接,由资源监控模块监控执行的计算任务。
输出模块,用于根据解析模块中解析出的任务输出格式中规定的目标格式整理计算任务的输出数据,并将整理后的结果保存到规定的目录位置,以提供给有信息交互需要的下一个计算任务使用。
日志模块,用于同步记录系统和计算任务执行过程中产生的日志输出,并记录异常信息用于系统和计算任务的维护。
数据管理模块,用于记录计算任务的详细信息和执行状态、任务执行时间等过程信息,提供计算任务的增加、删除、修改及查询等功能,实现对计算任务数据的管理。
资源监控模块,用于监控所有在线计算任务的计算平台资源使用情况及剩余可分配的各类计算平台资源,同时监控计算任务的执行情况。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于嵌入式平台的算力柔性组合方法,其特征在于,具体包括以下步骤:
步骤1、用户定义任务配置文件,所述任务配置文件中包含计算任务的基本信息;所述计算任务为采用计算平台资源执行的深度学习计算的任务,基本信息包括任务名称、任务路径、Python解释器路径、计算任务模型、任务参数、任务输入格式、任务输出格式、任务计算优先级、任务执行方式及任务执行时间;根据用户定义的构型配置文件生成计算构型,并针对计算构型确定计算任务的部署平台即计算平台资源;获取当前可用的计算平台资源的使用情况及剩余计算平台资源;
步骤2、获取步骤1中计算任务的基本信息,根据计算任务模型确定与其匹配的计算平台资源,再由计算任务模型的参数量得到计算任务所需的计算平台资源的大小;
步骤3、获取步骤1中的计算构型,若计算构型为智能计算构型则执行步骤4,若计算构型为通用处理构型则执行步骤5,若计算构型为实时控制构型则执行步骤6;
步骤4、根据计算任务的基本信息,智能计算构型分析计算任务的可支持计算平台资源、计算平台资源的当前资源占用、执行各计算任务所需的资源占用;将计算任务按照其可支持计算平台资源类型划分为不同的任务列表,再采用智能计算资源调度策略,对任务列表中的计算任务进行柔性组合分配算力,以将各计算任务按其任务执行方式调度到相应计算平台资源上执行;
步骤5、根据计算任务的基本信息,通用处理构型分析获取当前的CPU资源占用和每个计算任务所需的资源占用;采用通用处理资源调度策略,按计算任务的任务执行方式将各计算任务调度到CPU上执行;
步骤6、根据计算任务的基本信息,实时控制构型分析计算任务的任务执行时间、任务计算优先级、可支持计算平台、可支持计算平台的资源占用及执行所需的资源占用;将计算任务按照其可支持计算平台资源划分为不同的任务列表,采用智能计算资源调度策略将任务列表中的计算任务进行柔性组合分配算力,以将各计算任务按其任务执行方式调度到相应计算平台资源上执行。
2.根据权利要求1所述的算力柔性组合方法,其特征在于,所述步骤4中所述采用智能计算资源调度策略,对任务列表中的计算任务进行柔性组合分配算力,以将各计算任务按其任务执行方式调度到相应计算平台资源上执行,其方式为:
步骤4.1、若所有计算平台资源均为空闲,则将计算任务分配到与其相匹配的计算平台资源上执行;若所有剩余计算平台资源不能执行所有计算任务,则先分配部分计算任务,待其执行完毕释放资源后再分配并执行剩余计算任务;
步骤4.2、在同一计算平台资源下,若当前硬件资源占用较少能够执行所有计算任务,则将所有计算任务分配到该计算平台资源中并行执行;
步骤4.3、若当前已用NPU资源占用较多不能执行所有任务,其它NPU也不能执行计算任务,则将计算任务以串行方式执行,或将计算任务分配到其它类型的空闲计算平台资源上执行;
步骤4.4、若当前已用NPU资源占用较多不能执行所有任务,其它NPU空闲资源充足,则执行步骤4.1。
3.根据权利要求2所述的算力柔性组合方法,其特征在于,所述步骤4.1中所述将计算任务分配到与其相匹配的计算平台资源上执行时,优先将计算任务分配至NPU执行,当NPU的资源不足时再选择其它计算平台。
4.根据权利要求1所述的算力柔性组合方法,其特征在于,所述步骤5中所述采用通用处理资源调度策略,按计算任务的任务执行方式将各计算任务调度到CPU上执行的方式为:
步骤5.1、若当前已用CPU计算平台资源占用少,空闲资源足以执行所有计算任务,则将计算任务分配到该CPU计算平台资源中并行执行;
步骤5.2、若当前已用CPU计算平台资源占用多,空闲资源不足以执行所有计算任务,则按照计算任务的任务计算优先级由高到低的顺序串行执行计算任务。
5.根据权利要求1所述的算力柔性组合方法,其特征在于,所述步骤6中所述采用智能计算资源调度策略将任务列表中的计算任务进行柔性组合分配算力,以将各计算任务按其任务执行方式调度到相应计算平台资源上执行,其方式为:
步骤6.1、若计算平台资源空闲且计算任务所需的计算平台资源不超过计算平台资源的最大计算负载则将计算任务分配至其对应的计算平台资源,否则按计算任务的任务计算优先级由高到低的顺序分别为计算任务调度分配计算平台资源;
步骤6.2、在相同计算平台资源下,根据计算任务的任务计算优先级和任务执行时间对计算任务进行排序更新任务列表,对任务列表柔性组合分配算力;
步骤6.3、若计算平台资源由其它计算任务占用,同时其它计算平台资源为空闲,则执行步骤6.2将计算任务分配到其它计算平台资源上执行;
步骤6.4、若计算平台资源由其它计算任务占用,同时其它计算平台资源也未空闲且待执行计算任务的任务计算优先级低于正在执行的计算任务,则等待资源空闲后再执行该计算任务;
步骤6.5、若当前计算平台资源由其它计算任务占用,同时其它计算平台资源也无空闲资源且待执行计算任务的任务计算优先级高于正在执行的计算任务,则采用立即抢占的优先权调度算法将正在执行的计算任务暂时挂起以空出资源;
步骤6.6、执行步骤6.5直至空闲资源大于具有较高优先级的待执行计算任务所需的计算平台资源,再执行该计算任务;
步骤6.7、重复执行步骤6.5及步骤6.6直至任务列表中任务均被执行或产生步骤6.3的情况;
步骤6.8、每当计算任务执行完毕后,采用快速切换调度算法执行下一个计算任务,并在计算任务执行过程中实时监控计算任务的状态及执行时间,若执行时间超过规定时间则立即停止执行该计算任务并执行下一计算任务。
6.根据权利要求5所述的算力柔性组合方法,其特征在于,所述步骤6.8所述快速切换调度算法的执行方式为:在当前执行中的计算任务处于完成临界区时,提前准备下一个计算任务,在当前计算任务完成计算时立即切换计算任务。
7.根据权利要求1所述的算力柔性组合方法,其特征在于,所述计算任务为基于NPU接口标准规范开发的各类任务。
8.根据权利要求1所述的算力柔性组合方法,其特征在于,所述步骤1中所述计算平台资源的使用情况为正在使用的计算平台资源的占用率,所述剩余计算平台资源为处于空闲的计算平台资源。
9.根据权利要求1所述的算力柔性组合方法,其特征在于,所述算力柔性组合方法还包括:在计算任务执行过程中,记录计算任务的运行日志形成任务日志文件,在计算任务执行结束后将计算任务的输出结果整理为其配置文件中规定的目标格式保存在规定的目录位置中。
10.一种基于嵌入式平台的算力柔性组合系统,其特征在于,具体包括构型生成模块、输入模块、解析模块、异构计算模块、输出模块、日志模块、数据管理模块及资源监控模块,所述算力柔性组合系统采用Docker容器化方式部署和运行;
所述构型生成模块,用于根据解析构型配置文件得到的信息灵活生成不同的计算构型,包括通用处理构型、智能计算构型及实时控制构型,通用处理构型在CPU下执行计算、智能计算构型在CPU和NPU下执行计算、实时控制构型在CPU和NPU以及GPU下均可执行计算;
所述输入模块,用于接收用户输入的任务配置文件,通过Curl向算力柔性组合系统发送POST输入请求以将任务配置文件输入到系统中,并将任务配置文件传递至解析模块;
所述解析模块,用于解析任务配置文件和计算任务,获取任务配置文件中的计算任务的基本信息包括任务名称、任务路径、Python解释器路径、参数详情、任务的输入输出格式、任务计算优先级、任务执行方式及任务执行时间,和计算任务的详细信息包括执行计算的硬件及计算平台资源占用,并将这些信息传递至异构计算模块,同时与数据管理模块相连接,由数据管理模块管理上述信息;
所述异构计算模块,用于根据构型生成模块生成的计算构型,生成相应的计算平台资源,所述计算平台资源包括通用处理构型计算模块、智能计算构型计算模块及实时控制构型计算模块;每种计算模块均包含分析模块和资源调度模块两个子模块,分析模块用于分析计算任务的基本信息和详细信息,资源调度模块用于根据分析结果确定资源调度策略,将计算任务调度到相应计算平台资源上执行,并与资源监控模块连接,由资源监控模块监控执行的计算任务;
所述输出模块,用于根据解析模块中解析出的任务输出格式中规定的目标格式整理计算任务的输出数据,并将整理后的结果保存到规定的目录位置;
所述日志模块,用于同步记录系统和计算任务执行过程中产生的日志输出,并记录异常信息;
所述数据管理模块,用于记录计算任务的详细信息和执行状态、任务执行时间,提供计算任务的增加、删除、修改及查询功能;
所述资源监控模块,用于监控所有在线计算任务的计算平台资源使用情况及剩余可分配的各类计算平台资源,同时监控计算任务的执行情况。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311023795.3A CN116737397A (zh) | 2023-08-15 | 2023-08-15 | 一种基于嵌入式平台的算力柔性组合方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311023795.3A CN116737397A (zh) | 2023-08-15 | 2023-08-15 | 一种基于嵌入式平台的算力柔性组合方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737397A true CN116737397A (zh) | 2023-09-12 |
Family
ID=87901626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311023795.3A Pending CN116737397A (zh) | 2023-08-15 | 2023-08-15 | 一种基于嵌入式平台的算力柔性组合方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737397A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293950A (zh) * | 2016-08-23 | 2017-01-04 | 成都卡莱博尔信息技术股份有限公司 | 一种面向集群系统的资源优化管理方法 |
CN107135257A (zh) * | 2017-04-28 | 2017-09-05 | 东方网力科技股份有限公司 | 一种节点集群中任务分配的方法、节点和系统 |
US20190324819A1 (en) * | 2016-12-30 | 2019-10-24 | Huawei Technologies Co., Ltd. | Distributed-system task assignment method and apparatus |
CN113419846A (zh) * | 2021-02-22 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 资源配置方法和装置、电子设备及计算机可读存储介质 |
CN115292046A (zh) * | 2022-08-10 | 2022-11-04 | 中国电信股份有限公司 | 算力分配方法、装置、存储介质及电子设备 |
CN115904699A (zh) * | 2022-10-27 | 2023-04-04 | 厦门简算科技有限公司 | 一种服务器gpu算力分配系统、方法及服务器 |
-
2023
- 2023-08-15 CN CN202311023795.3A patent/CN116737397A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293950A (zh) * | 2016-08-23 | 2017-01-04 | 成都卡莱博尔信息技术股份有限公司 | 一种面向集群系统的资源优化管理方法 |
US20190324819A1 (en) * | 2016-12-30 | 2019-10-24 | Huawei Technologies Co., Ltd. | Distributed-system task assignment method and apparatus |
CN107135257A (zh) * | 2017-04-28 | 2017-09-05 | 东方网力科技股份有限公司 | 一种节点集群中任务分配的方法、节点和系统 |
CN113419846A (zh) * | 2021-02-22 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 资源配置方法和装置、电子设备及计算机可读存储介质 |
CN115292046A (zh) * | 2022-08-10 | 2022-11-04 | 中国电信股份有限公司 | 算力分配方法、装置、存储介质及电子设备 |
CN115904699A (zh) * | 2022-10-27 | 2023-04-04 | 厦门简算科技有限公司 | 一种服务器gpu算力分配系统、方法及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345501B (zh) | 一种分布式资源调度方法和系统 | |
US9372729B2 (en) | Task scheduling method and apparatus | |
US5301320A (en) | Workflow management and control system | |
CN109857535B (zh) | 面向Spark JDBC的任务优先级控制的实现方法及装置 | |
CN111143045B (zh) | 智能家居操作系统的任务调度方法及装置、存储介质 | |
US5619647A (en) | System for multiplexing prioritized virtual channels onto physical channels where higher priority virtual will pre-empt a lower priority virtual or a lower priority will wait | |
CN106030538A (zh) | 通过编译器和os支持分离出i/o执行的系统和方法 | |
CN111399989A (zh) | 一种面向容器云的任务抢占调度方法及系统 | |
CN109710416B (zh) | 资源调度方法及装置 | |
CN112162835A (zh) | 一种异构云环境下实时任务的调度优化方法 | |
CN112148454A (zh) | 一种支持串行和并行的边缘计算方法及电子设备 | |
CN112000388A (zh) | 基于多边缘集群协同的并发任务调度方法及装置 | |
CN110262897A (zh) | 一种基于负载预测的Hadoop计算任务初始分配方法 | |
US11455188B2 (en) | System and method for increasing robustness of heterogeneous computing systems | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN113377551A (zh) | 无人车任务的分配方法、装置、电子设备及存储介质 | |
CN113225269B (zh) | 基于容器的工作流调度方法、装置、系统及存储介质 | |
CN116737397A (zh) | 一种基于嵌入式平台的算力柔性组合方法及系统 | |
CN113608852A (zh) | 任务调度方法、调度模块、推理节点和协同作业系统 | |
CN117724811A (zh) | 一种层次化的多核实时调度器 | |
CN111258729B (zh) | 基于Redis的任务分配方法、装置、计算机设备及存储介质 | |
CN112148449A (zh) | 一种局域网的基于边缘计算的调度算法及系统 | |
CN105955816A (zh) | 一种事件调度方法及装置 | |
CN110162381A (zh) | 一种容器内代理执行方法 | |
CN117931412B (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 |