CN111736987B - 一种基于gpu空间资源共享的任务调度方法 - Google Patents
一种基于gpu空间资源共享的任务调度方法 Download PDFInfo
- Publication number
- CN111736987B CN111736987B CN202010474738.7A CN202010474738A CN111736987B CN 111736987 B CN111736987 B CN 111736987B CN 202010474738 A CN202010474738 A CN 202010474738A CN 111736987 B CN111736987 B CN 111736987B
- Authority
- CN
- China
- Prior art keywords
- task
- gpu
- resource sharing
- tasks
- deadline
- 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
Links
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
-
- 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
Abstract
本公开提供了一种基于GPU空间资源共享的任务调度方法,涉及GPU任务调度的技术领域,启动一个新的任务,如果没有正在运行的任务,新任务将以独占模式启动;如果当前正在执行第一任务,根据性能模型和截止时间动态调整第一任务和新任务的资源使用;根据输出的每个时钟周期执行的指令数分派新任务,实现了高GPU资源利用率下的软实时调度,本公开解决了现有的并行GPU任务执行和资源共享的工作无法支持抢占式实时调度的问题,确保在GPU资源能够在并发任务之间以最大限度共享的同时,能够满足高优先级任务的截止时间;并发任务可以在单个SM上并行执行,以实现更好的GPU资源利用率。
Description
技术领域
本公开涉及GPU任务调度的技术领域,涉及一种基于GPU空间资源共享的任务调度方法。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。
AI(Artificial Intelligence,人工智能)和大数据时代,对于高端嵌入式系统和大规模并行数据密集型工作负载,GPU(Graphics Processing Unit,图形处理单元)已经成为一种很有前途的架构选择。
然而,现有的嵌入式GPU不支持基于优先级的抢占,这对于GPU实时嵌入式系统来说是一个非常大的障碍。同时,为了满足严格的功率限制,高效的 GPU资源管理也是至关重要的。新兴智能嵌入式和边缘计算系统往往需要高计算能力和实时任务处理能力。GPU体系结构已成为越来越受欢迎的选择,它使得数据密集型应用程序大规模并行执行。有许多现成的嵌入式GPU平台包括 NVIDIA Jetson系列和PX系列被用来建立人工智能机器人系统、自动车辆和无人驾驶飞机。
然而普通GPU不支持基于优先级的抢占式调度。许多文献研究了实时GPU 的调度问题,以使基于GPU的嵌入式系统在设计层面上能够满足实时要求。有研究通过嵌入式GPU设备的时间共享机制,在NVIDIA GPU驱动程序中提出了一种抢占式的EDF调度器原型。日前,基于软件的抢占机制已被提出,使其能在普通GPU上支持灵活的任务抢占和调度,其中GPU的任务代码转换支持运行时中断和抢占。
本公开发明人发现,上述工作关注的重点是并行GPU任务的抢占机制和调度。在另一方面,由于GPU本身对功耗的要求很高,因此高效利用GPU资源对具有功耗约束的嵌入式系统设计至关重要。NVIDIA GPU支持基于时间分割的调度器以及先进先出的多进程服务。最近的研究工作发现,将一系列SM (Streaming Multiprocessor,流处理器)分配给独立的任务,或者在多个任务之间共享单个SM,这会进一步改进并行任务执行。然而,现有的并行GPU任务执行和资源共享的工作无法支持抢占式实时调度。
发明内容
为了解决现有技术的不足,本公开提供了一种基于GPU空间资源共享的任务调度方法,在运行时处理任务调度和资源分配,实现了高GPU资源利用率下的软实时调度。
为了实现上述目的,本公开采用如下技术方案:
本公开第一方面提供了一种基于GPU空间资源共享的评估方法。
一种基于GPU空间资源共享的评估方法,包括以下步骤:
获取GPU的当前工作状态,预处理后得到支持GPU任务抢占和空间资源共享的GPU工作模式;
采用马尔可夫链计算当前流处理器的状态,得到马尔可夫链的稳定状态向量;
根据稳定状态向量,得到任务在运行期间处于计算状态的概率;
在资源共享模式下,根据任务在运行期间处于计算状态的概率,得到在每个流处理器上分配预设个数的线程块时,每个时钟周期执行的指令数;
将所有可能的资源分配方案下并行执行任务时,每个时钟周期执行的指令数作为评估结果输出并存储,用于运行时做出资源分配决策。
本公开第二方面提供了一种基于GPU空间资源共享的任务调度方法。
一种基于GPU空间资源共享的任务调度方法,启动一个新的任务,如果没有正在运行的任务,新任务将以独占模式启动,如果当前正在执行第一任务,通过调用预设函数,根据性能模型和截止时间动态调整第一任务和新任务的资源使用,根据本公开第一方面所述的基于GPU空间资源共享的评估方法输出的每个时钟周期执行的指令数分派新任务。
本公开第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开第二方面所述的基于GPU空间资源共享的任务调度方法中的步骤。
与现有技术相比,本公开的有益效果是:
1、本公开第一方面提供的基于GPU空间资源共享的评估方法,能够快速的确定在给定资源分配方案下并行运行任务的执行时间,在运行调度中实现了空间资源共享,极大的提高了资源分配和运行调度速率。
2、本公开第一方面提供的基于GPU空间资源共享的评估方法,在不访问 GPU驱动程序代码的情况下,采用持久线程编程模式,在源代码或汇编代码级别支持GPU任务抢占和空间资源共享,从而实现了每个GPU任务的原始源代码的自动转换,以支持持久化线程和线程块间抢占。
3、本公开第二方面提供的基于GPU空间资源共享的任务调度方法,能够获得任务执行特征和任务间干扰,以确保在GPU资源能够在并发任务之间以最大限度共享的同时,能够满足高优先级任务的截止时间;并发任务可以在单个 SM上并行执行,以实现更好的GPU资源利用率。
附图说明
图1为本公开实施例1提供的空间资源共享导致的性能争用图。
图2为本公开实施例2提供的使用独占模式任务执行的调度图。
图3为本公开实施例2提供的空间资源共享的调度图。
图4为本公开实施例2提供的基于GPU空间资源共享的任务调度方法的设 计概述图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本实施例使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
需要注意的是,附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合下面结合附图与实施例对本公开作进一步说明。
假设:
本公开假设任务集是静态已知的,并且可以修改每个任务的源代码或其汇编代码。
本公开中采用基于WCET(Worst-case Execution Time,最坏执行时间)估计的评估。
本公开中假设GPU频率被nvpmodel(性能模式工具)等锁定,因此任务执行时间是可预测的。
本公开假设GPU内存足够大,可以承担并行运行的任务。
考虑到实践中的资源限制,本公开最多考虑2个共享SM内资源的并行执行任务。
调度框架:
在SM(流处理器)内并行支持EDF调度的GPU的整体框架如图3所示。
在线下阶段,通过“修改器”模块自动转换每个GPU任务的原始源代码,以支持持久化线程和线程块间抢占。修改后的任务提交给“性能评估”模块,该模块为给定的GPU任务集生成一个静态性能评估器。
线上EDF调度器将修改后的任务代码生成的可执行文件和性能模型作为输入。当出现下面3种情况,调用调度程序:
(i)ARRIVE-启动一个新的任务作业;
(ii)COMPLETE-完成一个正在运行的任务作业;
(iii)PREEMPT-正在运行的任务作业结束它的活动线程块(剩下的未分配线程块),并被优先级更高的任务作业抢占。
请注意,同抢占可以发生在任何指令范围的CPU系统不同,由于上下文切换机制的限制,GPU抢占只能在正在执行的任务的线程块完成时执行。在本公开的框架中,抢占是通过“信号”和“回调”机制实现的,调度器向被抢占的任务发送一个停止信号,以阻止给这个任务分配剩余线程块,任务在其活动线程块完成时回调调度器。
每次调用调度器时,它会决定:
(1)在所有就绪的任务中,哪些任务应该与GPU设备并行启动;
(2)每次应该分配给这些任务多少资源(通过控制持久线程/线程块的数量,以最小的努力来满足它们的截止时间,从而使GPU可以在并发运行的任务之间共享资源,同时满足各个任务的实时约束)。
如图1所示:当两个任务NN和HOT共享同一个SM时,给定每个SM的总资源(包括线程总数、寄存器、共享内存使用量等)存在不同的资源分配方案组合。例如在每个SM上分配一个NN线程块时,剩余的GPU资源允许同时分配最多 6个HOT线程块。当将每个SM的NN线程块数量增加到5个时,可以在同一SM上并行分配3个HOT线程块。从图1中可以看出,与“独占”模式相比,在同一SM 上并行运行的多个任务会由于计算和内存资源争用而导致单个任务的性能下降。假设NN是具有10ms截止时间的高优先级任务,GPU在空间资源共享模式下运行NN和HOT。调度程序可以为NN在每一个SM分配n(3<=n<=8)个线程块来满足它的截止时间。为了有效利用GPU资源,根据贪心原则调度程序调度3个NN 线程块和5个HOT线程块。请注意,对于给定的一组任务,不同组合的性能评估将在线下进行,而资源分配决策将由调度器在运行时根据就绪任务的相对截止时间和剩余工作负载做出。
空间资源共享提高了GPU硬件资源利用率,以及整个系统的可调度性。如 图2所示:在“独占”模式下,在GPU利用率较高的情况下,即使使用抢占式调 度器,无论优先级如何分配,两个任务中的一个都会错过最后期限。例如,如 果NN是优先级较高的任务,它将抢占HOT的执行,而HOT将错过它的最后期限 HOT_ddl。
如图3所示:它阐明了结合抢占和空间资源共享优势的EDF调度方案。当 HOT是系统中唯一的就绪任务时,它将以“独占”模式执行(即,每SM 6个线 程块)。假设NN到达了一个相对较近的截止时间NN_ddl。考虑到所观察到的性 能资源非线性,该框架将查找分配给NN的可能的最小资源,以满足其读取时间 约束(即3个线程块在这种情况下),剩下的资源可以分配给HOT(5线程块)。 因此,在具有空间资源共享的抢占式调度器下,这两个任务都能按时完成。
实施例1:
首先,本实施例提供了一种基于GPU空间资源共享的任务修改器,具体如下:
GPU任务转换的目标是使GPU任务执行可抢占。具体来说,CPU可以中断 GPU任务的执行,让其他任务占据GPU,然后恢复任务的执行,完成剩余的任务。在这项工作中,在不访问GPU驱动程序代码的情况下,采用持久线程编程模式,在源代码或汇编代码级别支持GPU任务抢占和空间资源共享。
转换后的GPU任务代码伪代码如下:
在上面修改的任务代码中,每个worker在一个SM上同时执行一个线程块。一旦一个worker完成了它的线程块,它将通过getTask()函数得到下一个要执行的线程块,直到任务的所有线程块都正常完成(即,下一个taskID为NULL)。在这种编程风格中,通过定义worker的数量,能够控制每个GPU任务的SM资源使用。
同时,可以在运行时减少worker的数量,这样就可以减少分配给这个特定任务的资源,而不会因为任务中断而产生任何开销。当一个高优先级的任务需要更多的资源来满足它的截止时间时,这是很有用的。
注意,当需要在任务执行完成之前停止它时,调度器会向设备发送一个stopSignal。在当前线程块结束执行后,所有的worker停止,然后调用一个回调函数返回到CPU端。
类似地,如果调度器需要增加分配给当前正在运行的任务的资源,它首先通过设置stopSignal来停止这个任务,然后为任务设置更多的worker并重新启动它。
在主机端,应用程序通过所提供的runKernel函数启动GPU任务调度器,而不是直接向GPU设备提交一个任务。上述两个控制变量workerLimit和stopSignal 都在CPU上更新,在GPU上读取。在NVIDIA GPU上,可以在零拷贝内存中分配这些变量,零拷贝内存是主机内存空间中的一种特殊的锁页内存。
其次,本实施例提供了一种基于GPU空间资源共享的任务评估方法,具体提供了一种基于GPU空间资源共享的任务评估器。
为了在运行调度中实现空间资源共享,需要一个静态性能评估模型来确定在给定资源分配方案下并行运行任务的执行时间。在不同的资源分配方案下,对每一对任务的性能进行度量,会产生很大的设计空间。于是,本实施例扩展了静态性能评估模型。
使用测量得到的计算指令比例和访存延迟,可以得到每个线程块可能由于内存访问而从活动变为非活动的概率。使用马尔可夫链估计当前SM的状态。可以计算出马尔可夫链的稳定状态向量。
得到一个稳定状态向量其中γi代表在每个调度循环中任务k的SM中有i个不活跃线程块的状态的概率。
通过π可以计算出当任务使用如下i个线程块时的计算时间的比例。
GPU在一次轮询中执行wk-i个时钟周期的概率为γi,在i=wk的情况下,时钟周期为1,表示没有活动线程块,SM处于空闲循环。所以是 GPU在一个轮询中平均可以执行的时钟周期数,/>是调度轮中的空闲时钟周期数,所以是一次轮询中平均可以执行的时钟周期总数。这个比率表示任务k在运行期间处于计算状态而不是等待内存访问的概率。然后在资源共享模式下,计算在每个SM上分配wk个线程块时的IPC、任务k的/> (Instructions Per Cycle,每个时钟周期执行的指令数)。
表示两个任务处于不同状态的概率,使得它们使用不同的 GPU资源,可以互相并行执行,不受干扰。两个任务处于相同状态的概率是/>在这种状态下,任务独占GPU,每个任务的IPC将减半。
是测量得到的每个任务在wk线程块单独执行最坏情况下的IPC。最后,性能评估器将所有可能的资源分配方案下的并行执行任务的IPCs输出为一个表,运行时调度器将搜索该表以做出资源分配决策。
实施例2:
如图2、图3和图4所示,本公开实施例2提供了一种基于GPU空间资源共享 的任务调度方法,具体构建了一种基于GPU空间资源共享的任务调度器,具体 算法如下所示:
(1)://当一个新任务kn被调用
(2):if没有任务正在运行then
(3):以“独占”模式分派kn
(4):else if只有一个任务k1正在运行then
(5):rs_alloc(k1,kn);
(6):else if<k1,k2>正在运行而且D(kn)<D(k2)then
(7):抢占任务k2并且让它入队;
(8):rs_alloc(k1,kn);
(9):else
(10):出队任务kn;
(11):end if
(12):
(13)://当一个任务结束
(14):if任务kr正在运行then
(15):让具有最早截止时间的任务kn出队;
(16):rs_alloc(kr,kn);
(17):else
(18):if队容量为1then
(19):让k1出队并且以“独占”模式分派;
(20):else if队容量大于1then
(21):出队(k1,k2)中具有最短截止时间的任务;
(22):rs_alloc(k1,k2);
(23):end if
(24):end if
(25):
(26):function RS_ALLOC(k1,k2)
(27):for i←1,k1.exclusive do
(28):for j←k2.exclusive,0 do
(29):计算k1和k2的执行时间;
(30):if具有i个线程块的k1满足截止时间then
(31):退出外部循环;
(32):end if
(33):end for
(34):end for
(35):wk1←i;
(36):wk2←j;
(37):将k1分配的线程块调整为以及将k2分配的线程块调整为/>
(38):end function
运行调度程序:
在不访问GPU驱动程序的情况下,本实施例通过一个应用程序级的调度器来负责任务的启动和抢占。CPU端首先将任务提交给调度器。调度器在所有可用任务中决定哪两个任务可以在空间资源共享模式下并行运行,同时考虑任务的截止时间、相应的资源分配以及哪个任务被抢占。上述算法中提到了调度器,它跟踪当前在GPU设备上运行的任务,以及一个包含所有未执行的任务的排序队列,按照它们的截止时间升序排列。
情况1:启动一个新的任务kn(第1-11行)。如果没有正在运行的任务,kn将以“独占”模式启动(第2-3行)。如果当前正在执行一个任务k1,则调度器通过调用rs_alloc函数(第26-38行),根据性能模型和截止时间动态调整k1和kn的资源使用,尝试分派kn。在另一种情况下,目前有两个任务k1和k2在GPU上运行,其中k2根据EDF(第6-8行)被kn抢占。剩余未分配的k2的线程块重新插入就绪队列,k1和kn调用rs_alloc函数,在空间资源共享模式下并行执行。最后,如果两个运行任务的优先级都高于kn,则将kn插入就绪队列中的适当位置(第 9-10行)。
情况2:当任务完成(第13-24行)时,如果仍然有一个正在运行的任务kr,调度器将按照最早的截止时间将就绪的任务kn从队列中取出,并在资源共享模式下对kr进行分配(第14-16行)。否则,根据等待队列中就绪任务的数量,调度器将分派具有最小截止日期的1个或2个任务(第17-23行)。请注意,在本实施例提出的调度器中,当空间资源共享模式不能满足正在运行的任务的截止时间约束时,可能只有一个任务正在运行,而多个就绪任务正在队列中等待。
空间共享模式的资源分配决策是在rs_alloc函数中做出的(第26-38行)。在不损失一般性的前提下,假设更接近k1的截止时间。该函数列举了k1和k2所有可能的资源分配方案。它找到了一个解决方案,可以使k1分配的线程块减到最小,同时保证k1满足它的截止时间,并利用剩余的资源从k2分配尽可能多的线程块。请注意,k1.exclusive表示任务k1在“独占”模式下运行时,分配尽可能多的线程块。
设IBk和Rk代表每个线程块的指令数和任务k的剩余线程块,F代表固定的 GPU频率,第29行计算任务k的剩余执行时间每SM分配w个线程块,如下所示:
其中,由实施例2中的性能估计方法(性能估计器)获得。如果/>小于k1剩余的截止时间,在高优先级的任务k1满足其截止时间(第30-32行)时,就得到了最优资源分配。
通过以上方法,本实施例提出了一个适用于GPU的支持空间资源共享的EDF 调度框架,框架中的EDF调度器在运行时可以基于转换的CPU和GPU代码处理任务调度和资源分配。
本公开实施例3提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开实施例3所述的基于GPU空间资源共享的任务调度方法中的步骤。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (8)
1.一种基于GPU空间资源共享的评估方法,其特征在于,包括以下步骤:
获取GPU的当前工作状态,预处理后得到支持GPU任务抢占和空间资源共享的GPU工作模式;
对GPU的运行状态进行预处理,在不访问GPU驱动程序代码的情况下,采用持久线程编程模式,在源代码或汇编代码级别支持GPU任务抢占和空间资源共享,具体为:
每个任务对象在一个流处理器上同时执行一个线程块,当一个任务对象完成了它的线程块,通过预设函数得到下一个要执行的线程块,直到任务的所有线程块都正常完成,通过预设的任务对象的数量来控制每个GPU任务的流处理器资源使用;
采用马尔可夫链计算当前流处理器的状态,得到马尔可夫链的稳定状态向量;
根据稳定状态向量,得到任务在运行期间处于计算状态的概率;
在资源共享模式下,根据任务在运行期间处于计算状态的概率,得到在每个流处理器上分配预设个数的线程块时,每个时钟周期执行的指令数;
将所有可能的资源分配方案下并行执行任务时,每个时钟周期执行的指令数作为评估结果输出并存储,用于运行时做出资源分配决策;
稳定状态向量π={γ0,γ1,…,γwk},其中γi代表在每个调度循环中任务k的SM中有i个不活跃线程块的状态的概率;
通过π计算出当任务使用如下i个线程块时的计算时间的比例;
GPU在一次轮询中执行wk-i个时钟周期的概率为γi,在i=wk的情况下,时钟周期为1,表示没有活动线程块,SM处于空闲循环;是GPU在一个轮询中平均可以执行的时钟周期数,γwk是调度轮中的空闲时钟周期数,/>是一次轮询中平均可以执行的时钟周期总数;/>表示任务k在运行期间处于计算状态而不是等待内存访问的概率;在资源共享模式下,计算在每个SM上分配wk个线程块时的IPC、任务k的每个时钟周期执行的指令数/>
表示两个任务处于不同状态的概率;两个任务处于相同状态的概率是 是测量得到的每个任务在wk线程块单独执行最坏情况下的每个时钟周期执行的指令数IPC;性能评估器将所有可能的资源分配方案下的并行执行任务的IPCs输出为一个表,运行时调度器将搜索该表以做出资源分配决策。
2.如权利要求1所述的基于GPU空间资源共享的评估方法,其特征在于,当一个高优先级的任务需要更多的资源来满足它的截止时间时,通过减少任务对象的数量的方式实现;
或者,当需要在任务执行完成之前停止此任务时,接收停止信号,在当前线程块结束执行后,所有的任务对象停止时,调用回调函数返回到CPU端;
或者,
如果需要增加分配给当前正在运行的任务的资源,首先通过设置停止信号来停止这个任务,然后为任务增加任务对象的数量并重新启动此任务。
3.一种基于GPU空间资源共享的任务调度方法,其特征在于,包括以下步骤:
启动一个新的任务,如果没有正在运行的任务,新任务将以独占模式启动;
如果当前正在执行第一任务,根据性能模型和截止时间动态调整第一任务和新任务的资源使用;
根据权利要求1-2所述的基于GPU空间资源共享的评估方法输出的每个时钟周期执行的指令数分派新任务。
4.如权利要求3所述的基于GPU空间资源共享的任务调度方法,其特征在于,当有第一任务和第二任务在GPU上运行时,其中第二任务被新任务抢占,剩余未分配的第二任务的线程块重新插入就绪队列,第一任务和新任务在空间资源共享模式下并行执行;
如果第一任务和第二任务的优先级都高于新任务,则将新任务插入就绪队列中的适当位置。
5.如权利要求3所述的基于GPU空间资源共享的任务调度方法,其特征在于,当任务完成时,如果仍然有一个正在运行的第三任务,按照最早的截止时间将就绪的新任务从队列中取出,并在资源共享模式下对第三任务进行分配;
否则,根据等待队列中就绪任务的数量,分派具有最小截止日期的1个或2个任务。
6.如权利要求5所述的基于GPU空间资源共享的任务调度方法,其特征在于,空间共享模式的资源分配决策采用rs_alloc函数完成,具体为:使第一任务分配的线程块减到最小,同时保证第一任务满足它的截止时间,并利用剩余的资源从第二任务分配尽可能多的线程块。
7.如权利要求3所述的基于GPU空间资源共享的任务调度方法,其特征在于,计算任务的剩余执行时间,如果任务的剩余执行时间小于任务的剩余的截止时间,在高优先级的任务满足其截止时间时,得到最优资源分配。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如权利要求3-7任一项所述的基于GPU空间资源共享的任务调度方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010474738.7A CN111736987B (zh) | 2020-05-29 | 2020-05-29 | 一种基于gpu空间资源共享的任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010474738.7A CN111736987B (zh) | 2020-05-29 | 2020-05-29 | 一种基于gpu空间资源共享的任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111736987A CN111736987A (zh) | 2020-10-02 |
CN111736987B true CN111736987B (zh) | 2023-08-04 |
Family
ID=72648049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010474738.7A Active CN111736987B (zh) | 2020-05-29 | 2020-05-29 | 一种基于gpu空间资源共享的任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111736987B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199196B (zh) * | 2020-10-21 | 2022-03-18 | 上海交通大学 | 一种资源配置方法、介质及服务端 |
CN112346836B (zh) * | 2020-10-28 | 2023-11-21 | 海光信息技术股份有限公司 | 共享计算资源的抢占方法、装置、用户设备及存储介质 |
CN113407333B (zh) * | 2020-12-18 | 2023-05-26 | 上海交通大学 | Warp级别调度的任务调度方法、系统、GPU及设备 |
CN112633589B (zh) * | 2020-12-30 | 2022-07-29 | 华侨大学 | 一种基于概率模型混合关键任务能耗优化调度方法 |
CN112988355B (zh) * | 2021-03-31 | 2023-12-15 | 深圳市优必选科技股份有限公司 | 程序任务的调度方法、装置、终端设备及可读存储介质 |
CN113051059B (zh) * | 2021-04-10 | 2022-10-14 | 作业帮教育科技(北京)有限公司 | 一种多gpu的任务实时调度方法及装置 |
CN113377540A (zh) * | 2021-06-15 | 2021-09-10 | 上海商汤科技开发有限公司 | 集群资源调度方法及装置、电子设备和存储介质 |
CN117407155A (zh) * | 2023-09-22 | 2024-01-16 | 国网冀北电力有限公司信息通信分公司 | 资源方案确定方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5274809A (en) * | 1988-05-26 | 1993-12-28 | Hitachi, Ltd. | Task execution control method for a multiprocessor system with enhanced post/wait procedure |
CN107122245A (zh) * | 2017-04-25 | 2017-09-01 | 上海交通大学 | Gpu任务调度方法及系统 |
CN107357661A (zh) * | 2017-07-12 | 2017-11-17 | 北京航空航天大学 | 一种针对混合负载的细粒度gpu资源管理方法 |
CN110088730A (zh) * | 2017-06-30 | 2019-08-02 | 华为技术有限公司 | 任务处理方法、装置、介质及其设备 |
-
2020
- 2020-05-29 CN CN202010474738.7A patent/CN111736987B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5274809A (en) * | 1988-05-26 | 1993-12-28 | Hitachi, Ltd. | Task execution control method for a multiprocessor system with enhanced post/wait procedure |
CN107122245A (zh) * | 2017-04-25 | 2017-09-01 | 上海交通大学 | Gpu任务调度方法及系统 |
CN110088730A (zh) * | 2017-06-30 | 2019-08-02 | 华为技术有限公司 | 任务处理方法、装置、介质及其设备 |
CN107357661A (zh) * | 2017-07-12 | 2017-11-17 | 北京航空航天大学 | 一种针对混合负载的细粒度gpu资源管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111736987A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111736987B (zh) | 一种基于gpu空间资源共享的任务调度方法 | |
Amert et al. | GPU scheduling on the NVIDIA TX2: Hidden details revealed | |
Rajkumar | Real-time synchronization protocols for shared memory multiprocessors | |
Elliott et al. | GPUSync: A framework for real-time GPU management | |
US9086925B2 (en) | Methods of processing core selection for applications on manycore processors | |
Kato et al. | Semi-partitioned fixed-priority scheduling on multiprocessors | |
Yang et al. | Making openvx really" real time" | |
US8963933B2 (en) | Method for urgency-based preemption of a process | |
Kim et al. | A server-based approach for predictable GPU access control | |
US20200167191A1 (en) | Laxity-aware, dynamic priority variation at a processor | |
US20050066149A1 (en) | Method and system for multithreaded processing using errands | |
CN112463346A (zh) | 一种基于划分调度的dag任务的启发式处理器划分方法、系统及存储介质 | |
US10853133B2 (en) | Method and apparatus for scheduling tasks to a cyclic schedule | |
Guan et al. | Fixed-priority multiprocessor scheduling: Critical instant, response time and utilization bound | |
Ras et al. | Response time analysis for the Abort-and-Restart event handlers of the Priority-Based Functional Reactive Programming (P-FRP) paradigm | |
Socci et al. | Time-triggered mixed-critical scheduler on single and multi-processor platforms | |
Saranya et al. | Dynamic partitioning based scheduling of real-time tasks in multicore processors | |
Maia et al. | Scheduling parallel real-time tasks using a fixed-priority work-stealing algorithm on multiprocessors | |
Hu et al. | Real-time schedule algorithm with temporal and spatial isolation feature for mixed criticality system | |
Suzuki et al. | Real-time GPU resource management with loadable kernel modules | |
Wada et al. | Fast interrupt handling scheme by using interrupt wake-up mechanism | |
Elrad | Comprehensive race control: A versatile scheduling mechanism for real-time applications | |
Pang et al. | Efficient CUDA stream management for multi-DNN real-time inference on embedded GPUs | |
Tekin et al. | Pruda: An api for time and space predictible programming in nvdia gpus using cuda | |
Rothberg | Interrupt handling in Linux |
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 |