CN114009035A - 在功率管理性能得到保证的情况下的实时gpu渲染 - Google Patents
在功率管理性能得到保证的情况下的实时gpu渲染 Download PDFInfo
- Publication number
- CN114009035A CN114009035A CN202080044869.XA CN202080044869A CN114009035A CN 114009035 A CN114009035 A CN 114009035A CN 202080044869 A CN202080044869 A CN 202080044869A CN 114009035 A CN114009035 A CN 114009035A
- Authority
- CN
- China
- Prior art keywords
- performance setting
- rendering tasks
- amount
- synchronization signal
- rendering
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 91
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000015654 memory Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000013021 overheating Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7814—Specially adapted for real time processing, e.g. comprising hardware timers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2310/00—Command of the display device
- G09G2310/08—Details of timing specific for flat panels, other than clock recovery
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0261—Improving the quality of display appearance in the context of movement of objects on the screen or movement of the observer relative to the screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/021—Power management, e.g. power saving
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/08—Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
-
- 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
本发明公开了用于在功率管理性能得到保证的情况下执行实时视频渲染的系统、设备和方法。一种系统至少包括软件驱动程序、功率管理单元以及用于执行渲染任务的多个处理元件。所述系统接收与需要执行的渲染任务相对应的输入。所述软件驱动程序监测接收到的输入和所述输入所对应的渲染任务数量。所述软件驱动程序还监测下一视频同步信号之前的剩余时间量。所述软件驱动程序确定哪个性能设置将最小化功耗,同时仍允许有足够的时间来在下一视频同步信号之前完成当前帧的渲染任务。然后,所述软件驱动程序使得所述管理单元在所述多个处理元件针对所述功率当前帧执行渲染任务时向所述多个处理元件提供该性能设置。
Description
背景技术
相关技术的说明
各种应用程序都依赖于对图像或视频内容的实时渲染。例如,云游戏、虚拟现实和游戏观看行为是涉及对内容的实时渲染的应用程序的示例。视频帧的实时渲染通常使用消耗大量电力的大量处理资源。在实时渲染环境中,控制生成的图像帧时延的需求和避免帧丢失的期望对功率管理提出了特殊的要求。一方面,期望以尽可能高的时钟速率运行以最小化时延并保证图像的渲染按时完成。另一方面,如果处理硬件开始过热或接近热阈值,则硬件将降低其时钟速率,然后导致帧丢失。这些问题对于电力或热受约束的平台尤其具有挑战性。
各种基于帧的实时应用程序包括游戏应用程序以及其他类型的渲染应用程序,这些应用程序每帧提交多个作业,并以恒定或可变的帧率重复该过程。根据应用程序运行时行为,每帧处理单元工作负载(例如,作业数量、每个作业的时间、每个作业的资源)的复杂性和计算需求可能有所不同。对于此类应用程序,要么处理单元足够早地完成帧执行以允许及时地使用帧(例如,显示或传输),要么处理单元较晚完成帧执行,这导致帧被丢弃或较晚消耗。此类延迟会对用户体验产生负面影响。
鉴于以上所述,需要用于在功率管理性能得到保证的情况下管理实时视频渲染的改进的方法。
附图说明
通过结合附图参考以下描述,可以更好地理解本文描述的方法和机制的优点,在附图中:
图1是计算系统的一个实现方式的框图。
图2是计算系统的一个实现方式的框图。
图3是基于队列占用率为正在渲染的帧选择性能设置的一个实现方式的时序图。
图4是用于根据一个实现方式将传入任务数量和剩余时间映射到性能设置的表的示例。
图5是说明用于在功率管理性能得到保证的情况下执行实时视频渲染的方法的一个实现方式的广义流程图。
图6是说明用于基于应用程序类型控制处理硬件的性能设置的方法的一个实现方式的广义流程图。
具体实施方式
在以下描述中,阐述了众多特定细节以提供对本文呈现的方法和机制的透彻理解。然而,本领域普通技术人员应认识到,可以在没有这些具体细节的情况下实践各种实现方式。在一些情况下,并未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以避免使本文所述的方法混淆不清。应了解,出于说明简明和清楚起见,在图中示出的元件不一定按比例绘制。例如,一些元件的尺寸可以相对于其他元件被放大。
本文公开了用于基于用例驱动的基于事件的前馈控制窗口在功率管理调控器性能得到保证的情况下实现实时GPU渲染的系统、设备和方法。在一个实现方式中,一种系统至少包括软件驱动程序、功率管理单元以及用于执行渲染任务的一个或多个处理元件。所述系统接收与需要执行的渲染任务相对应的输入。所述软件驱动程序监测接收到的输入数量和所述输入所对应的渲染任务数量。所述软件驱动程序还监测下一视频同步信号之前的剩余时间量。所述软件驱动程序确定哪个性能设置将最小化功耗,同时仍允许有足够的时间来在下一视频同步信号之前完成当前帧的渲染任务。然后,所述软件驱动程序使得功率管理单元在多个处理元件执行当前视频帧的渲染任务时向多个处理元件提供该性能设置。
现在参考图1,示出了计算系统100的一个实现方式的框图。在一个实现方式中,计算系统100至少包括处理器105A至105N、控制单元110、输入/输出(I/O)接口120、总线125、一个或多个存储器控制器130、网络接口135、一个或多个存储器装置140、电源145、功率管理单元150、显示控制器160和显示器165。在其他实现方式中,计算系统100包括其他部件,和/或计算系统100不同地布置。处理器105A至105N表示系统100中包括的任何数量的处理器,处理器的数量因实现方式而异。
在一个实现方式中,处理器105A是通用处理器,诸如中央处理单元(CPU)。在一个实现方式中,处理器105N是具有高度并行架构的数据并行处理器。数据并行处理器包括图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等等。在一个实现方式中,处理器105N是GPU,其向显示控制器160提供像素以驱动到显示器165。在一些实现方式中,处理器105A至105N包括多个数据并行处理器。在一个实现方式中,控制单元110是在处理器105A上执行的软件驱动程序。在其他实现方式中,控制单元110包括独立于处理器105A至105N和/或合并在处理器105A至105N内的控制逻辑。一般来说,控制单元110是软件和/或硬件的任何合适组合。
一个或多个存储器控制器130表示可由处理器105A至105N访问的任何数量和类型的存储器控制器。一个或多个存储器控制器130耦接到任何数量和类型的存储器装置140。一个或多个存储器装置140表示任何数目和类型的存储器装置。例如,一个或多个存储器装置140中的存储器的类型包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、NAND闪存存储器、NOR闪存存储器、铁电随机存取存储器(FeRAM)等。
I/O接口120表示任何数量和类型的I/O接口(例如,外围部件互连(PCI)总线、PCI扩展(PCI-X)、PCIE(PCI Express)总线、吉比特以太网(GBE)总线、通用串行总线(USB))。各种类型的外围装置(未示出)耦接到I/O接口120。此类外围装置包括(但不限于)显示器、键盘、鼠标、打印机、扫描仪、媒体记录装置、外部存储装置、网络接口卡等。网络接口135用于跨网络接收和发送网络消息。总线125表示任何类型的总线或结构,其具有用于将系统100的不同部件连接在一起的任何数量的链接。
在一个实现方式中,一个或多个队列142存储在一个或多个存储器装置140中。在其他实现方式中,一个或多个队列142存储在系统100内的其他位置中。一个或多个队列142表示分配在系统100中的任何数量和类型的队列。在一个实现方式中,一个或多个队列142存储要针对正在渲染的帧执行的渲染任务。在一个实现方式中,渲染任务基于经由网络接口135接收到的输入在一个或多个队列142中排队。例如,在一个场景中,视频游戏应用程序的用户生成输入,并通过网络(未示出)发送到系统100。在另一实现方式中,输入由连接到I/O接口120的外围装置生成。
在一个实现方式中,功率管理单元150从电源145向系统100的部件供应电力,并且功率管理单元150控制系统100内的部件的各种功率性能状态。响应于接收到来自控制单元110的更新,功率管理单元150使得系统100内的其他部件提高或降低其当前功率性能状态。在各种实现方式中,改变功率性能状态包括改变装置的当前操作频率和/或改变装置的当前电压电平。当处理器105A至105N的功率性能状态降低时,这使得处理器105A至105N执行的计算任务需要更长的时间来完成。
在一个实现方式中,控制单元110向功率管理单元150发送命令,以使得处理器105N响应于确定当前帧的渲染任务数量大于给定阈值而以相对较高的功率性能状态操作。在一个实现方式中,给定阈值是基于下一视频同步信号之前的剩余时间量来调整的。例如,下一视频同步信号之前剩余的时间越短,给定阈值被编程的就越低。
在各种实现方式中,计算系统100是计算机、膝上型计算机、移动装置、服务器或各种其他类型的计算系统或装置中的任一种。应注意,计算系统100的部件的数量因实现方式而异。例如,在其他实现方式中,每个部件存在的数量比图1中示出的数量更多或更少。还应注意,在其他实现方式中,计算系统100包括图1中未示出的其他部件和/或计算系统100中示出的一个或多个部件被省略。另外,在其他实现方式中,计算系统100以与图1中所示不同的方式进行结构化。
现在转向图2,示出了计算系统200的另一实现方式的框图。在一个实现方式中,系统200包括GPU 205、系统存储器225和属于GPU 205的本地存储器230。系统200还包括其他部件,未示出所述其他部件以避免使附图混淆不清。GPU 205至少包括命令处理器235、调度器250、计算单元255A至255N、存储器控制器220、全局数据共享270、一级(L1)高速缓存265以及二级(L2)高速缓存260。应注意,计算单元255A至255N在本文也可以称为“多个处理元件”。在其他实现方式中,GPU 205包括其他部件,省略所示部件中的一个或多个,具有部件的多个实例,即使在图2中仅示出一个实例,和/或以其他合适的方式对其进行组织。在一个实现方式中,GPU 205的电路包括在(图1的)处理器105N中。
在各种实现方式中,计算系统200执行各种类型的软件应用程序中的任一种。作为执行给定软件应用程序的一部分,计算系统200的主机CPU(未示出)启动要在GPU 205上执行的渲染任务。命令处理器235接收来自主机CPU的命令,并使用调度器250向计算单元255A至255N发出对应渲染任务。在计算单元255A至255N上执行的渲染任务读取数据并将数据写入到GPU 205内的全局数据共享270、L1高速缓存265和L2高速缓存260。尽管图2中未示出,但是在一个实现方式中,计算单元255A至255N也在每个计算单元255A至255N内包括一个或多个高速缓存和/或本地存储器。在各种实现方式中,计算单元255A至255N执行任何数量的基于帧的应用程序,这些应用程序正在渲染要实时显示、流式传输或消耗的帧。在一个实现方式中,一个或多个队列232存储在本地存储器230中。在其他实现方式中,一个或多个队列232存储在系统200内的其他位置中。一个或多个队列232表示分配在系统200中的任何数量和类型的队列。在一个实现方式中,一个或多个队列232存储要由GPU 205执行的渲染任务。
在一个实现方式中,GPU 205的性能设置是基于存储在一个或多个队列232中的当前帧的渲染任务的数量以及基于下一视频同步信号之前的剩余时间量来调整的。在各种实现方式中,对GPU 205的性能设置进行调整,以便在下一视频同步信号之前完成渲染任务,同时也实现功耗目标。在一个实现方式中,性能设置由控制单元(未示出)调整。控制单元可以是在CPU(未示出)上执行的软件驱动程序,或者控制单元可以包括在可编程逻辑装置(例如FPGA)内实现的控制逻辑或作为专用硬件(例如ASIC)实现的控制逻辑。在一些情况下,控制单元包括软件和硬件的组合。
在一个实现方式中,GPU 205的性能设置对应于GPU 205的特定功率设置、功率状态或操作点。在一个实现方式中,控制单元使用动态电压和频率缩放(DVFS)来改变GPU 205的频率和/或电压,以将功耗限于选定功率分配。每个单独的频率和电压设置可以对应于单独的性能设置。在一个实现方式中,由控制单元选择的性能设置控制锁相回路(PLL)单元(未示出),所述锁相回路单元产生对应的时钟信号并向GPU 205分配所述对应的时钟信号。在一个实现方式中,由控制单元选择的性能设置控制向GPU 205提供供应电压的电压调节器(未示出)。在其他实现方式中,可以使用其他机制来响应于接收到来自控制单元的到达特定性能设置的命令来改变GPU 205的操作点和/或功率设置。
现在参见图3,示出了基于队列占用率为正在渲染的帧选择性能设置的一个实现方式的时序图。当渲染视频序列的帧时,在一个实现方式中,软件驱动程序至少部分地基于队列占用率来改变渲染硬件的性能设置。队列占用率是指针对正在渲染的当前帧的已为处理硬件(例如GPU)排队的渲染任务的数量。
示出了帧周期,其由与正在渲染的每个帧的开始和结束相对应的视频同步信号(或VSync)限定。在图3所示的第一帧周期中,针对正在渲染的帧为处理硬件设置初始性能设置325。初始性能设置325可以是一个实现方式中的默认设置。在另一实现方式中,初始性能设置325可基于应用程序的类型、应用程序生成的提示、对正在渲染的当前帧的复杂性估计和/或基于其他因素进行编程。在一个实现方式中,负责控制性能设置的软件驱动程序监测一个或多个渲染任务队列的队列占用率。软件驱动程序在每个帧周期内多次监测队列占用率,并且根据实现方式,监测的频率可以是固定的或是可编程的。如图3所示,第一占用率样本305指定已排队的渲染任务的特定数量。基于该样本305,软件驱动程序保持当前性能设置325。
下一队列占用率样本310比前一样本305减少。这指示由于处理硬件已经完成一个或多个渲染任务,渲染任务的数量已减少。相应地,响应于检测到从样本310到样本305队列占用率减少,软件驱动程序降低性能设置330以减少处理硬件的功耗。在接下来的两个样本315和320中,这种趋势将继续,其中软件驱动程序分别针对性能设置335和340降低功率。性能设置的这种降低是可接受的,因为处理硬件针对当前帧要完成的渲染任务较少。当视频同步信号发生时,当前帧被发送到显示器,通过网络发送到一个或多个客户端,或发送到其他位置。
对于下一帧周期,第一占用率样本345指示该帧的渲染任务相对较少。相应地,在帧周期开始时,处理硬件的性能设置340可以保持在相对较低的水平。下一占用率样本350指示渲染任务的数量已经减少,从而允许较低的性能设置370。然而,随后的占用率样本355指示队列占用率已经增加。这可能是由于接收到多个渲染任务,这可能是由游戏场景中的玩家输入、虚拟现实环境中的用户移动或其他类型的应用程序中生成的其他输入或事件引起的。
当软件驱动程序检测到占用率样本355的占用率增加,以及下一视频同步信号之前的剩余时间减少时,软件驱动程序通过将提供给处理硬件的功率增加到性能设置375来作出响应。在一个实现方式中,性能设置375是处理硬件的最大性能设置。接下来的两个占用率样本360和365指示当前帧的渲染任务的数量已经减少。然而,完成这些渲染任务可用的时间也已减少,这意味着软件驱动程序将为处理硬件保持相对较高的性能设置375。
时序图300中示出的示例指示软件驱动程序基于一个或多个渲染任务队列的队列占用率来调整性能设置的一个特定实现方式。在其他实现方式中,软件驱动程序可以基于队列占用率的变化进行其他类型的调整。应理解,性能设置的更新粒度可以根据实现方式而有所不同。此外,软件驱动程序检查队列占用率的频率也可以根据实现方式而有所不同。
现在转向图4,示出了用于将传入任务的数量和剩余时间映射到性能设置的表400的一个实现方式。在一个实现方式中,控制逻辑或软件驱动程序对表400的列405和410执行查找,以检索对应的性能设置。所检索到的性能设置用于对多个处理元件(例如,图2的GPU205)进行编程以在特定操作点处操作。在一个实现方式中,列405包括传入任务(例如,渲染任务)数量的不同的可能值。在其他实现方式中,列405包括其他值,所述值表示渲染当前帧需要执行的工作量。例如,在另一实现方式中,列405是根据队列占用率来度量的。在其他实现方式中,列405是根据接收到的提示数量、检测到的事件数量或以其他方式来度量的。在一个实现方式中,列410包括下一视频同步信号之前的不同剩余时间量的条目。
在一个实现方式中,软件驱动程序使用渲染任务的数量和下一视频同步信号之前的剩余时间量来执行表400的查找。如果查找导致命中,则从匹配条目中检索性能设置。如果查找导致未命中,则软件驱动程序可以基于两个最近的条目插入性能设置值。在检索和/或计算特定性能设置之后,软件驱动程序使得渲染硬件以特定性能设置操作。在一个实现方式中,软件驱动程序对表400每帧执行多次查找,以在渲染任务数量和/或剩余时间量在帧周期期间变化时更新性能设置。
在一个实现方式中,对于可能在系统上运行的每个不同应用程序,都有单独的表400。例如,对于云游戏环境,系统存储第一表400A。对于虚拟现实应用程序,系统存储第二表400B。系统还可以为不同应用程序存储任何数量的其他表400C至400N。对于执行应用程序时可能要执行的渲染任务,每个应用程序可以具有不同的特性和复杂性。相应地,每个应用程序都有单独的表400,以适应应该基于渲染任务数量和剩余时间使用的不同性能设置。
在一个实现方式中,每个表400由软件进行编程。表400可以基于测试数据进行编程,和/或表400可以基于基于监测应用程序行为的实时训练进行编程。例如,在一个实现方式中,表400由具有给定应用程序的默认值的软件进行编程。然后,在运行时期间,软件可以监测给定应用程序,以查看与用于生成表400的默认值的测试场景相比,在运行时环境中是否已观察到任何变化。如果渲染任务花费的时间比预测的要长,或者如果渲染任务完成的时间比预测的要早,则存储在性能设置列415中的值可以被更新,以更准确地反映给定应用程序的行为。在另一实现方式中,软件驱动程序不是使用表400来选择性能设置,而是使用公式来基于传入任务的数量和剩余时间计算性能设置。在其他实现方式中,软件驱动程序使用其他合适的技术来选择性能设置。
现在转到图5,示出了用于在功率管理性能得到保证的情况下执行实时视频渲染的方法500的一个实现方式。出于论述的目的,按有序次序示出此实现方式中的步骤和图6的那些步骤。然而,应注意,在所述方法的各种实现方式中,同时执行、按与所示不同的次序执行、或者完全省略所述元件中的一个或多个。还在需要时执行其他附加元件。本文中所描述的各种系统或设备中的任一个被配置为实现方法500。
软件驱动程序监测与正在渲染的当前帧的渲染任务相对应的输入(框505)。在一个实现方式中,输入是与网络上的用户相关联的事件。例如,用户正在玩云游戏场景中的视频游戏。在另一实现方式中,输入是虚拟现实环境中的用户移动。在其他实现方式中,在框505中接收其他类型的场景的其他类型的输入。此外,软件驱动程序监测当前帧周期中在下一视频同步信号之前的剩余时间量(框510)。接下来,软件驱动程序确定用于在下一视频同步信号之前的剩余时间量内完成传入渲染任务的最低可能性能设置(框515)。在一个实现方式中,处理硬件(例如GPU)的性能设置包括对应的电压和频率值。
如果软件驱动程序确定即使在最大性能设置处也在下一视频同步信号之前的剩余时间量内无法完成传入渲染任务(条件框520,“否”分支),则软件驱动程序使得前一帧被重放并将处理硬件设置为空闲或相对较低的性能设置(例如,最低可能性能设置)(框525)。替代地,软件驱动程序可以使得当前帧在框525中延迟,而不是重放前一帧。如果有性能设置允许传入渲染任务在下一Vsync之前的剩余时间内完成(条件框520,“是”分支),则软件驱动程序使得处理硬件以给定性能设置操作(框530)。在一个实现方式中,给定性能设置是用于在下一视频同步信号之前的剩余时间量内完成传入渲染任务的最低可能性能设置。在另一实现方式中,给定性能设置是高于最低可能性能设置的一个设置,以便为在下一视频同步信号之前的剩余时间量内完成传入渲染任务提供误差幅度。在其他实现方式中,误差幅度可以增加到高于最低可能性能设置的两个或更多个设置。
如果当前帧的渲染尚未完成(条件框540,“否”分支),则在经过一定时间量后,或者在检测到某个事件(即,队列占用率的变化)后,方法500返回到框505。应注意,可以向回路添加一些迟滞,以防止性能设置被过于频繁地更改。如果当前帧的渲染已经完成(条件框540,“是”分支),则方法500结束。应注意,可以针对正在渲染的视频序列的每个视频帧执行方法500。
现在转到图6,示出了用于基于应用程序类型控制处理硬件的性能设置的方法600的一个实现方式。控制单元确定系统当前正在执行哪个应用程序(框605)。然后,控制单元加载与应用程序相对应的性能设置查找表(例如,图4的表400)(框610)。接下来,控制单元使用所述表来基于队列占用率和下一视频同步信号之前的剩余时间量为处理硬件选择性能设置(框615)。如果控制单元检测到系统正在执行不同的应用程序(条件框620,“是”分支),则方法600返回到框610。否则,如果系统继续执行给定应用程序(条件框620,“否”分支),则方法600返回到框615。应注意,在一些情况下,单个应用程序可以具有多个不同性能设置查找表。例如,视频游戏应用程序可以具有具不同渲染复杂性的不同场景。对于应用程序的第一场景,控制单元可以加载第一表,对于第二场景,控制单元加载第二表,以此类推。
在各种实现方式中,使用软件应用程序的程序指令来实现本文描述的方法和/或机制。例如,设想可由通用处理器或专用处理器执行的程序指令。在各种实现方式中,此类程序指令可以由高级编程语言表示。在其他实现方式中,程序指令可以从高级编程语言编译成二进制形式、中间形式或其他形式。替代地,可以编写描述硬件的行为或设计的程序指令。此类程序指令可以由高级编程语言(诸如C)表示。替代地,可以使用硬件设计语言(HDL),诸如Verilog。在各种实现方式中,程序指令存储在多种非暂时性计算机可读存储介质中的任一种上。存储介质可由计算系统在使用期间访问,以将程序指令提供到计算系统以用于程序执行。一般来说,此类计算系统至少包括一个或多个存储器和被配置为执行程序指令的一个或多个处理器。
应强调,上述实现方式仅是实现方式的非限制性示例。一旦充分了解上述公开内容,许多变型和修改对本领域技术人员来说将是显而易见的。所附权利要求意图被解释为涵盖所有此类变型和修改。
Claims (20)
1.一种系统,所述系统包括:
一个或多个处理元件;
功率管理单元;以及
控制单元,所述控制单元被配置为:
监测表示针对正在渲染的当前帧有多少渲染任务在等待执行的输入;
监测下一视频同步信号之前的剩余时间量;
选择给定性能设置,以允许一个或多个渲染任务在所述下一视频同步信号之前的所述剩余时间量内完成,同时也实现功耗目标;以及
将所述给定性能设置的指示传递给所述功率管理单元,以使得所述一个或多个处理元件以所述给定性能设置操作。
2.如权利要求1所述的系统,其中所述控制单元被配置为响应于确定所述输入指示更多渲染任务已经排队同时所述下一视频同步信号之前的所述剩余时间量已经减少而增加所述给定性能设置。
3.如权利要求1所述的系统,其中所述控制单元被配置为选择最低可能性能设置,所述最低可能性能设置允许所述一个或多个渲染任务在所述下一视频同步信号之前的所述剩余时间量内完成。
4.如权利要求1所述的系统,其中所述控制单元被配置为将渲染任务数量和所述剩余时间量的组合映射到所述给定性能设置。
5.如权利要求4所述的系统,其中所述控制单元被配置为维护用于将所述渲染任务数量和所述剩余时间量的所述组合映射到所述给定性能设置的表,其中所述表中的每个条目将给定渲染任务数量和给定剩余时间量映射到对应的性能设置。
6.如权利要求1所述的系统,其中所述输入包括虚拟现实环境中的用户移动。
7.如权利要求1所述的系统,其中所述控制单元还被配置为:
响应于确定所述渲染任务数量大于阈值而使得所述一个或多个处理元件以相对较高的性能设置操作,其中所述阈值是基于所述下一视频同步信号之前的所述剩余时间量;并且
响应于确定所述渲染任务数量小于或等于所述阈值而使得所述一个或多个处理元件以相对较低的性能设置操作。
8.一种方法,所述方法包括:
由控制单元监测表示针对正在渲染的当前帧有多少渲染任务在等待执行的输入;
监测下一视频同步信号之前的剩余时间量;
选择给定性能设置,以允许一个或多个渲染任务在所述下一视频同步信号之前的所述剩余时间量内完成,同时也实现功耗目标;以及
将所述给定性能设置的指示传递给功率管理单元,以使得一个或多个处理元件以所述给定性能设置操作。
9.如权利要求8所述的方法,其还包括响应于确定所述输入指示更多渲染任务已经排队同时所述下一视频同步信号之前的所述剩余时间量已经减少而增加所述给定性能设置。
10.如权利要求8所述的方法,其还包括选择最低可能性能设置,所述最低可能性能设置允许所述一个或多个渲染任务在所述下一视频同步信号之前的所述剩余时间量内完成。
11.如权利要求8所述的方法,其还包括将渲染任务数量和所述剩余时间量的组合映射到所述给定性能设置。
12.如权利要求11所述的方法,其还包括维护用于将所述渲染任务数量和所述剩余时间量的所述组合映射到所述给定性能设置的表,其中所述表中的每个条目将给定渲染任务数量和给定剩余时间量映射到对应的性能设置。
13.如权利要求8所述的方法,其中所述输入包括虚拟现实环境中的用户移动。
14.如权利要求8所述的方法,其还包括:
响应于确定所述渲染任务数量大于阈值而使得所述一个或多个处理元件以相对较高的性能设置操作,其中所述阈值是基于所述下一视频同步信号之前的所述剩余时间量;以及
响应于确定所述渲染任务数量小于或等于所述阈值而使得所述一个或多个处理元件以相对较低的性能设置操作。
15.一种设备,所述设备包括:
第一处理器;
第二处理器;以及
存储器,所述存储器存储程序指令,其中所述程序指令可由所述第一处理器执行以:
监测表示针对正在渲染的当前帧有多少渲染任务在等待执行的输入;
监测下一视频同步信号之前的剩余时间量;
选择给定性能设置,以允许一个或多个渲染任务在所述下一视频同步信号之前的所述剩余时间量内完成,同时也实现功耗目标;并且使得所述第二处理器以所述给定性能设置操作。
16.如权利要求15所述的设备,其中所述程序指令可由所述第一处理器执行以响应于确定所述输入指示更多渲染任务已经排队同时所述下一视频同步信号之前的所述剩余时间量已经减少而增加所述给定性能设置。
17.如权利要求15所述的设备,其中所述程序指令可由所述第一处理器执行以选择最低可能性能设置,所述最低可能性能设置允许所述一个或多个渲染任务在所述下一视频同步信号之前的所述剩余时间量内完成。
18.如权利要求15所述的设备,其中所述程序指令可由所述第一处理器执行以将渲染任务数量和所述剩余时间量的组合映射到所述给定性能设置。
19.如权利要求18所述的设备,其中所述程序指令可由所述第一处理器执行以维护用于将所述渲染任务数量和所述剩余时间量的所述组合映射到所述给定性能设置的表,其中所述表中的每个条目将给定渲染任务数量和给定剩余时间量映射到对应的性能设置。
20.如权利要求15所述的设备,其中所述程序指令可由所述第一处理器执行以:
响应于确定所述渲染任务数量大于阈值而使得所述第二处理器以相对较高的性能设置操作,其中所述阈值是基于所述下一视频同步信号之前的所述剩余时间量;
响应于确定所述渲染任务数量小于或等于所述阈值而使得所述第二处理器以相对较低的性能设置操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/457,179 US11100698B2 (en) | 2019-06-28 | 2019-06-28 | Real-time GPU rendering with performance guaranteed power management |
US16/457,179 | 2019-06-28 | ||
PCT/IB2020/054450 WO2020260966A1 (en) | 2019-06-28 | 2020-05-11 | Real-time gpu rendering with performance guaranteed power management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114009035A true CN114009035A (zh) | 2022-02-01 |
Family
ID=74044173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080044869.XA Pending CN114009035A (zh) | 2019-06-28 | 2020-05-11 | 在功率管理性能得到保证的情况下的实时gpu渲染 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11100698B2 (zh) |
EP (1) | EP3991425A4 (zh) |
JP (1) | JP2022539504A (zh) |
KR (1) | KR20220027964A (zh) |
CN (1) | CN114009035A (zh) |
WO (1) | WO2020260966A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11100698B2 (en) | 2019-06-28 | 2021-08-24 | Ati Technologies Ulc | Real-time GPU rendering with performance guaranteed power management |
CN112925592A (zh) | 2019-12-05 | 2021-06-08 | 超威半导体公司 | 渲染主页面的内核软件驱动的颜色重新映射 |
TWI785785B (zh) * | 2021-09-09 | 2022-12-01 | 華碩電腦股份有限公司 | 電子裝置及其電源管理方法 |
CN116563085B (zh) * | 2023-07-06 | 2023-09-01 | 湖南马栏山视频先进技术研究院有限公司 | 一种离线渲染的大规模并行处理方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100277489A1 (en) * | 2009-05-01 | 2010-11-04 | Microsoft Corporation | Determine intended motions |
CN102088472A (zh) * | 2010-11-12 | 2011-06-08 | 中国传媒大学 | 面向广域网的动漫渲染任务分解支持方法及实现系统 |
US20140168229A1 (en) * | 2012-12-14 | 2014-06-19 | Microsoft | Cpu-gpu parallelization |
US20160055615A1 (en) * | 2014-11-11 | 2016-02-25 | Mediatek Inc. | Smart Frequency Boost For Graphics-Processing Hardware |
CN106258011A (zh) * | 2014-04-30 | 2016-12-28 | 高通股份有限公司 | 用于降低图形帧处理中的功耗的cpu/gpu dcvs协同优化 |
US20170262955A1 (en) * | 2017-05-26 | 2017-09-14 | Mediatek Inc. | Scene-Aware Power Manager For GPU |
US20180157315A1 (en) * | 2016-12-01 | 2018-06-07 | Qualcomm Incorporated | System and method for proactive power and performance management of a workload in a portable computing device |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4980836A (en) | 1988-10-14 | 1990-12-25 | Compaq Computer Corporation | Apparatus for reducing computer system power consumption |
US5396635A (en) | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
US5617572A (en) | 1995-01-31 | 1997-04-01 | Dell Usa, L.P. | System for reducing power consumption in computers |
US5692202A (en) | 1995-12-29 | 1997-11-25 | Intel Corporation | System, apparatus, and method for managing power in a computer system |
US6334167B1 (en) | 1998-08-31 | 2001-12-25 | International Business Machines Corporation | System and method for memory self-timed refresh for reduced power consumption |
US6657634B1 (en) | 1999-02-25 | 2003-12-02 | Ati International Srl | Dynamic graphics and/or video memory power reducing circuit and method |
JP2003308246A (ja) | 2002-04-17 | 2003-10-31 | Fujitsu Ltd | メモリコントローラのクロック制御装置及び方法 |
US7028200B2 (en) | 2002-05-15 | 2006-04-11 | Broadcom Corporation | Method and apparatus for adaptive power management of memory subsystem |
US7428644B2 (en) | 2003-06-20 | 2008-09-23 | Micron Technology, Inc. | System and method for selective memory module power management |
US7800621B2 (en) | 2005-05-16 | 2010-09-21 | Ati Technologies Inc. | Apparatus and methods for control of a memory controller |
DE102005037635B4 (de) | 2005-08-09 | 2007-07-12 | Infineon Technologies Ag | Hardwaresteuerung für den Wechsel des Betriebsmodus eines Speichers |
US7562234B2 (en) * | 2005-08-25 | 2009-07-14 | Apple Inc. | Methods and apparatuses for dynamic power control |
US7496777B2 (en) | 2005-10-12 | 2009-02-24 | Sun Microsystems, Inc. | Power throttling in a memory system |
EP1785982A1 (en) | 2005-11-14 | 2007-05-16 | Texas Instruments Incorporated | Display power management |
US7899990B2 (en) | 2005-11-15 | 2011-03-01 | Oracle America, Inc. | Power conservation via DRAM access |
US7613941B2 (en) | 2005-12-29 | 2009-11-03 | Intel Corporation | Mechanism for self refresh during advanced configuration and power interface (ACPI) standard C0 power state |
US8102398B2 (en) * | 2006-03-03 | 2012-01-24 | Ati Technologies Ulc | Dynamically controlled power reduction method and circuit for a graphics processor |
US7873850B2 (en) | 2006-10-11 | 2011-01-18 | Hewlett-Packard Development Company, L.P. | System and method of controlling power consumption and associated heat generated by a computing device |
US7743267B2 (en) | 2006-11-08 | 2010-06-22 | Xerox Corporation | System and method for reducing power consumption in a device |
US7868479B2 (en) | 2007-06-27 | 2011-01-11 | Qualcomm Incorporated | Power gating for multimedia processing power management |
US8181046B2 (en) | 2008-10-29 | 2012-05-15 | Sandisk Il Ltd. | Transparent self-hibernation of non-volatile memory system |
US8402232B2 (en) | 2009-12-23 | 2013-03-19 | Oracle America, Inc. | Memory utilization tracking |
US8656198B2 (en) | 2010-04-26 | 2014-02-18 | Advanced Micro Devices | Method and apparatus for memory power management |
US8982136B2 (en) | 2011-05-16 | 2015-03-17 | Qualcomm Incorporated | Rendering mode selection in graphics processing units |
US9110674B1 (en) | 2011-06-23 | 2015-08-18 | Marvell International Ltd. | Systems and methods for dynamic power management and performance adjustment of media playing |
KR20140088691A (ko) * | 2013-01-03 | 2014-07-11 | 삼성전자주식회사 | Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법 |
US9348401B2 (en) * | 2013-06-25 | 2016-05-24 | Intel Corporation | Mapping a performance request to an operating frequency in a processor |
KR102169692B1 (ko) * | 2014-07-08 | 2020-10-26 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법 |
US10444819B2 (en) * | 2015-06-19 | 2019-10-15 | Intel Corporation | Techniques to control computational resources for an electronic device |
GB2545508B (en) * | 2015-12-18 | 2019-04-10 | Imagination Tech Ltd | Controlling operation of a GPU |
US10007292B2 (en) * | 2016-01-11 | 2018-06-26 | Qualcomm Incorporated | Energy aware dynamic adjustment algorithm |
US11474591B2 (en) * | 2016-08-05 | 2022-10-18 | Ati Technologies Ulc | Fine-grain GPU power management and scheduling for virtual reality applications |
GB2558884B (en) * | 2017-01-12 | 2019-12-25 | Imagination Tech Ltd | Graphics processing units and methods using cost indications for sets of tiles of a rendering space |
US10319065B2 (en) * | 2017-04-13 | 2019-06-11 | Microsoft Technology Licensing, Llc | Intra-frame real-time frequency control |
US20180329742A1 (en) * | 2017-05-10 | 2018-11-15 | Mediatek Inc. | Timer-assisted frame running time estimation |
US10373287B2 (en) * | 2017-08-18 | 2019-08-06 | Apple Inc. | Fast GPU context switch |
DE112018007545T5 (de) * | 2018-05-01 | 2021-01-21 | Intel Corporation | Energiesteuerungsarbitration |
US10388255B2 (en) * | 2018-06-29 | 2019-08-20 | Intel Corporation | Computers for supporting multiple virtual reality display devices and related methods |
US10761583B2 (en) * | 2018-09-11 | 2020-09-01 | International Business Machines Corporation | Variation-aware intra-node power shifting among different hardware components |
US10877545B2 (en) * | 2018-09-20 | 2020-12-29 | Arm Limited | Energy management in graphics processing units |
US20200183485A1 (en) * | 2018-12-07 | 2020-06-11 | Advanced Micro Devices, Inc. | Hint-based fine-grained dynamic voltage and frequency scaling in gpus |
US11100698B2 (en) | 2019-06-28 | 2021-08-24 | Ati Technologies Ulc | Real-time GPU rendering with performance guaranteed power management |
-
2019
- 2019-06-28 US US16/457,179 patent/US11100698B2/en active Active
-
2020
- 2020-05-11 EP EP20832922.7A patent/EP3991425A4/en active Pending
- 2020-05-11 KR KR1020227001688A patent/KR20220027964A/ko not_active Application Discontinuation
- 2020-05-11 WO PCT/IB2020/054450 patent/WO2020260966A1/en active Application Filing
- 2020-05-11 CN CN202080044869.XA patent/CN114009035A/zh active Pending
- 2020-05-11 JP JP2021573929A patent/JP2022539504A/ja active Pending
-
2021
- 2021-08-20 US US17/408,034 patent/US11954792B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100277489A1 (en) * | 2009-05-01 | 2010-11-04 | Microsoft Corporation | Determine intended motions |
CN102088472A (zh) * | 2010-11-12 | 2011-06-08 | 中国传媒大学 | 面向广域网的动漫渲染任务分解支持方法及实现系统 |
US20140168229A1 (en) * | 2012-12-14 | 2014-06-19 | Microsoft | Cpu-gpu parallelization |
CN106258011A (zh) * | 2014-04-30 | 2016-12-28 | 高通股份有限公司 | 用于降低图形帧处理中的功耗的cpu/gpu dcvs协同优化 |
US20160055615A1 (en) * | 2014-11-11 | 2016-02-25 | Mediatek Inc. | Smart Frequency Boost For Graphics-Processing Hardware |
US20180157315A1 (en) * | 2016-12-01 | 2018-06-07 | Qualcomm Incorporated | System and method for proactive power and performance management of a workload in a portable computing device |
US20170262955A1 (en) * | 2017-05-26 | 2017-09-14 | Mediatek Inc. | Scene-Aware Power Manager For GPU |
Also Published As
Publication number | Publication date |
---|---|
JP2022539504A (ja) | 2022-09-12 |
WO2020260966A1 (en) | 2020-12-30 |
EP3991425A4 (en) | 2023-07-26 |
KR20220027964A (ko) | 2022-03-08 |
US20200410747A1 (en) | 2020-12-31 |
US20210383596A1 (en) | 2021-12-09 |
US11954792B2 (en) | 2024-04-09 |
EP3991425A1 (en) | 2022-05-04 |
US11100698B2 (en) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11954792B2 (en) | Real-time GPU rendering with performance guaranteed power management | |
US11474591B2 (en) | Fine-grain GPU power management and scheduling for virtual reality applications | |
JP4376897B2 (ja) | プロセッサ電力状態を考慮するメモリコントローラ | |
US6950105B2 (en) | Power consumption management in a video graphics accelerator | |
JP4383853B2 (ja) | 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム | |
US8072459B2 (en) | Data processing unit with multi-graphic controller and method for processing data using the same | |
US8364999B1 (en) | System and method for processor workload metering | |
US10096302B2 (en) | Display system | |
US7882380B2 (en) | Work based clock management for display sub-system | |
US9183610B2 (en) | Method for graphics driver level decoupled rendering and display | |
CN116635929A (zh) | 在多显示器系统上执行异步存储器时钟改变 | |
KR20220143667A (ko) | 지연된 그래픽 프로세싱 유닛 렌더 시간을 보상하기 위한 감소된 디스플레이 프로세싱 유닛 전달 시간 | |
US20160358303A1 (en) | Low-power state with a variable refresh rate display | |
CN105719229B (zh) | 一种基于指令流截取的应用程序透明化的分辨率控制 | |
WO2021151228A1 (en) | Methods and apparatus for adaptive frame headroom | |
US10955901B2 (en) | Saving power in the command processor using queue based watermarks | |
US20240111442A1 (en) | On-Demand Regulation of Memory Bandwidth Utilization to Service Requirements of Display | |
US20240103754A1 (en) | Memory Power Performance State Optimization During Image Display | |
US11948534B2 (en) | Display cycle control system |
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 |