CN107851042B - 使用命令流提示来表征gpu工作负载和电力管理 - Google Patents
使用命令流提示来表征gpu工作负载和电力管理 Download PDFInfo
- Publication number
- CN107851042B CN107851042B CN201680046383.3A CN201680046383A CN107851042B CN 107851042 B CN107851042 B CN 107851042B CN 201680046383 A CN201680046383 A CN 201680046383A CN 107851042 B CN107851042 B CN 107851042B
- Authority
- CN
- China
- Prior art keywords
- command stream
- gpu
- power
- power management
- hint
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种图形处理方法包括:在图形处理单元GPU处,接收命令流,所述命令流包含将由所述GPU执行的一或多个命令以及至少一个命令流提示,所述至少一个命令流提示提供所述命令流的工作负载的表征;在执行所述命令流之前,通过所述GPU,基于所述至少一个命令流提示来执行电力管理过程;以及通过所述GPU,执行所述命令流。
Description
技术领域
本发明涉及图形处理,且更确切地说,涉及用于图形处理单元(GPU)的工作负载表征和电力管理技术。
背景技术
移动装置由具有受限大小和/或容量的电池供电。通常,移动装置用于进行电话呼叫、检查电子邮件、记录/重放图片/视频、收听无线电、导航、网络浏览、玩游戏、管理裝置和执行计算等等。这些动作中的许多动作利用图形处理单元(GPU)来执行一些任务。实例GPU任务包含将内容渲染到显示器;以及执行一般计算计算(例如在通用GPU(GPGPU)操作中)。因此,GPU通常是移动装置中的电力的大消耗者。由此,管理GPU的电力消耗来延长电池寿命是有益的。
发明内容
一般来说,本发明描述了用于在图形处理单元(GPU)中执行电力管理的技术。本发明的技术可包含将命令流提示插入到GPU命令流中,以便表征所述命令流所表示的工作负载。所述GPU中的电力管理单元接着可在执行命令流之前,使用命令流提示来执行电力管理过程。
在一个实例中,本发明描述一种数据处理方法,所述方法包括:在GPU处接收命令流,所述命令流包含将由GPU执行的一或多个命令以及至少一个命令流提示,所述至少一个命令流提示提供所述命令流的工作负载的表征;在执行所述命令流之前,通过所述GPU,基于所述至少一个命令流提示来执行电力管理过程;以及通过所述GPU,执行所述命令流。
在另一实例中,本发明描述一种经配置以处理数据的设备,所述设备包括GPU。所述GPU包括:前端处理器,其经配置以接收命令流,所述命令流包含将由所述GPU执行的一或多个命令以及至少一个命令流提示,所述至少一个命令流提示提供所述命令流的工作负载的表征;电力管理单元,其经配置以在执行所述命令流之前,基于所述至少一个命令流提示来执行电力管理过程;以及处理单元,其经配置以执行所述命令流。
在另一实例中,本发明描述一种经配置以处理数据的设备,所述设备包括:用于接收命令流的装置,所述命令流包含将由图形处理单元(GPU)执行的一或多个命令,以及至少一个命令流提示,所述至少一个命令流提示提供所述命令流的工作负载的表征;用于在执行所述命令流之前基于所述至少一个命令流提示执行电力管理过程的装置;以及用于执行所述命令流的装置。
在另一实例中,本发明描述一种存储指令的计算机可读存储媒体,所述指令在被执行时,致使经配置以处理数据的装置的一或多个处理器:接收命令流,所述命令流包含将由图形处理单元(GPU)执行的一或多个命令,以及至少一个命令流提示,所述至少一个命令流提示提供所述命令流的工作负载的表征;在执行所述命令流之前,基于所述至少一个命令流提示,执行电力管理过程;以及执行所述命令流。
附图和以下描述中陈述一或多个实例的细节。其它特征、目标和优点将从所述描述、图式以及所附权利要求书显而易见。
附图说明
图1是说明根据本发明中所描述的一或多个实例技术的用于处理数据的实例装置的框图。
图2是更详细地说明图1中所说明的装置的组件的框图。
图3是示出根据本发明的技术的实例命令流的概念图。
图4是说明根据本发明的技术的实例电力管理过程的流程图。
图5是说明根据本发明中描述的技术的实例方法的流程图。
具体实施方式
本发明是针对用于图形处理单元(GPU)中的电力管理的技术。用于管理GPU中的功耗的技术的一般实例包含基于图形驱动程序的电力管理技术和基于硬件的(例如基于GPU)的电力管理技术。
在基于图形驱动程序的电力管理技术的一个实例中,图形驱动程序控制GPU和相关联的存储器的操作电压和/或操作频率(例如时钟速率)。在一个实例中,GPU驱动器可确定GPU繁忙百分比(即,与GPU闲置时相比,GPU为繁忙的时间)。接着将所述GPU繁忙百分比与一或多个阈值进行比较。基于所述比较,图形驱动程序可升高或降低所述GPU的电力状态(例如操作电压和/或操作频率)。
在基于硬件的电力管理技术的一个实例中,GPU中的硬件单元可经配置以使GPU管线的处理单元的不同群组电力骤降(例如断开),和/或调整所述GPU的电力状态。所述GPU的负责电力管理的硬件块可被称为GPU电力管理单元(GPMU)。在一个实例中,GPMU可经配置以跟踪电力预算。当超出电力预算时,GPMU可经配置以通过使所述GPU中的处理单元电力骤降和/或降低所述GPU的电力状态来降低所述GPU的电力消耗。
上文所论述的实例电力管理技术的一个缺点是工作负载的粗粒度属性的使用,例如GPU利用率或电力预算。举例来说,使用指示滑动窗中的GPU利用率历史的信息来预报传入工作负载的GPU利用率的常规电力管理技术对于不同于先前工作负载的传入工作负载来说可能是不准确的。通常,过去的GPU利用率并不提供上下文感知(例如指示传入工作负载的性质的信息),且可能不足以识别下一传入工作负载的特定性能和电力要求。
根据本发明的实例,工作负载表征可用作GPU中的电力管理的一个基础。电力管理可因为工作负载的准确表征而得以改进。也就是说,根据本发明的技术,在GPU处理工作负载之前,GPU可使用指示上下文(即,将执行的工作的表征)的信息来执行电力管理功能。以此方式,使用本发明的技术的GPU可实现对未来工作负载的较精细粒度、较准确的电力管理。在下文描述的实例中,本发明描述借此提示表征传入工作负载包含于用于所述工作负载的命令流中的技术。所述GPU中的电力管理单元接着可在执行命令流之前,使用来自命令流的提示来执行管理技术。
图1是说明根据本发明中所描述的一或多个实例技术的用于处理数据的实例装置的框图。图1说明装置10,其实例包含(但不限于)视频装置(例如媒体播放器)、机顶盒、移动装置(例如移动电话)、个人数字助理(PDA)、台式计算机、膝上型计算机、游戏控制台、视频会议单元、平板计算装置等。
在图1的实例中,装置10包含处理器12、GPU 14和系统存储器16。在一些实例中,例如其中装置10是移动装置的实例,处理器12和GPU 14可形成为集成电路(IC),例如芯片上系统(SoC)。举例来说,IC可被形成为芯片封装内的处理芯片。在一些实例中,处理器12和GPU 14可容纳于不同集成电路(即,不同芯片封装)中,例如其中装置10是具有容纳GPU 14的单独图形卡的桌上型或膝上型计算机的实例。然而,在装置10是移动装置的实例中,或许有可能处理器12和GPU 14容纳于不同集成电路中。
处理器12和GPU 14的实例包含(但不限于)一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。处理器12可为装置10的中央处理单元(CPU)。在一些实例中,GPU 14可为专用硬件,其包含集成和/或离散逻辑电路,所述集成和/或离散逻辑电路向GPU 14提供适合于图形处理的大规模并行处理能力。在一些情况下,GPU 14还可包含通用处理能力,且在实施通用处理任务(例如,所谓的“计算”任务)时可被称为通用GPU(GPGPU)。
出于说明的目的,结合GPU 14描述本发明中描述的技术。然而,本发明中描述的技术不受此限制。本发明中描述的技术可延伸到其它类型的处理单元。
处理器12可执行各种类型的应用程序。应用程序的实例包含网络浏览器、电子邮件应用程序、电子表格、视频游戏或产生可视对象以供显示的其它应用程序。系统存储器16可存储用于执行一或多个应用程序的指令。在处理器12上执行应用程序使得处理器12产生用于有待显示的图像内容的图形数据。处理器12可向GPU 14发射图像内容的图形数据以供进一步处理。GPU 14可经配置以执行2D和/或3D图形处理。
在一些非图形相关计算实例中,处理器12可产生较适合于由GPU 14处理的数据。此类数据不需要一定是图形或显示目的所需的。举例来说,处理器12可输出需要通过GPU14对其执行矩阵运算的数据,并且GPU 14又可执行矩阵运算。
一般来说,处理器12可将处理任务卸载给GPU 14,例如需要大规模并行运算的任务。作为一个实例,图形处理需要大规模并行运算,并且处理器12可将此些图形处理任务卸载给GPU 14。然而,例如矩阵运算的其它运算也可得益于GPU 14的并行处理能力。在这些实例中,处理器12可充分利用GPU 14的并行处理能力,以致使GPU 14执行非图形相关操作。
处理器12可根据特定应用处理接口(API)与GPU 14通信。此些API的实例包含的克罗诺斯(Khronos)小组的或OpenGL以及OpenCLTM;然而,本发明的各方面不限于DirectX、OpenGL或OpenCL API,且可扩展到其它类型的API。此外,本发明中描述的技术不需要根据API来起作用,且处理器12和GPU 14可利用任何通信技术。
系统存储器16可为用于装置10的存储器,且可包括一或多个计算机可读存储媒体。系统存储器16的实例包括但不限于随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器或其它媒体,所述其它媒体可用于运载或存储以指令和/或数据结构的形式的所需程序代码并且可通过计算机或处理器存取。
在一些方面中,系统存储器16可包含致使处理器12和/或GPU 14执行在本发明中归于处理器12和GPU 14的功能的指令。因此,系统存储器16可为上面存储有指令的计算机可读存储媒体,所述指令在被执行时,致使一或多个处理器(例如处理器12和GPU 14)以执行各种功能。
在一些实例中,系统存储器16是非暂时性存储媒体。术语“非暂时性”可指示存储媒体未体现于载波或所传播的信号中。然而,术语“非暂时性”不应解释为意味着系统存储器16是非可移动的或其内容为静态的。作为一个实例,可从装置10移除系统存储器16,并且将所述系统存储器移动到另一装置。作为另一实例,大体类似于系统存储器16的存储器可插入到装置10中。在某些实例中,非暂时性存储媒体可存储可随时间的过去而改变数据(例如,存储在RAM中)。
装置10还可包含显示器18、用户接口20和收发器模块22。为清楚起见,装置10可包含图1中未图示的额外模块或单元。举例来说,装置10可包含扬声器和麦克风(两者都不展示在图1中),以在装置10为移动无线电话的实例中实现电话通信。此外,装置10中所示的各种模块和单元可不是在装置10的每个实例中都是必需的。举例来说,在其中装置10是桌上型计算机的实例中,用户接口20和显示器18可在装置10外部。作为另一实例,在显示器18为移动装置的触敏或压敏显示器的实例中,用户接口20可为显示器18的一部分。
显示器18可包括液晶显示器(LCD)、阴极射线管(CRT)显示器、等离子显示器、触敏显示器、压敏显示器或另一类型的显示装置。用户接口20的实例包含(但不限于)轨迹球、鼠标、键盘和其它类型的输入装置。用户接口20还可为触摸屏,且可作为显示器18的部分并入。
收发器模块22可包含用以允许装置10与另一装置或网络之间的无线或有线通信的电路。收发器模块22可包含调制器、解调器、放大器以及其它用于有线或无线通信的此类电路。
在本发明中描述的技术中,第一处理单元(例如,处理器12)将某些任务卸载到第二处理单元(例如,GPU 14)。为了卸载任务,处理器12将待由GPU 14执行的命令以及作为所述命令的操作数的数据(例如,所述命令对其操作的数据)输出到系统存储器16和/或直接输出到GPU 14。GPU 14直接从处理器12和/或从系统存储器16接收所述命令和数据,且执行所述命令。在一些实例中,并非在系统存储器16中存储将由GPU 14执行的命令以及用于所述命令的数据操作数,处理器12可将所述命令和数据操作数存储在包含GPU 14和处理器12且由处理器12和GPU 14两者共享的IC本地的本地存储器中。一般来说,本发明中描述的技术适用于处理器12可使命令可用于在GPU 14上执行的各种方式,且所述技术不限于以上实例。
在例如处理器12将待由GPU 14执行的命令存储在存储器(例如,系统存储器16或本地存储器)中的那些实例等一些实例中,处理器12可输出识别GPU 14将执行的命令群组的存储器地址信息。GPU 14将执行的命令群组称为命令流。在处理器12直接输出命令到GPU14的实例中,所述命令流包含处理器12指令GPU 14立即执行的那些命令。
处理器12可有各种方式来将命令分组成命令流。作为一个实例,命令群组包含由GPU 14再现一个帧所需要的所有命令。作为另一实例,命令群组可为所谓的“原子命令”,其将一起执行而无需GPU 14切换到其它命令。将命令分组成提交到GPU 14的命令流的其它方式可为可能的,且本发明不限于上述实例技术。
根据本发明的技术,如将在下文更详细地描述,处理器12可经配置以在命令流中包含咨询提示(例如命令流提示)。所述命令流提示包含提供GPU 14的未来工作负载的表征的信息。如将在下文更详细地阐释,包含于命令流中的命令流提示可包含表征信息,例如应用程序类型的指示、上下文类型的指示、渲染模式的指示、工作负载大小的指示和/或未来工作负载的可接受服务质量等级范围的指示中的一或多者。在一些实例中,命令流提示(例如表征信息)可直接包含在命令流中。在其它实例中,命令流中的命令流提示可包括指针、索引或其它间接指示,其告知GPU 14在哪存取表征信息(例如在存储器中)。GPU 14(GPU 14的例如电力管理单元)可经配置以从命令流检索命令流提示,且在GPU 14执行含有命令流提示的命令流之前,基于所述命令流提示来执行电力管理过程。电力管理过程可包含以下各项中的一或多者:使GPU 14的处理单元电力骤降;调整GPU 14的处理单元的操作电压;调整操作频率;和/或执行可用于控制GPU 14的电力消耗的任何其它技术或过程。使处理单元电力骤降可涉及完全切断到处理单元的电力。
由此,根据本发明的一个实例,装置10是经配置以进行以下操作的装置的实例:产生一或多个命令供GPU 14执行;基于所述一或多个命令产生至少一个命令流提示,所述至少一个命令流提示提供所述命令流的工作负载的表征;以及产生命令流以包含所述一或多个命令和所述至少一个命令流提示。装置10可进一步经配置以通过GPU 14接收所述命令流;在执行所述命令流之前,基于所述至少一个命令流提示来执行电力管理过程;以及执行所述命令流。
图2是更详细地说明图1中所说明的装置的组件的框图。如图2中所示出,处理器12可经配置以执行应用程序40和GPU驱动程序42。应用程序40可为任何应用程序,其由处理器12执行,以致使一或多个命令分担到GPU 14以供处理。应用程序40的实例可包含致使处理器12将3D渲染命令卸载到GPU 14的应用程序(例如视频游戏应用程序)、致使处理器12将2D渲染命令卸载到GPU 14的应用程序(例如用户接口应用程序),或致使处理器12将一般计算任务卸载到GPU 14的应用程序(例如GPGPU应用程序)。
如上文所描述,处理器12可归因于GPU 14的大规模并行处理能力而将任务卸载到GPU 14。举例来说,GPU 14可被设计有单指令多数据(SIMD)结构。在SIMD结构中,GPU 14的处理单元46可包含多个SIMD处理元件,其中每一SIMD处理元件执行相同命令,但是对不同数据执行。
在特定SIMD处理元件上执行的特定命令被称作线程。每一SIMD处理元件可视为执行不同线程,因为用于给定线程的数据可能不同;然而,在处理元件上执行的线程是与在其它处理元件上执行的命令相同的命令。以此方式,SIMD结构允许GPU 14并行执行许多任务(例如,同时)。
为了避免混淆,本发明使用术语“命令”来一般地指代由GPU 14的处理单元46执行的过程。命令可包含实际命令,组成的子命令(例如存储器调用命令)、线程,或其中GPU 14执行特定功能的其它方式。处理单元46可包含一或多个着色器核心(例如可编程处理单元包含算术逻辑单元)或固定功能管线的一或多个单元。在一些实例中,处理单元46的一部分(例如电力域)可专用于2D图形处理,而另一部分(例如电力域)或处理单元46可专用于3D图形处理。
处理器12可经配置以将两个或更多个命令分组成命令流。图2示出存储在系统存储器16中的命令流50、52和54。命令“C”58表示命令流50中的一个命令。在一些实例中,命令流中的每一者可表示单独类型的工作负载(例如3D渲染、2D渲染、计算任务等)。在其它实例中,命令流可包含用于两个或更多个不同类型的工作负载的命令。根据本发明的技术,处理器12(例如通过GPU驱动程序42的执行)可经配置以在命令流中包含命令流提示。所述命令流提示可为表征命令流的工作负载的一或多个语法元素。命令流提示“H”56表示命令流50中的一或多个命令流提示。
在一些实例中,GPU驱动程序42所产生的命令流提示H表征命令流的工作负载的属性。实例命令流提示包含尤其指示工作负载的应用程序类型、工作负载的上下文类型、工作负载的渲染模式、工作负载的大小和/或工作负载的可接受服务质量(QoS)等级范围的信息(例如语法元素)。如将在下文更详细地阐释,在执行特定命令流之前,GPU 14的电力管理单元70可使用插入到命令流50、52和54中的命令流提示,来执行电力管理过程。在一些实例中,电力管理单元70可实施为固定功能状态机。在其它实例中,电力管理单元70可实施为结合执行软件和/或固件的可编程处理器工作的一或多个固定功能硬件块的组合。在其它实例中,电力管理单元70可完全实施为执行软件和/或固件的处理器。因为命令流提示表征传入工作负载,且因此提供特定命令流所需的处理能力的指示,在处理工作负载之前,GPU 14能够更有效地管理电力。
应用程序类型命令流提示可为指示正卸载命令以供GPU 14执行的应用程序(例如应用程序40)的类型的指示(例如语法元素)。实例应用程序类型包含用户接口、视频游戏、2D渲染、3D渲染、计算应用程序(例如GPGPU应用程序)等。应用程序类型可指示执行工作负载所需的处理电力的量,和/或完成所述工作负载的任何时序要求。举例来说,图形应用程序(例如用户接口应用程序、游戏等)可具有准时完成GPU任务的强烈要求,且为了维持良好的用户体验而处于高帧速率。举例来说,图形应用程序可具有应完成工作负载的目标帧速率最后期限(例如以每秒帧数(FPS)来计)。然而,计算应用程序可不具有此类要求。然而,通常尽可能快速地完成计算工作负载是合意的。
上下文类型命令流提示可指示命令流所表示的工作负载是针对图形应用程序(例如借此渲染和显示一或多个图像的应用程序)还是计算应用程序(例如其中GPU用以进行计算且不一定显示任何图像的应用程序)。在一些实例中,图形应用程序可具有比计算应用程序高的电力和时序(例如就必须多快地完成工作负载来说)要求。
渲染模式命令流提示可指示用于工作负载的渲染模式。当上下文类型命令流提示是图形上下文类型时,可插入此命令流提示。实例渲染模式包含直接渲染和分仓渲染(还被称作基于平铺块的渲染)。直接渲染是借此同时渲染所述帧的全部的渲染技术。分仓渲染是将帧分成若干区段(例如仓或平铺块)且独立地渲染每一区段的渲染技术。一般来说,在移动装置或具有受限快速GPU存储器(GMEM)的任何装置上,直接渲染可能较慢、电力较密集的操作,因为对系统存储器16的许多存取可经由总线80进行。
工作负载大小命令流提示可指示将处理的工作负载的大小。对于图形上下文类型,大小命令流提示可指示将渲染的帧或表面的大小。对于计算上下文类型,大小命令流提示可指示计算工作负载的核心大小(即,通常在其上执行计算的编号矩阵的大小)。工作负载的大小越大,对GPU 14的电力要求越大。
可接受QoS等级命令流提示范围可指示针对图形上下文类型将实现的最小和目标FPS。最小或目标FPS越高,GPU 14处理工作负载的电力要求将越高。
GPU驱动程序42可经配置以从应用程序40、从用户设置,和/或从命令流50、52和54中的命令的分析,确定上文所述的命令流提示中的一或多者。在一个实例中,GPU驱动程序42可经配置以使用API监视过程(例如通过监视应用程序40所进行的API呼叫)来确定命令流提示,且接着将所述所确定的命令流提示插入到位流中。另外,在另一实例中,GPU驱动程序42可经配置以分析GPU 14针对给定应用程序的工作负载历史、性能历史和/或QoS历史。工作负载历史的实例可包含GPU 14的运行平均繁忙和/或闲置持续时间、GPU 14的闲置/繁忙比率、GPU 14的工作负载的运行平均值的方差,和/或GPU 14的工作负载的运行平均值的趋势。
图3是示出根据本发明的技术的实例命令流的概念图。图3示出可包含命令流提示56和57的命令流50。在本发明的一个实例中,命令流提示56可与在命令流提示56之后且在命令流50中的下一命令流提示(例如命令流提示57)之前的所有命令“C”所表示的工作负载有关。命令流提示57接着可应用于由在命令流提示57之后且在命令流中的下一命令流提示之前的所有命令“C”表示的工作负载。在一些实例中,命令流50可针对整个命令流仅具有一个命令流提示,或命令流提示的集合。在其它实例中,命令流可包含多个不同工作负载,且每一工作负载可具有其自身的相关命令流提示或命令流提示集合。
在本发明的一个实例中命令流提示56可呈包含多个不同类型的命令流提示的字段的数据结构的形式。在图3的实例中,命令流提示56可为包含用于存储应用程序类型、上下文、渲染模式、大小和/或QoS的指示(例如语法元素)的字段的数据结构,如上文所论述。举例来说,命令流提示可包含应用程序类型字段56A、上下文字段56B、渲染模式字段56C、大小字段56D和QOS字段56E。在一些实例中,所述字段中的每一者可存在于命令流提示56的数据结构中,不管GPU驱动程序42是否产生针对特定字段的指示。举例来说,GPU驱动程序42可经配置以将语法元素插入到字段56A到56E中的每一者中,每一相应语法元素的值表示工作负载的特性。
在其它实例中,GPU驱动程序42可经配置以仅插入与命令流的特定工作负载相关的特定命令流提示。也就是说,并非将命令流提示包含在固定数据结构中,而是GPU驱动程序42可包含表征给定工作负载的命令流提示的一或多个个别指示(例如语法元素)。举例来说,GPU驱动程序42可经配置以插入命令流提示的子集,例如图3的命令流51中的56A(应用程序类型)、56B(上下文)和56D(大小)中的一或多者,例如所有或少于所有命令流提示。也就是说,GPU驱动程序42无需将所有可能类型的命令流提示插入在每个命令流中。在一些情况下,某一类型的命令流提示对于某一工作负载可能不适用。举例来说,对于计算工作负载,将不需要渲染模式命令流提示,因为计算工作负载并不涉及渲染。在此情况下,渲染模式命令流提示可从命令流省略。
返回到图2,在处理器12将所产生的命令和命令流提示存储在系统存储器16中之后,处理器12使所述命令可用于供GPU 14执行。举例来说,处理器12向GPU 14传送一组所存储的命令的存储器地址及其运算数数据,其中GPU 14将执行所述组命令,且传送指示GPU14何时执行所述组命令的信息。以此方式,处理器12将命令提交到GPU 14以供执行。
如图2中所说明,处理器12还可执行GPU驱动程序42。除将命令流提示插入到命令流50、52和54中之外,GPU驱动程序42可经配置以提供处理器12和GPU 14彼此通信的机制。举例来说,当处理器12将图形或非图形(例如计算)处理任务卸载到GPU 14时,处理器12经由GPU驱动程序42将此些处理任务卸载到GPU 14。举例来说,当处理器12输出指示GPU 14要执行的命令的量的信息时,GPU驱动程序42可为处理器12的将信息输出到GPU 14的单元。
GPU驱动程序42可根据应用程序处理接口(API)来配置;但GPU驱动程序42不需要限于根据特定API来配置。在装置10是移动装置的实例中,可根据OpenGL ES API来配置GPU驱动程序42。OpenGL ES API具体被设计成用于移动装置。在装置10是非移动装置的实例中,可根据OpenGL API来配置GPU驱动程序42。
当使命令流(例如命令流50、52和/或54)可供GPU 14使用来进行处理时,前端处理器48可经配置以经由总线80从系统存储器16存取命令流。前端处理器48还可从系统存储器16或直接从处理器12检索用于所述命令的运算数数据。前端处理器48可确定哪些命令将由处理单元46的特定部分执行。
根据本发明的技术,前端处理器48可经配置以剖析命令流50,且将命令流提示56传送到电力管理单元70,或以其它方式使其可用。电力管理单元70可经配置以读取命令流提示56中的指示,且在GPU 14的处理单元46执行所述命令流中的命令之前,基于命令流提示56执行GPU 14的电力管理过程。
在本发明的上下文中,电力管理过程是用以控制GPU 14的电力使用的任何过程。控制电力使用可包含以下各项中的任一者:相对于过去电力使用减小当前电力使用;相对于过去电力使用增加当前电力使用,或使当前电力使用维持在与过去电力使用相同的等级。在本发明的某一非限制性实例,电力管理单元70可经配置以通过以下操作来执行电力管理过程:调整(即,增加或减小)GPU 14的一或多个电力域的操作电压电平;调整(即,增加或减小)GPU 14的一或多个电力域的操作时钟频率;和/或电力骤降(例如关电)到GPU 14的一或多个电力域。操作电压和/或操作频率可调整到或可使其电力骤降的GPU 14的任何电力域可被称为可骤降电力域。在其它实例中,电力管理单元70可经配置以基于命令流提示请求对总线80和系统存储器16中的一或多者的操作电压和/或操作频率调整。
电力管理单元70可经配置以通过控制时钟和电压控制单元60的输出,来调整GPU14或GPU 14的个别电力域44的操作电压或操作时钟频率中的一或多者。时钟和电压控制单元60可负责调整GPU 14的操作电压和/或操作时钟频率。电力管理单元70可经配置以控制时钟和电压控制单元60的输出,和/或另外指令时钟和电压控制单元60,使得GPU 14的一或多个电力域44的操作电压和/或操作时钟频率得以更改。
处理单元46执行命令的速率(例如时钟频率)可影响GPU 14的电力消耗。举例来说,如果时钟和电压控制单元60输出的操作时钟频率相对较高,那么与针对相对较低的操作时钟频率执行的处理单元46的数目相比,处理单元46可在一时间周期内执行较多命令。然而,在处理单元46正执行增加量的命令的实例中,GPU 14的电力消耗可较大。一般来说,当操作时钟频率较低时,GPU 14的电力消耗较低。在一些实例中,可通过降低处理单元46的操作电压来降低处理单元46的操作时钟频率。在其它实例中,时钟和电压控制单元60可经配置以独立地控制GPU 14的操作电压和操作时钟频率。另外,较低操作电压可导致较少的电流汲取,且因此,GPU 14产生较少的热量。热量可导致GPU 14的性能降级。因此,在检测到过多热量的情形中,较低的操作电压可为合意的。降低GPU 14的电力消耗以减少热量积聚可被称为热减轻。
在本发明的其它实例中,电力管理单元70可经配置以基于命令流提示来为对总线80和/或系统存储器16中的一或多者的操作电压和/或操作频率调整进行“表决”。在此上下文中,为操作电压和/或操作频率调整进行“表决”是从电力管理单元70发送到时钟和电压控制单元60的进行此调整的请求。在一些实例中,来自电力管理单元70的“表决”(或请求)可直接控制时钟和电压控制单元60如何以及何时进行对总线80和系统存储器16的操作电压和/或操作频率调整。在其它实例中,来自电力管理单元70的“表决”(或请求)可为时钟和电压控制单元60用来进行对总线80和系统存储器16的操作电压和/或操作频率调整的调整的许多因素中的一者。在一些实例中,可通过降低总线80和/或系统存储器16的操作电压和/或操作频率调整来降低特定工作负载的电力使用,使得GPU 14以较慢的速率接收数据和命令。在其它实例中,可通过增加总线80和/或系统存储器16的操作电压和/或操作频率调整来增加GPU 14的工作负载效率(例如在闲置时间的减少方面),使得GPU 14以较快的速率接收数据和命令。
在图2的实例中,GPU 14的处理单元46可分成一或多个电力域44。电力域44的个别电力域是指电力管理单元70借此能够独立于其它电力域执行电力管理过程的一组处理单元46。也就是说,电力管理单元70可经配置以使得电力管理过程可对电力域44的一个电力域上执行,而不一定还对所有其它电力域44执行相同的电力管理过程。电力管理单元70经配置以个别地对每一电力域、对电力域的子集,和/或共同地对所有电力域执行电力管理过程。
应理解,电力管理单元70可经配置以便以在执行命令流50之前执行电力管理过程的方式,接收、分析和使用命令流提示56。也就是说,由命令流提示56表示的工作负载的表征不一定规定电力管理单元70将采取的特定动作过程。电力管理单元70可单独使用命令流提示56,来确定如何管理GPU 14的电力消耗,或可结合其它因素使用命令流提示56。下文描述电力管理单元70可如何使用命令流提示的某一非限制性实例。
在一个实例中,GPU 14可接收命令流54,其为具有最小QoS要求的单独2D或3D图形命令流内的组成工作负载(即,一或多个图像的组合)。在此实例中,GPU驱动程序42可在命令流提示56内包含应用程序类型、上下文类型和QoS命令流提示。举例来说,参看图3,GPU驱动程序42可包含应用程序类型字段56A中的组成应用程序的指示、上下文字段56B中的图形上下文的指示,以及QoS字段56E中的最小QoS(例如就最小FPS来说)的指示。在此实例中,电力管理可使用命令流提示连同来自温度传感器62的温度数据和/或来自电流传感器64的电流数据,来执行电力管理过程以辅助热减轻。
通常,热减轻提出了一个具有挑战性的问题。当GPU 14处于热节流模式(例如其中GPU操作电压和/或操作时钟频率降低以限制温度的模式)时,温度和电流泄漏比性能优先。然而,热减轻可影响QoS。理想地,由GPU 14渲染的用户接口(例如来自组合工作负载)应保持响应性且无影子带。为了降低有功功率,同时传递充分的组成QoS,电力管理单元70可经配置以在热减轻与QoS之间做出折衷。一种方法是使组成工作负载,例如那些由当前实例的工作负载表示的组成工作负载,保持在相对较高的操作时钟频率和操作电压,以帮助确保满足最小QoS。
电力管理单元70可使用此实例的命令流提示来正确地识别组成工作负载(例如用户接口),且致使时钟和电压控制单元60设定充分的操作时钟频率和操作电压,以满足最小QoS。电力管理单元70接着可使用识别其它类型的工作负载的命令流提示来接着致使时钟和电压控制单元60降低操作时钟频率和操作电压,以满足任何热减轻要求。以此方式,对于除具有最小QoS要求的那些工作负载之外的所有工作负载维持热减轻。
在另一实例中,下一代图形API允许应用程序针对图形和计算工作负载两者使用单个API。也就是说,图形和计算工作负载两者可存在于单个命令流中。在此实例中,电力管理单元70可使用上下文字段56B和渲染模式56C来识别同一命令流内的计算和图形工作负载。图形和计算工作负载趋向于具有不同的最佳操作时钟频率和不同的操作电压。电力管理单元70可经配置以致使时钟和电压控制单元60基于上下文字段56B是指示图形工作负载还是计算工作负载,来设定操作时钟频率和操作电压。此外,对于图形工作负载,电力管理单元70可经配置以致使时钟和电压控制单元60基于渲染模式字段56C指示直接渲染还是分仓渲染而设定操作时钟频率和操作电压。在一些实例中,直接渲染可结合较高的操作电压和/或操作时钟频率更高效地操作。另外,处理单元46的某些电力域可在计算工作负载的情况下电力骤降。
在另一实例中,可使用命令流提示来识别工作负载,其中对于传入工作负载来说,电力管理的改变可能不是必需的。举例来说,考虑2D图形工作负载。在此实例中GPU驱动程序42可在应用程序类型字段56A、上下文字段56B和大小字段56D中包含命令流提示。应用程序类型字段56A和/或上下文字段56B可指示工作负载是2D图形。大小字段56D指示作用的大小。在一些实例中,电力管理单元70可经配置以使电力域44的包含处理单元46的不用于2D处理的部分的某些电力域电力骤降。然而,如果由大小字段56D中的指示表示的工作负载的大小不大于某一预定阈值,可通过使处理单元46的一部分电力骤降而实现的电力节省可能归因于重新开始此类电力域所需的电力而大部分丢失。也就是说,如果2D图形工作负载足够小,通过使处理单元46的一部分电力骤降,只能节省可忽略量的电力或不节省电力量。因此,如果工作负载的大小大于某一阈值,那么电力管理单元70可经配置以仅使处理单元46的用于2D图形工作负载的部分电力骤降。
应理解,电力管理单元70可使用除本发明中所描述的命令流提示之外的信息来做出要执行哪些电力管理过程的确定。如上文所论述,电力管理单元70还可经配置以基于来自温度传感器62和电流传感器64的输入,执行热减轻电力管理过程。另外,电力管理单元70可使用过去的GPU性能度量,作为另一输入来确定要执行什么电力管理过程。
举例来说,电力管理单元70可维持GPU 14的工作负载的运行统计。举例来说,电力管理单元70可维持运行平均繁忙和/或闲置持续时间、闲置/繁忙比率、运行平均值的方差以及工作负载的运行平均值的趋势中的一或多者。基于GPU 14的工作负载的统计,以及上文所述的命令流提示,电力管理单元70可连续地确定将由时钟和电压控制单元60输出的操作电压和/或操作时钟频率。
还应理解,包含电力管理单元70的GPU 14可经配置以使用相对项中或关于当前电力电平的命令流提示来执行电力管理过程。也就是说,命令流提示的某一组合可致使电力管理单元70调整操作电压点评;调整操作时钟频率;和/或使电力域44电力骤降,而不参考当前电力状态(例如就电力域44的操作电压电平、操作时钟频率和电力状态来说)。
然而,在其它实例中,包含电力管理单元70的GPU 14可经配置以使用命令流提示来执行电力管理过程,使得实现特定预定义电力状态。预定义电力状态可由一或多个电力域44的特定操作电压、特定操作时钟频率和电力骤降的特定状态来定义。在这点上,如果针对未来工作负载的预定义电力状态,如由命令流提示指示,与当前当前工作负载的当前状态相同,那么电力管理单元70所执行的电力管理过程可相当于当前电力状态的不改变。在此实例中,由命令流提示表征的未来工作负载的当前电力状态的改变可仅在期望未来电力状态与当前电力状态不同的情况下发生。由此,不改变电力域44的操作电压、操作时钟频率、或状态的电力骤降可被认为一种类型的电力管理过程。
综上所述,上文所述的用于产生和使用命令流提示的技术和结构可为用于以极少的额外驱动程序开销来描述基本GPU工作负载特性的有效技术。另外,命令流提示可提供对总工作负载改变的预测能力。命令流提示可辅助GPU 14中的电力管理单元70前瞻性地检测工作负载改变,并在工作负载执行之前,做出电力管理决策,改进总GPU 14电力分布,且较好地平衡QoS与GPU 14的热斜坡和峰值电流消耗。
图4是说明根据本发明的技术的实例电力管理过程的流程图。在图4的实例中,电力管理单元70可经配置以基于命令流所接收到的和/或所指示的命令流提示,将GPU 14的电力状态调整成多个预定义电力状态中的一者。实例预定义电力状态可包含电力状态PC1、PC2、PC3、VF1、VF2和VF3。在电力状态PC1中,电力管理单元70使处理单元46的不用于2D处理的部分电力骤降。在电力状态PC2中,电力管理单元70使处理单元46的不用于计算处理的部分电力骤降。在电力状态PC3中,电力管理单元70并不使处理单元46中的任一者电力骤降(例如将电力供应到所有电力域44)。
在电力状态VF1中,电力管理单元70将操作电压和/或操作时钟频率设定为预定义的“高”电平,例如对于性能重要的应用程序。在电力状态VF2中,电力管理单元70将操作电压和/或操作时钟频率设定为预定义的“低”电平,例如,以限制GPU 14的电力消耗和/或降低其温度。在电力状态VF3中,电力管理单元70将操作电压和/或操作时钟频率设定为特定预定义电平,其可取决于上下文类型(CT1、CT2、CT3、CT4)、工作负载大小(WS)和/或QoS量度(QS)中的一或多者,如由命令流提示指示。
在图4的实例中,电力管理单元70可首先确定上下文类型(82),如由命令流提示指示。指示2D图形的上下文类型可致使电力管理单元70设定电力状态PC1。指示计算应用程序的上下文类型可致使电力管理单元70设定电力状态PC2。指示除2D图形或计算外的任何东西的上下文类型可致使电力管理单元70设定电力状态PC3。
电力管理单元70接着可确定应用程序类型(84),如由命令流提示指示。指示组成的应用程序类型可致使电力管理单元70设定电力状态VF1。对于任何其它应用程序类型,电力管理单元70接着可确定是否已发生温度违反(86),例如如由温度传感器62指示。温度违反可为高于某一阈值的任何温度测量结果。如果已发生温度违反,那么电力管理单元70可设定电力状态VF2。
如果尚未发生温度违反,那么电力管理单元70接着可再次参考命令流提示所指示的上下文类型(88)。实例上下文类型可包含3D图形、2D图形和计算。电力管理单元70可将2D图形工作负载指派给上下文类型3(CT3),且将计算图形工作负载指派给上下文类型4(CT4)。电力管理单元70可进一步从3D图形工作负载的命令流提示确定渲染模式(90)。电力管理单元70可将具有直接渲染模式的3D图形工作负载指派给上下文类型1(CT1),且将具有分仓渲染模式的3D图形工作负载指派给上下文类型2(CT2)。
在已确定上下文类型之后,如果由命令流提示指示,那么电力管理单元70接着可确定工作负载大小量度(WS)(92)。如果由命令流提示指示,那么电力管理单元70还可确定QoS量度(QM)(94)。基于上下文类型、工作负载大小量度(如果可用)和QoS量度(如果可用),电力管理单元70可设定电力状态VF3。
图5是说明根据本发明中描述的技术的实例方法的流程图。图5的技术可由处理器12和GPU 14的一或多个结构实施。在一个实例中,处理器12可经配置以产生一或多个命令58以供GPU 14执行(100),基于一或多个命令58产生(例如通过GPU驱动程序42的执行)至少一个命令流提示56(102),且产生命令流50以包含一或多个命令58和至少一个命令流提示56(104)。在本发明的一个实例中,至少一个命令流提示56包含应用程序类型的指示、上下文类型的指示、渲染模式的指示、工作负载大小的指示或可接受服务质量等级范围的指示中的一或多者。
GPU 14的前端处理器48可经配置以在GPU处接收命令流50(106)。命令流50包含将由GPU 14执行的一或多个命令58以及至少一个命令流提示56。命令流提示56提供命令流50的工作负载的表征。电力管理单元70可经配置以在执行命令流50之前,基于至少一个命令流提示56来执行电力管理过程(108)。处理单元46经配置以执行命令流50(110)。
在本发明的一个实例中,为了执行电力管理过程,电力管理单元70进一步经配置以在执行命令流50之前,基于至少一个命令流提示56使GPU 14的一或多个电力域44电力骤降,其中每一相应电力域包含处理单元46中的一或多者。在本发明的另一实例中,为了执行电力管理过程,电力管理单元70进一步经配置以在执行命令流50之前,基于至少一个命令流提示56来调整GPU 14的一或多个电力域44的操作电压电平。在本发明的另一实例中,为了执行电力管理过程,电力管理单元70进一步经配置以在执行命令流50之前,基于至少一个命令流提示56来调整GPU 14的一或多个电力域44的操作时钟频率和/或操作电压。
在本发明的另一实例中,为了执行电力管理过程,电力管理单元70进一步经配置以在执行命令流50之前,基于至少一个命令流提示56以及温度传感器62输出输出来执行电力管理过程。在本发明的另一实例中,为了执行电力管理过程,电力管理单元70进一步经配置以基于至少一个命令流提示56指示上下文类型是计算上下文类型,而使GPU 14的一或多个电力域44电力骤降。在本发明的另一实例中,为了执行电力管理过程,电力管理单元70进一步经配置以基于至少一个命令流提示56指示服务质量等级范围低于阈值,而降低(例如减少)GPU 14的一或多个电力域44的操作电压或操作频率中的至少一者。在本发明的另一实例中,为了执行电力管理过程,电力管理单元70进一步经配置以基于至少一个命令流提示56指示上下文类型是2D图形处理且工作负载大小高于阈值,而使GPU 14的一或多个电力域44电力骤降。
如本公开中所使用,术语“基于”(如在“A是基于B”中)用以指示其普通含义中的任一者,包含以下情况:(i)“从...导出”(例如“B是A的前导”),(ii)“至少基于”(例如“A至少B基于”);以及在特定上下文中适当时,(iii)“等于”(例如“A等于B”或“A与B相同”)。
在一或多个实例中,所描述的功能可用硬件、软件、固件或其任何组合来实施。如果用软件实施,那么所述功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,并且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于例如数据存储媒体等有形媒体。以此方式,计算机可读媒体通常可对应于非暂时性的有形计算机可读存储媒体。数据存储媒体可为可由一或多个计算机或者一或多个处理器存取以检索用于实施本发明中所描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器,或可用以存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。应理解,计算机可读存储媒体和数据存储媒体并不包含载波、信号或其它暂时性媒体,而是针对非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
指令可由一或多个处理器执行,所述一或多个处理器例如是一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指代上述结构或适用于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可在经配置以用于编码和解码的专用硬件和/或软件模块内提供,或并入在组合编解码器中。并且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可在各种各样裝置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元来实现。确切地,如上文所描述,各种单元可结合合适的软件和/或固件组合在编解码器硬件单元中,或由互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了各种实例。这些和其它实例在所附权利要求书的范围内。
Claims (12)
1.一种数据处理方法,所述方法包括:
在包括多个处理单元的图形处理单元GPU处接收命令流,所述命令流包含将由所述GPU执行的一或多个命令以及至少一个命令流提示,所述至少一个命令流提示提供所述命令流的工作负载的表征,其中,所述至少一个命令流提示包含应用程序类型的指示、上下文类型的指示、渲染模式的指示、工作负载大小的指示或可接受服务质量等级范围的指示中的一或多者;
通过所述GPU的前端处理器,剖析所述命令流,以识别所述至少一个命令流提示;
通过所述GPU的所述前端处理器,将所识别的至少一个命令流提示发送到所述GPU的电力管理单元;
在所述GPU执行所述命令流之前,通过所述GPU的所述电力管理单元,基于所述至少一个命令流提示来执行电力管理过程;以及
通过所述GPU执行所述命令流,
其中,所述GPU还包括多个骤降电力域,其中,骤降电力域是可对其操作电压和/或操作频率进行调整和/或可使其电力骤降的所述GPU的电力域,其中,使电力域电力骤降包括关断至所述骤降电力域的电力,所述GPU的每个骤降电力域包括所述多个处理单元中的至少一个处理单元,并且其中,所述电力管理过程还包括:
基于所述至少一个命令流提示指示所述上下文类型是计算上下文类型,使所述多个骤降电力域中的一个或多个骤降电力域电力骤降;
基于所述至少一个命令流提示指示所述服务质量等级范围低于阈值,降低所述多个骤降电力域中的一个或多个骤降电力域的操作电压或操作频率中的至少一者;或者
基于所述至少一个命令流提示指示所述上下文类型是2D图形处理,且所述工作负载大小高于阈值,使所述多个骤降电力域中的一个或多个骤降电力域电力骤降。
2.根据权利要求1所述的方法,其进一步包括:
通过处理器,产生所述一或多个命令;
通过所述处理器,基于所述一或多个命令产生所述至少一个命令流提示;以及
通过所述处理器,产生所述命令流以包含所述一或多个命令和所述至少一个命令流提示。
3.根据权利要求1所述的方法,其中执行所述电力管理过程包括:
在执行所述命令流之前,通过所述GPU的所述电力管理单元,基于所述至少一个命令流提示以及温度传感器的输出来执行所述电力管理过程。
4.一种经配置以处理数据的设备,所述设备包括:
存储器,其经配置以存储命令流;以及
图形处理单元GPU,所述GPU包括:
前端处理器,其经配置以:
接收所述命令流,所述命令流包含将由所述GPU执行的一或多个命令以及至少一个命令流提示,所述至少一个命令流提示提供所述命令流的工作负载的表征,其中,所述至少一个命令流提示包含应用程序类型的指示、上下文类型的指示、渲染模式的指示、工作负载大小的指示或可接受服务质量等级范围的指示中的一或多者;
剖析所述命令流,以识别所述至少一个命令流提示;以及
将所识别的至少一个命令流提示发送到所述GPU的电力管理单元;
所述电力管理单元,其经配置以在执行所述命令流之前,基于所述至少一个命令流提示来执行电力管理过程;以及
多个处理单元,其经配置以执行所述命令流,
其中,所述GPU还包括多个骤降电力域,其中,骤降电力域是可对其操作电压和/或操作频率进行调整和/或可使其电力骤降的所述GPU的电力域,其中,使电力域电力骤降包括关断至所述骤降电力域的电力,所述GPU的每个骤降电力域包括所述多个处理单元中的至少一个处理单元,并且其中,所述电力管理过程还包括:
基于所述至少一个命令流提示指示所述上下文类型是计算上下文类型,使所述多个骤降电力域中的一个或多个骤降电力域电力骤降;
基于所述至少一个命令流提示指示所述服务质量等级范围低于阈值,降低所述多个骤降电力域中的一个或多个骤降电力域的操作电压或操作频率中的至少一者;或者
基于所述至少一个命令流提示指示所述上下文类型是2D图形处理,且所述工作负载大小高于阈值,使所述多个骤降电力域中的一个或多个骤降电力域电力骤降。
5.根据权利要求4所述的设备,其进一步包括:
处理器,其经配置以:
产生所述一或多个命令;
基于所述一或多个命令产生所述至少一个命令流提示;以及
产生所述命令流以包含所述一或多个命令和所述至少一个命令流提示。
6.根据权利要求5所述的设备,其中所述处理器是中央处理单元。
7.根据权利要求4所述的设备,其中所述电力管理单元进一步经配置以:
在执行所述命令流之前,基于所述至少一个命令流提示以及温度传感器的输出来执行所述电力管理过程。
8.根据权利要求4所述的设备,其中所述设备是移动装置。
9.一种经配置以处理数据的设备,所述设备包括:
用于接收命令流的装置,所述命令流包含将由包括多个处理单元的图形处理单元GPU执行的一或多个命令以及至少一个命令流提示,所述至少一个命令流提示提供所述命令流的工作负载的表征,其中,所述至少一个命令流提示包含应用程序类型的指示、上下文类型的指示、渲染模式的指示、工作负载大小的指示或可接受服务质量等级范围的指示中的一或多者;
用于剖析所述命令流以识别所述至少一个命令流提示的装置;
用于将所识别的至少一个命令流提示发送到所述GPU的电力管理单元的装置;
用于在执行所述命令流之前,基于所述至少一个命令流提示来执行电力管理过程的装置;以及
用于执行所述命令流的装置,
其中,所述GPU还包括多个骤降电力域,其中,骤降电力域是可对其操作电压和/或操作频率进行调整和/或可使其电力骤降的所述GPU的电力域,其中,使电力域电力骤降包括关断至所述骤降电力域的电力,所述GPU的每个骤降电力域包括所述多个处理单元中的至少一个处理单元,并且其中,所述电力管理过程还包括:
基于所述至少一个命令流提示指示所述上下文类型是计算上下文类型,使所述多个骤降电力域中的一个或多个骤降电力域电力骤降;
基于所述至少一个命令流提示指示所述服务质量等级范围低于阈值,降低所述多个骤降电力域中的一个或多个骤降电力域的操作电压或操作频率中的至少一者;或者
基于所述至少一个命令流提示指示所述上下文类型是2D图形处理,且所述工作负载大小高于阈值,使所述多个骤降电力域中的一个或多个骤降电力域电力骤降。
10.根据权利要求9所述的设备,其进一步包括:
用于产生所述一或多个命令的装置;
用于基于所述一或多个命令产生所述至少一个命令流提示的装置;以及
用于产生所述命令流以包含所述一或多个命令和所述至少一个命令流提示的装置。
11.一种存储指令的计算机可读存储媒体,所述指令在被执行时,致使经配置以处理数据的装置的一或多个处理器:
接收命令流,所述命令流包含将由包括多个处理单元的图形处理单元GPU执行的一或多个命令以及至少一个命令流提示,所述至少一个命令流提示提供所述命令流的工作负载的表征,其中,所述至少一个命令流提示包含应用程序类型的指示、上下文类型的指示、渲染模式的指示、工作负载大小的指示或可接受服务质量等级范围的指示中的一或多者;
剖析所述命令流以识别所述至少一个命令流提示;
将所识别的至少一个命令流提示发送到所述GPU的电力管理单元;
在执行所述命令流之前,基于所述至少一个命令流提示来执行电力管理过程;以及
执行所述命令流,
其中,所述GPU还包括多个骤降电力域,其中,骤降电力域是可对其操作电压和/或操作频率进行调整和/或可使其电力骤降的所述GPU的电力域,其中,使电力域电力骤降包括关断至所述骤降电力域的电力,所述GPU的每个骤降电力域包括所述多个处理单元中的至少一个处理单元,并且其中,所述电力管理过程还包括:
基于所述至少一个命令流提示指示所述上下文类型是计算上下文类型,使所述多个骤降电力域中的一个或多个骤降电力域电力骤降;
基于所述至少一个命令流提示指示所述服务质量等级范围低于阈值,降低所述多个骤降电力域中的一个或多个骤降电力域的操作电压或操作频率中的至少一者;或者
基于所述至少一个命令流提示指示所述上下文类型是2D图形处理,且所述工作负载大小高于阈值,使所述多个骤降电力域中的一个或多个骤降电力域电力骤降。
12.根据权利要求11所述的计算机可读存储媒体,其中所述指令进一步致使所述一或多个处理器:
产生所述一或多个命令;
基于所述一或多个命令产生所述至少一个命令流提示;以及产生所述命令流以包含所述一或多个命令和所述至少一个命令流提示。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/840,915 US10332230B2 (en) | 2015-08-31 | 2015-08-31 | Characterizing GPU workloads and power management using command stream hinting |
US14/840,915 | 2015-08-31 | ||
PCT/US2016/041743 WO2017039838A1 (en) | 2015-08-31 | 2016-07-11 | Characterizing gpu workloads and power management using command stream hinting |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107851042A CN107851042A (zh) | 2018-03-27 |
CN107851042B true CN107851042B (zh) | 2022-03-22 |
Family
ID=56550367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680046383.3A Active CN107851042B (zh) | 2015-08-31 | 2016-07-11 | 使用命令流提示来表征gpu工作负载和电力管理 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10332230B2 (zh) |
EP (1) | EP3345092B1 (zh) |
JP (1) | JP2018533112A (zh) |
KR (1) | KR20180048886A (zh) |
CN (1) | CN107851042B (zh) |
BR (1) | BR112018003950A2 (zh) |
WO (1) | WO2017039838A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817043B2 (en) * | 2011-07-26 | 2020-10-27 | Nvidia Corporation | System and method for entering and exiting sleep mode in a graphics subsystem |
US10134314B2 (en) * | 2011-11-30 | 2018-11-20 | Intel Corporation | Reducing power for 3D workloads |
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
US20170069054A1 (en) * | 2015-09-04 | 2017-03-09 | Intel Corporation | Facilitating efficient scheduling of graphics workloads at computing devices |
US10134103B2 (en) | 2015-10-23 | 2018-11-20 | Qualcomm Incorporated | GPU operation algorithm selection based on command stream marker |
US11474591B2 (en) * | 2016-08-05 | 2022-10-18 | Ati Technologies Ulc | Fine-grain GPU power management and scheduling for virtual reality applications |
US11054884B2 (en) * | 2016-12-12 | 2021-07-06 | Intel Corporation | Using network interface controller (NIC) queue depth for power state management |
US10565079B2 (en) * | 2017-09-28 | 2020-02-18 | Intel Corporation | Determination of idle power state |
US10678553B2 (en) * | 2017-10-10 | 2020-06-09 | Apple Inc. | Pro-active GPU hardware bootup |
US10853147B2 (en) * | 2018-02-20 | 2020-12-01 | Microsoft Technology Licensing, Llc | Dynamic processor power management |
US11573593B2 (en) * | 2018-04-16 | 2023-02-07 | Advanced Micro Devices, Inc. | Level-based droop detection |
CN111465966B (zh) | 2018-05-31 | 2023-06-02 | 华为技术有限公司 | 用于命令流优化和增强的装置和方法 |
CN111045814B (zh) | 2018-10-11 | 2023-12-08 | 华为技术有限公司 | 资源调度方法和终端设备 |
US11238557B2 (en) | 2019-03-29 | 2022-02-01 | Intel Corporation | Workload-based maximum current |
CN110209501B (zh) * | 2019-06-03 | 2022-02-08 | Oppo广东移动通信有限公司 | 图形处理器的频率调整方法、装置、终端及存储介质 |
US11144290B2 (en) * | 2019-09-13 | 2021-10-12 | Huawei Technologies Co., Ltd. | Method and apparatus for enabling autonomous acceleration of dataflow AI applications |
US11194377B2 (en) * | 2020-01-21 | 2021-12-07 | Dell Products L.P. | System and method for optimizing hardware resources for optimal workload performance |
US12086899B2 (en) | 2020-08-07 | 2024-09-10 | Advanced Micro Devices, Inc. | Graphics processing unit with selective two-level binning |
US11693472B2 (en) | 2021-08-31 | 2023-07-04 | Apple Inc. | Multi-die power management in SoCs |
KR20230046356A (ko) * | 2021-09-29 | 2023-04-06 | 삼성전자주식회사 | 메모리 장치, 메모리 장치의 동작 방법, 그리고 메모리 장치를 포함하는 전자 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014131171A1 (en) * | 2013-02-28 | 2014-09-04 | Intel Corporation | Context aware power management for graphics devices |
CN104641396A (zh) * | 2012-07-20 | 2015-05-20 | 高通股份有限公司 | 用于调度图形处理单元命令流的延迟抢占技术 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7969444B1 (en) | 2006-12-12 | 2011-06-28 | Nvidia Corporation | Distributed rendering of texture data |
US8514215B2 (en) | 2008-11-12 | 2013-08-20 | International Business Machines Corporation | Dynamically managing power consumption of a computer with graphics adapter configurations |
US9507632B2 (en) | 2010-12-15 | 2016-11-29 | Advanced Micro Devices, Inc. | Preemptive context switching of processes on ac accelerated processing device (APD) based on time quanta |
US8942857B2 (en) | 2011-04-22 | 2015-01-27 | Qualcomm Incorporated | Method and system for thermal load management in a portable computing device |
US8650423B2 (en) | 2011-10-12 | 2014-02-11 | Qualcomm Incorporated | Dynamic voltage and clock scaling control based on running average, variant and trend |
US9196013B2 (en) * | 2011-10-31 | 2015-11-24 | Apple Inc. | GPU workload prediction and management |
US9250688B2 (en) | 2011-12-09 | 2016-02-02 | Intel Corporation | Adaptive graphics subsystem power and performance management |
US8892919B2 (en) | 2011-12-14 | 2014-11-18 | Ati Technologies Ulc | Method and apparatus for power management of a processor in a virtual environment |
TWI597599B (zh) * | 2012-06-05 | 2017-09-01 | 威盛電子股份有限公司 | 圖形處理單元與其管理方法 |
KR20140060137A (ko) * | 2012-11-09 | 2014-05-19 | 삼성전자주식회사 | 반도체 집적 회로 및 그것의 동작 방법, 반도체 집적 회로의 타이밍 검증 방법 및 테스트 방법 |
KR102082859B1 (ko) | 2013-01-07 | 2020-02-28 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법 |
US9727113B2 (en) | 2013-08-08 | 2017-08-08 | Linear Algebra Technologies Limited | Low power computational imaging |
US9875516B2 (en) * | 2013-10-14 | 2018-01-23 | Marvell World Trade Ltd. | Systems and methods for graphics process units power management |
US9824026B2 (en) * | 2014-12-23 | 2017-11-21 | Intel Corporation | Apparatus and method for managing a virtual graphics processor unit (VGPU) |
US20160306677A1 (en) * | 2015-04-14 | 2016-10-20 | Globalfoundries Inc. | Automatic Analytical Cloud Scaling of Hardware Using Resource Sub-Cloud |
-
2015
- 2015-08-31 US US14/840,915 patent/US10332230B2/en active Active
-
2016
- 2016-07-11 BR BR112018003950A patent/BR112018003950A2/pt not_active Application Discontinuation
- 2016-07-11 CN CN201680046383.3A patent/CN107851042B/zh active Active
- 2016-07-11 WO PCT/US2016/041743 patent/WO2017039838A1/en active Application Filing
- 2016-07-11 KR KR1020187009003A patent/KR20180048886A/ko unknown
- 2016-07-11 EP EP16742514.9A patent/EP3345092B1/en active Active
- 2016-07-11 JP JP2018510122A patent/JP2018533112A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104641396A (zh) * | 2012-07-20 | 2015-05-20 | 高通股份有限公司 | 用于调度图形处理单元命令流的延迟抢占技术 |
WO2014131171A1 (en) * | 2013-02-28 | 2014-09-04 | Intel Corporation | Context aware power management for graphics devices |
Also Published As
Publication number | Publication date |
---|---|
EP3345092A1 (en) | 2018-07-11 |
US20170061568A1 (en) | 2017-03-02 |
CN107851042A (zh) | 2018-03-27 |
WO2017039838A1 (en) | 2017-03-09 |
JP2018533112A (ja) | 2018-11-08 |
EP3345092B1 (en) | 2021-10-27 |
US10332230B2 (en) | 2019-06-25 |
BR112018003950A2 (pt) | 2018-09-25 |
KR20180048886A (ko) | 2018-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107851042B (zh) | 使用命令流提示来表征gpu工作负载和电力管理 | |
CN108140234B (zh) | 基于命令流标记的gpu操作算法选择 | |
US9817431B2 (en) | Frame based clock rate adjustment for processing unit | |
KR102009125B1 (ko) | 프로세서 주파수 및 버스 대역폭의 활성 및 스톨 사이클 기반 동적 스케일링 | |
US9019289B2 (en) | Execution of graphics and non-graphics applications on a graphics processing unit | |
US10007292B2 (en) | Energy aware dynamic adjustment algorithm | |
US9697124B2 (en) | Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture | |
US8310488B2 (en) | Dynamic context switching between architecturally distinct graphics processors | |
CN107209543B (zh) | 用于处理单元的时钟速率调整 | |
US20120260258A1 (en) | Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device | |
US10064141B2 (en) | Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit | |
WO2021000220A1 (en) | Methods and apparatus for dynamic jank reduction | |
US20150220362A1 (en) | Multi-core processor system, electrical power control method, and computer product for migrating process from one core to another | |
WO2021196175A1 (en) | Methods and apparatus for clock frequency adjustment based on frame latency |
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 |