CN109923498A - 用于电力性能管理的应用剖析 - Google Patents
用于电力性能管理的应用剖析 Download PDFInfo
- Publication number
- CN109923498A CN109923498A CN201780069017.4A CN201780069017A CN109923498A CN 109923498 A CN109923498 A CN 109923498A CN 201780069017 A CN201780069017 A CN 201780069017A CN 109923498 A CN109923498 A CN 109923498A
- Authority
- CN
- China
- Prior art keywords
- hardware
- application
- parameter
- parameter setting
- hardware parameter
- 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.)
- Granted
Links
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/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
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Power Sources (AREA)
- Stored Programmes (AREA)
Abstract
提供一种处理设备,所述处理设备包括存储器,所述存储器被配置成存储多个应用中的每一者的硬件参数设置。所述处理设备还包括与所述存储器通信的处理器,所述处理器被配置成:将所述硬件参数设置存储在所述存储器中;将所述多个应用中的一者识别为当前在执行的应用;以及通过根据所述识别出的应用的所述存储的硬件参数设置调整多个硬件参数来控制硬件的操作。
Description
相关申请的交叉引用
本申请要求在2016年11月18日提交的美国专利申请第15/355,569号的权益,所述美国专利申请是以全文引用的方式并入本文中。
技术领域
背景技术
处理装置的硬件是通过存储在装置(例如,固件)处的硬件参数来管理,所述硬件参数被用于控制硬件的操作。这些参数的设置(即,动态电力管理(dynamic powermanagement;DPM)设置)不仅影响硬件的性能,而且影响硬件执行各种功能-例如执行应用-所消耗的电力。此外,性能和电力消耗是相互依赖的。举例来说,硬件性能水平的提高常常包括增大的电力消耗。DPM设置早已经硬编码在驱动器软件中,然而,不能在不修改驱动器软件的情况下更改DPM设置。
发明内容
附图说明
自结合附图以举例方式给出的以下描述可获得更详细的理解,在附图中:
图1是示例装置的框图,在所述示例装置中实现用于电力性能管理的应用剖析;
图2是图示与处理任务在图1所示的加速处理装置上的执行相关的额外细节的框图;
图3是图示示例性电力性能管理系统中的示例性互连与信息流的框图;
图4是图示接收用以管理电力性能的硬件参数设置示例性方法的流程图;以及
图5是图示在应用运行时刻时的电力性能管理的示例性方法的流程图。
具体实施方式
已经尝试针对例如专用集成电路(application-specific integrated circuit;ASIC)的特定集成电路提供全局DPM设置。然而,这些全局设置导致变化的性能水平。举例来说,以全局设置在IC上执行的应用以第一性能水平执行(例如,性能水平显现高质量的视频显示),而另一应用以第二性能水平在IC上执行(例如,性能水平显现低质量的视频显示)。
本申请公开通过利用针对将在装置上执行的每个应用定制的硬件参数设置来管理电力和性能的设备和方法。定制还包括针对装置的每个应用编程接口(applicationprogramming interface;API)和每个处理器的硬件参数设置。通过在不改变装置驱动程序的情况下改变(即,覆写)驱动程序栈的配置文件来针对每个应用定制硬件参数设置。应用的硬件参数设置被用于调整存储在装置处的固件上的硬件参数(例如,设置硬件参数的值),以控制硬件执行应用所消耗的电力,并且维持性能水平而不影响执行其他应用时的性能。
本申请提供一种处理设备,所述处理设备包括存储器,所述存储器被配置成存储多个应用中的每一者的硬件参数设置。所述处理设备还包括与所述存储器通信的处理器,所述处理器被配置成:将所述硬件参数设置存储在所述存储器中;将所述多个应用中的一个识别为当前执行中的应用;以及通过根据所述识别出的应用的所述存储的硬件参数设置调整多个硬件参数来控制硬件的操作。
本申请提供一种计算机实现的电力性能管理方法。所述方法包括:接收多个应用中的每一者的硬件参数设置;存储所述硬件参数设置;执行所述多个应用的应用;识别所述执行中的应用;以及通过根据所述识别出的执行中的应用的所述存储的硬件参数设置调整硬件参数来控制硬件的操作。
本申请提供一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括用于使计算机执行电力性能管理方法的指令。所述指令包括存储多个应用中的每一者的硬件参数设置;执行所述多个应用中的应用;识别所述执行中的应用;以及通过根据所述识别出的执行中的应用的所述存储的硬件参数设置调整硬件参数来控制硬件的操作。
如本文中所使用,程序包括将使用一个或多个处理器执行以执行规程或例程(例如,操作、计算、函数、处理、工作)指令的任何序列。如本文中所使用,已编程指令(例如,应用、驱动程序、操作系统或其他软件)在处理器上的执行包括多个阶段中的任一个,例如但不限于提取、解码、针对执行的调度、开始执行以及执行已编程指令的特定部分(例如,全屏显现视频)。已编程指令包括参数设置(例如,硬件参数设置)和具有用于控制硬件的操作的可调整(即,可改变)值的参数(例如,硬件参数)。
图1是示例性装置100的框图。装置100包括例如计算机、游戏装置、手持装置、机顶盒、电视、移动电话或平板计算机。如图1所示,示例性装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108、一个或多个输出装置110、输入驱动器112和输出驱动器114。将理解,装置100能够包括图1中未示出的额外部件。
处理器102的示例处理器类型包括CPU、GPU、位于同一个裸片上的CPU与GPU或一个或多个处理器核心,其中每个处理器核心是CPU或GPU。存储器104例如与处理器102位于同一个裸片上或与处理器102分开定位。存储器104的示例存储器类型包括易失性存储器(例如,随机存取存储器(random access memory;RAM)、动态RAM或高速缓存)和被配置成存储例如固件的非易失性存储器(例如,硬盘、母板引导只读存储器(read only memory;ROM)和BIOS存储器),固件包括如在下文详细描述的硬件参数。
存储装置106的示例存储装置类型包括固定或可移动存储装置,例如,硬盘驱动器、固态驱动器、光盘或闪存驱动器。输入装置108的示例输入装置类型包括键盘、小键盘、触摸屏、触摸板、检测器、传声器、加速度计、陀螺仪、生物测定扫描器或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。输出装置110的示例输出装置类型包括显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线或网络连接(例如,用于传输和/或接收无线IEEE802信号的无线局域网卡)。
输入驱动器112与处理器102和输入装置108通信,并且准许处理器102接收来自输入装置108的输入。输出驱动器114与处理器102和输出装置110通信,并且准许处理器102发送输出到输出装置110。请注意,输入驱动器112和输出驱动器114是任选部件,并且如果输入驱动器112和输出驱动器114不存在,则装置100将以相同方式操作。
如图1所示,输出驱动器114(例如,图形卡)包括加速处理装置(APD)116,所述加速处理装置联接到显示装置118。APD 116被配置成接受来自处理器102的计算命令和图形绘制命令、处理那些计算命令和图形绘制命令和向显示装置118提供像素输出以进行显示。如在下文更详细地描述,APD 116包括被配置成执行根据单指令多数据(single-instruction-multiple-data;SIMD)范式的计算的一个或多个并行处理单元。尽管各种功能性在本文中被描述为由APD 116或结合APD116执行,但是描述为由APD 116执行的功能性也由具有类似能力的其他计算装置执行,其他计算装置不由主机处理器(例如,处理器102)驱动并且被配置成向显示装置118提供图形输出。本文中所描述的功能性是例如由执行根据SIMD范式的处理任务的任何处理系统执行。或者,本文中描述的功能性是由不执行根据SIMD范式的处理任务的计算系统执行。
图2是图示与处理任务在图1所示的装置100的APD 116上的执行相关的额外细节的框图。处理器102将一个或多个控制逻辑模块保持在系统存储器104中,所述控制逻辑模块包括供处理器102执行的已编程指令。已编程指令还能够包括在处理器102(例如,CPU)中。所述控制逻辑模块包括操作系统120、装置驱动程序122(例如,内核模式驱动程序、用户模式驱动程序、通用模式驱动程序)、在APD 116上执行的应用126,和存储每个可执行应用126的预定硬件参数设置的配置指令124(例如,配置文件、blob文件、扩展文件和类似文件中的指令)。如图2所示,装置驱动程序122和配置指令124是驱动程序栈125的部分。驱动程序栈125还包括例如已编程指令,所述程序指令支持硬件参数(例如,时钟速度参数、时钟电压参数、时钟选通参数)的调整,以管理硬件在执行每个应用期间的电力消耗。
这些控制逻辑模块控制处理器102和APD 116的操作的各个方面。举例来说,操作系统120直接与硬件(例如,CPU、GPU和计算单元132)通信,并且向硬件提供在处理器102上执行的其他软件的接口。装置驱动程序122通过例如提供在处理器102上执行的软件(例如,应用126)的API以访问APD 116的各种功能性来控制APD 116的操作。装置驱动程序122还包括编译程序以供APD 116的处理部件执行的即时(just-in-time)编译程序。
APD 116执行针对例如适合例如执行并行处理的图形操作和非图形操作的选定功能的命令和程序。APD 116被用于例如基于从处理器102接收的命令来执行图形流水线操作,例如像素操作、几何计算和向显示装置118显现图像。APD 116还基于从处理器102接收的命令来执行与图形操作不直接相关的计算处理操作,例如与视频、物理模拟、计算流体动力学或其他任务相关的操作。
APD 116的示例处理器类型包括CPU、GPU、位于同一个裸片上的CPU与GPU或一个或多个处理器核心(即,计算单元)132,其中每个处理器核心是CPU或GPU。每个计算单元(即,计算核心)132包括一个或多个SIMD单元138,所述SIMD单元各自被配置成根据SIMD范式以并行方式应处理器102的请求执行操作。SIMD范式是一种范式,其中多个处理元件共享单个程序控制流程单元和程序计数器,并且因此执行同一个程序,而且能够利用不同数据执行所述程序。在一个实例中,每个SIMD单元138包括十六通道,其中每个通道与SIMD单元138中的其他通道同时执行同一个指令,但是能够利用不同数据执行所述指令。在预测不需要全部通道来执行给定指令的情况下,能够关闭一些通道。预测还能够用于执行具有离散控制流的程序。更特别地,对于具有条件分支的程序或控制流是基于由个别通道执行的计算的其他指令,通道的预测对应于当前不执行的控制流路径,不同控制流路径的串行执行允许任意的控制流。
调度程序136被配置成执行与调度在不同计算单元132和SIMD单元138上的各种执行单元(例如,工作群或波前)相关的操作。处理任务在APD 116上的执行适合与图形相关的操作,例如像素值计算、顶点变换和其他图形操作。接受来自处理器102的图形处理命令的图形流水线134因此能够将计算任务提供给计算单元132以并行地执行。
计算单元132还被用于执行不与图形相关或不作为图形流水线134的“正常”操作)的部分执行的计算任务(例如,为了补充针对图形流水线134的操作所执行的处理而执行的定制操作。在处理器102上执行的应用126或其他软件将定义这些计算任务的程序传输到APD116以供执行。
图3是图示示例性电力性能管理系统中的示例性互连与信息流的框图300。如图3所示,所述系统包括具备API 302(所述API表示一个或多个API)的应用126、包括装置驱动程序122和配置指令124的驱动程序栈125和包括固件306的装置304(例如,图1所示的输出驱动器114),所述固件被配置成在装置304处执行。
驱动程序栈125包括用于在操作系统120与固件306之间建立接口的装置驱动程序122,和配置指令124。针对待处理的每个应用126,配置指令124包括预定(例如,在应用运行时间之前确定的)硬件参数设置,所述硬件参数设置用于调整被配置成在每个应用126的执行期间控制硬件的操作的多个硬件参数。
固件306包括硬件参数和相关联值,以控制装置304的硬件(例如,图形卡)的操作并且提供装置304的硬件(例如,APD 116)与装置驱动程序122之间的接口。如上所述,固件存储在非易失性存储器(例如,硬盘、母板引导只读存储器(ROM)和BIOS存储器)中。处理器102被配置成识别执行中的应用。举例来说,识别在装置304(例如,输出驱动器114)处的APD116上执行的应用,并且从非易失性存储器(例如,存储器104之部分)读取固件306以在装置304处进行处理,如图3所示。或者,识别在不包括输出驱动器的装置100处的处理器上执行的应用。固件306和装置驱动程序122一起用于控制硬件(例如,输出驱动器114的APD 116、装置100的一个或多个其他处理器以及编码器、解码器、存储器单元和电路(未示出))的操作。
硬件参数的实例包括动态电力管理(DPM)参数(例如,时钟速度参数、时钟电压参数和时钟选通参数)、存储器计时参数、产生的热(例如,热设计功耗(thermal designpower;TDP))和用于控制执行识别出的应用的电力分配的其他参数。APD 116被配置成使用例如操作系统120、装置驱动程序122和配置指令124执行(例如,针对执行调度、执行)应用126。举例来说,操作系统120与固件306通信并且向硬件提供用于在APD 116上执行的应用126的接口。装置驱动程序122通过例如向在APD 116上执行的应用126提供API 302以访问APD116的各种功能性来控制APD 116的操作。
处理器102例如经由应用名称来识别在装置304处执行的应用。处理器102还被配置成经由API识别符来识别执行中的应用126,所述API识别符识别由应用126使用的API302。API 302包括例如用于与装置驱动程序122建立接口(例如,发出请求)的指令。API的实例包括但不限于开放计算语言(OpenCL)、开放图形库(OpenGL)和DirectX API。
应用126的硬件参数设置被存储在配置指令124中。当新的应用变得可用(例如,可供执行)以由特定处理器或装置(例如,图形卡)执行时,使用所提供的API 302针对具有不同参数设置的装置测试(例如,执行)应用126,从而产生不同水平的电力消耗和性能。每个装置(例如,装置100、输出驱动器114、装置304)包括硬件(例如,IC、例如处理器102或APD116的处理器、存储器单元、编码器、解码器和电路)。硬件是例如使用硬件识别符(例如,装置ID或修正ID)来识别。当针对新的应用126确定识别出的硬件的硬件参数设置时,所述设置将例如作为更新配置指令(例如,配置文件、blob文件或其他文件)的部分经由网络(未示出)发送。(例如,在装置100处)接收所述设置,装置100包括装置(例如,输出驱动器114、装置304)和硬件(例如,APD 116)。当在装置100处接收到所述更新配置指令时,通过在不改变装置驱动程序122的情况下覆写驱动程序栈125的配置指令124,(例如,经由处理器102)将新的应用126的参数设置存储在装置100处的易失性存储器(例如,存储器104的易失性部分)中。
当识别出执行中的应用126时,处理器102通过(例如,在装置304处)执行固件306和根据存储在对应于执行中的应用126的配置指令124中的硬件参数设置调整多个硬件参数(例如,时钟电压)来控制硬件的操作。通过根据存储在配置指令124中的硬件参数设置来设置与硬件参数相关联的值来执行调整。举例来说,当识别出执行中的应用126时,装置驱动程序122分析配置指令124,并且针对识别出的应用126和API 320从配置指令124读取设置。将所存储的数据传递到装置驱动程序122(例如,内核模式驱动程序)和支持管理电力和性能的存储设置的额外结构。
所述存储设置包括例如基于硬件的活动水平与活动水平阈值参数的值的比较来增大或减小时钟电压参数的值。硬件的活动水平和活动水平阈值参数的值对应于例如在采样间隔(例如,10ms)期间的处理器执行的时间的百分比或分数、在采样间隔期间的处理器执行的次数或用于测量在采样间隔期间的处理器执行的活动水平的另一度量。举例来说,当在采样间隔期间的硬件的活动水平小于活动水平阈值参数的值时,时钟电压参数的值减小,而当在采样间隔期间的硬件的活动水平等于或大于活动水平阈值参数的值时,时钟电压参数的值增大。所述设置还包括例如设置时钟电压参数的值的极限。
图4是图示接收电力性能管理的硬件参数设置的示例性方法的流程图400。
如图4的块402所示,方法400包括(例如,经由装置识别符)在装置处接收用于控制硬件的操作的多个硬件参数的硬件参数设置。通过网络(未示出)例如在装置处接收定制的硬件设置以作为一组配置指令(例如,配置文件)的部分,以用于更新当前存储的配置指令。
在方法400的块404处,更新配置文件。更新配置指令包括例如覆写配置文件的每个部分(即,覆写文件本身)、覆写配置文件的一个或多个部分(例如,更新一个或多个应用的先前所接收设置的硬件参数设置)和添加一个或多个新测试的应用的硬件参数设置。例如经由应用名称或API识别符来识别当前存储的参数设置(例如,一个或多个应用的先前所接收的设置)。通过在不覆写或改变装置驱动程序的情况下覆写配置指令来存储指令。即,所述设备不是硬编码在装置驱动程序中,并且能够在不修改所述装置驱动程序的情况下加以更改。
将更新的配置指令(例如,作为固件)存储在非易失性存储器(例如,硬盘、母板引导ROM和类似物)中。还存储识别符(例如,应用名称和API识别符)以利用对应应用名称和针对应用提供的API识别符来识别硬件参数设置。当执行应用时,经由装置处的存储器来执行指令,所述指令包括对应应用的识别出的硬件参数设置。
图5是图示在应用运行时刻时的电力性能管理的示例性方法的流程图500。
如图5的块502所示,方法500包括执行应用。例如通过提取应用、解码应用、调度应用以供执行、开始执行应用和执行应用的特定部分(例如,全屏显现视频)来执行应用。
如图5的块504所示,方法500包括识别执行中的应用。例如通过应用识别符和API识别符来识别应用,所述应用识别符识别应用,所述API识别符识别针对应用提供的API。因为每个应用和每个API能够使用相同的电力分配值产生不同的性能水平,所以针对每个应用和每个API定制设置以控制硬件执行应用所消耗的电力,并且维持性能水平而不影响执行另一应用时的性能。
如图5的决策块506所示,所述方法包括确定是否存储了识别出的应用的硬件参数设置。举例来说,确定识别出的应用的硬件参数设置是否存储在图4中所描述的配置文件中。当参数设置时,存储识别出的应用的硬件参数设置。
如图5的块508所示,当确定存储识别出的应用的硬件参数设置(例如,经由应用识别符和API识别符)时,根据识别出的应用的所存储的硬件参数设置调整硬件参数以执行应用。经由装置处的存储器来执行设置。调整被用于控制硬件的操作,例如控制硬件在维持执行性能水平的同时执行识别出的应用所消耗的电力。举例来说,通过基于硬件在采样间隔期间的活动水平与采样间隔的活动水平阈值参数的比较调整时钟电压参数(例如,改变时钟电压参数的值)来管理电力分配。如图5中的方法500的块510所示,当确定未存储识别出的应用的硬件参数设置(例如,尚未接收到识别出的应用的硬件参数设置)时,根据所存储的全局硬件参数设置调整硬件参数以执行应用。
应当理解,基于本文中的公开,许多变化是可能的。尽管在上文以特定组合描述了特征和元件,但是每个特征或元件能够在没有其他特征和元件的情况下单独使用或以具有或不具有其他特征和元件的各种组合使用。
所提供的方法包括在通用计算机、处理器或处理器核心中的实现方式。合适处理器包括例如通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场编程门阵列(FPGA)电路,任何其他类型的集成电路(IC),和/或状态机。此等处理器能够通过使用经处理的硬件描述语言(hardware description language;HDL)指令和包括连线表的其他中间数据(例如能够存储在计算机可读介质上的指令)的结果配置制造过程来制造。此等处理的结果会是掩模作品(maskwork),所述掩模作品接着被用于半导体制造过程中以制造实现电力性能管理的应用剖析的处理器。
本文中所提供的方法或流程图能够以计算机程序、软件或并入非暂时性计算机可读存储介质中以由通用计算机或处理器执行的固件实现。非暂时性计算机可读存储介质的实例包括ROM、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器装置、例如内部硬盘和可移动磁盘的磁性介质、磁光介质和例如CD-ROM光盘和数字通用光碟(DVD)的光学介质。
Claims (20)
1.一种处理设备,所述处理设备包括:
存储器,所述存储器被配置成存储多个应用中的每一者的硬件参数设置;
与所述存储器通信的处理器,所述处理器被配置成:
将所述硬件参数设置存储在所述存储器中;
将所述多个应用中的一者识别为当前执行中的应用;以及
通过根据所述识别出的一个应用的所述存储的硬件参数设置调整多个硬件参数来控制硬件的操作。
2.如权利要求1所述的处理设备,其中所述硬件包括被配置成执行所述应用的加速处理装置,所述加速处理装置包括多个处理器类型。
3.如权利要求1所述的处理设备,其中所述处理器还被配置成经由应用识别符和应用编程接口识别符来识别在所述硬件上执行的所述应用,所述应用识别符识别所述执行中的应用,所述应用编程接口识别符识别提供给所述执行中的应用的应用编程接口。
4.如权利要求1所述的处理设备,其中所述硬件包括硬件识别符,并且所述硬件参数设置被用于控制通过所述硬件识别符识别出的所述硬件的所述操作。
5.如权利要求1所述的处理设备,其中所述多个硬件参数是电力管理参数,所述电力管理参数被配置成控制所述硬件在维持执行性能水平的同时执行所述识别出的一个应用所消耗的电量,并且
所述处理器还被配置成通过根据所述识别出的一个应用的所述存储的硬件参数设置调整所述多个电力管理参数来控制所述硬件所消耗的所述电量。
6.如权利要求5所述的处理设备,其中所述电力管理参数包括时钟电压参数和采样间隔的活动水平阈值参数,并且
所述处理器还被配置成通过以下操作调整所述时钟电压参数:
将所述硬件在所述采样间隔期间的活动水平与所述采样间隔的所述活动水平阈值参数进行比较;以及
基于所述硬件在所述采样间隔期间的所述活动水平与所述采样间隔的所述活动水平阈值参数的所述比较来改变所述时钟电压参数的值。
7.如权利要求1所述的处理设备,其中所述处理器还被配置成:
确定是否存储所述识别出的一个应用的所述硬件参数设置;
当确定存储所述识别出的一个应用的所述硬件参数设置时,根据所述识别出的一个应用的所述存储的硬件参数设置调整所述硬件参数以执行所述应用;以及
当确定未存储所述识别出的一个应用的所述硬件参数设置时,根据所存储的全局硬件参数设置调整所述硬件参数以执行所述应用。
8.如权利要求1所述的处理设备,其中所述处理器还被配置成将所述硬件参数设置存储在与装置驱动程序分开的配置文件中,所述装置驱动程序被配置成通过使用所述配置文件来控制所述硬件的操作。
9.如权利要求8所述的处理设备,其中所述处理器还被配置成当接收到所述应用中的一个或多个应用的新参数设置时,在不修改所述装置驱动程序的情况下更新所述配置文件。
10.如权利要求1所述的处理设备,其中所述存储器还被配置成存储可执行装置驱动程序,并且所述处理器还被配置成
将所述硬件参数设置存储在不可执行配置文件中;以及
通过使用所述可执行装置驱动程序根据存储在所述不可执行配置文件中的所述存储的硬件参数设置调整所述多个硬件参数来控制所述硬件的所述操作。
11.一种计算机实现的电力性能管理方法,所述方法包括:
接收多个应用中的每一者的硬件参数设置;
存储所述硬件参数设置;
执行所述多个应用中的应用;
识别所述执行中的应用;以及
通过根据所述识别出的执行中的应用的所述存储的硬件参数设置调整硬件参数来控制硬件的操作。
12.如权利要求11所述的方法,所述方法还包括:
确定是否存储所述识别出的执行中的应用的所述硬件参数设置;
当确定存储所述识别出的执行中的应用的所述硬件参数设置时,根据所述识别出的执行中的应用的所述存储的硬件参数设置调整所述硬件参数以执行所述应用;以及
当确定未存储所述识别出的执行中的应用的所述硬件参数设置时,根据所存储的全局硬件参数设置调整所述硬件参数以执行所述应用。
13.如权利要求11所述的方法,所述方法还包括向所述执行中的应用提供一个或多个应用编程接口,并且其中识别所述执行中的应用包括识别提供给所述执行中的应用的所述一个或多个应用编程接口。
14.如权利要求11所述的方法,所述方法还包括将所述硬件参数设置存储在与装置驱动程序分开的配置文件中,所述装置驱动程序被配置成通过使用存储在所述配置文件中的所述硬件参数设置来控制所述硬件的操作。
15.如权利要求14所述的方法,所述方法还包括当存储所述多个应用中的每一者的所述硬件参数设置时,在不修改所述装置驱动程序的情况下更新所述配置文件。
16.如权利要求11所述的方法,其中所述多个硬件参数是电力管理参数,所述电力管理参数控制所述硬件在维持执行性能水平的同时执行所述识别出的执行中的应用所消耗的电量,并且
所述方法还包括通过根据所述存储的硬件参数设置调整所述多个电力管理参数来控制所述硬件所消耗的所述电量。
17.如权利要求16所述的方法,其中所述电力管理参数包括时钟电压参数和采样间隔的活动水平阈值参数,并且
所述方法还包括通过以下操作调整所述时钟电压参数:
将所述硬件在所述采样间隔期间的活动水平与所述采样间隔的所述活动水平阈值参数进行比较;以及
基于所述硬件在所述采样间隔期间的所述活动水平与所述采样间隔的所述活动水平阈值参数的所述比较来改变所述时钟电压参数的值。
18.如权利要求17所述的方法,所述方法还包括
存储包括用于控制所述硬件的所述操作的指令的可执行装置驱动程序;
将所述硬件参数设置存储在不可执行配置文件中;以及
通过使用所述可执行装置驱动程序根据存储在所述不可执行配置文件中的所述存储的硬件参数设置调整所述多个硬件参数来控制所述硬件的所述操作。
19.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括用于使计算机执行电力性能管理方法的指令,所述指令包括:
存储多个应用中的每一者的硬件参数设置;
执行所述多个应用中的应用;
识别所述执行中的应用;以及
通过根据所述识别出的执行中的应用的所述存储的硬件参数设置调整硬件参数来控制硬件的操作。
20.如权利要求19所述的非暂时性计算机可读介质,其中所述指令还包括:
针对所述多个应用中的每一者,将所述硬件参数设置存储在与装置驱动程序分开的配置文件中,所述装置驱动程序被配置成通过使用存储在所述配置文件中的所述硬件参数设置来控制所述硬件的操作;以及
当存储所述多个应用中的每一者的所述硬件参数设置时,在不修改所述装置驱动程序的情况下更新所述配置文件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/355,569 | 2016-11-18 | ||
US15/355,569 US10877547B2 (en) | 2016-11-18 | 2016-11-18 | Application profiling for power-performance management |
PCT/CA2017/051322 WO2018090130A1 (en) | 2016-11-18 | 2017-11-07 | Application profiling for power-performance management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109923498A true CN109923498A (zh) | 2019-06-21 |
CN109923498B CN109923498B (zh) | 2023-08-15 |
Family
ID=62144941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780069017.4A Active CN109923498B (zh) | 2016-11-18 | 2017-11-07 | 用于电力性能管理的应用剖析 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10877547B2 (zh) |
EP (1) | EP3542245A4 (zh) |
JP (1) | JP6909290B2 (zh) |
KR (1) | KR102208349B1 (zh) |
CN (1) | CN109923498B (zh) |
WO (1) | WO2018090130A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11079945B2 (en) * | 2018-09-20 | 2021-08-03 | Ati Technologies Ulc | Dynamic configuration of memory timing parameters |
TWI706246B (zh) * | 2018-12-27 | 2020-10-01 | 技嘉科技股份有限公司 | 效能管理系統、提供效能設定參數組合的方法、更新效能參數的方法、電腦軟體以及儲存媒體 |
US11068295B2 (en) * | 2019-04-12 | 2021-07-20 | Ghost Locomotion Inc. | Device operation across multiple operating system modalities |
CN111832738B (zh) * | 2019-04-18 | 2024-01-09 | 中科寒武纪科技股份有限公司 | 一种数据处理方法及相关产品 |
CN112543375A (zh) * | 2019-09-20 | 2021-03-23 | 青岛海信传媒网络技术有限公司 | 一种电视耗能管理方法及相关设备 |
US11953965B2 (en) * | 2021-12-21 | 2024-04-09 | Ati Technologies Ulc | Adaptive power management |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204125A1 (en) * | 2004-03-12 | 2005-09-15 | Cheng-Hao Chin | Method for automatically changing the hardware settings of a computer in accordance with an executing application program |
CN101751299A (zh) * | 2008-12-17 | 2010-06-23 | 微星科技股份有限公司 | 具有自动调整硬件参数值的计算机主机板 |
CN101778164A (zh) * | 2010-01-06 | 2010-07-14 | 宇龙计算机通信科技(深圳)有限公司 | 一种移动终端及其功率参数调整的方法 |
US20100250981A1 (en) * | 2009-03-30 | 2010-09-30 | Lenova (Singapore) Pte. Ltd. | Dynamic memory voltage scaling for power management |
WO2011004221A1 (en) * | 2009-07-08 | 2011-01-13 | Nokia Corporation | Method and apparatus for application power management |
JP2013516713A (ja) * | 2010-01-11 | 2013-05-13 | クアルコム,インコーポレイテッド | 中央処理ユニットをリアルタイムで監視するシステムおよび方法 |
US20140317427A1 (en) * | 2013-04-17 | 2014-10-23 | Qualcomm Incorporated | Dynamic clock voltage scaling (dcvs) based on application performance in a system-on-a-chip (soc), and related methods and processor-based systems |
US20140325481A1 (en) * | 2013-04-25 | 2014-10-30 | Centurylink Intellectual Property Llc | Green Software Applications |
WO2016090187A1 (en) * | 2014-12-05 | 2016-06-09 | Tso Logic Inc | Power state adjustment |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11161383A (ja) | 1997-09-05 | 1999-06-18 | Texas Instr Inc <Ti> | オンチップ・アクティビティに応答してマイクロプロセッサの電力消費を調節するためのマイクロプロセッサ回路、システム、及び方法 |
US6167567A (en) * | 1998-05-05 | 2000-12-26 | 3Com Corporation | Technique for automatically updating software stored on a client computer in a networked client-server environment |
US7636921B2 (en) | 2004-09-01 | 2009-12-22 | Ati Technologies Inc. | Software and methods for previewing parameter changes for a graphics display driver |
US20060080867A1 (en) | 2004-10-18 | 2006-04-20 | Fang-Lin Chi | Shoe heel with liquid received therein |
US8276133B1 (en) | 2007-12-11 | 2012-09-25 | Nvidia Corporation | System, method, and computer program product for determining a plurality of application settings utilizing a mathematical function |
JP4966327B2 (ja) | 2009-03-17 | 2012-07-04 | 株式会社東芝 | 情報処理装置及び省電力設定方法 |
US8607083B2 (en) | 2010-04-01 | 2013-12-10 | Intel Corporation | Method and apparatus for interrupt power management |
US9454943B2 (en) | 2012-10-16 | 2016-09-27 | Razer (Asia-Pacific) Pte. Ltd. | Computing systems and methods for controlling a computing system |
US9224442B2 (en) * | 2013-03-15 | 2015-12-29 | Qualcomm Incorporated | System and method to dynamically determine a timing parameter of a memory device |
US20140281592A1 (en) | 2013-03-18 | 2014-09-18 | Advanced Micro Devices, Inc. | Global Efficient Application Power Management |
US9063782B2 (en) * | 2013-04-04 | 2015-06-23 | Harris Corporation | Changing resource allocation among a plurality of concurrently executing applications in a portable multimode communication device in response to a change in usage scenario |
JP6244785B2 (ja) | 2013-09-30 | 2017-12-13 | 日本電気株式会社 | It機器 |
US9639465B2 (en) * | 2014-04-30 | 2017-05-02 | Qualcomm Innovation Center, Inc. | Dynamic cachable memory interface frequency scaling |
CN104007806B (zh) | 2014-06-20 | 2017-10-24 | 中科创达软件股份有限公司 | 一种安卓系统中的cpu频率的控制方法、装置和设备 |
US10108520B2 (en) * | 2015-10-27 | 2018-10-23 | Tata Consultancy Services Limited | Systems and methods for service demand based performance prediction with varying workloads |
US20170228849A1 (en) * | 2016-02-05 | 2017-08-10 | Mediatek Inc. | Apparatuses and methods for activity-based resource management, and storage medium thereof |
-
2016
- 2016-11-18 US US15/355,569 patent/US10877547B2/en active Active
-
2017
- 2017-11-07 JP JP2019526604A patent/JP6909290B2/ja active Active
- 2017-11-07 EP EP17870951.5A patent/EP3542245A4/en active Pending
- 2017-11-07 WO PCT/CA2017/051322 patent/WO2018090130A1/en unknown
- 2017-11-07 CN CN201780069017.4A patent/CN109923498B/zh active Active
- 2017-11-07 KR KR1020197015368A patent/KR102208349B1/ko active IP Right Grant
-
2020
- 2020-12-24 US US17/133,854 patent/US11703931B2/en active Active
-
2023
- 2023-06-22 US US18/339,963 patent/US20230333624A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204125A1 (en) * | 2004-03-12 | 2005-09-15 | Cheng-Hao Chin | Method for automatically changing the hardware settings of a computer in accordance with an executing application program |
CN101751299A (zh) * | 2008-12-17 | 2010-06-23 | 微星科技股份有限公司 | 具有自动调整硬件参数值的计算机主机板 |
US20100250981A1 (en) * | 2009-03-30 | 2010-09-30 | Lenova (Singapore) Pte. Ltd. | Dynamic memory voltage scaling for power management |
WO2011004221A1 (en) * | 2009-07-08 | 2011-01-13 | Nokia Corporation | Method and apparatus for application power management |
CN101778164A (zh) * | 2010-01-06 | 2010-07-14 | 宇龙计算机通信科技(深圳)有限公司 | 一种移动终端及其功率参数调整的方法 |
JP2013516713A (ja) * | 2010-01-11 | 2013-05-13 | クアルコム,インコーポレイテッド | 中央処理ユニットをリアルタイムで監視するシステムおよび方法 |
US20140317427A1 (en) * | 2013-04-17 | 2014-10-23 | Qualcomm Incorporated | Dynamic clock voltage scaling (dcvs) based on application performance in a system-on-a-chip (soc), and related methods and processor-based systems |
US20140325481A1 (en) * | 2013-04-25 | 2014-10-30 | Centurylink Intellectual Property Llc | Green Software Applications |
WO2016090187A1 (en) * | 2014-12-05 | 2016-06-09 | Tso Logic Inc | Power state adjustment |
Also Published As
Publication number | Publication date |
---|---|
US20210116987A1 (en) | 2021-04-22 |
EP3542245A4 (en) | 2020-06-17 |
WO2018090130A1 (en) | 2018-05-24 |
KR20190082822A (ko) | 2019-07-10 |
US11703931B2 (en) | 2023-07-18 |
JP6909290B2 (ja) | 2021-07-28 |
EP3542245A1 (en) | 2019-09-25 |
US20230333624A1 (en) | 2023-10-19 |
US20180143680A1 (en) | 2018-05-24 |
KR102208349B1 (ko) | 2021-01-27 |
JP2020513613A (ja) | 2020-05-14 |
CN109923498B (zh) | 2023-08-15 |
US10877547B2 (en) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109923498A (zh) | 用于电力性能管理的应用剖析 | |
CN110389763B (zh) | 用于调度专用处理资源的方法、设备和计算机可读介质 | |
US9292293B2 (en) | Intelligent multicore control for optimal performance per watt | |
US9384053B2 (en) | Task allocation optimization system, task allocation optimization method, and non-transitory computer readable medium storing task allocation optimization program | |
CN110389816B (zh) | 用于资源调度的方法、装置以及计算机可读介质 | |
EP3451238A1 (en) | Apparatus and method for executing pooling operation | |
CN110058926A (zh) | 用于处理gpu任务的方法、设备和计算机可读介质 | |
US20210256373A1 (en) | Method and apparatus with accelerator | |
US10353591B2 (en) | Fused shader programs | |
US9792135B2 (en) | Differential voltage and frequency scaling (DVFS) switch reduction | |
CN108681480B (zh) | 后台应用程序管控方法、装置、存储介质及电子设备 | |
JP5429214B2 (ja) | プログラム作成支援装置、プログラム作成支援方法およびコンピュータプログラム | |
CN110309462A (zh) | 数据展示方法及系统 | |
KR20230124598A (ko) | 높은 처리량 및 낮은 오버헤드 커널 개시를 위한 압축 커맨드 패킷 | |
US20200004585A1 (en) | Techniques for reducing serialization in divergent control flow | |
CN112286578A (zh) | 由计算设备执行的方法、装置、设备和计算机可读存储介质 | |
US20230393896A1 (en) | Dynamic scheduling of multiple machine learning models | |
US20220011846A1 (en) | Performance and power tuning user interface | |
CN112991206B (zh) | 图像处理方法、装置、设备和存储介质 | |
CN116205023B (zh) | 机器人智能实验室的设计方法、装置、设备和存储介质 | |
CN109213590B (zh) | 调度处理器的方法和装置 | |
CN110532103A (zh) | 一种多任务处理的方法及装置 | |
CN103873582B (zh) | 一种资源管理的方法及装置 | |
Hoos | Design method for developing a Mobile Engineering-Application Middleware (MEAM) | |
CN116541151A (zh) | 线程调度方法、装置、电子设备及介质 |
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 |