CN108292238A - 控制gpu的调度 - Google Patents

控制gpu的调度 Download PDF

Info

Publication number
CN108292238A
CN108292238A CN201680069957.9A CN201680069957A CN108292238A CN 108292238 A CN108292238 A CN 108292238A CN 201680069957 A CN201680069957 A CN 201680069957A CN 108292238 A CN108292238 A CN 108292238A
Authority
CN
China
Prior art keywords
gpu
task
gpu task
deadline
deadline date
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
Application number
CN201680069957.9A
Other languages
English (en)
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.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies 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 Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of CN108292238A publication Critical patent/CN108292238A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)
  • Image Generation (AREA)
  • Power Sources (AREA)

Abstract

基于必须完成一个或更多个GPU任务的一个或更多个最后期限以及完成(当前正在执行的)第一GPU任务的执行所需的时间和执行(当前未执行的)一个或更多个其他GPU任务所需的时间的估计来控制GPU的操作。基于最后期限与估计之间的比较,可以触发或可以不触发上下文切换。

Description

控制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的示意图。GPU 100包括运行实现本文描述的方法的软件或固件的嵌入式微处理器102。该软件/固件可以存储在外部存储器(即,在GPU 100外部,经由存储器管理单元104访问)中或者存储在GPU内的核心存储器103中。在本文描述的方法中使用的统计信息可以存储在GPU 100内(例如,在核心存储器103中),或者可以存储在GPU外部并且经由GPU内的存储器管理单元(MMU)104(其可被称为“GPU MMU”,以将其与GPU外部的MMU(例如CPU MMU和/或系统MMU)区分开)来访问。GPU 100还包括GPU核心108,GPU核心108包括执行GPU任务的数据主设备108、着色集群110、纹理管线112和数据后处理模块114。
应理解,其它GPU可能不包括图1中所示的所有的功能元件(即,可省略图1中所示的一个或更多个功能元件),且在一些实施例中,可包括图1中未示出的额外的功能元件(如,电源管理IC的接口)。
图2是控制GPU(例如图1中所示的GPU)的操作的示例方法的流程图,其可以由GPU100内的微处理器102运行的软件/固件来实现。该方法包括确定完成一个或更多个GPU任务中的每一个的估计(框202),或者在各种示例中,确定完成两个或更多个GPU任务中的每一个的估计,其中至少一个任务当前正在运行。(在框202中)所确定的估计可以是时间(例如X毫秒)或GPU周期(例如Y周期)。GPU任务可以是渲染任务、计算任务或在GPU上执行的其他类型的任务,并且在确定两个或更多个GPU任务的估计的一些示例中,两个或更多个GPU任务可以是相同类型(例如两个渲染任务)或可以是不同类型。在确定了(多个)估计之后(在框202中),将这些估计与一个或更多个最后期限进行比较,以确定是否能够满足(多个)最后期限(框204)。根据该确定的结果(在框204中),可以修改GPU的操作,这将在下面参考多个示例进行描述。
可以参考图3中的流程图来描述控制GPU的操作的另一示例方法,其中确定(在框202中)用于影响GPU任务的调度。当GPU正在执行第一GPU任务(框302)时,第二GPU任务变为可运行的(框304),其中术语“可运行的”用于指任务不在由于同步而被阻塞的情况(即,第二GPU任务所依赖的任何任务已经完成)。第一和第二GPU任务都具有相关联的优先级,该优先级可以被明确定义(例如,由应用程序指定),或任务类型的结果(例如,实时壁纸的渲染固有地低于保持固定帧速率的合成器的优先级,并且对导航系统的更新的渲染固有地低于汽车数字仪表板的优先级),并且在各种示例中,这些任务可以是渲染任务或计算任务。
根据常规调度算法,如果第二GPU任务具有低于当前执行的第一GPU任务的优先级(框306中的“否”),则允许第一GPU任务在执行第二GPU任务(框310)之前完成(框308)。此外,在第三GPU任务在第一GPU任务完成之前变得可运行的情况下,比较第一和第三GPU任务的相对优先级(在类似于框306的操作中),因此可能的是第二GPU任务可能在第一GPU任务之后不被执行,因为第一任务可能被中断以运行第三GPU任务。此外,在完成第一GPU任务之后(在框308中),如果第三GPU任务具有比第一GPU任务低但比第二GPU任务高的优先级,则可能接下来执行第三GPU任务。
然而,如果在第一GPU任务的执行期间准备好运行的第二GPU任务(框304)具有高于第一GPU任务的优先级(框306中的“是”),则根据常规调度算法,将发生上下文切换,其切换第一GPU任务的执行而代之以执行第二GPU任务。相反,在图3所示的方法中,该上下文切换不是自动发生的,而是对是否允许完成第一GPU任务进行评估。这可以避免不必要的上下文切换,从而提高GPU的效率。
进行的评估包括估计完成第一和第二GPU任务中的每一个的时间(框312),然后将这些估计与完成第二(较高优先级)GPU任务的最后期限进行比较(框314)。估计可以根据时间(例如X毫秒)或GPU周期(例如Y周期)生成(在框312中),并且可以使用针对GPU任务或子任务的存储的统计信息来生成(例如基于针对GPU任务的存储统计模型)。
如图3所示,在各种示例中,可以通过确定第一和第二GPU任务中的每一个的工作负荷特性(框316)来确定估计(在框312中)。工作负载特性取决于所涉及的GPU任务的类型,并且各种示例可以包括以下中的一个或更多个:渲染目标大小、半透明对象的数量、所有着色器的简档、着色器长度和图元的数量。已经确定了每个任务的工作负荷特性(在框316中)后,访问每个识别的特性的存储的统计信息(框318),然后使用这些访问的每个任务的特性的统计信息来生成两个估计,第一和第二GPU任务中的每一个都有一个估计(框320)。由于这些特性并不特定于特定GPU任务,因此统计信息甚至可以在GPU任务首次执行之前存在(例如,它们可以在任务基于对GPU任务的分析进入队列之前生成),并且这些统计信息可以随后在GPU任务执行之后被更新(框322)。
在各种示例中,工作负载特性可以根据工作负载的占用空间(footprint)来描述,其中每个工作负载(例如,每个渲染)具有计算出的占用空间。如果新工作负载具有与已经在GPU上完成执行的另一工作负载相同(或在一些示例中类似)的占用空间,则可以将新任务的估计设置为与所执行的工作负载所占用的相同周期计数(即相同数量的周期)。
如果GPU任务是渲染任务,则单个渲染任务可以包括许多子任务,其中每个子任务对应于可以在GPU上启动的较小粒度单元。例如,单个渲染任务可以包括许多渲染命令(例如100个渲染命令),因此可以通过使用每个单独渲染命令的特性评估所存储的统计信息来生成估计。
这些单独的命令可以被认为是对应于渲染任务的父渲染目标的“子”。在一个示例中,单个渲染可以是N个顶点DM(数据主设备)工作负载和M个像素DM工作负载的集合,其中在许多情况下,M=1。这些工作负载中的每一个可以对应于子任务。
将(来自框312的)生成的估计与较高优先级(第二)GPU任务的最后期限进行比较(框314)。最后期限可以被明确定义(例如,由平台软件、应用程序或用户接口提供给GPU),或者可以由微处理器确定(框324)。在第二GPU任务是渲染(或其它图形中心)任务的情况下,可以(在框324中)基于显示器的显示刷新点推断最后期限,对于60fps(帧/秒)显示器,该显示刷新点是每16.66ms,如图4中图形所示。在图4中,显示刷新点由时间线404上以时间间隔f分隔的垂直线402指示。如果第二GPU任务在点A处变得可运行,则最后期限(其在框314中使用)可以是下一显示刷新点(如箭头406所指示),使得该最后期限在将来永远不会大于f(其中f是显示刷新点的时间间隔,例如f=16.66ms)。然而,在一些示例中,可以存在最小最后期限值d,使得如果第二GPU任务在点B变得可运行,其中,在下一显示刷新点之前的时间b小于阈值(b<d),则将最后期限设置为其后的显示刷新点(如箭头408所示)。在这个示例中,最后期限将永远不会大于f+d或小于d。
在一些示例中,虽然显示器可以以特定帧速率(例如SOfps)运行,但是应用程序可以以较低的刷新率运行,在这种情况下,可以相对于应用程序的刷新率而不是显示器的刷新率来定义应用的渲染的最后期限。
在一些示例中,可以不基于刷新率而是基于用户经历的可接受的等待时间来为一些GPU任务设置最后期限。对于一些应用程序来说,相比于其他应用程序(如视频流应用程序或具有复杂图形的游戏),更大的等待时间可以被接受(如,日历或时钟应用程序)。对于非图形任务,最后期限例如可以由应用程序提供。
在确定了两个估计(在框312中)之后,他们与最后期限进行比较(在框314中)以确定两个任务(即第一和第二GPU任务)是否可以在第二GPU任务的最后期限之前完成。如果两个任务都可以在最后期限之前完成(框314中的“是”),则不发生上下文切换,并且允许第一GPU任务在执行第二GPU任务(框310)之前完成(框308)。这消除了本来是不必要的上下文切换,其从第一任务切换到第二任务并且在第二任务完成后,然后返回到第一任务。然而,如果两个任务不能在最后期限之前完成(框314中的“否”),则发生上下文切换(其中断第一GPU任务的执行)并且执行第二GPU任务(框326)。在完成第二(较高优先级)GPU任务(并且假设另一个较高优先级的GPU任务尚未成为可运行),则发生第二上下文切换,使得第一GPU任务可以完成(框328)。
由于确定是基于估计作出的(在框314中),可能存在这些估计不准确的时候。在一些实现中,诸如不能错过最后期限的实时系统(例如,对于汽车数字仪表板),定时器可以用于确保在允许较低优先级的第一GPU任务继续的情况下,其执行不会超限到第二GPU任务不能满足其最后期限的程度。如图3所示,如果确定两个任务都可以在最后期限之前执行(框314中的“是”),则可以与允许第一GPU任务继续执行并行地设置定时器(框330)。如果第二GPU任务的最后期限是D并且完成第二任务的估计是E,则定时器可以被设置为由D-E、D-(E+C)给出的时间,其中C是执行从第一任务到第二任务的上下文切换所花费的时间,或者D-(E+C+M),其中M是额外的误差容限(例如,在第二GPU任务的估计不准确的情况下)。
如果第一任务在定时器超时之前完成(框332中的“否”),则可以在第一GPU任务完成之后执行第二GPU任务。然而,如果定时器在第一任务完成之前超时(框332中为“是”),则执行上下文切换(框326),使得在切换回第一GPU任务之前可以完成第二GPU任务以满足最后期限(框328),假设在此期间没有可能阻止第一GPU任务的完成的更高优先级的GPU任务变得可运行。以这种方式使用定时器意味着即使较低优先级的GPU任务花费比预测的更长的时间(通过估计),它仍然可以被中断,并且系统的效率不低于使用基于优先级的常规调度器的系统。
如图3所示,在存储的统计信息被用于生成估计的情况下(在框312中),可以基于第一和/或第二GPU任务或它们的子任务的实际执行时间在方法中的一个或更多个点处更新这些估计(框322)。
在图3所示的方法的变型中,可以调整GPU的操作点(框334,例如,使用DVFS)以确保第二(较高优先级)GPU任务的最后期限可以被满足,而不是上下文切换以确保最后期限可以被满足(例如,在框326中)。通过增加电压/频率,如果在GPU周期方面定义,则估计(来自框312)不改变,而是减小GPU周期的长度(根据时间),使得在时间方面减小估计。
图3所示的方法为传统的基于优先级的调度增加了灵活性,并且这通过减少所执行的上下文切换的数量来提高GPU的效率。如上所述,由于管线的深度和高速缓存的数量增加了执行上下文切换的存储和加载操作所花费的时间,所以GPU上的上下文切换可能特别昂贵(就时间而言,因此就效率而言)。
虽然GPU的操作点可以由于仅计算一个或两个GPU任务的估计而改变(如上所述),但是在其他示例中,操作点可以基于对排队的和/或需要在特定时间窗口内执行的所有GPU任务的评估而改变,如可以参考图5所描述的。
如图5所示,识别一组GPU任务(框502)。该组GPU任务可以是系统中的所有排队任务,在定义的时间窗口中的所有任务,或者任务组可以以另一种方式定义(例如,对合成器在要显示的下一帧上绘制的像素有贡献的关键渲染)。然后确认完成所识别的任务中的每一个的估计(框504),并且这些估计可以如上文参考框312所描述的那样(例如,使用工作负荷特性和存储的统计信息)生成。在最后期限未(例如,由平台软件、应用程序或用户界面)明确定义的情况下,可以由微处理器为每个识别的任务确定最后期限(框506),并且可以使用与上面参考图3和4描述的方法类似的方法来确定最后期限(例如,为下一个显示刷新事件)。在各种示例中,任务可以基于它们的最后期限来分组,例如,可以存在一组以最后期限D1为目标的任务和另一组以最后期限D2为目标的任务,其中D2>D1。
在确定了估计(在框504中)和最后期限(在框506中)之后,确定是否能够满足所有识别的GPU任务的所有最后期限(框508)。如果当前操作点能够满足所有期限(框508中的“是”),则可以维持(即保持不变)GPU的时钟频率,或者在一些情况下降低(框510)。然而,如果当前操作点不能满足所有期限(框508中的“否”),则可以例如使用DVFS来增加GPU的时钟频率(框512),使得可以满足最后期限。如果达到最大时钟频率,可能无法进一步将频率提高到能够满足所有最后期限的程度;然而,使用最大频率将确保满足尽可能多的最后期限。
虽然图5示出了基于最后期限可以满足或不能满足来改变时钟频率(在框510和512中),但是可替换地(或附加地),可以改变工作电压/频率(例如在框510和512或等效框中),其中频率作为改变工作电压的结果而改变。在电压/频率被调整的情况下,GPU可以包括到电源管理IC(PMIC,图1中未示出)的接口,或者可选地,可以向与GPU通信的CPU发送请求,并且CPU处理(并且实现)该请求(例如使用在CPU上运行的驱动器)。
虽然图3和图5中的方法被单独描述,GPU可以实现两种(或两种的部分)方法。GPU可以使用这些方法来独立地控制DVFS和调度。
估计的确定(在图2的框202、图3的框312和图5的框504中)可以包括基于存储的统计信息来计算那些估计,或者可替换地,可以在与GPU通信的CPU上使用任务和子任务的存储的统计信息来执行估计的确定。
上述方法可用于具有至少一个具有实时或其它时间关键要求的过程的系统中。示例包括汽车数字仪表板和运行固定帧速率(例如60fps)输出的合成器。该系统还可以运行诸如导航系统更新和实时壁纸更新之类的时间敏感性较低的过程。
实现上述方法的GPU可以用于许多不同的设备中。例如,在用于车辆的计算设备内、在手持计算设备(例如平板电脑或智能电话)内、在另一消费设备(例如数字电视或机顶盒)内或任何其它计算设备(例如膝上型计算机、台式计算机、智能手表等)内。
术语“处理器”和“计算机”在本文用于指具有处理能力的任何设备或其部分,使得它可执行指令。术语“处理器”可例如包括中央处理单元(CPU)、图形处理单元(GPU或VPU)、物理处理单元(PPU)、无线电处理单元(RPU)、数字信号处理器(DSP)、通用处理器(例如通用GPU)、微处理器、设计成加速在CPU外部的任务的任何处理单元等。本领域中的技术人员将认识到,这样的处理能力合并到很多不同的设备内,且因此术语“计算机”包括机顶盒、媒体播放器、数字无线电装置、PC、服务器、移动电话、个人数字助理和很多其它设备。
本领域中的技术人员将认识到,用于存储程序指令的存储设备可分布在网络当中。例如,远程计算机可存储被描述为软件的过程的示例。本地或终端计算机可访问远程计算机并下载软件的一部分或全部以运行程序。可选地,本地计算机可按需下载软件的片段或在本地终端处执行一些软件指令和在远程计算机(或计算机网络)处执行一些指令。本领域中的技术人员也将认识到,通过利用本领域中的技术人员已知的常规技术,软件指令的全部或一部分可由专用电路(例如DSP、可编程逻辑阵列等)实现。
本文所述的方法可由配置有软件的计算机执行,软件是以机器可读形式存储在有形存储介质上,例如,以包括用于配置计算机来执行所述方法的组成部分的计算机可读程序代码的计算机程序的形式或以包括适合于当程序在计算机上运行时执行本文所述的任何方法的所有步骤的计算机程序代码模块的计算机程序的形式,且其中计算机程序可体现在计算机可读存储介质上。
有形(或非临时)存储介质的示例包括磁盘、拇指驱动器、存储卡等,且并不包括传播的信号。软件可适合于在并行处理器或串行处理器上执行,使得方法步骤可以按任何适当的顺序或同时被执行。
本文所述的硬件部件可由具有在其上编码的计算机可读程序代码的非临时计算机可读存储介质生成。
其还意图包含“描述”或定义实现如上所述的模块、功能、部件或逻辑的硬件的配置的软件,诸如HDL(硬件描述语言)软件,如用于设计集成电路或用于配置可编程芯片使用的,以实现期望功能。也就是说,可提供计算机可读存储介质,其具有在其上编码的用于生成配置成执行本文所述的任何方法的处理单元或用于生成包括本文所述的任何装置的处理单元的计算机可读程序代码。也就是说,计算机系统可配置成从定义用于组合那些电路元件的规则的数据和电路元件的定义中生成数字电路的表示,其中非临时计算机可读存储介质可具有存储在其上的处理器可执行指令,其当在这样的计算机系统处被执行时使计算机系统生成如本文所述的处理单元。例如,非临时计算机可读存储介质可具有存储在其上的计算机可读指令,其当在用于生成集成电路的表现形式的计算机系统处被执行时使计算机系统生成如在本文的例子中所述的接收器的处理器的表现形式或生成配置成执行如在本文的例子中所述的方法的处理器的表现形式。处理器的表现形式可以是处理器本身或处理器(例如,掩模)的表示,其可用于生成处理器。
现在将参考图6描述在集成电路制造系统处处理集成电路定义数据集以便配置该系统来制造GPU的示例。
图6示出了集成电路(IC)制造系统602的示例,其包括布局处理系统604和集成电路生成系统606。IC制造系统602配置成接收IC定义数据集(例如,定义如在本文的任何示例中所述的GPU),处理IC定义数据集,并根据IC定义数据集(例如,其体现如在本文的任何示例中所述的GPU)生成IC。
IC定义数据集的处理配置IC制造系统602以制造体现如在本文的任何示例中所述的GPU的集成电路。更具体地,布局处理系统604被配置为接收和处理IC定义数据集,以确定电路布局。根据IC定义数据集确定电路布局的方法在本领域中是已知的,且例如可涉及合成RTL代码以确定例如在逻辑部件(例如,与非、或非、与、或、多路复用和触发部件)方面待生成的电路的门级表示,可通过确定对于逻辑部件的位置信息根据电路的门级表示来确定电路布局。这可自动地或借助用户干预来完成,以便优化电路布局。当布局处理系统604确定电路布局时,它可将电路布局定义输出到IC生成系统606。IC生成系统606根据电路布局定义生成IC,如在本领域中已知的。例如,IC生成系统606可实现半导体器件制造过程以生成IC,这可涉及光刻和化学处理步骤的多步骤序列,在该多步骤序列期间,电子电路通常在由半导体材料制成的晶圆上被创建。电路布局定义可以是掩模的形式,该掩模可在光刻过程中用于根据电路定义生成IC。可选地,被提供到IC生成系统606的电路布局定义可以是计算机可读代码的形式,IC生成系统606可使用该计算机可读代码来形成适当的掩模用于在生成IC时使用。由IC制造系统602执行的不同过程可以都在一个位置上例如由一方实现。
可选地,IC制造系统602可以是分布式系统,使得一些过程可在不同的位置处被执行,并可由不同的主体执行。例如,步骤的一些是:(i)合成表示IC定义数据集的RTL代码,以便形成要生成的电路的门级表示;(ii)基于门级表示,生成电路布局;(iii)根据电路布局,形成掩膜;以及(iv)使用掩膜制造集成电路,可在不同位置和/或由不同方实施。
在其它示例中,在集成电路制造系统处对集成电路定义数据集的处理可配置系统以制造GPU而无需处理IC定义数据集,以便确定电路布局。例如,集成电路定义数据集可定义可重配处理器(例如FPGA)的配置,且该数据集的处理可将IC制造系统配置为生成具有该所定义的配置的可重配处理器(如,通过将配置数据加载到FPGA)。
在一些示例中,集成电路定义数据集可以包括运行在由数据集定义的硬件上的软件或者与由数据集定义的硬件组合的软件。在图6中示出的示例中,IC生成系统还可由集成电路定义数据集配置为在制造集成电路时,根据在集成电路定义数据集处定义的程序代码来将固件加载到该集成电路上,或者以其他方式向集成电路提供程序代码以供集成电路使用。
存储在实现所公开的方面时使用的机器可执行数据的存储器可以是非临时介质。非临时介质可以是易失性的或非易失性的。易失性非临时介质的示例包括基于半导体的存储器,例如SRAM或DRAM。可用于实现非易失性存储器的技术的示例包括光学和磁性存储器技术、闪存、相变存储器、电阻性RAM。
对“逻辑”的特定提及指执行一种功能或多种功能的结构。逻辑的示例包括布置成执行那些功能的电路。例如,这样的电路可包括晶体管和/或在制造过程中可用的其它硬件元件。作为示例,这样的晶体管和/或其它元件可用于形成实现和/或包含存储器(例如寄存器、触发器或锁存器)、逻辑运算器(例如布尔运算)、数学运算器(例如加法器、乘法器或移位器)和互连的电路或结构。这样的元件可作为定制电路或标准单元库、宏或在其它抽象级处被提供。
可在特定的布置中使这样的元件互连。逻辑可包括固定功能的电路,且电路可被编程以执行一种功能或多种功能;这样的编程可从固件或软件更新或控制机制提供。被识别为执行一种功能的逻辑也可包括实现组成性功能或子过程的逻辑。在示例中,硬件逻辑具有实现固定函数运算或多个运算、状态机或过程的电路。
本文给出的任何范围或设备值可扩展或改变而不失去所寻求的效应,如对技术人员将明显的。
将理解,上面描述的益处和优点可涉及一个实施例或可涉及几个实施例。实施例不限于解决任何或所有所陈述的问题的那些实施例或具有任何或全部所陈述的益处和优点的那些实施例。
对“一个”项目的任何提及指那些项目中的一个或更多个。术语“包括”在本文中用于意指包括所识别的方法块或元件,但这样的块或元件并不包括排他列表,且装置可包含额外的块或元件,并且方法可包含额外的操作或元件。此外,块、元件和操作本身并不是隐含地封闭的。
本文描述的方法的步骤可在适当时以任何适当的顺序或同时被执行。在附图中的方框之间的箭头示出方法步骤的一个示例顺序,但并不意欲排除其它顺序或多个步骤的并行执行。此外,单独的块可从任何方法删除而不偏离本文描述的主题的精神和范围。上面描述的任何示例的方面可与所描述的其它示例中的任一个的方面组合以形成另外的示例,而不失去所寻求的效应。在附图的元件被示为由箭头连接的情况下,将认识到,这些箭头示出在元件之间的通信(包括数据和控制消息)的仅一个示例流。在元件之间的流可以在任一方向上或在两个方向上。
将理解,优选实施方式的上述描述仅作为例子被给出,以及各种修改可由本领域中的技术人员做出。虽然上面以某个详细程度或参考一个或多个单独的实施方式描述了各种实施方式,本领域中的技术人员可对所公开的实施方式进行很多变更而不偏离本发明的精神或范围。

