CN117234740B - 一种gpu硬件资源的调度方法、装置、设备及介质 - Google Patents

一种gpu硬件资源的调度方法、装置、设备及介质 Download PDF

Info

Publication number
CN117234740B
CN117234740B CN202311503962.4A CN202311503962A CN117234740B CN 117234740 B CN117234740 B CN 117234740B CN 202311503962 A CN202311503962 A CN 202311503962A CN 117234740 B CN117234740 B CN 117234740B
Authority
CN
China
Prior art keywords
task
scheduling
scheduled
application program
hardware resources
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.)
Active
Application number
CN202311503962.4A
Other languages
English (en)
Other versions
CN117234740A (zh
Inventor
严德政
周刚
吴志华
张勇
邱杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Muxi Lingzhi Technology Hangzhou Co ltd
Original Assignee
Muxi Integrated Circuit Hangzhou Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Muxi Integrated Circuit Hangzhou Co ltd filed Critical Muxi Integrated Circuit Hangzhou Co ltd
Priority to CN202311503962.4A priority Critical patent/CN117234740B/zh
Publication of CN117234740A publication Critical patent/CN117234740A/zh
Application granted granted Critical
Publication of CN117234740B publication Critical patent/CN117234740B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及电数字数据处理技术领域,特别是涉及一种GPU硬件资源的调度方法、装置、设备及介质。该方法包括:为客户端的每一应用程序配置GPU硬件资源的抢占算法;不同应用程序对应的抢占算法相同或不同;使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源;为客户端的每一应用程序配置对应的任务调度策略;不同应用程序对应的任务调度策略相同或不同,所述任务调度策略运行在用户态;如果某应用程序抢占到GPU硬件资源,则使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务,所述目标应用程序为抢占到GPU硬件资源的应用程序。本发明能满足不同应用程序的差异化任务调度需求。

Description

一种GPU硬件资源的调度方法、装置、设备及介质
技术领域
本发明涉及电数字数据处理技术领域,特别是涉及一种GPU硬件资源的调度方法、装置、设备及介质。
背景技术
在多任务系统中,CPU往往会向GPU发送多个任务,且这些任务往往来自客户端的不同的应用程序;GPU接收到上述多个任务后,会根据预先设置的任务调度策略为上述多个任务分配GPU硬件资源。现有技术中预先设置的任务调度策略运行在内核态中且是唯一的,即不同应用程序使用的是一种任务调度策略,但是,不同应用程序的任务调度需求可能存在差异,比如,有的应用程序的任务调度需求是使用基于优先级的调度策略,而有的应用程序的任务调度需求是基于权重的调度策略,上述预先设置唯一的任务调度策略的方法难以满足不同应用程序的差异化任务调度需求。
发明内容
本发明目的在于,提供一种GPU硬件资源的调度方法、装置、设备及介质,以满足不同应用程序的差异化任务调度需求。
根据本发明的第一方面,提供了一种GPU硬件资源的调度方法,所述调度方法包括以下步骤:
为客户端的每一应用程序配置GPU硬件资源的抢占算法;不同应用程序对应的抢占算法相同或不同,所述抢占算法运行在用户态。
使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源。
为客户端的每一应用程序配置对应的任务调度策略;不同应用程序对应的任务调度策略相同或不同,所述任务调度策略运行在用户态。
如果某应用程序抢占到GPU硬件资源,则使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务,所述目标应用程序为抢占到GPU硬件资源的应用程序。
进一步的,所述使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务包括以下步骤:
从所述目标应用程序对应的任务调度策略配置位置获取目标应用程序对应的任务调度策略。
获取目标应用程序的待调度任务队列,每一待调度任务队列包括若干准备就绪的任务。
使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行。
进一步的,所述任务调度策略为基于优先级的调度策略或基于权重的调度策略。
进一步的,使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行包括以下步骤:
如果所述目标应用程序对应的任务调度策略为基于优先级的调度策略,则获取目标应用程序的所有待调度任务队列的优先级;所述所有待调度任务队列中不同待调度任务队列对应的优先级不同。
先从优先级最高的待调度任务队列中调度任务执行,且只有在优先级最高的待调度任务队列中任务全被调度之后,再调度优先级次高的待调度任务队列中的任务。
进一步的,使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行包括以下步骤:
如果所述目标应用程序对应的任务调度策略为基于权重的调度策略,则获取目标应用程序的所有待调度任务队列的权重;所述所有待调度任务队列中不同待调度任务队列对应的权重不同。
先从权重最高的待调度任务队列中调度第一数量的任务执行,再从权重次高的待调度任务队列中调度第二数量的任务执行。
根据本发明的第二方面,提供了一种GPU硬件资源的调度装置,所述调度装置包括:
第一配置模块,用于为客户端的每一应用程序配置GPU硬件资源的抢占算法;不同应用程序对应的抢占算法相同或不同,所述抢占算法运行在用户态。
第一抢占模块,用于使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源。
第二配置模块,用于为客户端的每一应用程序配置对应的任务调度策略;不同应用程序对应的任务调度策略相同或不同,所述任务调度策略运行在用户态。
第一调度模块,用于如果某应用程序抢占到GPU硬件资源,则使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务,所述目标应用程序为抢占到GPU硬件资源的应用程序。
进一步的,所述第一调度模块包括:
第一获取模块,用于从所述目标应用程序对应的任务调度策略配置位置获取目标应用程序对应的任务调度策略。
第二获取模块,用于获取目标应用程序的待调度任务队列,每一待调度任务队列包括若干准备就绪的任务。
第二调度模块,用于使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行。
进一步的,所述任务调度策略为基于优先级的调度策略或基于权重的调度策略。
进一步的,所述第二调度模块包括:
第三获取模块,用于如果所述目标应用程序对应的任务调度策略为基于优先级的调度策略,则获取目标应用程序的所有待调度任务队列的优先级;所述所有待调度任务队列中不同待调度任务队列对应的优先级不同。
第一执行模块,用于先从优先级最高的待调度任务队列中调度任务执行,且只有在优先级最高的待调度任务队列中任务全被调度之后,再调度优先级次高的待调度任务队列中的任务。
进一步的,所述第二调度模块包括:
第四获取模块,用于如果所述目标应用程序对应的任务调度策略为基于权重的调度策略,则获取目标应用程序的所有待调度任务队列的权重;所述所有待调度任务队列中不同待调度任务队列对应的权重不同。
第二执行模块,用于先从权重最高的待调度任务队列中调度第一数量的任务执行,再从权重次高的待调度任务队列中调度第二数量的任务执行。
根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的GPU硬件资源的调度方法。
根据本发明的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的GPU硬件资源的调度方法。
本发明与现有技术相比至少具有以下有益效果:
本发明设置了先抢占再调度的策略,其中,先配置客户端的每一应用程序方GPU硬件资源的抢占算法和对应的任务调度策略,然后使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源,如果某应用程序抢占到GPU硬件资源,则使用目标应用程序的调度策略对目标应用程序的待调度任务队列中的任务进行调度,目标应用程序指的是抢占到GPU硬件资源的应用程序。
本发明的客户端的不同应用程序的抢占算法和任务调度策略均运行在用户态,可以根据不同应用程序的需求预先配置各应用程序对应的抢占算法和调度策略,不同应用程序的抢占算法可以相同,也可以不同;任务调度策略可以相同,也可以不同,由此,可以满足不同应用程序的差异化任务调度需求。
本发明将客户端的应用程序的任务调度策略和抢占算法均运行在用户态,不但提高了任务调度策略配置的灵活性,而且避免了将与任务调度策略相关的数据从用户态给内核态的过程,减少了用户态与内核态的切换开销,提高了调度效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的GPU硬件资源的调度方法的流程图;
图2为本发明实施例一提供的使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务的步骤的流程图;
图3为本发明实施例一提供的一种使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行的步骤的流程图;
图4为本发明实施例一提供的另一种使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行的步骤的流程图;
图5为本发明实施例二提供的GPU硬件资源的调度装置的示意图;
图6为本发明实施例二提供的第一调度模块的示意图;
图7为本发明实施例二提供的一种第二调度模块的示意图;
图8为本发明实施例二提供的另一种第二调度模块的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1所示,本实施例提供了一种GPU硬件资源的调度方法,所述调度方法包括以下步骤:
S100,为客户端的每一应用程序配置GPU硬件资源的抢占算法;不同应用程序对应的抢占算法相同或不同,所述抢占算法运行在用户态。
本领域技术人员知悉,现有技术中任何的抢占算法均落入本发明的保护范围,此处不再赘述抢占算法的内容。作为现有技术的一种,根据不同应用程序的业务服务策略确定对应的应用程序的抢占算法;例如,先根据应用程序的往期任务到达规律、GPU资源抢占并获得服务的结果统计等特征和/或当前待调度队列长度等信息确定目前抢占算法,再估算和预测维持目前抢占算法接下来待调度任务队列的队列长度,最后确定是否对目前抢占算法进行相关调整。
可选的,根据应用程序的待调度任务队列的队伍长度确定当前抢占算法,其中,待调度任务队列的队伍长度越长,每次抢占到GPU硬件资源后间隔越长的时间才将GPU硬件资源进行释放;待调度任务队列的队伍长度越长,如果没有抢占到GPU硬件资源后间隔越短的时间再次进行抢占;待调度任务队列的队伍长度越短,每次抢占到GPU硬件资源后间隔越短的时间才将GPU硬件资源进行释放;待调度任务队列的队伍长度越短,如果没有抢占到GPU硬件资源后间隔越长的时间再次进行抢占。
作为一个具体实施方式,客户端包括4个应用程序,其中第一应用程序和第二应用程序的待调度任务队列均具有队伍长度在白天比较长且在晚上比较短的特征,第三应用程序和第四应用程序的待调度任务队列均具有队伍长度在晚天比较长且在白上比较短的特征;基于此,为第一应用程序和第二应用程序配置的抢占算法均为:白天每次有任务了就去抢占,抢占到GPU硬件资源后用10分钟就将GPU硬件资源释放;晚天每次有任务了就去抢占,抢占到GPU硬件资源后用1分钟就将GPU硬件资源释放;如果没有抢占到资源,则在白天间隔1秒再次尝试抢占,在晚上间隔10秒再次尝试抢占。为第三应用程序和第四应用程序配置的抢占算法均为:白天每次有任务了就去抢占,抢占到GPU硬件资源后用1分钟就将GPU硬件资源释放;晚天每次有任务了就去抢占,抢占到GPU硬件资源后用10分钟就将GPU硬件资源释放;如果没有抢占到资源,则在白天间隔10秒再次尝试抢占,在晚上间隔1秒再次尝试抢占。
S200,使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源。
本实施例中,如果客户端的第i个应用程序的待调度任务队列不为空,则第i个应用程序使用对应的抢占算法从GPU硬件资源中抢占硬件资源;如果客户端的第i个应用程序的待调度任务队列为空,则第i个应用程序不从GPU硬件资源中抢占硬件资源。
本实施例中,如果存在新的任务请求,则将所述新的任务请求对应的任务排列在客户端的所述新的任务请求对应的应用程序的待调度任务队列中。例如,新的任务请求是客户端的第一应用程序对应的任务请求,则将该新的任务请求对应的任务排列在客户端的第一应用程序的待调度任务队列中。
本实施例中不同应用程序的抢占算法可以相同或不同,且抢占算法均运行在用户态,由此,避免了将与抢占算法相关的数据从用户态给内核态的过程,减少了用户态与内核态的切换开销,提高了调度效率。
S300,为客户端的每一应用程序配置对应的任务调度策略;不同应用程序对应的任务调度策略相同或不同,所述任务调度策略运行在用户态。
本领域技术人员知悉,现有技术中任何的调度策略均落入本发明的保护范围,可选的,任务调度策略为基于优先级的调度策略或基于权重的调度策略。
本实施例中,客户端的每一应用程序对应的预设位置配置有对应的应用程序的任务调度策略,可以从应用程序对应的预设位置获取其对应的任务调度策略;由此,不同的应用程序能够根据自己的调度需求进行任务调度,特别是对于应用程序较多的场景,通过提前为不同应用程序配置与其业务相关的任务调度策略的方法,有利于提高系统的整体效率。
可选的,预设位置为应用程序对应的配置文件、原代码、环境变量或其他配置位置。作为一个具体实施方式,预设位置为应用程序的配置文件,客户端的应用程序的数量为4,其中,第一应用程序和第三应用程序的任务调度需求均是基于待调度的队列的优先级进行调度,那么提前在第一应用程序的配置文件和第三应用程序的配置文件中将任务调度策略配置为基于优先级的调度策略;第二应用程序和第四应用程序的任务调度需求是基于待调度的队列的权重进行调度,那么提前在第二应用程序和第四应用程序的配置文件中将任务调度策略配置为基于权重的调度策略。
S400,如果某应用程序抢占到GPU硬件资源,则使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务,所述目标应用程序为抢占到GPU硬件资源的应用程序。
本实施例中,如图2所示,所述使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务包括以下步骤:
S410,从所述目标应用程序对应的任务调度策略配置位置获取目标应用程序对应的任务调度策略。
可选的,目标应用程序对应的任务调度策略配置位置为目标应用程序对应的配置文件、原代码、环境变量或其他配置位置。
S420,获取目标应用程序的待调度任务队列,每一待调度任务队列包括若干准备就绪的任务。
S430,使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行。
如图3所示,使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行包括以下步骤:
S431,如果所述目标应用程序对应的任务调度策略为基于优先级的调度策略,则获取目标应用程序的所有待调度任务队列的优先级;所述所有待调度任务队列中不同待调度任务队列对应的优先级不同。
S432,先从优先级最高的待调度任务队列中调度任务执行,且只有在优先级最高的待调度任务队列中任务全被调度之后,再调度优先级次高的待调度任务队列中的任务。
基于S431-S432,目标应用程序的所有待调度任务队列中优先级最高的待调度任务队列中的任务会被最优先执行,优先级次高的待调度的任务队列中的任务会被第次优先执行,以此类推,优先级最低的待调度的任务队列的任务会被最后执行。由此,只有当优先级较高的待调度任务队列中的任务被调度完之后才会调度优先级较低的待调度任务队列中的任务。
如图4所示,使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行包括以下步骤:
S4301,如果所述目标应用程序对应的任务调度策略为基于权重的调度策略,则获取目标应用程序的所有待调度任务队列的权重;所述所有待调度任务队列中不同待调度任务队列对应的权重不同。
S4302,先从权重最高的待调度任务队列中调度第一数量的任务执行,再从权重次高的待调度任务队列中调度第二数量的任务执行。
基于S4301-S4302,目标应用程序的待调度任务队列中的权重最高的待调度队列中的部分任务会被最优先执行,然后权重次高的待调度队列中的部分任务会被次优先执行,以此类推,由此,不同待调度队列中的任务均会被循环调度。
本实施例设置了先抢占再调度的策略,其中,先配置客户端的每一应用程序方GPU硬件资源的抢占算法和对应的任务调度策略,然后使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源,如果某应用程序抢占到GPU硬件资源,则使用目标应用程序的调度策略对目标应用程序的待调度任务队列中的任务进行调度,目标应用程序指的是抢占到GPU硬件资源的应用程序。
本实施例的客户端的不同应用程序的抢占算法和任务调度策略均运行在用户态,可以根据不同应用程序的需求预先配置各应用程序对应的抢占算法和调度策略,不同应用程序的抢占算法可以相同,也可以不同;任务调度策略可以相同,也可以不同,由此,可以满足不同应用程序的差异化任务调度需求。
本实施例将客户端的应用程序的任务调度策略和抢占算法均运行在用户态,不但提高了任务调度策略配置的灵活性,而且避免了将与任务调度策略相关的数据从用户态给内核态的过程,减少了用户态与内核态的切换开销,提高了调度效率。
实施例二
如图5所示,本实施例提供了一种GPU硬件资源的调度装置,所述调度装置包括:
第一配置模块100,用于为客户端的每一应用程序配置GPU硬件资源的抢占算法;不同应用程序对应的抢占算法相同或不同,所述抢占算法运行在用户态。
本领域技术人员知悉,现有技术中任何的抢占算法均落入本发明的保护范围,此处不再赘述抢占算法的内容。作为现有技术的一种,根据不同应用程序的业务服务策略确定对应的应用程序的抢占算法;例如,先根据应用程序的往期任务到达规律、GPU资源抢占并获得服务的结果统计等特征和/或当前待调度队列长度等信息确定目前抢占算法,再估算和预测维持目前抢占算法接下来待调度任务队列的队列长度,最后确定是否对目前抢占算法进行相关调整。
可选的,根据应用程序的待调度任务队列的队伍长度确定当前抢占算法,其中,待调度任务队列的队伍长度越长,每次抢占到GPU硬件资源后间隔越长的时间才将GPU硬件资源进行释放;待调度任务队列的队伍长度越长,如果没有抢占到GPU硬件资源后间隔越短的时间再次进行抢占;待调度任务队列的队伍长度越短,每次抢占到GPU硬件资源后间隔越短的时间才将GPU硬件资源进行释放;待调度任务队列的队伍长度越短,如果没有抢占到GPU硬件资源后间隔越长的时间再次进行抢占。
作为一个具体实施方式,客户端包括4个应用程序,其中第一应用程序和第二应用程序的待调度任务队列均具有队伍长度在白天比较长且在晚上比较短的特征,第三应用程序和第四应用程序的待调度任务队列均具有队伍长度在晚天比较长且在白上比较短的特征;基于此,为第一应用程序和第二应用程序配置的抢占算法均为:白天每次有任务了就去抢占,抢占到GPU硬件资源后用10分钟就将GPU硬件资源释放;晚天每次有任务了就去抢占,抢占到GPU硬件资源后用1分钟就将GPU硬件资源释放;如果没有抢占到资源,则在白天间隔1秒再次尝试抢占,在晚上间隔10秒再次尝试抢占。为第三应用程序和第四应用程序配置的抢占算法均为:白天每次有任务了就去抢占,抢占到GPU硬件资源后用1分钟就将GPU硬件资源释放;晚天每次有任务了就去抢占,抢占到GPU硬件资源后用10分钟就将GPU硬件资源释放;如果没有抢占到资源,则在白天间隔10秒再次尝试抢占,在晚上间隔1秒再次尝试抢占。
第一抢占模块200,用于使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源。
本实施例中,如果客户端的第i个应用程序的待调度任务队列不为空,则第i个应用程序使用对应的抢占算法从GPU硬件资源中抢占硬件资源;如果客户端的第i个应用程序的待调度任务队列为空,则第i个应用程序不从GPU硬件资源中抢占硬件资源。
本实施例中,如果存在新的任务请求,则将所述新的任务请求对应的任务排列在客户端的所述新的任务请求对应的应用程序的待调度任务队列中。例如,新的任务请求是客户端的第一应用程序对应的任务请求,则将该新的任务请求对应的任务排列在客户端的第一应用程序的待调度任务队列中。
本实施例中不同应用程序的抢占算法可以相同或不同,且抢占算法均运行在用户态,由此,避免了将与抢占算法相关的数据从用户态给内核态的过程,减少了用户态与内核态的切换开销,提高了调度效率。
第二配置模块300,用于为客户端的每一应用程序配置对应的任务调度策略;不同应用程序对应的任务调度策略相同或不同,所述任务调度策略运行在用户态。
本领域技术人员知悉,现有技术中任何的调度策略均落入本发明的保护范围,可选的,任务调度策略为基于优先级的调度策略或基于权重的调度策略。
本实施例中,客户端的每一应用程序对应的预设位置配置有对应的应用程序的任务调度策略,可以从应用程序对应的预设位置获取其对应的任务调度策略;由此,不同的应用程序能够根据自己的调度需求进行任务调度,特别是对于应用程序较多的场景,通过提前为不同应用程序配置与其业务相关的任务调度策略的方法,有利于提高系统的整体效率。
可选的,预设位置为应用程序对应的配置文件、原代码、环境变量或其他配置位置。作为一个具体实施方式,预设位置为应用程序的配置文件,客户端的应用程序的数量为4,其中,第一应用程序和第三应用程序的任务调度需求均是基于待调度的队列的优先级进行调度,那么提前在第一应用程序的配置文件和第三应用程序的配置文件中将任务调度策略配置为基于优先级的调度策略;第二应用程序和第四应用程序的任务调度需求是基于待调度的队列的权重进行调度,那么提前在第二应用程序和第四应用程序的配置文件中将任务调度策略配置为基于权重的调度策略。
第一调度模块400,用于如果某应用程序抢占到GPU硬件资源,则使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务,所述目标应用程序为抢占到GPU硬件资源的应用程序。
本实施例中,如图6所示,所述第一调度模块包括:
第一获取模块410,用于从所述目标应用程序对应的任务调度策略配置位置获取目标应用程序对应的任务调度策略。
可选的,目标应用程序对应的任务调度策略配置位置为目标应用程序对应的配置文件、原代码、环境变量或其他配置位置。
第二获取模块420,用于获取目标应用程序的待调度任务队列,每一待调度任务队列包括若干准备就绪的任务。
第二调度模块430,用于使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行。
如图7所示,所述第二调度模块包括:
第三获取模块431,用于如果所述目标应用程序对应的任务调度策略为基于优先级的调度策略,则获取目标应用程序的所有待调度任务队列的优先级;所述所有待调度任务队列中不同待调度任务队列对应的优先级不同。
第一执行模块432,用于先从优先级最高的待调度任务队列中调度任务执行,且只有在优先级最高的待调度任务队列中任务全被调度之后,再调度优先级次高的待调度任务队列中的任务。
基于模块431-432,目标应用程序的所有待调度任务队列中优先级最高的待调度任务队列中的任务会被最优先执行,优先级次高的待调度的任务队列中的任务会被第次优先执行,以此类推,优先级最低的待调度的任务队列的任务会被最后执行。由此,只有当优先级较高的待调度任务队列中的任务被调度完之后才会调度优先级较低的待调度任务队列中的任务。
如图8所示,所述第二调度模块包括:
第五获取模块4301,用于如果所述目标应用程序对应的任务调度策略为基于权重的调度策略,则获取目标应用程序的所有待调度任务队列的权重;所述所有待调度任务队列中不同待调度任务队列对应的权重不同。
第二执行模块4302,用于先从权重最高的待调度任务队列中调度第一数量的任务执行,再从权重次高的待调度任务队列中调度第二数量的任务执行。
基于模块4301-4302,目标应用程序的待调度任务队列中的权重最高的待调度队列中的部分任务会被最优先执行,然后权重次高的待调度队列中的部分任务会被次优先执行,以此类推,由此,不同待调度队列中的任务均会被循环调度。
本实施例设置了先抢占再调度的策略,其中,先配置客户端的每一应用程序方GPU硬件资源的抢占算法和对应的任务调度策略,然后使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源,如果某应用程序抢占到GPU硬件资源,则使用目标应用程序的调度策略对目标应用程序的待调度任务队列中的任务进行调度,目标应用程序指的是抢占到GPU硬件资源的应用程序。
本实施例的客户端的不同应用程序的抢占算法和任务调度策略均运行在用户态,可以根据不同应用程序的需求预先配置各应用程序对应的抢占算法和调度策略,不同应用程序的抢占算法可以相同,也可以不同;任务调度策略可以相同,也可以不同,由此,可以满足不同应用程序的差异化任务调度需求。
本实施例将客户端的应用程序的任务调度策略和抢占算法均运行在用户态,不但提高了任务调度策略配置的灵活性,而且避免了将与任务调度策略相关的数据从用户态给内核态的过程,减少了用户态与内核态的切换开销,提高了调度效率。
实施例三
本实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
为客户端的每一应用程序配置GPU硬件资源的抢占算法;不同应用程序对应的抢占算法相同或不同,所述抢占算法运行在用户态。
使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源。
为客户端的每一应用程序配置对应的任务调度策略;不同应用程序对应的任务调度策略相同或不同,所述任务调度策略运行在用户态。
如果某应用程序抢占到GPU硬件资源,则使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务,所述目标应用程序为抢占到GPU硬件资源的应用程序。
实施例四
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
为客户端的每一应用程序配置GPU硬件资源的抢占算法;不同应用程序对应的抢占算法相同或不同,所述抢占算法运行在用户态。
使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源。
为客户端的每一应用程序配置对应的任务调度策略;不同应用程序对应的任务调度策略相同或不同,所述任务调度策略运行在用户态。
如果某应用程序抢占到GPU硬件资源,则使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务,所述目标应用程序为抢占到GPU硬件资源的应用程序。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明的范围由所附权利要求来限定。

Claims (12)

1.一种GPU硬件资源的调度方法,其特征在于,所述调度方法包括以下步骤:
为客户端的每一应用程序配置GPU硬件资源的抢占算法;不同应用程序对应的抢占算法不同,所述抢占算法运行在用户态;其中,根据应用程序的待调度任务队列的队伍长度确定当前抢占算法,待调度任务队列的队伍长度越长,每次抢占到GPU硬件资源后间隔越长的时间才将GPU硬件资源进行释放;待调度任务队列的队伍长度越长,如果没有抢占到GPU硬件资源后间隔越短的时间再次进行抢占;待调度任务队列的队伍长度越短,每次抢占到GPU硬件资源后间隔越短的时间才将GPU硬件资源进行释放;待调度任务队列的队伍长度越短,如果没有抢占到GPU硬件资源后间隔越长的时间再次进行抢占;
使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源;
为客户端的每一应用程序配置对应的任务调度策略;不同应用程序对应的任务调度策略相同或不同,所述任务调度策略运行在用户态;
如果某应用程序抢占到GPU硬件资源,则使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务,所述目标应用程序为抢占到GPU硬件资源的应用程序。
2.根据权利要求1所述的GPU硬件资源的调度方法,其特征在于,所述使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务包括以下步骤:
从所述目标应用程序对应的任务调度策略配置位置获取目标应用程序对应的任务调度策略;
获取目标应用程序的待调度任务队列,每一待调度任务队列包括若干准备就绪的任务;
使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行。
3.根据权利要求2所述的GPU硬件资源的调度方法,其特征在于,所述任务调度策略为基于优先级的调度策略或基于权重的调度策略。
4.根据权利要求3所述的GPU硬件资源的调度方法,其特征在于,使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行包括以下步骤:
如果所述目标应用程序对应的任务调度策略为基于优先级的调度策略,则获取目标应用程序的所有待调度任务队列的优先级;所述所有待调度任务队列中不同待调度任务队列对应的优先级不同;
先从优先级最高的待调度任务队列中调度任务执行,且只有在优先级最高的待调度任务队列中任务全被调度之后,再调度优先级次高的待调度任务队列中的任务。
5.根据权利要求3所述的GPU硬件资源的调度方法,其特征在于,使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行包括以下步骤:
如果所述目标应用程序对应的任务调度策略为基于权重的调度策略,则获取目标应用程序的所有待调度任务队列的权重;所述所有待调度任务队列中不同待调度任务队列对应的权重不同;
先从权重最高的待调度任务队列中调度第一数量的任务执行,再从权重次高的待调度任务队列中调度第二数量的任务执行。
6.一种GPU硬件资源的调度装置,其特征在于,所述调度装置包括:
第一配置模块,用于为客户端的每一应用程序配置GPU硬件资源的抢占算法;不同应用程序对应的抢占算法不同,所述抢占算法运行在用户态;其中,根据应用程序的待调度任务队列的队伍长度确定当前抢占算法,待调度任务队列的队伍长度越长,每次抢占到GPU硬件资源后间隔越长的时间才将GPU硬件资源进行释放;待调度任务队列的队伍长度越长,如果没有抢占到GPU硬件资源后间隔越短的时间再次进行抢占;待调度任务队列的队伍长度越短,每次抢占到GPU硬件资源后间隔越短的时间才将GPU硬件资源进行释放;待调度任务队列的队伍长度越短,如果没有抢占到GPU硬件资源后间隔越长的时间再次进行抢占;
第一抢占模块,用于使客户端的每一应用程序使用对应的抢占算法抢占GPU硬件资源;
第二配置模块,用于为客户端的每一应用程序配置对应的任务调度策略;不同应用程序对应的任务调度策略相同或不同,所述任务调度策略运行在用户态;
第一调度模块,用于如果某应用程序抢占到GPU硬件资源,则使用目标应用程序对应的任务调度策略调度目标应用程序的待调度任务队列中的任务,所述目标应用程序为抢占到GPU硬件资源的应用程序。
7.根据权利要求6所述的GPU硬件资源的调度装置,其特征在于,所述第一调度模块包括:
第一获取模块,用于从所述目标应用程序对应的任务调度策略配置位置获取目标应用程序对应的任务调度策略;
第二获取模块,用于获取目标应用程序的待调度任务队列,每一待调度任务队列包括若干准备就绪的任务;
第二调度模块,用于使用所述目标应用程序对应的任务调度策略从目标应用程序的待调度任务队列中调度任务执行。
8.根据权利要求7所述的GPU硬件资源的调度装置,其特征在于,所述任务调度策略为基于优先级的调度策略或基于权重的调度策略。
9.根据权利要求8所述的GPU硬件资源的调度装置,其特征在于,所述第二调度模块包括:
第三获取模块,用于如果所述目标应用程序对应的任务调度策略为基于优先级的调度策略,则获取目标应用程序的所有待调度任务队列的优先级;所述所有待调度任务队列中不同待调度任务队列对应的优先级不同;
第一执行模块,用于先从优先级最高的待调度任务队列中调度任务执行,且只有在优先级最高的待调度任务队列中任务全被调度之后,再调度优先级次高的待调度任务队列中的任务。
10.根据权利要求8所述的GPU硬件资源的调度装置,其特征在于,所述第二调度模块包括:
第四获取模块,用于如果所述目标应用程序对应的任务调度策略为基于权重的调度策略,则获取目标应用程序的所有待调度任务队列的权重;所述所有待调度任务队列中不同待调度任务队列对应的权重不同;
第二执行模块,用于先从权重最高的待调度任务队列中调度第一数量的任务执行,再从权重次高的待调度任务队列中调度第二数量的任务执行。
11.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任意一项所述的GPU硬件资源的调度方法。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任意一项所述的GPU硬件资源的调度方法。
CN202311503962.4A 2023-11-13 2023-11-13 一种gpu硬件资源的调度方法、装置、设备及介质 Active CN117234740B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311503962.4A CN117234740B (zh) 2023-11-13 2023-11-13 一种gpu硬件资源的调度方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311503962.4A CN117234740B (zh) 2023-11-13 2023-11-13 一种gpu硬件资源的调度方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN117234740A CN117234740A (zh) 2023-12-15
CN117234740B true CN117234740B (zh) 2024-02-20

Family

ID=89082962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311503962.4A Active CN117234740B (zh) 2023-11-13 2023-11-13 一种gpu硬件资源的调度方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN117234740B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016061935A1 (zh) * 2014-10-20 2016-04-28 中兴通讯股份有限公司 一种资源调度方法、装置及计算机存储介质
CN110781007A (zh) * 2019-10-31 2020-02-11 广州市网星信息技术有限公司 任务处理方法、装置、服务器、客户端、系统和存储介质
CN111367652A (zh) * 2020-01-07 2020-07-03 苏州大学 一种嵌入式实时操作系统的任务调度处理系统和方法
CN113886034A (zh) * 2021-09-09 2022-01-04 深圳奥哲网络科技有限公司 任务调度方法、系统、电子设备及存储介质
CN114675954A (zh) * 2022-03-29 2022-06-28 阿里云计算有限公司 任务调度方法及装置
CN114691321A (zh) * 2022-03-08 2022-07-01 中汽创智科技有限公司 一种任务调度方法、装置、设备及存储介质
CN114968565A (zh) * 2022-05-17 2022-08-30 北京百度网讯科技有限公司 资源管理方法、装置、电子设备、存储介质及服务器
CN115686826A (zh) * 2022-09-30 2023-02-03 中国空间技术研究院 一种基于天基分布式卫星集群的动态调度方法和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016061935A1 (zh) * 2014-10-20 2016-04-28 中兴通讯股份有限公司 一种资源调度方法、装置及计算机存储介质
CN110781007A (zh) * 2019-10-31 2020-02-11 广州市网星信息技术有限公司 任务处理方法、装置、服务器、客户端、系统和存储介质
CN111367652A (zh) * 2020-01-07 2020-07-03 苏州大学 一种嵌入式实时操作系统的任务调度处理系统和方法
CN113886034A (zh) * 2021-09-09 2022-01-04 深圳奥哲网络科技有限公司 任务调度方法、系统、电子设备及存储介质
CN114691321A (zh) * 2022-03-08 2022-07-01 中汽创智科技有限公司 一种任务调度方法、装置、设备及存储介质
CN114675954A (zh) * 2022-03-29 2022-06-28 阿里云计算有限公司 任务调度方法及装置
CN114968565A (zh) * 2022-05-17 2022-08-30 北京百度网讯科技有限公司 资源管理方法、装置、电子设备、存储介质及服务器
CN115686826A (zh) * 2022-09-30 2023-02-03 中国空间技术研究院 一种基于天基分布式卫星集群的动态调度方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Methods to Realize Preemption in Phased Execution Models;Thilakasiri, Thilanka;ACM TRANSACTIONS ON EMBEDDED COMPUTING SYSTEMS Volume22 Issue5;20231031;全文 *
基于LLF算法的双队列TinyOS调度策略;周艳;;辽东学院学报(自然科学版)(04);53-56 *

Also Published As

Publication number Publication date
CN117234740A (zh) 2023-12-15

Similar Documents

Publication Publication Date Title
JP3585755B2 (ja) タイムシェアリングシステムにおける非通信プロセス間のプライオリティに基づく負荷分散
Kato et al. Semi-partitioned fixed-priority scheduling on multiprocessors
EP2176751B1 (en) Scheduling by growing and shrinking resource allocation
CN111767134A (zh) 一种多任务动态资源调度方法
US20190087224A1 (en) Method, system, apparatus, and/or non-transitory computer readable medium for the scheduling of a plurality of operating system tasks on a multicore processor and/or multi-processor system
CN111782355B (zh) 一种基于混合负载的云计算任务调度方法及系统
CN111026519B (zh) 基于分布式的任务优先级调度方法和系统及存储介质
CN112214319B (zh) 一种计算资源感知的任务调度方法
CN112817722B (zh) 一种基于优先级的分时调度方法、终端及存储介质
US7793293B2 (en) Per processor set scheduling
CN111221631A (zh) 一种任务调度方法、装置及存储介质
CN115309519A (zh) 基于时间触发机制的确定性任务调度编排方法、系统和存储介质
CN108845883B (zh) 线程调优方法、装置、计算机设备和存储介质
CN111611074A (zh) 一种集群资源的调度方法及装置
CN117234740B (zh) 一种gpu硬件资源的调度方法、装置、设备及介质
CN117519930A (zh) 批量任务的执行方法、装置及电子设备
CN117234691A (zh) 任务调度方法及装置
Horowitz A run-time execution model for referential integrity maintenance
Teraiya et al. Comparative study of LST and SJF scheduling algorithm in soft real-time system with its implementation and analysis
CN113986484B (zh) 社交软件的任务处理全局调度方法
CN112395063B (zh) 一种动态多线程调度方法及系统
CN109298917A (zh) 一种适用于实时系统混合任务的自适应调度方法
CN112486660A (zh) 一种任务调度方法、装置、计算机设备及存储介质
CN108268310B (zh) 一种确定最小调度粒度的方法及装置
WO2016122596A1 (en) Checkpoint-based scheduling in cluster

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
TR01 Transfer of patent right

Effective date of registration: 20240412

Address after: 311100, Room 206-063, Building 8, Xixi Bafangcheng, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Patentee after: Muxi Lingzhi Technology (Hangzhou) Co.,Ltd.

Country or region after: China

Address before: Room 1113, 11th Floor, Building F, Information Port, No. 198 Qidi Road, Economic and Technological Development Zone, Xiaoshan District, Hangzhou City, Zhejiang Province, 311200

Patentee before: Muxi Integrated Circuit (Hangzhou) Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right