当前位置: 首页 > 专利查询>山东大学专利>正文

一种基于GPU空间资源共享的任务调度方法技术

技术编号:25834552 阅读:30 留言:0更新日期:2020-10-02 14:15
本公开提供了一种基于GPU空间资源共享的任务调度方法,涉及GPU任务调度的技术领域,启动一个新的任务,如果没有正在运行的任务,新任务将以独占模式启动;如果当前正在执行第一任务,根据性能模型和截止时间动态调整第一任务和新任务的资源使用;根据输出的每个时钟周期执行的指令数分派新任务,实现了高GPU资源利用率下的软实时调度,本公开解决了现有的并行GPU任务执行和资源共享的工作无法支持抢占式实时调度的问题,确保在GPU资源能够在并发任务之间以最大限度共享的同时,能够满足高优先级任务的截止时间;并发任务可以在单个SM上并行执行,以实现更好的GPU资源利用率。

【技术实现步骤摘要】
一种基于GPU空间资源共享的任务调度方法
本公开涉及GPU任务调度的
,涉及一种基于GPU空间资源共享的任务调度方法。
技术介绍
本部分的陈述仅仅是提供了与本公开相关的
技术介绍
,并不必然构成现有技术。AI(ArtificialIntelligence,人工智能)和大数据时代,对于高端嵌入式系统和大规模并行数据密集型工作负载,GPU(GraphicsProcessingUnit,图形处理单元)已经成为一种很有前途的架构选择。然而,现有的嵌入式GPU不支持基于优先级的抢占,这对于GPU实时嵌入式系统来说是一个非常大的障碍。同时,为了满足严格的功率限制,高效的GPU资源管理也是至关重要的。新兴智能嵌入式和边缘计算系统往往需要高计算能力和实时任务处理能力。GPU体系结构已成为越来越受欢迎的选择,它使得数据密集型应用程序大规模并行执行。有许多现成的嵌入式GPU平台包括NVIDIAJetson系列和PX系列被用来建立人工智能机器人系统、自动车辆和无人驾驶飞机。然而普通GPU不支持基于优先级的抢占式调度。许多文献研究了实时GPU的调度问题,以使基于GPU的嵌入式系统在设计层面上能够满足实时要求。有研究通过嵌入式GPU设备的时间共享机制,在NVIDIAGPU驱动程序中提出了一种抢占式的EDF调度器原型。日前,基于软件的抢占机制已被提出,使其能在普通GPU上支持灵活的任务抢占和调度,其中GPU的任务代码转换支持运行时中断和抢占。本公开专利技术人发现,上述工作关注的重点是并行GPU任务的抢占机制和调度。在另一方面,由于GPU本身对功耗的要求很高,因此高效利用GPU资源对具有功耗约束的嵌入式系统设计至关重要。NVIDIAGPU支持基于时间分割的调度器以及先进先出的多进程服务。最近的研究工作发现,将一系列SM(StreamingMultiprocessor,流处理器)分配给独立的任务,或者在多个任务之间共享单个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-ca本文档来自技高网
...

【技术保护点】
1.一种基于GPU空间资源共享的评估方法,其特征在于,包括以下步骤:/n获取GPU的当前工作状态,预处理后得到支持GPU任务抢占和空间资源共享的GPU工作模式;/n采用马尔可夫链计算当前流处理器的状态,得到马尔可夫链的稳定状态向量;/n根据稳定状态向量,得到任务在运行期间处于计算状态的概率;/n在资源共享模式下,根据任务在运行期间处于计算状态的概率,得到在每个流处理器上分配预设个数的线程块时,每个时钟周期执行的指令数;/n将所有可能的资源分配方案下并行执行任务时,每个时钟周期执行的指令数作为评估结果输出并存储,用于运行时做出资源分配决策。/n

【技术特征摘要】
1.一种基于GPU空间资源共享的评估方法,其特征在于,包括以下步骤:
获取GPU的当前工作状态,预处理后得到支持GPU任务抢占和空间资源共享的GPU工作模式;
采用马尔可夫链计算当前流处理器的状态,得到马尔可夫链的稳定状态向量;
根据稳定状态向量,得到任务在运行期间处于计算状态的概率;
在资源共享模式下,根据任务在运行期间处于计算状态的概率,得到在每个流处理器上分配预设个数的线程块时,每个时钟周期执行的指令数;
将所有可能的资源分配方案下并行执行任务时,每个时钟周期执行的指令数作为评估结果输出并存储,用于运行时做出资源分配决策。


2.如权利要求1所述的基于GPU空间资源共享的评估方法,其特征在于,对GPU的运行状态进行预处理,在不访问GPU驱动程序代码的情况下,采用持久线程编程模式,在源代码或汇编代码级别支持GPU任务抢占和空间资源共享,具体为:
每个任务对象在一个流处理器上同时执行一个线程块,当一个任务对象完成了它的线程块,通过预设函数得到下一个要执行的线程块,直到任务的所有线程块都正常完成,通过预设的任务对象的数量来控制每个GPU任务的流处理器资源使用。


3.如权利要求2所述的基于GPU空间资源共享的评估方法,其特征在于,当一个高优先级的任务需要更多的资源来满足它的截止时间时,通过减少任务对象的数量的方式实现;
或者,当需要在任务执行完成之前停止此任务时,接收停止信号,在当前线程块结束执行后,所有的任务对象停止时,调用回调函数返回到CPU端;
或者,
如果需要增加分配给当前正在运行的任务的资源,首先通过设置停止信号来停止这个任务,然后为任务增加任务对象的数量并重新启动此任务。


4.如权利要求1所述的基于GPU空间资源共享的评估方法,其特征在于,每个流处理器上分配wk个线程块时任务k的每个时钟周期执行的指令数,具体为:



其中,表示两个任务处于不同状态的概率,是测量得到的每个任务在wk线程块单独...

【专利技术属性】
技术研发人员:鞠雷于淼薛鹏飞郭山清胡程瑜
申请(专利权)人:山东大学
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1