JP6105077B2 - グラフィックス・エンジンの電力消費を管理する方法、システム、及び装置 - Google Patents

グラフィックス・エンジンの電力消費を管理する方法、システム、及び装置 Download PDF

Info

Publication number
JP6105077B2
JP6105077B2 JP2015544129A JP2015544129A JP6105077B2 JP 6105077 B2 JP6105077 B2 JP 6105077B2 JP 2015544129 A JP2015544129 A JP 2015544129A JP 2015544129 A JP2015544129 A JP 2015544129A JP 6105077 B2 JP6105077 B2 JP 6105077B2
Authority
JP
Japan
Prior art keywords
graphics
power
graphics engine
node
exemplary
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
Application number
JP2015544129A
Other languages
English (en)
Other versions
JP2016503549A (ja
Inventor
ゴヴィンダラジュ,カニヴェナハリ
ジェイ. ジンマー,ヴィンセント
ジェイ. ジンマー,ヴィンセント
Original Assignee
インテル コーポレイション
インテル コーポレイション
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 インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2016503549A publication Critical patent/JP2016503549A/ja
Application granted granted Critical
Publication of JP6105077B2 publication Critical patent/JP6105077B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/18Timing circuits for raster scan displays
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Power Sources (AREA)

Description

本開示は、一般に、電力管理に関し、より詳細には、グラフィックス・エンジンの電力消費を管理する方法、システム、及び装置に関する。
メディア配信は複雑なオペレーションを伴う。オンライン・メディアの配信に対する需要が増えるにつれ、対応するグラフィックス・ハードウェアのパフォーマンスもまた増大しなければならなくなった。しかしながら、パフォーマンスの増大は、一般に、グラフィックス・ハードウェアによる電力消費の増大に対応する。
グラフィックス・エンジンの電力消費を管理するための本開示の教示に従った例示的な環境において使用される例示的な電力コントローラの概略図。 図1の例示的な環境における例示的なノードのブロック図。 図1の例示的な環境における例示的なデータ・センタのブロック図。 電力消費を管理するために実行することができる例示的なマシン読み取り可能命令を示すフローチャート。 電力消費を管理するために実行することができる例示的なマシン読み取り可能命令を示すフローチャート。 図1〜図3の例示的なシステム及び装置を実装するために図4及び図5の命令を実行することができる例示的なプロセッサ・プラットフォームの概略図。
データ・センタの少なくとも1つの財政的負担は、電力量のコストに関連する。データ・センタにおいて使用されるコンピューティング・リソースの量が増大するにつれ、データ・センタのデータ処理要件を満たすために、電力量/エネルギのコストも増大する。いくつかのデータ・センタにおいて、電力量のコストは、データ・センタのオペレーティング・コストの半分を構成し得る。したがって、データ・センタにより消費される電力を管理することは、非常に重要である。
データ・センタは、列をなす数百又は数千のサーバを収容し得る。そこでは、列が、ラックに分割され得る。各ラックは、サーバの集合を表し得る。各サーバは、通常、チップセットを含み、チップセットは、集積グラフィックス・ハードウェアを有する中央処理装置(CPU)又は(チップセットの一部としての)他のグラフィックス・ハードウェアへの1以上の通信コネクションを有するCPUを含む。例えば、CPUは、1以上のコア・プロセッサと、グラフィックス・プロセッサ又はグラフィックス・エンジンとを含み得る。
いくつかの既知のシステムにおいて、グラフィックス・ワークロード(graphics workload)が、CPU内の処理コアからドライバ・レベルに位置するグラフィックス・ドライバ(又は、オペレーティング・システム・カーネル)に伝達される。グラフィックス・ドライバは、ワークロードを、CPUに含まれるグラフィックス・エンジンのための命令に変換する。ワークロードは、グラフィックス・エンジンに含まれる実行ユニット(又は、グラフィックス・エンジン・ブロック)により実行される1以上のタスクに分割される。いくつかの既知のグラフィックス・エンジンは、2つの電力状態、すなわち、処理状態(例えば、グラフィックス状態G)又はアイドル状態(例えば、グラフィックス状態G)で動作する。電力状態は、電圧及び周波数の別個の組合せを示す。最高の実行電力状態(例えば、G状態)にある間、既知のグラフィックス・エンジンは、例えば、グラフィックス・エンジン・メーカにより設定された高い(例えば、最大の)グラフィックス処理周波数で動作する。G状態とは反対に、既知のグラフィックス・エンジンが、より低い電力消費状態(例えば、G状態)にあるとき、グラフィックス・エンジンは、ベースライン・グラフィックス処理周波数で動作する。本明細書において使用されるとき、「ベースライン」周波数とは、グラフィックス・エンジンがアイドル状態にあるときに動作する周波数を指す。したがって、既知のグラフィックス・エンジンが、ワークロードを実行しているとき(例えば、ビデオ・ファイルをトランスコードしているとき)、例示的なグラフィックス・ドライバは、グラフィックス・エンジンをG状態に設定して、高い(例えば、最大の)利用可能なグラフィックス処理周波数を利用する。その結果、既知のグラフィックス・エンジンは、より高いグラフィックス処理周波数で動作しているので、既知のグラフィックス・エンジンは、より高い電力量を消費する。ワークロードの処理が完了すると、ワークロードが完了したことを示す情報が、既知のグラフィックス・ドライバに伝達され、グラフィックス・ドライバは、グラフィックス・エンジンをG状態に設定して、グラフィックス・エンジンのためにベースライン周波数を確立する。しかしながら、既知のグラフィックス・エンジンは、処理パフォーマンスを犠牲にすることなく、より低いグラフィックス処理周波数でワークロードを処理することができ得る。したがって、ワークロードを処理している間、不必要な電力が、既知のグラフィックス・プロセッサにより消費される。
グラフィックス・エンジンにより消費される電力は、グラフィックス処理周波数に比例し、グラフィックス・エンジンを動作させるために使用される電圧の2乗に比例する。したがって、いくつかのシステムにおいて、電力消費を管理することは、グラフィックス処理周波数及び/又は電圧を管理することを含む。いくつかのシステムにおいてグラフィックス処理周波数を操作することは、面倒なプロセス及び/又は非実用的なプロセスであり得る。例えば、ターゲット内プローブ(in-target probe)を使用して、プロセッサをアンロックし、次いで、目標周波数を制御するために、設定及び/又は電圧を調整する場合がある。しかしながら、この方法は、処理プラットフォームの開発フェーズ中にのみ利用可能なものであり、処理プラットフォームの開発フェーズ及び/又は実行(動作)フェーズの後では利用可能でない。したがって、いくつかのシステムに関してグラフィックス状態に対応するグラフィックス処理周波数を操作することは、データ・センタ等の大規模なサーバ展開、クラウド展開、若しくは、数十、数百、又は数千のサーバを有するインターネット・データ・センタにおいては実用的でない。本明細書で開示する例示的な方法、装置、システム、及び/又は製品は、サーバにおけるきめの細かい統合されたグラフィックス電力管理を提供し、これが、今度は、大規模なサーバ展開における1以上のサーバに拡張され得る。すなわち、本明細書で開示する例示的な方法、システム、及び/又は製品は、面倒な1以上のターゲット内プローブ(例えば、回路内プローブ)の必要性なく、きめの細かい統合されたグラフィックス電力管理を容易にする。
図1は、サーバにおけるきめの細かい統合されたグラフィックス電力管理を容易にする例示的な環境100の図である。図1の例示的な環境100は、例示的な管理コンソール102と、例示的なサーバ又はノード132と、を含む。いくつかの例において、管理コンソール102は、複数のデバイスを用いて実装される。例えば、管理コンソール102は、互いに通信する複数のワークステーション(例えば、デスクトップ・コンピュータ、ワークステーション・サーバ、ラップトップ等)を含み得る。いくつかの例において、管理コンソール102は、オペレーティング・システムを動作させる。図1に示した例において、管理コンソール102は、ネットワーク106により表される1以上の有線ネットワーク及び/又は無線ネットワークを介して、ノード132と通信する。例示的なネットワーク106は、1以上の任意の適切な有線ネットワーク及び/又は無線ネットワークを用いて実装され得る。そのようなネットワークとして、例えば、1以上のデータ・バス、1以上のローカル・エリア・ネットワーク(LAN)、1以上の無線LANS、1以上のセルラ・ネットワーク、インターネット等がある。本明細書において使用されるとき、派生形を含む「通信する」という語句は、直接通信及び/又は1以上の中間コンポーネントを介した非直接通信を含み、直接の物理的通信(例えば、有線通信)を要しない。
図1に示した例において、ノード132の電力管理は、3つの異なるレベル又はレイヤ(例えば、例示的なアプリケーション・レベル134、例示的なオペレーティング・システム(OS)カーネル136、及び例示的なハードウェア・レイヤ138)で生じる。
図1に示した例において、アプリケーション・レベル134は、アクティビティを実行するためのインタフェースをユーザに提供する。例えば、1以上のソフトウェア又はアプリケーションは、アプリケーション・レベル134で実行され得る。例示的なソフトウェア又はアプリケーションにより、ユーザ及び/又はメモリに記憶されたプロファイルは、1以上のタスクを実行することが可能となり、そのようなタスクをどのように実行するかを可能とする。例えば、ユーザは、アプリケーション・レベル134でメディア・プレーヤを利用して、ノード又はサーバにビデオ・ファイルをストリーミングするよう指示することができる。図1に示した例において、OSカーネル136は、アプリケーション・レベル134とハードウェア・レイヤ138との間のブリッジとして動作するソフトウェア(又は、ソフトウェア及び/又はファームウェアの集合)である。図1に示した例において、OSカーネル136は、ハードウェア・レイヤ138のコンピューティング・リソースを管理する実行コード(又は、1以上のドライバ)を含む。例えば、OSカーネル136上で実行される実行コードは、ハードウェア・コンポーネントが、アプリケーション・レベル134で実行されるプログラムからの命令を実行するときを判定することができる。いくつかの例において、OSカーネル136において実行される実行コードは、特定のコンピューティング・リソースを制御又は管理することができる。例えば、OSカーネル136上で実行されるグラフィックス・トランスレータ(graphics translator)108(しばしばグラフィックス・ドライバと呼ばれる)は、ビデオ・ファイルをストリーミングするために、アプリケーション・レベル134で実行されるメディア・プレーヤから命令を受信する。例示的なグラフィックス・トランスレータ108は、次いで、処理すべきデータ、そのデータをいつ処理すべきか、そのデータをどのように処理すべきか等に関して、例示的なグラフィックス・エンジン122に指示することができる。図1に示した例において、ハードウェア・レイヤ138は、データ処理を実行するハードウェア・コンポーネントを含む。例えば、グラフィックス・エンジン122は、グラフィックス・トランスレータ108からの命令に対応するデータを受け取り、ビデオ・トランスコーディングを実行することができる。
図1に示した例において、情報技術(IT)専門家等のユーザ130は、アプリケーション・レベル134で実行されるプログラムを介して、ノード132(又は、ノード132のコンポーネント(例えば、グラフィックス・エンジン122))のポリシ・ディレクティブ(policy directive)140を設定する。例えば、IT専門家130は、管理コンソール102を介して、ノード132(又は、ノード132のコンポーネント)のサービス・レベル・アグリーメント(SLA)を入力することができる。例示的なポリシ・ディレクティブ140(又は、SLA)は、ノード132のための1以上の動作条件を指定する。例えば、SLA140は、ノード132に割り当てられるワット(例えば、電力バジェット(power budget)又は電力上限(power cap))、ワークロードを実行している間の目標グラフィックス処理周波数、どのくらい長くポリシが実施されるか(例えば、ポリシ期間)、及び/又は、例えば、アラーム又はアラートを送信するかどうか、時折の電力スパイク(power spike)を考慮するために訂正期間(correction period)を可能にするかどうか、ノード132(又は、ノード132のコンポーネント)がポリシ・ディレクティブ140に適合することができなかった場合にどのような種類のアラーム/アラートを出力すべきか等、電力バジェットに違反したときの時間にどのように対処するか(例えば、1以上のポリシ・メンテナンス・パラメータ(policy maintenance parameter)、ポリシ・メンテナンス条件)を指定し得る。図1に示した例において、管理コンソール102は、1以上のポリシ・ディレクティブ140を記憶するために、ポリシ・ディレクティブ・ストレージ142と通信する。いくつかの例において、ポリシ・ディレクティブ・ストレージ142は、1以上のネットワーク及び/又はローカル通信インタフェースを介して管理コンソール102と通信するメモリ又はデータベースである。いくつかの例において、ポリシ・ディレクティブ・ストレージ142は、管理コンソール102に対してローカルにある、且つ/あるいは管理コンソール102と統合される。
図1に示した例において、管理コンソール102は、電力マネージャ104を含む。例示的な電力マネージャ104は、例示的な管理コンソール102上で実行され、アプリケーション・レベル134へのインタフェースを容易にするアプリケーション又はアプリケーション・プログラミング・インタフェース(API)である。例えば、電力マネージャ104は、IT専門家130がノード132を管理することを可能にするウェブ・サービスAPIを含み得る。図1に示した例において、電力マネージャ104は、例示的なノード132に対する1以上のポリシ・ディレクティブ140を設定するためのインタフェースをIT専門家130に提供することができる。いくつかの例において、電力マネージャ104は、ノード132に適用するために、ポリシ・ディレクティブ・ストレージ142から1以上のポリシ・ディレクティブ140を取得することができる。例えば、電力マネージャ104は、例示的なポリシ・ディレクティブ140から取得されたメンテナンス・パラメータ、スケジュール(例えば、時刻)、現在のアクティビティ傾向(例えば、ワークロードの増大は、電力バジェットを増大させ得る)等に基づいて、ノード132の電力バジェットを変更することができる。いくつかの例において、管理コンソール102は、レビュー及び/又は調整のために、現在のポリシ・ディレクティブ・メンテナンス・パラメータ(又は、設定)をIT専門家130に表示することができる。いくつかの例において、電力マネージャ104は、ノード132の電力消費をモニタリングすることができる、且つ/あるいはIT専門家130がノード132の電力消費をモニタリングするのを可能にし得る。例えば、電力マネージャ104を介して、管理コンソール102は、ノード132からの周期的なステータス通知、非周期的なステータス通知、スケジュールされたステータス通知、及び/又はマニュアルのステータス通知を出力(例えば、表示)することができる。さらに他の例において、管理コンソール102は、ノード132がポリシ・ディレクティブ140に適合しないときに、可聴アラーム、可聴アラート、視覚アラーム、及び/又は視覚アラートを出力することができる。
図1に示した例において、ポリシ・ディレクティブ140は、(例えば、ネットワーク106を介して)管理コンソール102からノード132に伝達される。例示的なノード132において、例示的なポリシ・ディレクティブ140は、ノード132に含まれるソフトウェア、ファームウェア、及び/又はハードウェアにより処理される。例示的なノード132は、例示的なグラフィックス・トランスレータ108、例示的なセンサ・モニタ110、及び例示的な中央処理装置(CPU)112を含む。例示的なセンサ・モニタ110は、例示的なOSカーネル136上で動作する。例示的なCPU112は、例示的なハードウェア・レイヤ138で動作する。上述したように、OSカーネル136上で実行される実行コードは、アプリケーション・レベル134で実行されるプログラムと、ハードウェア・レイヤ138におけるハードウェア・コンポーネントとの間のブリッジとして動作する。
図1に示した例において、ノード132は、グラフィックス・トランスレータ108、センサ・モニタ110、及び中央処理装置(CPU)112を含む。いくつかの例において、グラフィックス・トランスレータ108(又は、グラフィックス・ドライバ)は、管理コンソール102から伝達されるデータ又は情報を、例示的なCPU112により実行及び/又は解釈若しくは実施され得る命令に変換する実行可能命令(例えば、ソフトウェア)により実装される。例えば、ポリシ・ディレクティブ140は、管理コンソール102の電力マネージャ104を介してCPU112に伝達される命令を含み得る。例示的なグラフィックス・トランスレータ108は、例示的なポリシ・ディレクティブ140からの情報を、例示的なCPU112が実行する命令に変換することができる。例えば、グラフィックス・トランスレータ108は、IT専門家130により設定された電力バジェット及び/又はノード132のポリシ・ディレクティブ140をCPU112に伝達することができる。いくつかの例において、グラフィックス・トランスレータ108は、CPU112から受信したデータ又は情報を、電力マネージャ104のための情報に変換することができる。そのような情報として、例えば、例示的なポリシ・ディレクティブ140が満たされているか、あるいは例示的なポリシ・ディレクティブ140に違反しているかを示す、CPU112からの出力がある。例示的なグラフィックス・トランスレータ108は、例示的なCPU112からのインジケーションを、ステータス通知として出力する、例示的な電力マネージャ104のための情報に変換することができる。ステータス通知は、例示的なポリシ・ディレクティブ140が満たされていないか(例えば、アラーム又はアラートとして)、あるいは満たされているか(例えば、アクノレッジメントを介して、アラーム又はアラートなく)を示す。ノード132がポリシ・ディレクティブ140に適合しない例示的なインスタンスは、閾値(例えば、ある値)を超える電力又はエネルギの量を消費するノード132を含む。
いくつかの例において、センサ・モニタ110は、ハードウェア・レイヤ138に含まれるハードウェア・コンポーネントに接続された1以上のセンサをモニタリングし、ハードウェア・コンポーネント(例えば、電力コントローラ116、グラフィックス・エンジン122等)の現在のプロファイル及び/又はステータスを決定する。例えば、センサ・モニタ110は、CPU112に接続された1以上の電力センサから現在の電力情報を収集し、収集した情報に基づいて、CPU112により消費された即時電力(instant power)を決定することができる。いくつかの例において、センサ・モニタ110は、1以上の時間期間にわたって消費された電力の範囲等、消費された電力に対応するインジケーションを出力する。
図1に示した例において、CPU112は、例示的なハードウェア・レイヤ138に位置するハードウェア・コンポーネントとして動作する、あるいは例示的な管理コンソール102に通信可能に接続された仮想マシン・モニタにより制御される仮想マシンとして動作する。いくつかの例において、CPU112は、アプリケーション・レベル134で実行されるプログラム及び/又はOSカーネル136上で実行される実行コードと通信する。例示的なCPU112はまた、メモリに記録された情報を取得して、その情報を1以上のグラフィックス・エンジンに伝達する等、ハードウェア・レイヤ138における他のハードウェア・コンポーネント間の情報の伝達を円滑にすることができる。
図1に示した例において、CPU112は、1以上のコア(又は、プロセッサ)114、電力コントローラ116、及びグラフィックス・エンジン122を含む。グラフィックス・エンジン122は、実行ユニット(EU)124、126、128を含む。図1に示した例において、コア114は、電力マネージャ104、グラフィックス・トランスレータ108、及び/又はセンサ・モニタ110からの命令を読み書きする。いくつかの例において、コア114は、アプリケーション・レベル134で実行されるプログラム(例えば、例示的な電力マネージャ104)及び/又はOSカーネル136上で実行される命令(例えば、ソフトウェア)(例えば、例示的なグラフィックス・トランスレータ108)から情報を受信する。例示的なコア114は、情報のタイプに基づいてどのコンポーネントに情報を伝達するかを決定することができる。例えば、コア114は、例示的なポリシ・ディレクティブ140の設定に対応する命令を、グラフィックス・トランスレータ108から受信することができる。その結果、例示的なコア114は、例示的なポリシ・ディレクティブ140の設定に対応する情報を、例示的な電力コントローラ116に伝達することができる。例えば、コア114は、グラフィックス・エンジン122の電力バジェットの変化を電力コントローラ116に伝達する。
図1に示した例において、電力コントローラ116は、グラフィックス・エンジン122により消費される電力を管理及び/又は構成する。上述したように、グラフィックス・エンジン122がG状態又はG状態のいずれかで動作するのではなく、電力コントローラ116は、1以上の追加のグラフィックス状態又は代替のグラフィックス状態を含み、各グラフィックス状態は、異なる周波数で動作し得る。結果として、例示的な各グラフィックス状態は、例示的なグラフィックス・エンジン122による電力消費の異なる量に対応する。図1に示した例において、電力コントローラ116は、グラフィックス・エンジン122が処理することができる最大周波数のあるパーセンテージとしてグラフィックス・エンジン122が動作する周波数を指定するデータ構造118(例えば、テーブル、ビット・アレイ等)を含む。例えば、例示的なグラフィックス・エンジン122が例示的なG状態に設定された場合、グラフィックス・エンジン122は、グラフィックス・エンジン122の最大動作周波数の80パーセントで動作する(行120参照)。
いくつかの例において、グラフィックス状態の数、及び対応する周波数は、(例えば、ワークロードを実行している間の)オペレーション中の電力消費の履歴の解析に基づいて生成される。例えば、2週間の期間にわたってグラフィックス・エンジン122の電力消費をモニタリングすることにより、3つのエネルギ・レベル(例えば、電力消費レベル、周波数レベル等)のうちの1つで、時間の大多数を費やすことを明らかにする。いくつかの例において、これらのエネルギ・レベルが、複数の周波数又は周波数レベルに変換され得る。図1の例示的なデータ構造118に記憶された例示的なグラフィックス状態は、電力消費周波数に対応するように変更される。すなわち、例示的なデータ構造118は、3つのグラフィックス状態を記録するように更新され得る。3つのグラフィックス状態の各グラフィックス状態は、3つの電力消費レベルのうちの1つ、あるいは3つの電力消費レベルのうちの1つの近くにおける、例示的なグラフィックス・エンジン122による電力消費に対応する周波数を有する。いくつかの例において、データ構造118は、ポリシ・ディレクティブ140のメンテナンス・パラメータ(又は、条件)を反映する。例示的な各ポリシ・ディレクティブ140は、任意の数の例示的なデータ構造118を含み得る。例えば、ポリシ・ディレクティブ140は、ピーク時間中に実行されるグラフィックス状態を有する第1のデータ構造118と、オフピーク時間中に実行されるグラフィックス状態を有する第2のデータ構造118と、を含み得る。
図1の例示的なグラフィックス・エンジン122は、任意のタイプのグラフィカル・ワークロードを処理する。例えば、グラフィックス・エンジン122は、ビデオ・ファイル・トランスコーディングを実行することができ、そこでは、グラフィックス・エンジン122は、ビデオ・ファイルをトランスコードする命令を受信し、ワークロードが、グラフィックス・エンジン122の実行ユニット124、126、128間で分割される。図1の例示的なグラフィックス・エンジン122は、3つの実行ユニット124、126、128を含むが、本明細書で開示する例示的な方法、システム、及び/又は製品は、任意の数の実行ユニットを含んでもよく、その数は、グラフィックス・エンジンのタイプに基づいて変わり得る。しかしながら、例示的な実行ユニット124、126、128がビデオ・ファイルをトランスコードする速度は、例示的な電力コントローラ116により設定される例示的なグラフィックス状態に依存する。
図2は、図1の例示的なノード132のブロック図である。図2に示した例において、電力コントローラ116は、ポリシ・ディレクティブ140に対応する情報に基づいて、グラフィックス・エンジン122のグラフィックス状態を設定する。例えば、電力コントローラ116は、ポリシ・ディレクティブ140及び/又は1以上のデータ構造118により規定される、グラフィックス・エンジン122の電力バジェット202(例えば、閾値)(例えば、グラフィックス・エンジン122により消費される電力の上限)に対応する情報を受信することができる。いくつかの例において、グラフィックス・エンジン122の電力バジェット202は、アプリケーション・レベル134で実行されるソフトウェア(例えば、電力マネージャ104)を介して、ユーザ130(例えば、IT専門家)により直接設定され得る。いくつかの例において、グラフィックス・エンジン122の電力バジェット202は、IT専門家130により間接的に設定され得る。例えば、IT専門家130は、複数のノードに対して、単一の電力バジェット(例えば、グループ電力バジェット)を設定することができ、グラフィックス・エンジン122の電力バジェット202は、電力マネージャ104により設定され得る。さらに他の例において、電力バジェット202は、例示的な電力マネージャ104によりアクセスされる1以上のポリシ・ディレクティブ140により、マニュアルで、スケジュールされて、周期的に、且つ/あるいは非周期的に設定され得る。
図2に示した例において、電力コントローラ116は、電力バジェット202に適合しながらワークロードを実行するために、グラフィックス・エンジン122のグラフィックス状態を設定する。いくつかの例において、電力コントローラ116は、各グラフィックス状態の消費(例えば、電力消費、周波数値等)を電力バジェット202と比較し、電力バジェット202が許容するよりも多く電力を消費することなく、電力バジェット202に最も近い消費値を選択する。いくつかの例において、電力コントローラ116は、グラフィックス・エンジン122を、デフォルトのグラフィックス状態(又は、予め定められたグラフィックス状態)に設定することができる。例えば、グラフィックス・エンジン122が、実行すべきワークロード(例えば、ビデオ・ファイルをトランスコードする命令)を受信するとき、電力コントローラ116は、G状態における電力消費を電力バジェット202と比較することなく、グラフィックス・エンジン122をG状態に設定することができる。いくつかの例において、電力コントローラ116は、履歴情報に基づいて、グラフィックス・エンジン122をあるグラフィックス状態に設定することができる。例えば、電力コントローラ116は、グラフィックス・エンジン122が、G状態に設定されたまま受信したワークロードの大多数を実行すると決定することができる。したがって、例示的な電力コントローラ116は、グラフィックス・エンジン122をG状態に設定することができる。いくつかの例において、電力コントローラ116は、グラフィックス・エンジン122を、グラフィックス・エンジン122が前のワークロードの実行を完了したグラフィックス状態に設定することができる。いくつかの例において、電力コントローラ116は、グラフィックス・エンジン122が、グラフィックス・エンジン122に含まれる1以上の実行ユニット124、126、128のグラフィックス状態を変更しながら、ワークロードを実行し、電力バジェット202を満たすことができると決定することができる。例えば、グラフィックス・エンジン122は、ワークロードの実行を完了し、実行ユニット124がGグラフィックス状態に設定され、実行ユニット126、128が例えばGグラフィックス状態に設定されたまま、電力バジェット202以下に保つことができる。したがって、例示的な電力コントローラ116は、利用可能なコンピューティング・リソース及び/又はグラフィックス・エンジン122のために設定された電力バジェット202に基づいて、ワークロードを完了するのを円滑にする。
図2に示した例において、電力コントローラ116により設定されたグラフィックス状態に基づいて、グラフィックス・エンジン122は、1以上の対応する周波数でワークロードを実行する。いくつかの例において、1以上のセンサは、実行ユニット124、126、128のうちの1以上に接続され得る、且つ/あるいは実行ユニット124、126、128のうちの1以上の近くに配置され得る。例えば、電力消費を測定することができるセンサは、実行ユニット124、126、128の近くに配置され得る。図2に示した例において、センサ・モニタ110は、1以上のタスクを実行している間及び/又はグラフィックス・エンジン122により消費された即時電力を計算している間に、各実行ユニット124、126、128により消費された電力に対応する、実行ユニット124、126、128に位置する、あるいは実行ユニット124、126、128の近くに位置するセンサにより収集された情報を集約する。いくつかの例において、センサ・モニタ110は、グラフィックス・エンジン122により消費された即時電力を、電力バジェット202に基づいて修正されるべきフィードバック・ループとして、電力コントローラ116に伝達することができる。他の例において、センサ・モニタ110は、消費された即時電力が1以上の電力消費閾値(power consumption threshold)の範囲内にあることを伝達することができる。
図2に示した例において、電力コントローラ116は、センサ・モニタ110から取得された即時電力消費値を、ポリシ・ディレクティブ140に関連付けられた1以上の値又はメンテナンス・パラメータ(例えば、グラフィックス・エンジン122の電力バジェット202)と比較する。比較の結果に基づいて、例示的な電力コントローラ116は、例示的なグラフィックス・エンジン122の現在設定されているグラフィックス状態に対する調整を行うかどうかを判定する。例えば、即時電力消費が、電力バジェット202に到達した場合、及び/又は電力バジェット202を超えた場合、電力コントローラ116は、電力バジェット202を満たすために、グラフィックス・エンジン122の1以上のグラフィックス状態に対して行う調整を決定することができる。例えば、電力コントローラ116は、実行ユニット124、126、128のうちの1以上を、より低い電力消費グラフィックス状態に設定することができる(例えば、実行ユニット124、126、128のうちの1以上のグラフィックス処理周波数を調整することができる)。いくつかの例において、電力消費が、電力バジェット202未満の場合、電力コントローラ116は、グラフィックス・エンジン122により実行されるワークロードを増大させるアクションを実行することができる。いくつかの例において、電力コントローラ116は、電力バジェット202を満たすのを容易にするために、2つのグラフィックス状態間で、グラフィックス・エンジン122のグラフィックス状態を調節することができる。例えば、グラフィックス・エンジン122の電力バジェット202は、G状態で動作している間は、グラフィックス・エンジン122の電力消費よりも多い場合があるが、G状態で動作している間は、グラフィックス・エンジン122の電力消費よりも少ない場合がある。そのような例において、ある時間期間にわたって、例えば、G状態とG状態との間の切り替えにより生じるグラフィックス・エンジン122の平均電力消費は、電力バジェット202を満たし得る。
グラフィックス状態を調節することが容認可能な調整であるかどうかは、例えば、IT専門家130により設定されたポリシ・ディレクティブ140のメンテナンス・パラメータ(又は、条件)に依存する。例示的なポリシ・ディレクティブ140は、即時電力消費が、ポリシ・ディレクティブ140の下で、オペレーション中の任意の時間において、電力バジェット202を超えることがない(例えば、電力バジェット202を満たす)ことを示し得る。いくつかの例において、ポリシ・ディレクティブ140は、訂正期間を含み得る。例えば、ポリシ・ディレクティブ140は、グラフィックス・エンジン122の即時電力消費及び/又は平均電力消費が、1秒という期間にわたって、電力バジェット202を超えることがないことを示し得る。すなわち、例示的な電力コントローラ116が、電力バジェット202を超える1秒以内に、電力バジェット202を満たすために、例示的なグラフィックス・エンジン122の即時電力消費及び/又は平均電力消費に対して調整を行うことができない場合、電力コントローラ116は、グラフィックス・エンジン122が、現在実施されている電力バジェット202及び/又はポリシ・ディレクティブ140に適合することができない、あるいは現在実施されている電力バジェット202及び/又はポリシ・ディレクティブ140を満たすことができないというインジケーションを出力することができる。いくつかの例において、グラフィックス・エンジン122の即時電力消費及び/又は平均電力消費が、電力バジェット202を超えたとき、訂正期間タイマが、電力コントローラ116により呼び出される。例示的な電力コントローラ116は、ある訂正期間の間、即時電力消費及び/又は平均電力消費をモニタリングすることができ、訂正期間が満了したとき、あるいは即時電力消費及び/又は平均電力消費が電力バジェット202に適合するとき、グラフィックス・エンジン122の1以上のグラフィックス状態を調整することができる。
例示的な電力コントローラ116は、例示的なグラフィックス・エンジン122を動作させることが、例示的なポリシ・ディレクティブ140のメンテナンス・パラメータを満たすことができないと判定することができる。ベースライン周波数で動作している間、電力バジェット202が、グラフィックス・エンジン122により消費された電力未満のときがある。いくつかの例において、ポリシ・ディレクティブ140は、より高い(例えば、最大の)グラフィックス処理周波数で動作している間にグラフィックス・エンジン122により消費される電力よりも低い、グラフィックス・エンジン122により消費される電力のための、より低い(例えば、最小の)限界を設定することができる。いくつかのそのような例において、電力コントローラ116が、グラフィックス・エンジン122がポリシ・ディレクティブ140のメンテナンス・パラメータを満たすことができないと判定したとき、電力コントローラ116は、例えば、アラーム・インジケーションを出力する。そのような例において、図1のグラフィックス・トランスレータ108は、アラーム・インジケーションを受信することができ、IT専門家130に対してアラームを出力するために、且つ/あるいはノード132のパフォーマンスのログ・ファイルを出力するために、そのインジケーションを電力マネージャ104に伝達することができる。例えば、電力マネージャ104のインタフェースは、色を変えてもよいし、ポップアップ・ウィンドウが、電力マネージャ104のインタフェース上に出現してもよい、等である。
このように、例示的な電力コントローラ116は、電力バジェット202に適合するように、例示的なグラフィックス・エンジン122の電力設定(例えば、周波数設定)をモニタリング及び/又は構成する。さらに、電力バジェット202を満たしつつ最低の電力消費を有するグラフィックス状態を選択することにより、グラフィックス・エンジン122の電力消費を、時間にわたって数十ワット又は数百ワット低減させることができ、それにより、ノード132を維持するコスト又はノード132を動作させるコストを低減させることができる。
上述したように、図1及び図2の例示的な電力コントローラ116は、電力マネージャ104により制御される、且つ/あるいは電力マネージャ104にアクセス可能な1以上のポリシ・ディレクティブ140と調和して動作するように、例示的なグラフィックス・エンジン122のグラフィックス状態を設定する。例示的な電力コントローラ116は、ポリシ・ディレクティブ140のメンテナンス・パラメータ(又は、条件)(例えば、電力バジェット202)と、グラフィックス状態の各々に対応する電力消費とに基づいて、1以上のグラフィックス状態を選択する。例示的な電力コントローラ116はまた、ワークロードを処理している間に例示的なグラフィックス・エンジン122により消費された即時電力を、電力バジェット202と比較する。その比較に基づいて、例示的な電力コントローラ116は、例示的なグラフィックス・エンジン122の1以上のグラフィックス状態(例えば、グラフィックス処理周波数)を調整することができる。結果として、例示的な電力コントローラ116は、例示的なグラフィックス・エンジン122がより少ない電力を消費しながらワークロードを処理することを可能にする。これは、ノード132により消費される電力を、時間にわたって数十ワット又は数百ワット低減させる。図2のノード電力管理をより有用なものにするために、この電力管理は、任意の数のノード132(例えば、サーバ、コア、プロセッサ、コンピュータ処理装置)に関する電力消費を集合的に管理するよう拡張され得る。
図3は、複数のノードを有する例示的なデータ・センタ302のブロック図である。図3に示した例において、データ・センタ302は、n個のノード132A、132B...132Nを含む。例示的なノード132A、132B...132Nの各々は、図1及び図2の例示的なノード132と同様に動作する。例えば、図3の各ノード132A、132B...132Nは、それぞれの電力コントローラ116A、116B...116N、それぞれのグラフィックス・エンジン122A、122B...122N、及びそれぞれのセンサ・モニタ110A、110B...110Nを含む。図3に示した例において、各ノード132A、132B...132Nは、データ・センタ電力マネージャ304と通信する。いくつかの例において、データ・センタ電力マネージャ304は、図1の電力マネージャ104と同様のアプリケーション・レベル134のプログラムである。いくつかの例において、データ・センタ電力マネージャ304は、ユーザ(例えば、IT専門家130)が1以上のポリシ・ディレクティブ140を設定するために使用することができるインタフェースを含む。そのような例において、IT専門家130は、単一のノード132のポリシ又はノード132A、132B...132N(例えば、複数のノード)のグループのポリシを設定することができる。例えば、IT専門家130は、データ・センタ302に含まれるノード132A、132B...132N(例えば、サーバ)の1以上のラックのポリシ・ディレクティブ140を設定することができる。そのような例において、ポリシ・ディレクティブ140は、単一のノード132のポリシ・ディレクティブではなく、累積的ポリシ・ディレクティブ(又は、グループ・ポリシ・ディレクティブ)である。いくつかの例において、データ・センタ電力マネージャ304は、IT専門家130がデータ・センタ302に含まれるノード132A、132B...132Nの電力消費をモニタリングすることを可能にする。例えば、データ・センタ電力マネージャ304は、各ノード132A、132B...132N及び/又はノード132A、132B...132Nのグループの電力消費に対応する情報を出力することができる。例えば、データ・センタ電力マネージャ304は、第1のポリシ・ディレクティブの下で動作するノード132A、132B...132Nのグループのステータス、第2のポリシ・ディレクティブの下で動作するノード132A、132B...132Nのグループのステータス、あるポリシ・ディレクティブの下で動作しないノード132A、132B...132Nのステータスを示すことができる。
図3に示した例において、データ・センタ電力マネージャ304は、データ・センタ302において現在機能している1以上のポリシ・ディレクティブ140のメンテナンス・パラメータに基づいてデータ・センタ302のノード132A、132B...132Nにより消費される電力を管理及び/又は構成する。ポリシ・ディレクティブ140に含まれる各ノード132A、132B...132Nにおいて利用可能なコンピューティング・リソースに基づいて、例示的なデータ・センタ電力マネージャ304は、各ノード132A、132B...132Nのノード電力バジェット202A、202B...202Nを伝達する。例えば、最高の実行電力状態(例えば、G状態)は、1以上のノード132A、132B...132Nに対して変わり得る。したがって、(例えば、グループ電力バジェット312と、グループに含まれるノードの数とに基づく)均一のノード電力バジェットをノード132A、132B...132Nに伝達するのではなく、例示的なデータ・センタ電力マネージャ304は、全てのノード132A、132B...132Nに対して結合されたときにグループ電力バジェット312を満たす、各ノード132A、132B...132Nの個別のノード電力バジェット202A、202B...202Nを計算することができる。図3に示した例において、グループ電力バジェット312及びノード電力バジェット202A、202B...202Nは、ノード電力データベース310に記憶され、ノード電力データベース310は、データ・センタ電力マネージャ304と通信する。
図3に示した例において、データ・センタ電力マネージャ304により提供されるノード電力バジェット202A、202B...202Nは、図2において説明したプロセスと同様のプロセスを用いて、各ノード132A、132B...132Nにより処理される。例えば、電力コントローラ(例えば、電力コントローラ116A)は、グラフィックス・エンジン(例えば、グラフィックス・エンジン122A)においてどのコンピューティング・リソースが利用可能であるかを判定し、グラフィックス・エンジンにより消費された即時ノード電力を集約する。いくつかの例において、電力コントローラ116Aは、消費された即時ノード電力をデータ・センタ電力マネージャ304に出力する。
図3に示した例において、データ・センタ電力マネージャ304は、各ノード132A、132B...132Nにより消費された即時ノード電力308A、308B...308Nを合計し、その合計値をグループ電力バジェット312と比較することができる。図2において説明したプロセスと同様のプロセスを用いて、例示的なデータ・センタ電力マネージャ304は、1以上の比較結果に基づいて、ノード電力バジェット202A、202B...202Nを調整することができる。このように、例示的なデータ・センタ電力マネージャ304は、対象とする1以上のノード132A、132B...132Nにより消費される電力を管理する。図2において説明した電力管理プロセスは、ノードの電力消費を、時間にわたって数十ワット又は数百ワット低減させることができるので、図3において説明したデータ・センタ電力管理プロセスは、データ・センタの電力消費を、時間にわたって数十キロワット又は数百キロワット低減させることができる。
例示的なノード132及び管理コンソール102を実装する例示的な方法について図1〜図3において示したが、図1〜図3に示した要素、プロセス、及び/又はデバイスのうちの1以上は、結合されてもよいし、分割されてもよいし、再構成されてもよいし、省略されてもよいし、取り除かれてもよいし、且つ/あるいは任意の他の態様で実装されてもよい。さらに、図1〜図3の例示的な電力マネージャ104、例示的なネットワーク106、例示的なグラフィックス・トランスレータ108、例示的なセンサ・モニタ110、例示的なCPU112、例示的なコア114、例示的な電力コントローラ116、例示的なグラフィックス・エンジン122、例示的な実行ユニット124、126、128、例示的なポリシ・ディレクティブ・ストレージ142、例示的なデータ・センタ302、例示的なデータ・センタ電力マネージャ304、例示的なノード電力データベース310、並びに/又は、より一般的に、例示的なノード132及び例示的な管理コンソール102は、ハードウェア、ソフトウェア、ファームウェア、並びに/又は、ハードウェア、ソフトウェア、及び/若しくはファームウェアの任意の組合せにより実装され得る。したがって、例えば、図1〜図3の例示的な電力マネージャ104、例示的なネットワーク106、例示的なグラフィックス・トランスレータ108、例示的なセンサ・モニタ110、例示的なCPU112、例示的なコア114、例示的な電力コントローラ116、例示的なグラフィックス・エンジン122、例示的な実行ユニット124、126、128、例示的なポリシ・ディレクティブ・ストレージ142、例示的なデータ・センタ302、例示的なデータ・センタ電力マネージャ304、例示的なノード電力データベース310、並びに/又は、より一般的に、例示的なノード132及び例示的な管理コンソール102のいずれも、1以上の回路、プログラマブル・プロセッサ、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、及び/又はフィールド・プログラマブル論理デバイス(FPLD)等により実装することができる。本特許の装置の請求項又はシステムの請求項のいずれも、完全なソフトウェア実装及び/又はファームウェア実装をカバーするものとして読まれるとき、例示的な管理コンソール102、例示的な電力マネージャ104、例示的なネットワーク106、例示的なグラフィックス・トランスレータ108、例示的なセンサ・モニタ110、例示的なCPU112、例示的なコア114、例示的な電力コントローラ116、例示的なグラフィックス・エンジン122、例示的な実行ユニット124、126、128、例示的なノード132、例示的なポリシ・ディレクティブ・ストレージ142、例示的なデータ・センタ302、例示的なデータ・センタ電力マネージャ304、及び/又は例示的なノード電力データベース310のうちの少なくとも1つは、ソフトウェア及び/又はファームウェアを記憶するメモリ、DVD、CD、ブルーレイ(登録商標)等の有体のコンピュータ読み取り可能記憶媒体を含むよう、本明細書では明確に定められる。さらに、図1〜図3の例示的なノード132及び例示的な管理コンソール102は、図1〜図3に示したものに加えて、あるいはそれらに代えて、1以上の要素、プロセス、及び/又はデバイスを含んでもよいし、且つ/あるいは図示した要素、プロセス、及びデバイスのいずれか又は全てのうちのいずれかを超えるものを含んでもよい。
図1〜図3のノード132及び管理コンソール102を実装するための例示的なマシン読み取り可能命令を示すフローチャートが、図4及び図5に示されている。これらの例において、マシン読み取り可能命令は、図6を参照して以下で説明する例示的な処理プラットフォーム600において示すプロセッサ612等のプロセッサにより実行されるプログラムを含む。プログラムは、CD−ROM、フロッピ・ディスク、ハード・ドライブ、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、又はプロセッサ612に関連付けられたメモリ等の有体のコンピュータ読み取り可能記憶媒体に記憶されたソフトウェアにより具現化され得るが、プログラム全体及び/又はプログラムの一部は、代替的に、プロセッサ612以外のデバイスにより実行されてもよいし、且つ/あるいはファームウェア又は専用ハードウェアにより具現化されてもよい。さらに、例示的なプログラムが、図4及び図5に示すフローチャートを参照して説明されるが、図1〜図3のノード132及び管理コンソール102を実装する多くの他の方法が代替的に使用されてもよい。例えば、ブロックの実行の順番は、変更されてもよいし、且つ/あるいは説明するブロックの一部は、変更されてもよいし、取り除かれてもよいし、結合されてもよい。
図4及び図5の例示的なプロセスは、有体のコンピュータ読み取り可能記憶媒体(例えば、コンピュータ読み取り可能記憶デバイス又は記憶ディスク)に記憶された符号化命令(例えば、コンピュータ読み取り可能命令)を用いて実装され得る。そのような有体のコンピュータ読み取り可能記憶媒体として、ハード・ディスク・ドライブ、フラッシュ・メモリ、読み取り専用メモリ(ROM)、コンパクト・ディスク(CD)、デジタル多用途ディスク(DVD)、キャッシュ、ランダム・アクセス・メモリ(RAM)、及び/又は情報が任意の期間(例えば、拡大された時間期間の間、永久的に、瞬間的に、一時的なバッファのため、且つ/あるいは情報のキャッシュのため)記憶される任意の他の物理的記憶構造等がある。本明細書において使用されるとき、有体のコンピュータ読み取り可能記憶媒体という用語は、任意のタイプのコンピュータ読み取り可能記憶デバイス又は記憶ディスクを含み、伝搬信号を含まないよう明確に定められる。追加的に又は代替的に、図4及び図5の例示的なプロセスは、非一時的なコンピュータ読み取り可能記憶媒体に記憶された符号化命令(例えば、コンピュータ読み取り可能命令)を用いて実装されてもよい。そのような非一時的なコンピュータ読み取り可能媒体として、ハード・ディスク・ドライブ、フラッシュ・メモリ、読み取り専用メモリ、コンパクト・ディスク、デジタル多用途ディスク、キャッシュ、ランダム・アクセス・メモリ、及び/又は情報が任意の期間(例えば、拡大された時間期間の間、永久的に、瞬間的に、一時的なバッファのため、且つ/あるいは情報のキャッシュのため)記憶される任意の他の記憶媒体等がある。本明細書において使用されるとき、非一時的なコンピュータ読み取り可能記憶媒体という用語は、任意のタイプのコンピュータ読み取り可能記憶媒体を含み、伝搬信号を含まないよう明確に定められる。本明細書において使用されるとき、「少なくとも」という語句が、請求項のプリアンブルにおいて移行句として使用される場合、これは、「備える、含む、有する(comprising)」という用語がオープン・エンドであるのと同様、オープン・エンドである。したがって、プリアンブルにおいて移行句として「少なくとも」という用語を用いる請求項は、請求項中に明確に記載された要素に加えて、他の要素を含んでもよい。
図4に示した例において、電力コントローラ116は、ノード132のグラフィックス・エンジン122により消費される電力を管理する。図4のプログラム400は、例示的な電力コントローラ116がグラフィックス・エンジン122の電力バジェット2020を受信及び/又は取得することにより開始する(ブロック405)。上述したように、例示的な電力バジェット202は、(例えば、ユーザ、IT専門家130等により設定される)ポリシ・ディレクティブ140のメンテナンス・パラメータ(又は、条件若しくは設定)である。電力バジェット202は、グラフィックス・エンジン122及び/又は実行ユニット124、126、128の各々が消費することができる電力の上限であり、これは、例示的なグラフィックス・エンジン122が処理することができる最大周波数のパーセンテージとして表され得る。いくつかの例において、電力バジェット202は、グラフィックス・エンジン122のために直接的に(例えば、記憶されたポリシ・ディレクティブ140により、IT専門家130により)設定されるのに対し、他の例においては、グループ電力バジェット312は、ノード132A、132B...132Nのグループのために設定される。さらに、例示的なデータ・センタ電力マネージャ(例えば、データ・センタ電力マネージャ104、304)は、グラフィックス・エンジン122の1以上のノード電力バジェット202A、202B...202N(例えば、電力バジェット)を決定することができる。
電力バジェット202に基づいて、例示的な電力コントローラ116は、例示的なグラフィックス・エンジン122の1以上のグラフィックス状態を設定する(ブロック410)。例えば、電力コントローラ116は、グラフィックス・エンジン122の実行ユニット124、126、128のうちの1以上のために、異なるグラフィックス状態を設定することができる。各グラフィックス状態は、例示的なグラフィックス・エンジン122の最大周波数の異なるパーセンテージに対応し、結果として、異なる電力消費に対応し得る。ワークロードを処理するために利用可能なコンピューティング・リソース(例えば、実行ユニット124、126、128)に基づいて、例示的な電力コントローラ116は、グラフィックス・エンジン122の1以上のグラフィックス状態を選択する。
例示的なグラフィックス・エンジン122がワークロードを処理している間、例示的な電力コントローラ116は、グラフィックス・エンジン122により消費された即時電力を電力バジェット202と比較する(ブロック415)。例えば、センサ・モニタ110は、実行ユニット124、126、128の近くに位置する1以上のセンサからの消費された電力に対応する情報を収集することができる。例示的なセンサ・モニタ110は、その値を合計し、例示的なグラフィックス・エンジン122により消費された即時電力を例示的な電力コントローラ116に提供することができる。
例示的なグラフィックス・エンジン122により消費された電力が、電力バジェット202に適合するとき(ブロック420)、電力コントローラ116は、ステータス通知を出力する(ブロック425)。例えば、電力コントローラ116は、グラフィックス・エンジン122が電力バジェットに適合して動作しているというアクノレッジメント信号を出力することができる。次いで、図4の例示的なプログラム400は終了する。
例示的なグラフィックス・エンジン122により消費された電力が、電力バジェット202に適合していないとき(電力バジェット202に違反しているとき)(ブロック420)、例示的な電力コントローラ116は、グラフィックス・エンジン122の1以上のグラフィックス状態に対して調整を行うことができる。例えば、制御をブロック410に戻して、1以上の実行ユニット124、126、128をより低い電力消費グラフィックス状態に設定することができる。いくつかの例において、電力コントローラ116は、電力バジェットに適合するように、指定された回数、1以上のグラフィックス状態を設定することを試みることができる。いくつかの例において、電力コントローラ116は、グラフィックス・エンジン122が電力バジェット202に適合していないとき(ブロック420)、又は電力コントローラ116が電力バジェット202に適合するようにグラフィックス・エンジン122の電力消費を調整することができない場合、ステータス通知を出力することができる。例えば、電力コントローラ116は、管理コンソール102において出力するアラーム又はアラートを出力することができる。次いで、図4の例示的なプログラム400は終了する。
図5に示した例において、1以上のノード(又は、サーバ)により消費される電力がモニタリング及び/又は調整される。図5の例示的なプログラム500は、例示的なデータ・センタ電力マネージャ304がポリシ・ディレクティブ140を受信及び/又は取得したとき(ブロック505)開始する。例えば、IT専門家130は、サービス・レベル・アグリーメント(SLA)を、データ・センタ302におけるノード132のラックに適用することができる。例示的なSLAは、ノード132A、132B...132Nのラックの例示的なグループ電力バジェット312を提供する。例示的なデータ・センタ電力マネージャ304は、ワークロードを実行するために、データ・センタ電力マネージャ304にどのリソースが利用可能であるかを判定する(ブロック510)。例えば、ラックに含まれる1以上のノード132A、132B...132Nが、すでにワークロードを処理している場合があり、したがって、それらのノードが、あるグラフィックス状態及び消費電力に設定されている。しかしながら、それらのノード132は、最大周波数(例えば、G状態)で動作していない場合がある。したがって、例示的なデータ・センタ電力マネージャ304は、ワークロードを処理するために、どのコンピューティング・リソース(例えば、ノード132A、132B...132N)が利用可能であるかを識別し、次いで、ノード電力バジェット202A、202B...202Nを、グループ電力バジェット312に含まれるノード132A、132B...132Nに伝達する(ブロック515)。ノード電力バジェット202A、202B...202Nは、それぞれの例示的な電力コントローラ116A、116B...116Nが適合することを試みる電力バジェットである。例示的な各電力コントローラ116A、116B...116Nからの即時ノード電力消費308A、308B...308Nが、ノード132A、132B...132Nの各々から、例示的なデータ・センタ電力マネージャ304により集約され、グループ電力バジェット312と比較される(ブロック520)。
例示的なノード132A、132B...132Nの集約された電力消費が、例示的なグループ電力バジェット312に適合しているとき、制御はブロック545に進み、データ・センタ電力マネージャ304は、ステータス通知(例えば、適合アクノレッジメント(compliance acknowledgement)を出力する(ブロック545)。次いで、図5の例示的なプログラム500は終了する。
例示的なノード132A、132B...132Nの集約された電力消費が、例示的なグループ電力バジェット312に適合していないとき(例えば、グループ電力バジェット312に違反しているとき)(ブロック525)、データ・センタ電力マネージャ304は、比較に基づいて、各ノード132のノード電力バジェットを調整する(ブロック530)。例えば、データ・センタ電力マネージャ304は、ノード132Aのグラフィックス・エンジン122Aのノード電力バジェット202Aを、より低い電力消費に対応するノード電力バジェット202Aに調整することができる。例示的なデータ・センタ電力マネージャ304は、再度、調整されたノード電力バジェット202A、202B...202Nが例示的なそれぞれのノード132A、132B...132Nに伝達された後の集約されたノード電力消費を、グループ電力バジェット312と比較する(ブロック535)。集約されたノード電力消費が、グループ電力バジェット312に適合しているとき(ブロック540)、例示的なデータ・センタ電力マネージャ304は、ステータス通知(例えば、適合アクノレッジメント)を出力し(ブロック545)、次いで、図5の例示的なプログラム500は終了する。
集約されたノード電力消費が、例示的なグループ電力バジェット312に適合していないとき(ブロック540)、制御はブロック530に戻り、例示的なデータ・センタ電力マネージャ304は、再度、1以上のノード電力バジェット202A、202B...202Nを調整することを試みることができる。いくつかの例において、データ・センタ電力マネージャ304は、グループ電力バジェット312に適合するように、指定された回数、集約されたノード電力消費を調整することを試みることができる。試行回数が、指定された回数に到達すると、例示的なデータ・センタ電力マネージャ304は、グループ電力バジェット312に含まれるノードがグループ電力バジェット312に適合することができないというステータス・インジケーションを出力することができる(ブロック545)。例えば、データ・センタ電力マネージャ304は、アラーム・インジケーション又はアラート・インジケーションを出力することができる。さらに、例示的なデータ・センタ電力マネージャ304は、ノード132の集約された電力消費がグループ電力バジェットに適合していないときに、アラーム又はアラートを出力することができる。いくつかの例において、データ・センタ電力マネージャ304は、集約された電力消費がグループ電力バジェットに適合しているとき、アクノレッジメントを出力しないが、ノード132の集約された電力消費がグループ電力バジェットに適合していないとき、アラーム又はアラートを出力することができる。
図6は、図1〜図3のノード132及び管理コンソール102を実装するための図4及び図5の命令を実行することができる例示的な処理プラットフォーム600のブロック図である。処理プラットフォーム600は、例えば、サーバ、パーソナル・コンピュータ、インターネット機器、又は任意の他のタイプのコンピューティング・デバイスとすることができる。
この例の処理プラットフォーム600は、プロセッサ612を含む。例えば、プロセッサ612は、所望のファミリ又はメーカから入手した1以上のマイクロプロセッサ又はコントローラにより実装され得る。
プロセッサ612は、ローカル・メモリ613(例えば、キャッシュ)を含み、バス618を介して、揮発性メモリ614及び不揮発性メモリ616を含むメイン・メモリと通信する。揮発性メモリ614は、シンクロナス・ダイナミック・ランダム・アクセス・メモリ(SDRAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、RAMBUSダイナミック・ランダム・アクセス・メモリ(RDRAM)、及び/又は任意の他のタイプのランダム・アクセス・メモリ・デバイスにより実装され得る。不揮発性メモリ616は、フラッシュ・メモリ及び/又は任意の他の所望のタイプのメモリ・デバイスにより実装され得る。メイン・メモリ614、616へのアクセスは、メモリ・コントローラにより制御される。
処理プラットフォーム600はまた、インタフェース回路620を含む。インタフェース回路620は、Ethernet(登録商標)インタフェース、ユニバーサル・シリアル・バス(USB)、及び/又はPCIエクスプレス・インタフェース等の任意のタイプのインタフェース標準により実装され得る。
1以上の入力デバイス622は、インタフェース回路620に接続される。1以上の入力デバイス622は、ユーザがデータ及びコマンドをプロセッサ612に入力することを可能にする。1以上の入力デバイス622は、例えば、キーボード、マウス、タッチスクリーン、トラックパッド、トラックボール、isopoint、及び/又は音声認識システムにより実装され得る。
1以上の出力デバイス624もまた、インタフェース回路620に接続される。1以上の出力デバイス624は、例えば、ディスプレイ・デバイス(例えば、液晶ディスプレイ、CRTディスプレイ、プリンタ、及び/又はスピーカ)により実装され得る。したがって、インタフェース回路620は、通常、グラフィックス・ドライバ・カードを含む。
インタフェース回路620はまた、ネットワーク626(例えば、Ethernet(登録商標)接続、デジタル加入者線(DSL)、電話回線、同軸ケーブル、セルラ電話システム等)を介して外部コンピュータとのデータ交換を容易にするモデム又はネットワーク・インタフェース・カード等の通信デバイスを含む。
処理プラットフォーム600はまた、ソフトウェア及びデータを記憶するための1以上の大容量記憶デバイス628を含む。そのような大容量記憶デバイス628の例は、フロッピ・ディスク・ドライブ、ハード・ドライブ・ディスク、コンパクト・ディスク・ドライブ、及びデジタル多用途ディスク(DVD)ドライブを含む。大容量記憶デバイス628は、ローカル記憶デバイスを実装し得る。
図4及び図5のマシン読み取り可能命令を表す符号化命令632は、大容量記憶デバイス628、揮発性メモリ614、不揮発性メモリ616、及び/又はCD若しくはDVD等のリムーバブル記憶ディスクに記憶され得る。
グラフィックス・エンジンの電力消費を管理する方法、システム、及び装置が開示される。いくつかの開示する例示的な方法は、アプリケーション・レベル・インタフェースを介して、グラフィックス・エンジンのポリシ・ディレクティブを取得する取得ステップであって、ポリシ・ディレクティブは、第1のグラフィックス状態で動作するグラフィックス・エンジンにより消費される電力に対応する閾値を識別する、取得ステップと、オペレーション中にグラフィックス・エンジンにより消費された電力を決定するステップと、消費された電力をポリシ・ディレクティブの閾値と比較するステップと、閾値が満たされた場合、グラフィックス・エンジンがポリシ・ディレクティブに適合するように、グラフィックス・エンジンを第2のグラフィックス状態に設定するステップと、を含む。他の開示する例示的な方法は、グラフィックス・エンジンにおける複数の実行ユニットからの複数の電力値を合計するステップを含む。他の開示する例示的な方法は、第2のグラフィックス状態に設定したことに応答して、通知を生成するステップを含む。他の開示する例示的な方法は、ポリシ・ディレクティブの閾値を満たしたことに応答して、訂正期間タイマを呼び出すステップを含む。他の開示する例示的な方法は、グラフィックス・エンジンを第2のグラフィックス状態に設定する前に、ある訂正期間の間、グラフィックス・エンジンにより消費される電力をモニタリングするステップを含む。
アプリケーション・レベル・インタフェースを介してグラフィックス・エンジンの電力使用量を管理する例示的なシステムは、アプリケーション・レベル・インタフェースを介して、グラフィックス・エンジンのために設定されたポリシ・ディレクティブを取得するノード電力コントローラであって、ポリシ・ディレクティブは、グラフィックス・エンジンの第1のグラフィックス状態の電力使用量の閾値を識別する、ノード電力コントローラと、グラフィックス・エンジンによる電力使用量を検出するセンサ・モニタであって、ノード電力コントローラは、電力使用量をポリシ・ディレクティブの閾値と比較し、閾値が満たされた場合、ノード電力コントローラは、グラフィックス・エンジンがポリシ・ディレクティブに適合するように、グラフィックス・エンジンを第2のグラフィックス状態に設定する、センサ・モニタと、を含む。他の開示する例示的なシステムは、アプリケーション・レベル・インタフェースを介して受信されるタスクを実行する実行ユニットを有するグラフィックス・エンジンを含む。他の開示する例示的なシステムは、第2のグラフィックス状態に設定したことに応答して、通知を生成するノード電力コントローラを含む。他の開示する例示的なシステムは、ポリシ・ディレクティブの閾値を満たしたことに応答して、訂正期間タイマを呼び出すノード電力コントローラを含む。他の開示する例示的なシステムは、グラフィックス・エンジンを第2のグラフィックス状態に設定する前に、ある訂正期間の間、グラフィックス・エンジンによる電力使用量をモニタリングするノード電力コントローラを含む。
いくつかの開示する例示的なマシン読み取り可能記憶媒体は命令を含み、命令が実行されたとき、命令は、マシンに、少なくとも、アプリケーション・レベル・インタフェースを介して、グラフィックス・エンジンのポリシ・ディレクティブを取得させ、ここで、ポリシ・ディレクティブは、第1のグラフィックス状態のグラフィックス・エンジンにより消費される電力に対応する閾値を識別する、オペレーション中にグラフィックス・エンジンにより消費された電力を決定させ、消費された電力をポリシ・ディレクティブの閾値と比較させ、閾値が満たされた場合、グラフィックス・エンジンがポリシ・ディレクティブに適合するように、グラフィックス・エンジンを第2のグラフィックス状態に設定させる。いくつかの例示的なマシン読み取り可能記憶媒体は、グラフィックス・エンジンにおける複数の実行ユニットからの複数の電力値を計算することを含む。他の例示的なマシン読み取り可能記憶媒体は、第2のグラフィックス状態に設定したことに応答して、通知を生成することを含む。他の開示する例示的なマシン読み取り可能記憶媒体は、ポリシ・ディレクティブの閾値を満たしたことに応答して、訂正期間タイマを呼び出すことを含む。他の開示する例示的なマシン読み取り可能記憶媒体は、グラフィックス・エンジンを第2のグラフィックス状態に設定する前に、ある訂正期間の間、グラフィックス・エンジンにより消費される電力をモニタリングすることを含む。他の開示する例示的なマシン読み取り可能記憶媒体は、ある訂正期間の間、グラフィックス・エンジンによる平均電力使用量を計算すること、及び、平均電力使用量が閾値を満たした場合、グラフィックス・エンジンを第2のグラフィックス状態に設定することを含む。
上記記載から、上記で開示した方法、装置、及び製品は、統合されたグラフィックス・エンジンを含むノードにおける電力消費のきめの細かい電力管理を可能にし、そのきめの細かい電力管理が、大規模のサーバ展開において拡張及び使用され得ることが理解されよう。
所定の例示的な方法、装置、及び製品について本明細書で説明したが、本特許のカバー範囲は、そのように限定されるものではない。そうではなく、本特許は、本特許の請求項の範囲に属する全ての方法、装置、及び製品をカバーする。

Claims (12)

  1. アプリケーション・レベル・インタフェースを介してグラフィックス・エンジンの電力使用量を管理する方法であって、
    前記アプリケーション・レベル・インタフェースを介して、前記グラフィックス・エンジンのポリシ・ディレクティブを取得する取得ステップであって、前記ポリシ・ディレクティブは、第1のグラフィックス状態で動作するときに前記グラフィックス・エンジンにより消費される許容電力量に対応する閾値を識別する、取得ステップと、
    第1のオペレーション時間中に前記グラフィックス・エンジンにより消費された電力を決定する決定ステップと、
    前記第1のオペレーション時間中に消費された前記電力を前記ポリシ・ディレクティブの前記閾値と比較するステップと、
    前記ポリシ・ディレクティブの前記閾値が、前記第1のオペレーション時間中に消費された前記電力により満たされた場合、訂正期間を規定する訂正期間タイマを呼び出すステップと、
    前記訂正期間中に前記グラフィックス・エンジンにより消費された電力をモニタリングするステップと、
    前記訂正期間の後、前記訂正期間中に消費された前記電力を前記ポリシ・ディレクティブの前記閾値と比較するステップと、
    前記ポリシ・ディレクティブの前記閾値が、前記訂正期間中に消費された前記電力により満たされた場合、前記グラフィックス・エンジンが前記ポリシ・ディレクティブに適合するように、前記グラフィックス・エンジンを第2のグラフィックス状態に設定する設定ステップと、
    を含み、
    前記訂正期間中に前記グラフィックス・エンジンにより消費された平均電力を計算し、前記訂正期間中に消費された前記平均電力が前記閾値を満たした場合、前記グラフィックス・エンジンを前記第2のグラフィックス状態に設定するステップをさらに含む、方法。
  2. 前記決定ステップは、前記グラフィックス・エンジンにおける複数の実行ユニットからの複数の電力値を合計するステップを含む、請求項1記載の方法。
  3. 前記グラフィックス・エンジンの前記第1のグラフィックス状態は、前記複数の実行ユニットのうちの少なくとも1つの第1の周波数設定に対応する、請求項2記載の方法。
  4. 前記グラフィックス・エンジンの前記第2のグラフィックス状態は、前記複数の実行ユニットのうちの少なくとも1つの第2の周波数設定に対応する、請求項2又は3記載の方法。
  5. 前記グラフィックス・エンジンが前記第2のグラフィックス状態に入ったという通知を生成するステップ
    をさらに含む、請求項1乃至4いずれか一項記載の方法。
  6. アプリケーション・レベル・インタフェースを介してグラフィックス・エンジンの電力使用量を管理するシステムであって、
    前記アプリケーション・レベル・インタフェースを介して、前記グラフィックス・エンジンのポリシ・ディレクティブを取得するノード電力コントローラであって、前記ポリシ・ディレクティブは、第1のグラフィックス状態で動作するときの前記グラフィックス・エンジンによる許容電力使用量の閾値を識別する、ノード電力コントローラと、
    第1のオペレーション時間中の前記グラフィックス・エンジンによる電力使用量を検出するセンサ・モニタであって、前記ノード電力コントローラは、前記第1のオペレーション時間中の前記電力使用量を前記ポリシ・ディレクティブの前記閾値と比較し、前記ノード電力コントローラは、前記ポリシ・ディレクティブの前記閾値が、前記第1のオペレーション時間中の前記グラフィックス・エンジンによる前記電力使用量により満たされた場合、訂正期間を規定する訂正期間タイマを呼び出し、前記センサ・モニタは、前記訂正期間中の前記グラフィックス・エンジンによる電力使用量を検出し、前記ノード電力コントローラは、前記訂正期間の後、前記訂正期間中の前記電力使用量を前記ポリシ・ディレクティブの前記閾値と比較し、前記ポリシ・ディレクティブの前記閾値が、前記訂正期間中の前記電力使用量により満たされた場合、前記ノード電力コントローラは、前記グラフィックス・エンジンが前記ポリシ・ディレクティブに適合するように、第2のグラフィックス状態に入るよう前記グラフィックス・エンジンに指示する、センサ・モニタと、
    を備え
    前記ノード電力コントローラは、前記訂正期間中の前記グラフィックス・エンジンによる平均電力使用量を計算し、前記訂正期間中の前記平均電力使用量が前記閾値を満たした場合、前記グラフィックス・エンジンを前記第2のグラフィックス状態に設定する、システム。
  7. 前記グラフィックス・エンジンは、前記アプリケーション・レベル・インタフェースを介して受信されるタスクを実行する実行ユニットを有する、請求項記載のシステム。
  8. 前記グラフィックス・エンジンの前記第1のグラフィックス状態は、前記実行ユニットの第1の周波数設定に対応する、請求項記載のシステム。
  9. 前記グラフィックス・エンジンの前記第2のグラフィックス状態は、前記実行ユニットの第2の周波数設定に対応する、請求項又は記載のシステム。
  10. 前記ノード電力コントローラは、前記グラフィックス・エンジンが前記第2のグラフィックス状態に入ったという通知を生成する、請求項乃至いずれか一項記載のシステム。
  11. アプリケーション・レベル・インタフェースを介してグラフィックス・エンジンの電力使用量を管理するためのプログラムであって、マシンに請求項1乃至いずれか一項記載の方法を実行させるプログラム。
  12. 請求項11記載のプログラムを記憶したマシン読み取り可能記憶媒体。
JP2015544129A 2012-12-27 2013-11-21 グラフィックス・エンジンの電力消費を管理する方法、システム、及び装置 Active JP6105077B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/729,011 2012-12-27
US13/729,011 US9098282B2 (en) 2012-12-27 2012-12-27 Methods, systems and apparatus to manage power consumption of a graphics engine
PCT/US2013/071219 WO2014105303A1 (en) 2012-12-27 2013-11-21 Methods, systems and apparatus to manage power consumption of a graphics engine

Publications (2)

Publication Number Publication Date
JP2016503549A JP2016503549A (ja) 2016-02-04
JP6105077B2 true JP6105077B2 (ja) 2017-03-29

Family

ID=51018744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015544129A Active JP6105077B2 (ja) 2012-12-27 2013-11-21 グラフィックス・エンジンの電力消費を管理する方法、システム、及び装置

Country Status (5)

Country Link
US (2) US9098282B2 (ja)
EP (2) EP2939080A4 (ja)
JP (1) JP6105077B2 (ja)
TW (1) TWI502541B (ja)
WO (1) WO2014105303A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098282B2 (en) * 2012-12-27 2015-08-04 Intel Corporation Methods, systems and apparatus to manage power consumption of a graphics engine
US9430014B2 (en) * 2013-07-18 2016-08-30 Qualcomm Incorporated System and method for idle state optimization in a multi-processor system on a chip
US20150355942A1 (en) * 2014-06-04 2015-12-10 Texas Instruments Incorporated Energy-efficient real-time task scheduler
EP2960791A1 (en) * 2014-06-27 2015-12-30 Fujitsu Limited Method of executing an application on a distributed computer system, a resource manager and a distributed computer system
US9760160B2 (en) 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
CN106686179B (zh) * 2016-12-27 2019-06-21 东南大学 一种基于测试自动化的手机功耗测试系统及方法
US10444817B2 (en) * 2017-04-17 2019-10-15 Intel Corporation System, apparatus and method for increasing performance in a processor during a voltage ramp
US10402932B2 (en) * 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
US10656700B2 (en) * 2017-07-10 2020-05-19 Oracle International Corporation Power management in an integrated circuit
US11137815B2 (en) 2018-03-15 2021-10-05 Nvidia Corporation Metering GPU workload with real time feedback to maintain power consumption below a predetermined power budget
US10877545B2 (en) * 2018-09-20 2020-12-29 Arm Limited Energy management in graphics processing units
US11960338B2 (en) * 2021-02-23 2024-04-16 Microsoft Technology Licensing, Llc Activity smoothener circuit controlling rates of change of localized processing activity in an integrated circuit (IC), and related methods
US20220318056A1 (en) * 2021-03-30 2022-10-06 Advanced Micro Devices, Inc. Dynamic system power load management

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149909B2 (en) 2002-05-09 2006-12-12 Intel Corporation Power management for an integrated graphics device
JP4006634B2 (ja) * 2002-10-10 2007-11-14 ソニー株式会社 情報処理装置および方法、並びにプログラム
US7539994B2 (en) * 2003-01-03 2009-05-26 Intel Corporation Dynamic performance and resource management in a processing system
US7363517B2 (en) * 2003-12-19 2008-04-22 Intel Corporation Methods and apparatus to manage system power and performance
US20060137377A1 (en) * 2004-12-29 2006-06-29 Samson Eric C Method and apparatus for external processor thermal control
US7463993B2 (en) * 2005-05-10 2008-12-09 Intel Corporation Adaptive thermal-based frequency-bounds control
US8060765B1 (en) * 2006-11-02 2011-11-15 Nvidia Corporation Power estimation based on block activity
US20080178029A1 (en) * 2007-01-19 2008-07-24 Microsoft Corporation Using priorities to select power usage for multiple devices
US8284205B2 (en) 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
US20090235108A1 (en) * 2008-03-11 2009-09-17 Gold Spencer M Automatic processor overclocking
US20110213947A1 (en) 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20100030500A1 (en) 2008-07-29 2010-02-04 Gamal Refai-Ahmed Regulation of Power Consumption for Application-Specific Integrated Circuits
JP5204676B2 (ja) * 2009-01-19 2013-06-05 パナソニック株式会社 入退場管理システム
US8707060B2 (en) * 2008-10-31 2014-04-22 Intel Corporation Deterministic management of dynamic thermal response of processors
US8255709B2 (en) * 2009-02-06 2012-08-28 Hewlett-Packard Development Company, L.P. Power budgeting for a group of computer systems using utilization feedback for manageable components
JP2010277350A (ja) * 2009-05-28 2010-12-09 Toshiba Corp 電子機器
EP2507677A4 (en) * 2009-12-01 2017-08-30 Hewlett-Packard Enterprise Development LP Power-cap settings
US20110131427A1 (en) 2009-12-02 2011-06-02 Jorgenson Joel A Power management states
JP2011141818A (ja) 2010-01-08 2011-07-21 Toshiba Corp グラフィックコントローラ、情報処理装置および省電力方法
US8527794B2 (en) * 2010-05-27 2013-09-03 Advanced Micro Devices, Inc. Realtime power management of integrated circuits
CN102314213B (zh) * 2010-07-09 2016-03-30 精英电脑股份有限公司 动态调整工作频率的计算机系统
CN101901042B (zh) 2010-08-27 2011-07-27 上海交通大学 多gpu系统中基于动态任务迁移技术的降功耗方法
US20120144215A1 (en) * 2010-12-03 2012-06-07 Advanced Micro Devices, Inc. Maximum current limiting method and apparatus
JP5064555B2 (ja) * 2010-12-20 2012-10-31 京セラ株式会社 無線通信方法及び無線通信端末
US8539269B2 (en) * 2011-03-31 2013-09-17 Intel Corporation Apparatus and method for high current protection
US8788866B2 (en) * 2011-04-25 2014-07-22 Qualcomm Incorporated Method and system for reducing thermal load by monitoring and controlling current flow in a portable computing device
US8909961B2 (en) * 2011-11-29 2014-12-09 Ati Technologies Ulc Method and apparatus for adjusting power consumption level of an integrated circuit
US9098282B2 (en) * 2012-12-27 2015-08-04 Intel Corporation Methods, systems and apparatus to manage power consumption of a graphics engine

Also Published As

Publication number Publication date
JP2016503549A (ja) 2016-02-04
EP2939080A4 (en) 2017-02-22
US9098282B2 (en) 2015-08-04
US20150317764A1 (en) 2015-11-05
EP2939080A1 (en) 2015-11-04
TW201443824A (zh) 2014-11-16
TWI502541B (zh) 2015-10-01
US20140189399A1 (en) 2014-07-03
EP3521973A1 (en) 2019-08-07
WO2014105303A1 (en) 2014-07-03
US9460483B2 (en) 2016-10-04

Similar Documents

Publication Publication Date Title
JP6105077B2 (ja) グラフィックス・エンジンの電力消費を管理する方法、システム、及び装置
Beloglazov et al. Optimal online deterministic algorithms and adaptive heuristics for energy and performance efficient dynamic consolidation of virtual machines in cloud data centers
US9286099B2 (en) Balancing virtual machine loads
US8473768B2 (en) Power control apparatus and method for cluster system
JP4965578B2 (ja) ローカル・グリッドをサポートするためにホスト・グリッド内の割り振りポリシを変更するためのコンピュータ実装方法、並びに、そのデータ処理システム及びコンピュータ・プログラム
US20130124885A1 (en) Estimating and managing power consumption of computing devices using power models
US9037880B2 (en) Method and system for automated application layer power management solution for serverside applications
US20140282520A1 (en) Provisioning virtual machines on a physical infrastructure
WO2017000628A1 (zh) 一种云计算系统中的资源调度方法及装置
US9355010B2 (en) Deriving an operational state of a data center using a predictive computer analysis model
US8413157B2 (en) Mechanism for continuously and unobtrusively varying stress on a computer application while processing real user workloads
JP2006024017A (ja) コンピュータ資源のキャパシティを予測するためのシステム、方法およびプログラム
US10241883B1 (en) Method and apparatus of establishing customized network monitoring criteria
WO2007057425A1 (en) An approach based on self-evolving models for performance guarantees in a shared storage system
US9336106B2 (en) Dynamically limiting bios post for effective power management
EP3035619B1 (en) A method and system for scaling and a telecommunications network
Hasan et al. Heuristic based energy-aware resource allocation by dynamic consolidation of virtual machines in cloud data center
CN105676996A (zh) 一种龙芯服务器的功耗控制方法和装置
US20230229216A1 (en) System and methods for server power management
WO2016171950A1 (en) Multivariable control for power-latency management to support optimization of data centers or other systems
Lent Analysis of an energy proportional data center
Dargie Analysis of the power consumption of a multimedia server under different DVFS policies
JP2015011365A (ja) プロビジョニング装置、システム、プロビジョニング方法、および、プロビジョニングプログラム
Liu et al. Cloud resource management with turnaround time driven auto-scaling
JP6984576B2 (ja) リソース決定装置、方法及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160714

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170106

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170131

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170301

R150 Certificate of patent or registration of utility model

Ref document number: 6105077

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250