Claims (27)

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)。
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任务相关联的最后期限之前完成,允许所述第一GPU任务继续执行(308、330)并设置定时器(330);以及
响应于所述定时器在完成所述第一GPU任务的执行之前超时(332),中断所述第一GPU任务的执行并执行所述第二GPU任务(326)。
13.根据权利要求12所述的GPU,还包括存储器(103),所述存储器(103)被布置成存储设备可执行指令,所述设备可执行指令在被执行时使得所述微控制器:在执行第一GPU任务(302)时,响应于第二GPU任务准备好运行(304),确定所述第一GPU任务和所述第二GPU任务中的哪一个具有较高优先级(306);响应于确定所述第二GPU任务具有比当前执行的所述第一GPU任务更高的优先级:估计所述第一GPU任务和所述第二GPU任务中的每一个的完成时间(312);使用所估计的完成时间来确定所述第一GPU任务和所述第二GPU任务是否能够在与所述第二GPU任务相关联的最后期限之前完成(314);以及响应于确定所述第一GPU任务和所述第二GPU任务都能够在与所述第二GPU任务相关联的最后期限之前完成,允许所述第一GPU任务继续执行(308、330)。
14.根据权利要求12或13所述的GPU,其中,所述微控制器还被配置为:响应于确定所述第一GPU任务和所述第二GPU任务不能都在与所述第二GPU任务相关联的最后期限之前完成,中断所述第一GPU任务的执行并且执行所述第二GPU任务(326)。
15.根据权利要求12-14中任一项所述的GPU,其中,所述微控制器被配置为通过允许所述第一任务的执行完成来允许所述第一GPU任务继续执行(308)。
16.根据权利要求12-15中任一项所述的GPU,其中,所述微控制器被配置为通过以下针对每一个GPU任务的操作来估计所述第一GPU任务和所述第二GPU任务中的每一个的完成时间:
识别所述GPU任务的一个或更多个工作负载特性(316);
访问每个识别的工作负载特性的存储的统计信息(318);和
使用所识别的工作负载特性的所存储的统计信息生成所述GPU任务的估计的完成时间(320)。
17.根据权利要求12-16中任一项所述的GPU,其中,所述微控制器还被配置为确定与所述第二GPU任务相关联的最后期限(324)。
18.根据权利要求17所述的GPU,其中,基于显示刷新率来确定与所述第二GPU任务相关联的最后期限。
19.根据权利要求12-18中任一项所述的GPU,其中,所述微控制器还被配置为更新与所述第一GPU任务和/或所述第二GPU任务相关联的所存储的统计信息(322)。
20.根据权利要求12-19中任一项所述的GPU,其中,所述第一GPU任务和所述第二GPU任务是图形任务。
21.根据权利要求20所述的GPU,其中,所述第一GPU任务和所述第二GPU任务是渲染任务。
22.根据权利要求12-21中任一项所述的GPU,其中,所述GPU被体现在集成电路上的硬件中。
23.一种计算机可读代码,当所述代码在计算机上运行时,所述代码适于执行根据权利要求1-11中任一项所述的方法的步骤。
24.一种计算机可读储存介质,其具有在其上编码的根据权利要求23所述的计算机可读代码。
25.一种在集成电路制造系统处制造根据权利要求12-21中任一项所述的GPU的方法。
26.一种集成电路定义数据集,当所述数据集在集成电路制造系统中进行处理时,将所述系统配置为制造根据权利要求12-21中任一项所述的GPU。
27.一种其上存储有集成电路定义数据集的计算机可读存储介质,当所述集成电路定义数据集在集成电路制造系统中进行处理时,将所述系统配置为制造根据权利要求12-21中任一项所述的GPU。
CN201680069957.9A 2015-12-18 2016-12-09 控制gpu的调度 Pending CN108292238A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1522461.1 2015-12-18
GB1522461.1A GB2545507B (en) 2015-12-18 2015-12-18 Controlling scheduling of a GPU
PCT/GB2016/053876 WO2017103573A1 (en) 2015-12-18 2016-12-09 Controlling scheduling of a gpu

