CN116932168A - 异构核调度方法及装置、存储介质、电子设备 - Google Patents
异构核调度方法及装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN116932168A CN116932168A CN202310931731.7A CN202310931731A CN116932168A CN 116932168 A CN116932168 A CN 116932168A CN 202310931731 A CN202310931731 A CN 202310931731A CN 116932168 A CN116932168 A CN 116932168A
- Authority
- CN
- China
- Prior art keywords
- heterogeneous
- scheduling
- task
- heterogeneous core
- core
- 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 43
- 238000012545 processing Methods 0.000 claims abstract description 48
- 238000004590 computer program Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 33
- 230000001133 acceleration Effects 0.000 description 16
- 238000005457 optimization Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 238000003032 molecular docking Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- 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)
- Stored Programmes (AREA)
Abstract
本公开实施例是关于一种异构核调度方法及装置、电子设备、计算机可读存储介质,涉及云计算技术领域,该方法包括:获取任务请求,并将所述任务请求发送至调度管理组件;通过所述调度管理组件获取所述任务请求对应的任务特征,并获取异构核的异构核特征;结合所述任务特征以及所述异构核的异构核特征确定调度策略,并基于所述调度策略将所述任务请求分发至目标异构核;通过所述目标异构核,执行所述任务请求对应的处理任务。本公开能够提高异构核的性能。
Description
技术领域
本公开实施例涉及云计算技术领域,具体而言,涉及一种异构核调度方法、异构核调度装置、计算机可读存储介质以及电子设备。
背景技术
云计算的计算需求呈多样性发展,场景加速需求旺盛。当前通用CPU面临摩尔定律失效的问题,性能的提升无法满足计算需求的增长。因此,可以通过CPU与GPU、NPU、FPGA等异构核组成异构计算系统,进行协同计算加速。
相关技术中,可以通过CUDA、oneAPI、开源的OpenCL等针对异构计算的需求而衍生的计算平台和编程框架,实现CPU与XPU更好地调度以达成更好的加速效果。
但是,上述方式中,传统异构核调度方案存在粗粒度问题,使用单一异构核承载所有的专用计算,没有充分考虑异构计算引擎的差异性,降低了整体的计算加速效果。并且,异构算力细粒度调度优化方案通常由厂家在硬件进行专用实现,无法满足云计算灵活多样的业务需求。
发明内容
本公开的目的在于提供一种异构核调度方法、异构核调度装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的异构核协同计算效果较差的问题。
根据本公开的第一方面,提供一种异构核调度方法,包括:获取任务请求,并将所述任务请求发送至调度管理组件;通过所述调度管理组件获取所述任务请求对应的任务特征,并获取异构核的异构核特征;结合所述任务特征以及所述异构核的异构核特征确定调度策略,并基于所述调度策略将所述任务请求分发至目标异构核;通过所述目标异构核,执行所述任务请求对应的处理任务。
根据本公开的第二方面,提供一种异构核调度装置,包括:请求获取模块,用于获取任务请求,并将所述任务请求发送至调度管理组件;特征获取模块,用于通过所述调度管理组件获取所述任务请求对应的任务特征,并获取异构核的异构核特征;调度策略确定模块,用于结合所述任务特征以及所述异构核的异构核特征确定调度策略,并基于所述调度策略将所述任务请求分发至目标异构核;任务处理模块,用于通过所述目标异构核,执行所述任务请求对应的处理任务。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的异构核调度方法。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的异构核调度方法。
本公开实施例中提供的技术方案中,一方面,通过在调度管理组件中,根据任务请求的任务特征以及异构核特征确定出调度策略,进而根据调度策略将任务请求分发至与任务请求匹配的目标异构核,实现多种异构核的混合调度,避免了相关技术中只能由单一的异构核承载专用计算的局限性,能够实现异构核的灵活配置。另一方面,根据任务请求的任务特征以及异构核特征确定出调度策略,进而根据调度策略将任务请求分发至与任务请求匹配的目标异构核,考虑到了异构核之间的差异性,能够从任务特征以及异构核特征两个维度来确定出最符合任务请求的目标异构核,能够兼顾精度和实时性,提高了异构核计算的加速效果。再一方面,通过在调度管理组件中,根据任务请求的任务特征以及异构核特征确定出调度策略,进而根据调度策略将任务请求分发至与任务请求匹配的目标异构核,无需由厂家在硬件中专门实现,而是可以由用户来实现,提高了便捷性和灵活性,能够满足多样性的业务需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开实施例中一种异构核调度方法的流程图。
图2示意性示出本公开实施例中原始异构计算系统的结构图。
图3示意性示出本公开实施例中一种异构计算系统的结构示意图。
图4示意性示出本公开实施例中异构计算系统的具体结构示意图。
图5示意性示出本公开实施例中指令集的扩展示意图。
图6示意性示出本公开实施例中异构核调度的整体流程示意图。
图7示意性示出本公开实施例中异构核调度装置的框图示意图。
图8示意性示出本公开实施例电子设备的框图示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在一些实施例中,异构计算解决方案主要面向x86、ARM等,缺少基于RISC-V的异构计算解决方案,并且RISC-V没有针对异构核调度进行指令集扩展,存在调度效率低下的问题。传统异构核调度方案存在粗粒度问题,使用单一异构核承载所有的专用计算,没有充分考虑异构计算引擎的差异性,降低了整体的计算加速效果,如CPU(Central ProcessingUnit,中央处理器)计算慢、精度高,NPU(Neural Processor Unit,AI加速器)计算快、精度低等。异构算力细粒度调度优化方案通常由厂家在硬件进行专用实现,无法满足云计算灵活多样的业务需求,因此灵活性较差。
本公开实施例中,为了解决上述技术问题,提供了一种异构核调度方法,可以用于云计算领域中需要进行业务加速的异构计算场景中。
接下来,参考图1中所示,对本公开实施例中的异构核调度方法进行具体说明。
在步骤S110中,获取任务请求,并将所述任务请求发送至调度管理组件。
本公开实施例中,在进行协同计算加速的业务场景中,用户可以基于计算任务标识指令发起任务请求。任务请求可以为计算任务请求,也可以为图像处理任务请求,还可以为任意类型的处理请求,例如可以为上报请求、同步请求等等,此处以任务请求为计算任务请求为例进行说明。
参考图2中所示,原始异构计算系统可以包括用户应用模块、OS(OperatingSystem,操作系统)以及基于RISC-V的CPU。其中,用户应用模块中包含计算任务模块,且可指定运行处理器。基于RISC-V的CPU可以与多个异构核对应,异构核可以为各种类型的处理器,例如可以包括GPU(Graphics Processing Unit、图形处理器)、NPU、ASIC(ApplicationSpecific Integrated Circuit)等多种类型的处理器。
为了解决图2中的原始异构计算系统中所存在的技术问题,本公开实施例中提供了与原始异构计算系统不同的异构计算系统。参考图3中所示,异构计算系统可以包括用户应用模块、自定义调度模块、OS、扩展指令、基于RISC-V的CPU以及多种异构核。多种异构核可以包括GPU、NPU、ASIC、DPU(Data Processing Unit,专用数据处理器)等多种类型的处理器,异构核所包括的处理器可以用于执行相同或不同类型的功能,此处不作具体限定。
图3中所示的异构计算系统中,用户应用模块可以用于发送计算任务请求,以及计算任务特征。基于RISC-V的CPU中可以包括调度管理组件。通过调度管理组件,可以将任务请求分配至GPU、NPU、ASIC等异构源。异构源可以用于执行任务请求对应的处理任务。自定义调度模块可以表示调度算法,用于自适应配置计算任务分发的调度策略。自定义调度模块可以配置在用户系统和硬件驱动上。其中,硬件驱动需要支持这个指令集,用户系统上会有一个调度策略库,基于该调度策略库创建一个SDK包放在用户系统上,SDK(SoftwareDevelopment Kit,软件开发工具包)有一个客户端的API接口在用户应用模块中,从而实现调用。
参考图4中所示的异构计算系统的具体结构图,本公开实施例中,扩展指令可以包括多个指令集,例如可以包括异构核注册指令、计算任务标识指令、计算任务分发指令、调度模型推理计算指令中的一个或多个指令集。指令集的扩展示意图可以参考图5中所示,指令中可以用于表征对应的size寄存器、源寄存器、目的寄存器。通过扩展指令集,用户才可以进行编译,给出面向高级语言的接口,从而实现调度模型。
其中,异构核注册指令是轮询执行,用于发现异构核,并将异构核的信息更新到寄存器,系统关机前会自动保存异构核信息。计算任务标识指令是在接收到计算任务后执行,用于标识计算任务的类型,读取计算任务信息,调用计算任务分发指令。计算任务分发指令是在接收计算任务标识指令发送的信息后执行,获取调度策略和资源使用情况,把计算任务分发给相应的异构核。调度模型推理计算指令是在每次计算任务完成后异步执行,读取异构核的计算情况,使用调度模型进行推理计算,更新调度策略。通过指令集来实现异构核调度,能够提升调度系统的效率和应用广泛性。
基于RISC-V异构计算系统的整体架构中,还包括面向异构调度需求构建的基于RISC-V的CPU。如图4中所示,该基于RISC-V的CPU中可以包括通用计算组件以及调度管理组件。其中,通用计算组件用于获取用户发送的任务请求。调度管理组件作为GPU、NPU等异构核混合调度的桥梁,可以用于根据每个任务请求对应的计算任务的任务特征,选择最适合的异构核作为执行单元,通过该执行单元执行任务请求对应的处理任务,避免一系列计算任务都在同一个异构核上执行而导致的局限性,可根据执行情况实时调整调度策略。
参考图4中所示,调度管理组件可以包括异构资源对接与监控模块、调度策略配置与优化模块以及计算任务管理模块。其中,异构资源对接与监控模块,用于基于异构核注册指令发现并注册异构核,对接厂家的接口协议,获取异构核特性和资源使用情况,监控异构核的计算情况并获取异构核任务执行信息。其中,异构核特性可以包括计算属性、计算精度中的一种或多种。异构核任务执行信息可以包括任务执行时间以及功耗中的一种或多种。
调度策略配置与优化模块,用于用户通过自定义调度模型,接收异构核特性和计算任务特性,通过调度模型进行调度策略的推理,并保存调度策略,每次执行完任务后根据任务的计算情况调整调度策略,实时更新调度策略。
计算任务管理模块,用于标识计算任务,保存计算任务特性(计算属性、精度、时间),根据计算任务特性从调度策略库中获取匹配的调度策略,解析调度策略,根据异构资源使用情况,把计算任务分发给对应的异构核。
在步骤S120中,通过所述调度管理组件获取所述任务请求对应的任务特征,并获取异构核的异构核特征。
本公开实施例中,基于上述调度管理组件的结构,调度管理组件中可以包括通用计算组件以及调度管理组件。其中,通用调度组件用于获取发送的任务请求,并将该任务请求发送至调度管理组件。
调度管理组件用于确定出目标异构核,并将任务请求下发至对应的目标异构核,从而执行任务请求对应的处理任务。示例性地,调度管理组件中的计算任务管理模块,可以接收用户发起的该任务请求并对任务请求进行分析,得到任务请求对应的任务特征。任务特征可以用于表示任务自身的属性信息,可以包括但不限于任务请求的计算属性、计算精度以及计算时间中的一种或多种。其中,计算精度用于表示精准度、计算时间用于表示实时性。在得到任务特征之后,可以将任务特征发送至调度管理组件中的调度策略配置与优化模块,以使得调度策略配置与优化模块基于任务特征进行处理。
除此之外,调度管理组件中的异构资源对接与优化模块,可以实时发现异构资源,即发现异构核,并通过接口获取异构核特性,此处的异构核特性指的是异构核的计算属性信息,可以包括异构核的计算属性、计算精度等等,可用于描述异构核的加速能力。进一步可以将异构核特性发送至调度策略配置与优化模块,以使得调度策略配置与优化模块对异构核特征进行处理。与此同时,还可以实时监控异构核的使用情况。异构资源的使用情况可以空闲状态或使用状态来表示,可用于描述异构核是否被占用。
在步骤S130中,结合所述任务特征以及所述异构核的异构核特征确定调度策略,并基于所述调度策略将所述任务请求分发至目标异构核。
本公开实施例中,在调度策略配置与优化模块得到任务特征以及异构核特征之后,可以基于任务特征以及异构核特征,推理计算出调度策略。调度策略指的是用于进行调度的方式,根据调度策略可以确定出符合任务请求的任务特征的异构源的使用方式。具体地,调度策略配置与优化模块可以自定义调度模型,基于调度模型,根据任务特征以及异构核特征,推理计算出调度策略。
示例性地,可以基于调度模型,根据任务特征以及异构核的异构核特征来确定调度策略。对于某一个任务请求而言,其调度策略可以为多个。调度策略中可以用于描述调用哪些异构核以及异构核的调用方式和调用时间等信息。举例而言,若任务请求为对视频流进行处理,根据调度算法可以将视频流的前几帧放在CPU执行,将后几帧放在GPU执行;或者是先让CPU进行精度检测,再通过GPU进行并行计算等等,具体调度策略可以根据任务需求来确定。
基于此,可根据任务特征确定符合任务特征的候选调度策略;将候选调度策略与异构核的异构核特征进行匹配,得到调度策略。示例性地,首先可以根据任务特征,从所有调度策略中确定出与任务特征匹配的候选调度策略。根据任务特性,找到与其最匹配的核任务请求需要高精度、低实时性,则可以将精度高的异构源作为调度策略。任务请求需要低精度、高实时性,则可以将高实时性的异构源作为调度策略。例如,无人机,有些任务是实时推理但是精度不高,实时性很高;有些任务实时性高精度不高,则可以将精度高的任务,放在GPU执行,时效性高地任务放在能够执行神经网络的MPU来执行。
进一步地,在筛选出符合任务特征的候选调度策略之后,还可以将候选调度策略与异构核特征进行匹配,得到最终的调度策略。此处的异构核特征用于表示加速能力。示例性地,若异构核特征与调度策略匹配,则直接将匹配的异构核作为调度策略;若异构核特征与调度策略不匹配,则需要重新确定调度策略。举例而言,对于异构源MPU(MicroProcessor Unit,微处理器)而言,能够实现神经网络加速,实时性好;GPU可以进行大规模计算但是精度可能不高,对神经网络的加速效果没有MPU好。如果任务请求的候选调度策略中包含GPU或者是MPU、DPU,则可以将GPU以及MPU作为调用策略。
基于调度模型来推理调度策略,能够避免相关技术中只能由厂家在硬件进行专用实现的局限性,能够提高灵活性和可操作性。
在确定出调度策略之后,可以通过调度模型推理计算指令,将调度策略发送至计算任务管理模块。计算任务管理模块可以解析调度策略,并获取异构资源对接与优化模块发送的异构源的使用情况,根据调度策略以及异构核的使用情况,将任务请求分发至目标异构核。目标异构核指的是用于执行任务请求对应的处理任务的异构核,可以为所有异构核中的一个或多个。在确定目标异构核之后,可以将任务请求发送至该目标异构核,以通过该目标异构核执行对应的处理任务。其中,异构核的使用情况可以为空闲状态或使用状态来表示,可用于描述异构核是否被占用。
在一些实施例中,首先可以根据调度策略来确定需要的异构核的数量,从而确定一个调度条件。进一步地,可以判断系统中使用情况为空闲状态的异构核的数量是否满足该调度条件,例如系统中当前存在的异构核中处于空闲状态的数量大于或等于需要的异构核的数量。接下来,根据使用情况为空闲状态的异构核的数量是否满足调度条件的判断结果,采用不同的方式来确定目标异构核,以实现任务请求的分发。
示例性地,如果使用情况为空闲状态的异构核的数量满足调度条件,可根据异构核的使用情况确定目标异构核,并对任务请求进行分发。具体地,若使用情况为空闲状态的异构核的数量大于或者等于需要的异构核的数量,则从处于空闲状态的异构核中选择一个或多个异构核确定目标异构核。目标异构核的数量可以与调度策略中预先设置的每种异构核的数量相同。若使用情况为空闲状态的异构核的数量不满足调度条件,即,使用情况为空闲状态的异构核的数量小于需要的异构核的数量,可结合任务请求的执行方式以及异构核的使用情况,确定目标异构核。具体地,任务请求的执行方式可以包括串行执行或并行执行。基于此,可以响应于任务请求的执行方式为串行执行,将处于空闲状态的异构核作为目标异构核;响应于任务请求的执行方式为并行执行,循环等待以获取更新后的异构核,并根据更新后的异构核确定目标异构核。示例性地,当任务请求的执行方式为串行执行时,由于不需要同时执行所有任务,因此可以先将处于空闲状态的异构核作为目标异构核,以按照顺序执行任务请求对应的任务。进一步地,在该任务执行完之后,可以将更新后的空闲状态的异构核作为目标异构核。对于任务请求的执行方式为并行执行而言,由于所有的任务都需要同时执行,若处于空闲状态的异构源的数量小于需要的异构核的数量,则需要进行等待以获取更新后的异构核,进一步根据更新后的异构核来确定目标异构核,直至处于空闲状态的异构源的数量大于或等于需要的异构核的数量为止。
举例而言,比如从调度策略中分析出,执行任务请求A需要8个GPU,但是系统中一共有10个GPU,且都正在使用,则需要等待;如果需要4个,系统中一共有6个处于空闲状态,则可以直接分配;如果需要4个,有3个处于空闲状态,如果任务请求是串行执行,则无需等待;如果任务请求是并行执行,需要等待以更新异构核。
接下来,继续参考图1中所示,在步骤S140中,通过所述目标异构核,执行所述任务请求对应的处理任务。
本公开实施例中,在确定目标异构核之后,可以基于目标异构核执行任务请求对应的处理任务,实现一个或多个异构核的混合调度,以获得处理任务的处理结果。
在目标异构核执行任务请求对应的处理任务得到处理结果后,可以将处理结果返回至调度策略配置与优化模块中,并根据处理结果来更新调度策略。示例性地,可以将处理结果作为参数输入调度模型,以实现调度策略更新。举例而言,可以根据需要执行的处理任务的数量,调整调度策略,实现调度策略的实时调整。
在将调度策略进行更新得到更新后的调度策略的情况下,可以基于更新后的调度策略,以及异构核的使用情况,来确定出新的目标异构核,将任务请求分发至新的目标异构核,并根据新的目标异构核执行任务请求对应的处理任务,从而输出任务请求对应的处理结果。
图6中示意性示出了对异构核调度进行配置的整体流程图,参考图6中所示,主要包括以下步骤:
在步骤S602中,用户发起任务请求,任务请求可以为计算任务请求;
在步骤S604中,获取任务请求对应的任务特征,并将任务特征发送至调度策略配置与优化模块;
在步骤S606中,异构资源对接与优化模块,获取异构核特征,并将异构核特征发送至调度策略配置与优化模块;
在步骤S608中,根据异构核特征以及计算任务特征,推理调度策略;
在步骤S610中,计算任务管理模块从异构资源对接与优化模块获取调度策略;
在步骤S612中,解析调度策略;
在步骤S616中,异构资源对接与优化模块获取异构资源使用情况,并将异构资源使用情况发送至计算任务管理模块;
在步骤S618中,根据异构资源使用情况以及调度策略,分发计算任务;
在步骤S620中,输出任务结果;
在步骤S622中,判断处理任务是否执行结束;若是,则结束;若否;则转至步骤S624;
在步骤S624中,获取任务请求对应的执行结果;
在步骤S626中,将执行结果发送至调度策略配置与优化模块,根据执行结果更新调度策略,并转至步骤S610继续执行。
本公开实施例中,通过增加调度管理组件,作为GPU、NPU等异构核混合调度的桥梁,根据每个任务请求的任务特征,选择最适合的异构核来执行任务请求对应的处理任务,避免一系列计算任务都在一个异构核上执行,可根据执行情况实时调整调度策略,提高了灵活性和通用性。增加扩展指令,为基于RISC-V的异构核的混合调度提供硬件原生支持,提高异构核的调度效率。支持用户自定义调度模型,通过自定义调度模型来实现异构核的调度,通过自适应配置机制,把已执行任务的结果,作为参数输入调度模型,对调度策略进行更新,开发用户不需要将自己的调度策略写进应用程序,使得用户不需要在上层应用嵌入复杂的调度算法,减小了应用开发难度,提高了可用性,提高了异构核调度效率和应用广泛性。
RISC-V作为开源指令集,能够实现指令集自主可控,进而依赖RISC-V构建异构调度系统,能够为后续打造RISC-CV异构计算软件栈提供了技术基础。通过在CPU中集成基础调度管理组件,实现对多种异构核混合调度,综合均衡性能与精度,满足多样性需求的同时提升业务加速的整体效果。针对各种典型的加速场景,提供自适应可配置化调度机制,进一步可以定制配套的整机服务器,部署到数据中心或边缘云节点。定制的服务器和处理器承载云计算的多样业务加速需求,处理器根据需求,从内存中获取用户的计算任务和数据,由调度管理组件解析任务,并自行匹配对应的调度策略,根据异构核的特性,把计算任务分发给适合的异构核,由最后的计算结果同时反馈给调度管理组件,根据实际结果调整调度策略,提升加速效果。
本公开还提供了一种异构核调度装置。参考图7所示,该异构核调度装置700主要包括以下模块:
请求获取模块701,用于获取任务请求,并将所述任务请求发送至调度管理组件;
特征获取模块702,用于通过所述调度管理组件获取所述任务请求对应的任务特征,并获取异构核的异构核特征;
调度策略确定模块703,用于结合所述任务特征以及所述异构核的异构核特征确定调度策略,并基于所述调度策略将所述任务请求分发至目标异构核;
任务处理模块704,用于通过所述目标异构核,执行所述任务请求对应的处理任务。
在本公开的一种示例性实施例中,所述根据所述任务特征以及所述异构核的异构核特征确定调度策略,包括:根据所述任务特征,确定符合所述任务特征的候选调度策略;将所述候选调度策略与所述异构核的异构核特征进行匹配,得到所述调度策略。
在本公开的一种示例性实施例中,所述基于所述调度策略将所述任务请求分发至目标异构核,包括:基于所述调度策略以及所述异构核的使用情况,将所述任务请求分发至与所述任务请求匹配的目标异构核。
在本公开的一种示例性实施例中,所述基于所述调度策略以及所述异构核的使用情况,将所述任务请求分发至与所述任务请求匹配的目标异构核,包括:根据所述调度策略确定需要的异构核,以确定调度条件;确定使用情况属于空闲状态的异构核的数量,并确定所述数量是否满足调度条件,以确定判断结果;响应于所述判断结果为使用情况属于空闲状态的异构核的数量满足所述调度条件,根据所述异构核的使用情况确定所述目标异构核,并对所述任务请求进行分发;响应于所述判断结果为使用情况属于空闲状态的异构核的数量不满足所述调度条件,结合所述任务请求的执行方式以及所述异构核的使用情况,确定所述目标异构核以对所述任务请求进行分发。
在本公开的一种示例性实施例中,所述根据所述异构核的使用情况确定所述目标异构核,包括:将所述使用情况为空闲状态的异构核中的一个或多个确定为所述目标异构核。
在本公开的一种示例性实施例中,所述结合所述任务请求的执行方式以及所述异构核的使用情况,确定所述目标异构核,包括:响应于所述任务请求的执行方式为串行执行,将所述使用情况为空闲状态的异构核作为目标异构核;响应于所述任务请求的执行方式为并行执行,循环等待以获取更新后的异构核,并根据更新后的异构核确定所述目标异构核。
在本公开的一种示例性实施例中,在将所述任务请求分发至所述目标异构核,以执行所述任务请求对应的处理任务之后,所述方法还包括:根据所述处理任务的执行结果,对所述调度策略进行更新。
需要说明的是,上述异构核调度装置中各模块的具体细节已经在对应的异构核调度方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图8来描述根据本公开的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830以及显示单元840。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的步骤。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者电子设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (10)
1.一种异构核调度方法,其特征在于,包括:
获取任务请求,并将所述任务请求发送至调度管理组件;
通过所述调度管理组件获取所述任务请求对应的任务特征,并获取异构核的异构核特征;
结合所述任务特征以及所述异构核的异构核特征确定调度策略,并基于所述调度策略将所述任务请求分发至目标异构核;
通过所述目标异构核,执行所述任务请求对应的处理任务。
2.根据权利要求1所述的异构核调度方法,其特征在于,所述根据所述任务特征以及所述异构核的异构核特征确定调度策略,包括:
根据所述任务特征,确定符合所述任务特征的候选调度策略;
将所述候选调度策略与所述异构核的异构核特征进行匹配,得到所述调度策略。
3.根据权利要求1所述的异构核调度方法,其特征在于,所述基于所述调度策略将所述任务请求分发至目标异构核,包括:
基于所述调度策略以及所述异构核的使用情况,将所述任务请求分发至与所述任务请求匹配的目标异构核。
4.根据权利要求3所述的异构核调度方法,其特征在于,所述基于所述调度策略以及所述异构核的使用情况,将所述任务请求分发至与所述任务请求匹配的目标异构核,包括:
根据所述调度策略确定需要的异构核,以确定调度条件;
确定使用情况属于空闲状态的异构核的数量,并确定所述数量是否满足调度条件,以确定判断结果;
响应于所述判断结果为使用情况属于空闲状态的异构核的数量满足所述调度条件,根据所述异构核的使用情况确定所述目标异构核,并对所述任务请求进行分发;
响应于所述判断结果为使用情况属于空闲状态的异构核的数量不满足所述调度条件,结合所述任务请求的执行方式以及所述异构核的使用情况,确定所述目标异构核以对所述任务请求进行分发。
5.根据权利要求4所述的异构核调度方法,其特征在于,所述根据所述异构核的使用情况确定所述目标异构核,包括:
将所述使用情况为空闲状态的异构核中的一个或多个确定为所述目标异构核。
6.根据权利要求4所述的异构核调度方法,其特征在于,所述结合所述任务请求的执行方式以及所述异构核的使用情况,确定所述目标异构核,包括:
响应于所述任务请求的执行方式为串行执行,将所述使用情况为空闲状态的异构核作为目标异构核;
响应于所述任务请求的执行方式为并行执行,循环等待以获取更新后的异构核,并根据更新后的异构核确定所述目标异构核。
7.根据权利要求1所述的异构核调度方法,其特征在于,在将所述任务请求分发至所述目标异构核,以执行所述任务请求对应的处理任务之后,所述方法还包括:
根据所述处理任务的执行结果,对所述调度策略进行更新。
8.一种异构核调度装置,其特征在于,包括:
请求获取模块,用于获取任务请求,并将所述任务请求发送至调度管理组件;
特征获取模块,用于通过所述调度管理组件获取所述任务请求对应的任务特征,并获取异构核的异构核特征;
调度策略确定模块,用于结合所述任务特征以及所述异构核的异构核特征确定调度策略,并基于所述调度策略将所述任务请求分发至目标异构核;
任务处理模块,用于通过所述目标异构核,执行所述任务请求对应的处理任务。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任意一项所述的异构核调度方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7中任一项所述的异构核调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310931731.7A CN116932168A (zh) | 2023-07-26 | 2023-07-26 | 异构核调度方法及装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310931731.7A CN116932168A (zh) | 2023-07-26 | 2023-07-26 | 异构核调度方法及装置、存储介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932168A true CN116932168A (zh) | 2023-10-24 |
Family
ID=88389441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310931731.7A Pending CN116932168A (zh) | 2023-07-26 | 2023-07-26 | 异构核调度方法及装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932168A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648175A (zh) * | 2024-01-30 | 2024-03-05 | 之江实验室 | 一种基于动态算法选择的业务执行方法、装置及电子设备 |
-
2023
- 2023-07-26 CN CN202310931731.7A patent/CN116932168A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648175A (zh) * | 2024-01-30 | 2024-03-05 | 之江实验室 | 一种基于动态算法选择的业务执行方法、装置及电子设备 |
CN117648175B (zh) * | 2024-01-30 | 2024-04-12 | 之江实验室 | 一种基于动态算法选择的业务执行方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10733019B2 (en) | Apparatus and method for data processing | |
CN106489251B (zh) | 应用拓扑关系发现的方法、装置和系统 | |
CN112328378B (zh) | 任务调度方法、计算机设备及存储介质 | |
CN116932168A (zh) | 异构核调度方法及装置、存储介质、电子设备 | |
JP2023046248A (ja) | プログラマブルネットワークデバイスを用いたメトリックおよびセキュリティベースのアクセラレータサービスリスケジューリング並びに自動スケーリング | |
CN112988223A (zh) | 框架集成方法、装置、电子设备及存储介质 | |
CN114296953B (zh) | 一种多云异构系统及任务处理方法 | |
US20220100566A1 (en) | Metrics-based scheduling for hardware accelerator resources in a service mesh environment | |
CN104077187A (zh) | 用于调度应用程序的执行的方法和系统 | |
CN113204425B (zh) | 供进程管理内部线程的方法、装置、电子设备及存储介质 | |
CN114490062A (zh) | 一种本地磁盘的调度方法、装置、电子设备及存储介质 | |
CN114661486A (zh) | 用于批量处理功能的方法、系统、制品和设备 | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
WO2022111466A1 (zh) | 任务调度方法、控制方法、电子设备、计算机可读介质 | |
CN115220908A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN115167874A (zh) | 自动驾驶软件镜像部署方法、装置、电子设备和可读介质 | |
US11366648B2 (en) | Compiling monoglot function compositions into a single entity | |
CN114172887A (zh) | 一种智能化展馆中控系统 | |
US20170286181A1 (en) | Deployment and execution of sensing and computational tasks in a network of computing devices | |
CN111970349A (zh) | 基于远程过程调用的通讯系统、方法、装置、设备及介质 | |
CN116954927B (zh) | 一种分布式异构数据采集方法、存储介质及电子设备 | |
CN115604333B (zh) | 基于dubbo的分布式大数据分析服务调度方法及系统 | |
CN115988087B (zh) | 基于总线的服务调用方法、装置、电子设备和存储介质 | |
CN116760881B (zh) | 配电终端的系统配置方法、装置、存储介质及电子设备 | |
US20240231472A1 (en) | Apparatus and method for implementing o-cloud node p-state change |
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 |