控制GPU的调度制造技术

技术编号:18465927 阅读:15 留言:0更新日期:2018-07-18 15:59
基于必须完成一个或更多个GPU任务的一个或更多个最后期限以及完成(当前正在执行的)第一GPU任务的执行所需的时间和执行(当前未执行的)一个或更多个其他GPU任务所需的时间的估计来控制GPU的操作。基于最后期限与估计之间的比较,可以触发或可以不触发上下文切换。

Control the scheduling of GPU

The operation of GPU is controlled based on the time required to perform one or more deadlines of one or more GPU tasks and the time required to complete (the currently executing) first GPU task and the time required to execute one or more other GPU tasks (currently not executed). Based on the comparison between deadlines and estimates, context switches can be triggered or not triggered.

【技术实现步骤摘要】
【国外来华专利技术】控制GPU的调度背景图形处理器单元(GPU)是具有高度并行结构并且通常用于诸如纹理映射和渲染多边形的图形操作的处理器,GPU(其也可以被称为VPU)也可以用于非图形应用,例如执行数据并行计算。GPU可以运行几个进程,并且GPU内的调度系统选择下一个运行哪个进程。通常,基于同步(即,以由任务的相互依赖性确定的顺序运行任务)和优先级(即,在较低优先级任务之前运行较高优先级任务)来执行调度。如果启用了上下文切换,则一旦能够运行较高优先级任务(即,其未被同步阻止),则较高优先级任务(例如,与用户交互相关联的渲染任务)将中断较低优先级任务(例如,实况壁纸的渲染)。下面所述的实施方式仅作为例子被提供且不是解决控制GPU内的调度的已知方法的任何或所有缺点的实现的限制。概述提供专利技术概述来以简化形式引入在以下详细描述中将进一步描述的概念选择。这个概述并不打算识别所主张的主题的关键特征或必要特征,也不打算用作在确定所主张的主题的范围时的帮助。基于必须完成一个或更多个GPU任务的一个或更多个最后期限以及完成(当前正在执行的)第一GPU任务的执行所需的时间和执行(当前未执行的)一个或更多个其他GPU任务所需的时间的估计来控制GPU的操作。基于最后期限与估计之间的比较,可以触发或可以不触发上下文切换。第一方面提供了调度GPU内的任务的方法,该方法包括:在执行第一GPU任务时,响应于第二GPU任务准备好运行,确定所述第一GPU任务和所述第二GPU任务中的哪一个具有较高优先级;响应于确定所述第二GPU任务具有比当前执行的所述第一GPU任务更高的优先级;估计所述第一GPU任务和所述第二GPU任务中的每一个的完成时间;使用所估计的完成时间来确定所述第一GPU任务和所述第二GPU任务是否能够在与所述第二GPU任务相关联的最后期限之前完成;以及响应于确定所述第一GPU任务和所述第二GPU任务都可以在与所述第二GPU任务相关联的最后期限之前完成,允许所述第一GPU任务继续执行。第二方面提供包括微处理器的图像处理器单元(GPU),该微处理器被配置为:在执行第一GPU任务时,响应于第二GPU任务准备好运行,确定所述第一GPU任务和所述第二GPU任务中的哪一个具有较高优先级;和响应于确定所述第二GPU任务具有比当前执行的所述第一GPU任务更高的优先级;估计所述第一GPU任务和所述第二GPU任务中的每一个的完成时间;使用所估计的完成时间来确定所述第一GPU任务和所述第二GPU任务是否能够在与所述第二GPU任务相关联的最后期限之前完成;以及响应于确定所述第一GPU任务和所述第二GPU任务都可以在与所述第二GPU任务相关联的最后期限之前完成,允许所述第一GPU任务继续执行。另外的方面提供:如本文所述的体现在集成电路上的硬件中的GPU,计算机可读代码,当所述代码在计算机上运行(并且其可能在计算机可读存储介质上被编码)适于执行本文所述的方法的步骤,在集成电路制造系统处制造如本文所述的GPU、集成电路定义数据集的方法,集成电路定义数据集当其在集成电路制造系统中被处理时配置系统以制造如本文所述的GPU和计算机可读存储介质,计算机可读存储介质具有存储在其上的集成电路定义数据集,集成电路定义数据集当在集成电路制造系统中被处理时配置系统以制造如本文所述的GPU。优选特征可在适当时被组合,如对技术人员将明显的,并可与本专利技术的任何方面组合。附图简述将参考以下附图通过示例的方式来描述本专利技术的实施方式,在附图中:图1是在其中可以实现本文所描述的方法的示例GPU的示意图;图2是控制GPU的操作的第一示例方法的流程图;图3是控制GPU的操作的第二示例方法的流程图;图4是示出周期性显示刷新点的时间线的示意图;图5是控制GPU的操作的第三示例方法的流程图;图6是示例性集成电路制造系统的示意图。共同的参考数字在全部附图中用于指示类似的特征。详细描述下面仅通过示例的方式描述本专利技术的实施方式。这些例子代表实施本专利技术的、申请人当前已知的最佳方式,虽然它们并不是这可被实现的唯一方式。该描述阐述例子的功能和用于构造和操作例子的步骤的顺序。然而,相同或等效的功能和顺序可由不同的例子完成。本文描述了控制GPU的操作的方法。所述方法使用与执行GPU任务(例如渲染任务或计算任务)所花费的时间相关的存储的统计信息来确定完成多个任务中的每一个的估计时间,然后将估计时间与一个或更多个任务的最后期限进行比较。GPU的操作随后根据任务的最后期限是否被满足而被修改。如下所述,对GPU的操作的修改可以影响任务的调度,更具体地说,可以影响较低优先级任务是否被中断(经由上下文切换)以执行高优先级任务。另外,或者替代地,对GPU的操作的修改可以影响GPU的操作点(例如,操作电压和频率)(例如,使用动态电压和频率缩放(DVFS))。如果使用本文所述的方法来影响GPU内的任务调度,则可以减少所执行的上下文切换的数量,同时不损害用户体验,并且这提高了GPU的效率。在GPU上切换任务(通过上下文切换)尤其昂贵(就效率以及存储器带宽和调度器性能都达到更低的程度而言),因为管线更深(即它们包括比CPU内的管线更多的级),并且存在存储大量必须刷新的数据的大量的高速缓存。在这样的实现中,考虑两个任务-当前正在执行的任务和新的可运行的并且更高优先级的任务-并且因此生成两个估计,并且将其与更高优先级任务的任务最后期限相比较。如果使用本文所述的方法来控制GPU的操作点,则可以在优化功耗(和产生的热量)的同时满足GPU的目标性能。例如,可以将操作点设置为具有较低功耗的操作点,除非需要增加的操作速度(即,增加的时钟速度)才能调度任务以满足任务的最后期限。在这样的实现中,考虑GPU在时间窗口内正在执行的所有任务,其中该时间窗口可以覆盖队列中当前的所有任务。可替换地,可以以不同的方式定义时间窗口,例如,该窗口可以运行直到(即,终止在)最后期限的时间线(例如有序列表)上的下一最后期限(例如下一显示刷新或如果下一显示刷新在时间上非常接近则下一刷新)。在各种示例中,当GPU队列中存在针对不同最后期限(其中这些最后期限可以是显示刷新)的多个不同工作负载(其中工作负载可以是任务、子任务或任务组)并且时间窗口扩展到覆盖队列中当前的所有工作负载时,可以控制操作点,使得每个任务可以满足其各自的最后期限。图1是在其中可以实现本文所描述的方法的示例GPU100的示意图。GPU100包括运行实现本文描述的方法的软件或固件的嵌入式微处理器102。该软件/固件可以存储在外部存储器(即,在GPU100外部,经由存储器管理单元104访问)中或者存储在GPU内的核心存储器103中。在本文描述的方法中使用的统计信息可以存储在GPU100内(例如,在核心存储器103中),或者可以存储在GPU外部并且经由GPU内的存储器管理单元(MMU)104(其可被称为“GPUMMU”,以将其与GPU外部的MMU(例如CPUMMU和/或系统MMU)区分开)来访问。GPU100还包括GPU核心108,GPU核心108包括执行GPU任务的数据主设备108、着色集群110、纹理管线112和数据后处理模块114。应理解,其它GPU可能不包括图1中所示的所有的功能元件(即,可省略图1中所示的一个本文档来自技高网...

【技术保护点】
1.一种调度GPU内的任务的方法,所述方法包括:在执行第一GPU任务(302)时,响应于第二GPU任务准备好运行(304),确定所述第一GPU任务和所述第二GPU任务中的哪一个具有较高优先级(306);和响应于确定所述第二GPU任务具有比当前执行的所述第一GPU任务更高的优先级;估计所述第一GPU任务和所述第二GPU任务中的每一个的完成时间(312);使用所估计的完成时间来确定所述第一GPU任务和所述第二GPU任务是否能够在与所述第二GPU任务相关联的最后期限之前完成(314);以及响应于确定所述第一GPU任务和所述第二GPU任务都能够在与所述第二GPU任务相关联的最后期限之前完成,允许所述第一GPU任务继续执行(308、330)并设置定时器(330);以及响应于所述定时器在完成所述第一GPU任务的执行之前超时(322),中断所述第一GPU任务的执行并执行所述第二GPU任务(326)。

【技术特征摘要】
【国外来华专利技术】2015.12.18 GB 1522461.11.一种调度GPU内的任务的方法,所述方法包括:在执行第一GPU任务(302)时,响应于第二GPU任务准备好运行(304),确定所述第一GPU任务和所述第二GPU任务中的哪一个具有较高优先级(306);和响应于确定所述第二GPU任务具有比当前执行的所述第一GPU任务更高的优先级;估计所述第一GPU任务和所述第二GPU任务中的每一个的完成时间(312);使用所估计的完成时间来确定所述第一GPU任务和所述第二GPU任务是否能够在与所述第二GPU任务相关联的最后期限之前完成(314);以及响应于确定所述第一GPU任务和所述第二GPU任务都能够在与所述第二GPU任务相关联的最后期限之前完成,允许所述第一GPU任务继续执行(308、330)并设置定时器(330);以及响应于所述定时器在完成所述第一GPU任务的执行之前超时(322),中断所述第一GPU任务的执行并执行所述第二GPU任务(326)。2.根据权利要求1所述的方法,还包括:响应于确定所述第一GPU任务和所述第二GPU任务不能都在与所述第二GPU任务相关联的最后期限之前完成,中断所述第一GPU任务的执行并且执行所述第二GPU任务(326)。3.根据权利要求1或2所述的方法,其中,允许所述第一GPU任务继续执行包括:允许完成第一任务的执行(308)。4.根据权利要求1所述的方法,还包括:响应于确定所述第一GPU任务和所述第二GPU任务不能都在与所述第二GPU任务相关联的最后期限之前完成,增加所述GPU的操作频率(334)并允许所述第一GPU任务在执行所述第二GPU任务(310)之前继续执行(308)。5.根据前述权利要求中任一项所述的方法,其中,估计所述第一GPU任务和所述第二GPU任务中的每一个的完成时间包括,对于每个GPU任务:识别所述GPU任务的一个或更多个工作负载特性(316);访问每个识别的工作负载特性的存储的统计信息(318);和使用所识别的工作负载特性的所存储的统计信息生成所述GPU任务的估计的完成时间(320)。6.根据前述权利要求中的任一项所述的方法,还包括:确定与所述第二GPU任务相关联的最后期限(324)。7.根据权利要求6所述的方法,其中,基于显示刷新率来确定与所述第二GPU任务相关联的最后期限。8.根据前述权利要求中的任一项所述的方法,还包括:更新与所述第一GPU任务和/或所述第二GPU任务相关联的所存储的统计信息(322)。9.根据前述权利要求中的任一项所述的方法,其中,所述第一GPU任务和所述第二GPU任务是图形任务。10.根据权利要求9所述的方法,其中,所述第一GPU任务和所述第二GPU任务是渲染任务。11.根据前述权利要求中任一项所述的方法,其中,所述GPU包括微控制器。12.一种GPU(100),包括微控制器(102),其中所述微控制器被配置为:在执行第一GPU任务(302)时,响应于第二GPU任务准备好运行(304),确定所述第一GPU任务和所述第二GPU任务中的哪一个具有较高优先级(306);和响应于确定所述第二GPU任务具有比当前执行的所述第一GPU任务更高的优先级;估计所述第一GPU任务和所述第二GPU任务中的每一个的完成时间(312);使用所估计的完成时间来确定所述第一GPU任务和所述第二GPU任务是否能够在与所述第二GPU任务相关联的最后期限之前完成(314);以及响应于确定所述第一GPU任务和所述第二GPU任务都能够在与所述第二GPU任务相关联的最后期限之前完成,...

【专利技术属性】
技术研发人员:戴夫·罗伯茨杰克逊·德索扎
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:英国,GB

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

1