Publications (1)

Publication Number Publication Date
CN108292238A true CN108292238A (zh) 2018-07-17

Family

ID=55311290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680069957.9A Pending CN108292238A (zh) 2015-12-18 2016-12-09 控制gpu的调度

Country Status (5)

Country Link
US (2) US11847492B2 (zh)
EP (1) EP3391211B1 (zh)
CN (1) CN108292238A (zh)
GB (1) GB2545507B (zh)
WO (1) WO2017103573A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110308784A (zh) * 2019-04-30 2019-10-08 东莞恒创智能科技有限公司 基于Nvidia TX2的CPU、GPU联合调频节能优化方法
CN114024779A (zh) * 2022-01-06 2022-02-08 云丁网络技术(北京)有限公司 用于管理智能设备的方法和装置
CN114210055A (zh) * 2022-02-22 2022-03-22 荣耀终端有限公司 一种图像渲染方法和电子设备

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11423035B2 (en) 2019-02-04 2022-08-23 Pearson Education, Inc. Scoring system for digital assessment quality with harmonic averaging
US11854433B2 (en) * 2019-02-04 2023-12-26 Pearson Education, Inc. Systems and methods for item response modelling of digital assessments
KR20210101663A (ko) 2020-02-10 2021-08-19 삼성전자주식회사 프레임의 생성에 소요된 시간 및 최대 허용 시간에 기반하여 프로세싱 유닛을 제어하는 전자 장치 및 전자 장치의 동작 방법
CN111913799B (zh) * 2020-07-14 2024-04-19 北京华夏启信科技有限公司 一种视频流在线分析任务调度方法和计算机设备
US11335296B2 (en) * 2020-09-14 2022-05-17 Apple Inc. Low-latency context switch systems and methods
CN113688053B (zh) * 2021-09-01 2023-07-28 北京计算机技术及应用研究所 云化测试工具的排队使用方法和系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050132167A1 (en) * 2003-12-10 2005-06-16 Giuseppe Longobardi Workload scheduler with cumulative weighting indexes
CN1879085A (zh) * 2003-11-06 2006-12-13 皇家飞利浦电子股份有限公司 处理抢占点的改进方法
CN101216786A (zh) * 2007-01-05 2008-07-09 三星电子株式会社 在实时操作系统中调度任务的方法、介质和设备
CN101246437A (zh) * 2008-01-28 2008-08-20 中兴通讯股份有限公司 一种嵌入式实时系统进程均衡调度方法
US20090007123A1 (en) * 2007-06-28 2009-01-01 Samsung Electronics Co., Ltd. Dynamic Application Scheduler in a Polling System
CN102317915A (zh) * 2009-02-16 2012-01-11 英科伦有限责任公司 分析系统的实时能力的方法
US20120047510A1 (en) * 2010-08-23 2012-02-23 Canon Kabushiki Kaisha Image forming device
CN102521050A (zh) * 2011-12-02 2012-06-27 曙光信息产业(北京)有限公司 一种面向cpu和gpu的混合调度方法
US20140022263A1 (en) * 2012-07-23 2014-01-23 Robert Scott Hartog Method for urgency-based preemption of a process
CN103678003A (zh) * 2013-12-18 2014-03-26 华中科技大学 一种实时性增强的虚拟cpu调度方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6975629B2 (en) * 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals
GB2403823B (en) 2003-07-08 2005-09-21 Toshiba Res Europ Ltd Controller for processing apparatus
US8666712B2 (en) * 2006-07-24 2014-03-04 Ati Technologies Inc. Physical simulations on a graphics processor
FR2923039A1 (fr) * 2007-10-24 2009-05-01 Centre Nat Rech Scient Procede de gestion des preemptions dans un systeme d'exploitation en temps reel
EP2304519A2 (en) 2008-06-25 2011-04-06 Nxp B.V. Electronic device, method of controlling an electronic device, and system-on-chip
US8924760B2 (en) 2010-01-08 2014-12-30 Mindspeed Technologies, Inc. Scheduler with voltage management
US8842122B2 (en) 2011-12-15 2014-09-23 Qualcomm Incorporated Graphics processing unit with command processor
US9632566B2 (en) * 2012-09-27 2017-04-25 Apple Inc. Dynamically controlling power based on work-loop performance
KR20140088691A (ko) 2013-01-03 2014-07-11 삼성전자주식회사 Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법
US9747659B2 (en) * 2015-06-07 2017-08-29 Apple Inc. Starvation free scheduling of prioritized workloads on the GPU

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1879085A (zh) * 2003-11-06 2006-12-13 皇家飞利浦电子股份有限公司 处理抢占点的改进方法
US20050132167A1 (en) * 2003-12-10 2005-06-16 Giuseppe Longobardi Workload scheduler with cumulative weighting indexes
CN101216786A (zh) * 2007-01-05 2008-07-09 三星电子株式会社 在实时操作系统中调度任务的方法、介质和设备
US20090007123A1 (en) * 2007-06-28 2009-01-01 Samsung Electronics Co., Ltd. Dynamic Application Scheduler in a Polling System
CN101246437A (zh) * 2008-01-28 2008-08-20 中兴通讯股份有限公司 一种嵌入式实时系统进程均衡调度方法
CN102317915A (zh) * 2009-02-16 2012-01-11 英科伦有限责任公司 分析系统的实时能力的方法
US20120047510A1 (en) * 2010-08-23 2012-02-23 Canon Kabushiki Kaisha Image forming device
CN102521050A (zh) * 2011-12-02 2012-06-27 曙光信息产业(北京)有限公司 一种面向cpu和gpu的混合调度方法
US20140022263A1 (en) * 2012-07-23 2014-01-23 Robert Scott Hartog Method for urgency-based preemption of a process
CN103678003A (zh) * 2013-12-18 2014-03-26 华中科技大学 一种实时性增强的虚拟cpu调度方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
N. C. AUDSLEY, R. I. DAVIS AND A. BUMS: "《Mechanisms for enhancing the flexibility and utility of hard real-time systems》", 《MECHANISMS FOR ENHANCING THE FLEXIBILITY AND UTILITY OF HARD REAL-TIME SYSTEMS》 *
RICHARD MEMBARTH, JAN-HUGO LUPP, FRANK HANNIG, JÜRGEN TEICH,MARI: "《Dynamic Task-Scheduling and Resource Managementfor GPU Accelerators in Medical Imaging》", 《DYNAMIC TASK-SCHEDULING AND RESOURCE MANAGEMENTFOR GPU ACCELERATORS IN MEDICAL IMAGING》 *
WOONSEOK KIM,JIHONG KIM,SANG LYUL MIN: "《Preemption-aware dynamic voltage scaling in hard real-time systems》", 《PREEMPTION-AWARE DYNAMIC VOLTAGE SCALING IN HARD REAL-TIME SYSTEMS》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110308784A (zh) * 2019-04-30 2019-10-08 东莞恒创智能科技有限公司 基于Nvidia TX2的CPU、GPU联合调频节能优化方法
CN114024779A (zh) * 2022-01-06 2022-02-08 云丁网络技术(北京)有限公司 用于管理智能设备的方法和装置
CN114024779B (zh) * 2022-01-06 2022-04-29 云丁网络技术(北京)有限公司 用于管理智能设备的方法和装置
CN114210055A (zh) * 2022-02-22 2022-03-22 荣耀终端有限公司 一种图像渲染方法和电子设备
CN114210055B (zh) * 2022-02-22 2022-07-01 荣耀终端有限公司 一种图像渲染方法和电子设备

Also Published As

Publication number Publication date
GB2545507B (en) 2019-07-17
EP3391211A1 (en) 2018-10-24
WO2017103573A1 (en) 2017-06-22
US11847492B2 (en) 2023-12-19
GB201522461D0 (en) 2016-02-03
EP3391211B1 (en) 2023-03-08
US20240118924A1 (en) 2024-04-11
US20180365062A1 (en) 2018-12-20
GB2545507A (en) 2017-06-21

Similar Documents

Publication Publication Date Title
CN108292237A (zh) 控制gpu的操作
CN108292238A (zh) 控制gpu的调度
US10503547B2 (en) Task scheduling in a GPU
JP5256967B2 (ja) 動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法
US11720399B2 (en) Task scheduling in a GPU using wakeup event state data
EP3388940B1 (en) Parallel computing architecture for use with a non-greedy scheduling algorithm
CN109923498B (zh) 用于电力性能管理的应用剖析
JP2021520572A (ja) ニューラルネットワークプロセッサにおいてタスクを割り当てるためのシステム及び方法
CN109144686A (zh) 对任务进行调度
CN109144684A (zh) 对任务进行调度
CN114968549A (zh) 用于向任务分配资源的方法和设备
CN109146764A (zh) 对任务进行调度
CN109144687A (zh) 对任务进行调度
GB2572684A (en) Controlling operation of a GPU
CN114968550A (zh) 用于向任务分配资源的方法和设备
GB2585306A (en) Task scheduling in a GPU
JP2014203172A (ja) 情報処理装置及び情報処理装置の制御方法

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