JP6668355B2 - 動的時間的電力ステアリングのためのシステム及び方法 - Google Patents

動的時間的電力ステアリングのためのシステム及び方法 Download PDF

Info

Publication number
JP6668355B2
JP6668355B2 JP2017533567A JP2017533567A JP6668355B2 JP 6668355 B2 JP6668355 B2 JP 6668355B2 JP 2017533567 A JP2017533567 A JP 2017533567A JP 2017533567 A JP2017533567 A JP 2017533567A JP 6668355 B2 JP6668355 B2 JP 6668355B2
Authority
JP
Japan
Prior art keywords
power
phase
sequence
phases
temporal
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
JP2017533567A
Other languages
English (en)
Other versions
JP2018503184A (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 JP2018503184A publication Critical patent/JP2018503184A/ja
Application granted granted Critical
Publication of JP6668355B2 publication Critical patent/JP6668355B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05FSYSTEMS FOR REGULATING ELECTRIC OR MAGNETIC VARIABLES
    • G05F1/00Automatic systems in which deviations of an electric quantity from one or more predetermined values are detected at the output of the system and fed back to a device within the system to restore the detected quantity to its predetermined value or values, i.e. retroactive systems
    • G05F1/66Regulating electric power
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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)
  • Automation & Control Theory (AREA)
  • Electromagnetism (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Power Engineering (AREA)
  • Power Sources (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Direct Current Feeding And Distribution (AREA)
  • Remote Monitoring And Control Of Power-Distribution Networks (AREA)
  • Feedback Control In General (AREA)

Description

本開示は、概して、サーバ及び他の計算装置のための電力管理に関する。
半導体処理及びロジック設計の進歩は、集積回路装置上に存在し得るロジックの量の増加を可能にしてきた。その結果、コンピュータシステム構成は、システム内に複数の集積回路があるものから、個々の集積回路上に複数のハードウェアスレッド、複数のコア、複数の装置及び/又は完全なシステムがあるものに発展してきた。集積回路の集積度が高まるにつれて、計算システム(組み込みシステムから高パフォーマンス計算(HPC)システム)への電力要件も高まっている。
電力及び熱管理の問題は、コンピュータベースのシステムを設計する際の考慮事項である。HPCシステムでは、例えば、指定された熱設計電力(TDP)及び/又は電力コストが、低電力システムの必要性を促進し得る。モバイルシステムを含む他のシステムにおいても、バッテリ寿命と熱的制約により、それらの事項と関連がある。最低限の電力消費で最大のパフォーマンスを得るためのシステムの最適化は、通常では、オペレーティングシステム(OS)又はハードウェア要素を制御するシステムソフトウェアを使用してなされる。
電力及び熱制御のためのいくつかのモデルは、比較的大きく、動的に調整可能な時間ウィンドウで、ハードウェア装置の実行平均電力をモニタし、所与の閾値以下にこの平均電力を維持することができる。このようなアプローチにより、装置は短期間(実行平均電力がリミット内に留まる限り)であれば上記のリミットを超えた電力を消費することができるが、装置の電源と冷却ソリューションはエクスカーション(excursion)の大きさと長さに制限を設ける。
アレンジメント及び実施形態は、次の図面を参照して詳細に説明されることができる。ここで、類似の参照符号は、類似の要素を示す。
図1は、本明細書で説明する、様々な実施形態を実装するのに適した例示的なコンピュータシステムの実施形態を示す。
図2Aは、いくつかの実施形態による、例示的なフェーズのシーケンスの繰り返しを示す。 図2Bは、いくつかの実施形態による、例示的なフェーズのシーケンスの繰り返しを示す。 図2Cは、いくつかの実施形態による、例示的なフェーズのシーケンスの繰り返しを示す。
図3は、いくつかの実施形態による、装置のブロック図である。
図4は、一実施形態による、動的時間的電力ステアリングのための方法のフローチャートである。
図5は、一実施形態による、時間的電力分配及び空間電力ステアリングの両方のためのフローチャートである。
本明細書で開示される実施形態は、概して、コンピュータシステム上の作業負荷を管理するための装置、方法及び他の技術を対象とする。コンピュータシステムによって実行されるソフトウェアアプリケーションは、共通の目的(例えば、ある問題に対する解答を計算する)に向かって一緒に作業する一群のタスクを含むことができる。タスクは、一つ以上のノード上で実行することができる。ノードの内部には、一つ以上のタスクがあることができ、各タスクは一つ以上の処理スレッドを含むことができる。特定の実施形態は、装置又はコンピュータシステムによって実行されるアプリケーションのフェーズ間で動的時間的電力ステアリング(dynamic temporal power steering)を提供する。各フェーズに対して、電力は、コンピュータシステム内の複数の電力ドメイン間で分配される。
用語「電力ドメイン」又は単にドメインは、本明細書では、電力消費に関してモニタ及び制御されるができるコンポーネント又はコンポーネントのセットを示すために使用される。特定の実施形態は、アプリケーション又はシステムの挙動の実行時間を、安定した又は予測可能な動作挙動を呈するセグメントに自動的に分割する。安定した又は予測可能なセグメントは、本明細書では、アプリケーションの「フェーズ」と呼ばれる。各フェーズは、例えば、他のフェーズの動作挙動と異なる動作挙動を呈するアプリケーションのセグメントを含む。フェーズは、例えば、計算結合フェーズ(compute bound phase)、記憶結合フェーズ、通信結合フェーズ、計算/記憶/通信の混合フェーズ、アイドルフェーズ、アクティブフェーズ、任意の動作挙動に結合されるその他のフェーズを含むことができる。アプリケーションの異なるフェーズは、ノード(例えば、サーバ)内のリソース又はドメイン(例えば、コア、アンコア、メモリなど)が異なることがある。
時間次元においてフェーズ境界を越えたより効率的な電力使用のための機会を特定することによって、アプリケーションのパフォーマンスは最適化又は改善されることができる。例えば、動的時間的電力ステアリングは、記憶結合フェーズのパフォーマンスを潜在的に低下させながら、記憶結合フェーズ中、コンピュータシステムの電力リミットを下げることを特定することができ、その電力を計算結合フェーズに与えることで(すなわち、計算結合フェーズ中、コンピュータシステムの電力リミットを比例的に上げる)アプリケーション全体のパフォーマンスを向上させることができる。
動的時間的電力ステアリングの実施形態は、全体としてアプリケーションの挙動を決定又は学習し、電力をあるフェーズから別のフェーズに移す(すなわち、コンピュータシステムの電力リミットを上げる又は下げる)ことによってパフォーマンスを改善する機会を特定する。以下に詳細に説明するように、例えば、ある実施形態では、電力にあまりスケーリングしないパフォーマンス(例えば、パフォーマンスの向上がパフォーマンスを上げるために必要とされる電力増加に比べて不相応に低い)のフェーズ中は電力を意図的に確保しておき(reserve)、電力に良好にスケーリングするパフォーマンスのフェーズのパフォーマンスを引き上げるために電力をさらに使用することで、エネルギーバジェットを全体的に維持しながら、アプリケーションのより高いパフォーマンスをもたらす。
このような実施形態は、他の電力管理アプローチと比べて、アプリケーションパフォーマンス又は電力管理の他の目的関数(例えば、エネルギー遅延プロダクト(EDP:energy-delay product)又はエネルギー遅延スクエアプロダクト(ED2P:energy-delay-square product)のようなシステム効率指標を改善すること)における明らかな向上を提供することができる。他のアプローチは、電力管理の目的関数(例えば、パフォーマンス、効率性、EDP、ED2P等)に決して害を及ぼさないというパラダイムの下で動作する一方で、本明細書で開示される特定の実施形態は、いくつかのフェーズでは電力管理の目的関数に意図的に「ダメージ」を与え、他のフェーズでより大きな改善を生み出すことができ、アプリケーション全体としての電力管理の目的関数を改善するようにする。
本明細書での説明の目的のため、特定の例を高パフォーマンス計算(HPC)システムに関して説明することがある。しかし、本開示の範囲はHPCの例に限定されず、実施形態は、任意の大規模なクラウド、ビッグデータ、HPC、他のシステム等の高電力コンピュータシステムから、ラップトップ、Ultrabook(登録商標)、タブレットコンピュータ、スマートフォン、他のポータブル装置等の低電力コンピュータシステムに至るまで多くの様々なタイプのコンピュータシステムに対する解決手段を可能とするように高度に拡張可能である。実施形態は、デスクトップコンピュータなどの高電力システムと低電力システムとの間にある電力要件を有するシステムにも等しく適用される。
他の解決策は、アプリケーション実行全体にわたる平均電力のような特性に基づいてドメインに電力を静的に割り当てる、又は電力をモニタして動的に割り当てるが、直近のk時間ウィンドウでの挙動履歴にわたるアプリケーション特性に基づいて行う。電力がドメインに静的に割り当てられる場合、特定のドメインが全ての電力割り当てを使用しているときや、より多くの電力が与えられた場合にドメインがより高速に実行できるときや、ドメインが全電力バジェットを使用しないとき(すなわち、電力が取り残される)があり得る。時間ウィンドウでの挙動履歴に基づいて電力を動的に割り当てる解決手段は、全体を通してずっと安定した状態の挙動(単一フェーズ)を備えたアプリケーションの電力の取り残しを改善することができるが、異なる特性を備えた複数のフェーズを有するアプリケーションではほとんど、又は全く改善されない可能性がある。このようなソリューションは、インターバルの間に(部分的に又は完全に)実行する任意のフェーズの挙動をブレンドする時間ウィンドウ(固定又は可変)で挙動をモニタする。このようなソリューションは、過去のウィンドウでブレンドされた挙動が将来の挙動の良い予測値になることを想定しており、各時間ウィンドウが異なる動作挙動及び異なる最適な電力割り当てで完全に異なるアプリケーションフェーズが含むことがある。
HPCソフトウェアアプリケーションは、異なる動作挙動を備えた(したがって、ドメイン内で異なるアクティビティを備えた)複数のフェーズを有するので、ドメインへの電力の静的な割り当てでは最適ではない可能性がある。例えば、コンピュータが2つのドメインを含み、一方がプロセッサであり、他方がメインメモリ(例えば、ダイナミックランダムアクセスメモリ(DRAM)、不揮発性メモリ又は他のメモリ装置)であると仮定する。コンピュータが平均電力100Wを超えることができず、アプリケーションのフェーズ全体にわたるアプリケーションの特性を通じて、最適な静的割り当てはプロセッサに対しては50Wの平均電力リミットであり、メインメモリに対しては50Wの平均電力リミットであると決定されたと仮定する。この例では、アプリケーション実行時間(runtime)を大幅に増加させることなく記憶結合フェーズで平均電力は50W未満に下げられないので、50Wが最適であると決定される。しかし、アプリケーションフェーズのうち計算結合フェーズ及び通信結合フェーズ中、主メモリドメインに予約されている50Wをフルに利用する十分な記憶アクティビティがない。このように、静的割り当ては、取り残された電力(現在のドメインが必要とするよりも必要とするドメインのために確保された電力)及び準最適なパフォーマンスをもたらす。
HPCクラスタ又はスーパコンピュータは、アプリケーションが最高パフォーマンスに達するために必要とする電力よりも電力上限が低くなるように「電力制約」をかけて実行することができる。電力制約されたシナリオでは、可能な限り効率的に電力を使用することでパフォーマンスを向上させる。電力上限は、定義された期間(time period)にわたってシステムに使用されることができる最大平均電力である。しかし、所定の期間にわたる平均使用電力(average power usage)が電力上限を超えない限り、電力上限は便宜的に超過されることができる。
特定の実施形態では、様々な電力ドメインが、実行平均電力リミット(RAPL)に基づいてモニタされ、制御される。電力マネージャは、利用可能な電力ドメインの各々に対してRAPLを指定し、電力制御及び/又は個別プロセッサパフォーマンス状態(P-state)などの低レベルパフォーマンスパラメータを変調することによってRAPL電力制限を実施することができる。特定のこのような実施形態では、動的空間電力ステアリングは、アプリケーションフェーズのそれぞれについて様々なRAPL電力ドメイン間の電力の最適な割り当てを学習することを含む。HPCアプリケーション及び他のアプリケーションは、同じフェーズが何度も起きる繰り返し挙動を示すことがある。特定の実施形態は、この繰り返し挙動を活用する。特定のフェーズについて最適又は改善された電力割り当てが学習又は決定されると、アプリケーションが将来的に同じフェーズに入るときにそれが(例えば、即座に)再利用されることができる。
様々な実施形態はまた、本明細書で開示される動作を実行するための装置又はシステムに関する。この装置は、必要とされる目的のために特別に構築されることができる、あるいは、コンピュータに記憶されたコンピュータプログラムによって選択的に起動又は再構成される汎用コンピュータを含むこともできる。本明細書に提示される手順は、特定のコンピュータ又は他の装置に固有のものではない。様々な汎用機械が、本明細書の教示に従って書かれたプログラムとともに使用されることができ、あるいは開示された方法を実行するのにより特化した装置を構成することが好都合であることを示すこともできる。様々なこれらの機械のために必要とされる構造は、与えられる説明から明らかとなるものである。
ここで、図面を参照する。類似する参照符号は、全体を通して類似の要素を示すのに使用される。以下の説明では、説明のため、その完全な理解を提供するために、多くの具体的な詳細を述べる。しかし、実施形態は、これらの具体的な詳細なしに実施することができることは明らかである。他の例では、周知の構造及び装置は、その説明を容易にするために、ブロック図で示される。これは、特許請求の範囲に記載される主題と一致するすべての修正物、均等物及び代替物をカバーすることを意図している。
図1は、本明細書で説明される様々な実施形態を実装するのに適した例示的なコンピュータシステム105の実施形態を示す。様々な実施形態において、コンピュータシステム105は、処理装置110と、コントローラ120と、メモリ装置130と、入出力(I/O)装置140とを含む。処理装置110は、(例えば、サーバラック内のベイ内の)サーバ、マイクロプロセッサ、プロセッサ、中央処理装置、デジタル信号処理ユニット、デュアルコアプロセッサ、モバイルデバイスプロセッサ、デスクトッププロセッサ、シングルコアプロセッサ、システムオンチップ(SoC)デバイス、複合命令セットコンピュータ(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、若しくは任意の他のタイプのプロセッサ又は単一チップ若しくは集積回路上の処理回路等の任意のタイプの計算要素であり得るが、これらに限定されない。処理装置110は、相互接続122,132,142を介してコントローラ120、メモリ装置130及びI/O装置140にそれぞれ接続され、それらと通信することができる。さらに、コントローラ120、メモリ装置130及びI/O装置140は、処理装置110の全てのコンポーネントと通信することができる。
この点に関して限定されるものではないが、処理装置110は、電力管理装置115と、一つ以上の処理コア112と、グラフィックス処理ユニット114と、I/O装置116と、メモリ装置118と、他のアンコア(uncore)(非コア(non-core))コンポーネント(図示せず)とを含むことができる。アンコアコンポーネントは、他のメモリ、キャッシュ、I/O装置及びコントローラを含む。いくつかの実施形態では、処理装置110は、例えば、3つ以上の処理コアを含むことができる。一つ以上の処理コア112は、2つ以上の処理ユニットを有することができる。一つ以上の処理コア112は、命令をフェッチするためのプリフェッチロジック、命令をデコードするためのデコードロジック、命令を実行するための実行ロジック及び他のロジックを含むが、これらに限定されない。
特定の実施形態では、処理装置110は、グラフィックス処理ユニット114を含む。グラフィックス処理ユニット114は、グラフィックス及び/又はビデオの動作及び/又は処理を管理する補助プロセッサとして機能することができる。
いくつかの実施形態では、処理装置110は、I/O装置116及びメモリ装置118を含む。I/O装置116は、コンピュータシステム105内の他の装置への、処理装置110のための外部インタフェースを提供する。追加的に、メモリ装置118は、処理装置110及び特に、一つ以上の処理コア112の命令及び/又はデータを記憶する。メモリ装置118はまた、処理装置110及び一つ以上の処理コア112が命令を実行している間、一時変数又は他の中間情報を記憶することができる。他の実施形態では、メモリ装置118は、レベル1(L1)、レベル2(L2)及びレベル3(L3)キャッシュメモリ、又は処理装置110内にキャッシュメモリの任意の他の構成を含むが、これらに限定されない。処理コア112、グラフィックス処理ユニット114、I/O装置116及びメモリ装置118は、相互接続(図示せず)を介して互いに通信することができる。
コントローラ120は、マイクロコントローラ又は他のタイプの処理回路、メモリ及びインタフェースロジックを含むことができる。いくつかの実施形態では、コントローラ120は、メモリ装置130及びI/O装置140の動作のモニタ及び制御すること(これに限定されない)を含め、コンピュータシステム105の動作をモニタ及び制御することができる。コントローラ120はまた、コンピュータシステム105の様々なコンポーネントと処理装置110との間の通信(これに限定されない)を含め、処理装置110の様々な側面をモニタ及び制御することができる。様々な実施形態において、コントローラは、相互接続122を介して処理装置110に結合されることができる。
メモリ装置130は、コンピュータシステム105の命令及び/又はデータを記憶する。メモリ装置130はまた、コンピュータシステム105が命令を実行している間、一時変数又は他の中間情報を記憶することができる。I/O装置140は、コンピュータシステム105と外部システム又は装置との間のインタフェースである。I/O装置140は、接続144を介して外部システム又は装置と通信することができる。接続144は、有線若しくは無線又は当業者に知られている他の任意の手段であることができる。一実施形態では、I/O装置140は、I/O装置116を通じて相互接続142を介して処理装置110と通信することができる。電力管理装置115、メモリ装置130、及びI/O装置140はまた、相互接続(図示せず)を介して互いに通信することができる。
コンピュータシステム105に図示されているコンポーネントは、限定を意味するものではなく、説明のために提示されている。他の実施形態では、コンピュータシステム105の構成は、図1に示されている以外の他のコンポーネントを(多かれ少なかれ)含む。当業者であれば、本明細書に記載される実施形態の作業に影響を及ぼすことなく、コンピュータシステム105の他の構成を使用できることを理解するであろう。
特定の実施形態では、電力管理装置115は、全体の電力リミットなどの全体のシステム制約を遵守しながら、特定のアプリケーションの複数の異なるフェーズ間で電力を再分配する機械を特定する動的時間的電力ステアリングを提供するように構成されている。電力ドメインは、例えば、一つ以上の処理コア112を含むコアドメインと、グラフィックス処理ユニット114、I/O装置116、メモリ装置118及び他の任意のアンコアコンポーネント(図示せず)を含むアンコアドメインとを含むことができる。追加的に、又は他の実施形態では、一つ以上の処理コア112は、複数の電力ドメインを含むことができ、各電力ドメインがコア(必ずしも均一なサイズではない)に対応する。さらに、図1に示す任意の要素(すなわち、コントローラ120、メモリ装置130、I/O装置140、処理装置110、電力管理装置115、一つ以上の処理コア112、グラフィックス処理ユニット114、I/O装置116及びメモリ装置118)が別個の電力ドメインであってよく、別々の電力ドメイン内の任意の他の要素と組み合わされてもよく、及び/又は複数の異なる電力ドメインに分割されてもよい。
一つ以上の処理コア112は、同じフェーズが何度も何度も起きる挙動を示すアプリケーションを実行することができる。各フェーズは、異なるリソースを必要とし、処理装置110上のリソースにおいて異なる量のアクティビティを生成することができるので、処理装置110上のリソース又はドメイン間の電力の最適な割り当ては、各フェーズで異なることがある。最適又は改善されたパフォーマンスを達成するために(又は、効率、EDP、ED2P等の他の電力管理目的関数を最大化するために)、電力管理装置115は、ある実施形態によれば、異なる電力ドメイン間で分配された電力を増加させ又は減少させ、アプリケーションの異なるフェーズ間で電力を再分配するようにする。
特定のアプリケーションは、アプリケーションがその作業を完了するために繰り返すときに、フェーズのシーケンスが数回発生する挙動を示すことがある。例えば、図2A、図2B及び図2Cは、特定の実施形態による例示的なフェーズのシーケンスの繰り返しを示す。図2Aは、フェーズ「A」に、フェーズ「B」が続き、フェーズ「C」が続き、フェーズ「A」が続き、フェーズ「B」が続くものを含むフェーズのシーケンス200を示す。このシーケンスは、「反復1」に続いて、「反復2」が続き、「反復3」が続くもので繰り返される。そのような繰り返しは、特定の動的時間的電力ステアリングの実施形態を通じたパフォーマンスの最適化に適している。例えば、電力管理装置115は、フェーズA、フェーズB及びフェーズCが繰り返しており、多くの反復で繰り返す可能性が高いと認識するように構成することができる。それに応じて、電力管理装置115は、一つ以上の反復にわたって、フェーズA、フェーズB及びフェーズCに対する電力ドメイン間での最適又は改善された時間的電力割り当てを決定する(例えば、あるフェーズでは電力を節約又は制限し、別のフェーズでは電力リミットを適用する又は上げる)。電力管理装置115は、その後の各反復において、フェーズA、フェーズB及び/又はフェーズCの間での最適又は改善された電力分配を適用する。
アプリケーションは、電力をより効率的に割り当てるために観察され、活用され得る、明確な動作挙動及びリソースアクティビティパターンを備えたフェーズを有することができる。例えば、図2Bは、記憶フェーズ212に、計算フェーズ214が続き、通信フェーズ216が続き、記憶フェーズ212が続き、計算フェーズ214が続くものを含むフェーズのシーケンス210を示す。記憶フェーズ212は、コンピュータメモリリソース内で高いアクティビティを呈し、計算及び通信リソース内で低いアクティビティを呈する。同様に、計算フェーズ214及び通信フェーズ216は、それぞれ、偏った計算及び通信アクティビティを呈する。図2Aに示す例のように、シーケンス210は、多くの反復で繰り返すことができる。他の実施形態では、記憶フェーズ212、計算フェーズ214、通信フェーズ216、記憶/計算/通信フェーズの混合フェーズ及び/又は他のフェーズは、同じシーケンス内で又は予測可能なシーケンス内で起きるとは限らない。そのような実施形態では、電力管理装置115は、依然として、電力バジェットに対応する時間間隔内での各フェーズの発生を認識し、シーケンス210内の時間的電力分配を適用する。
(限定ではなく)例として、電力管理装置115は、第1記憶フェーズ212が、コンピュータシステム105の処理装置110とメモリ装置130との間の相互作用によって支配されるアプリケーション挙動と関連し、かつ、第1計算フェーズ214は、(例えば、メモリアクセス及び/又は他の装置との通信ではなく)一つ以上のコア112での計算によって支配されるアプリケーション挙動と関連することを決定することができる。システムの電力上限が100Wであり、これは、ある期間tにわたってコンピュータシステム105によって使用される平均電力として評価されると仮定する。また、第1記憶フェーズ212の制約なしの使用電力(すなわち、フェーズがフルのパフォーマンスで実行するのに必要な電力)は、100Wの電力上限よりも10W低い90Wであり、実行に5秒かかると想定する。次に、第1計算フェーズの制約なし使用電力(power usage)は、100Wの電力上限よりも20W高い120Wであると想定する。また、この例では、第1計算フェーズ214が100Wの使用に制約されているとき、第1計算フェーズ214は実行に10秒かかると想定する。
この例では、電力管理装置が、フルのパフォーマンスに達するためにどれだけの電力を必要とするかにかかわらず、電力管理装置が各フェーズに対して100Wの電力を確保する場合、第1記憶フェーズ212の持続時間に対して10Wの電力が無駄になる。さらに、以下の式によって示すように、第1記憶フェーズ212及び第1計算フェーズ214にわたる平均使用電力(average power usage)は96.67Wであり、これは100Wの電力上限(Power Cap)よりも小さい。
Figure 0006668355
上記の式において、PWR(Mem)は、第1期間Runtime(Mem)中に第1記憶フェーズ212に割り当てられた電力であり、PWR(Comp)は、第2期間Runtime(Comp)中に第1計算フェーズ214に割り当てられた電力である。この例における上記の式は、平均電力上限に等しい各フェーズについて確保する電力がどのようにして電力の準最適な使用につながり得るかを示す。
しかし、電力管理装置115が100Wを超える第1計算フェーズ214を割り当てる場合、そのフェーズのパフォーマンスが改善し、アプリケーション全体のパフォーマンスが改善される可能性がある。例えば、105.6Wの電力制限だと、第1計算フェーズ214は、100Wの電力制限での10秒と比較して、9秒の実行時間を有すると仮定する。電力管理装置115が計算制限フェーズ105.6Wを割り当てる場合、平均使用電力は、
Figure 0006668355
上記の例に示すように、特定の動的時間的電力ステアリングの実施形態は、フェーズにわたる電力の準最適使用を特定し、システムに課された電力上限を一時的に違反することによってそれを訂正しながら、評価期間においては平均電力は、システムの電力上限に違反しないことを保証している。その結果、アプリケーション全体のパフォーマンスが改善される(例えば、上記の例では2つのフェーズにわたる実行時間が15秒から14秒に短縮されている)。
特定の実施形態では、電力管理装置115は、フェーズの特性をモニタ及び学習する動的時間的電力スケジューラ(図示せず)を含む。動的時間的電力スケジューラは、各アプリケーションフェーズについて、どのようにパフォーマンスが電力にスケーリングするかを学習する。動的時間的電力スケジューラはまた、電力を制限することを通じて、パフォーマンス−電力のスケーリング(scaling)が悪い、アプリケーションの一つ以上のフェーズの速度を落とし、パフォーマンス−電力のスケーリングが良いフェーズに電力を転送することによって改善されたアプリケーションパフォーマンスが得られる場合を認識する。
(限定ではなく)上記の例を続けると、80Wの電力制限だと、第1記憶フェーズ212はいくらかのパフォーマンスを失い、完了までに5秒ではなく6秒かかり、117.1Wの電力制限だと、第1計算フェーズ214は、100Wで10秒ではなく7秒で終了することができることを学習したと想定する。すると、平均電力(average power)は、
Figure 0006668355
上記の例示的な電力割り当ては、アプリケーションによって使用される平均電力がシステム電力上限(100W)を超えないという要件を満たす。しかし、上記の例では、2つのフェーズにわたる実行時間が15秒から13秒に短縮されている。この例は、フェーズ実行時間がそのフェーズ中に割り当てられた電力量にどのように関連しているかを学習することにより、どのように動的時間的電力ステアリングが時間ドメイン(すなわち、フェーズにわたる)において全体的に最適又は改善された電力決定を行うことができるのかを示す。そのようにすることで、動的時間的電力スケジューラは、特定のフェーズの電力を制約するなどの直観的でない決定を特定することができ、全体の電力リミットなどの全体のシステム制約を遵守しながら、節約されたエネルギーがいくつかの目的関数(例えば、効率、パフォーマンス等)を改善するように使用されることができる。
第1記憶フェーズ212及び第1計算フェーズ214に関する上記の例は、例示として提供されているが、多くのアプリケーションが、作業の大部分がメモリコントローラにメモリ要求を送信している、長くメモリ支配的なフェーズを有することに留意されたい。メモリアクセスには時間がかかるため、アプリケーションはメモリアクセスが戻ってくるのを待つのにかなりの時間を費やす可能性がある。逆に、HPCやその他のシステムは電力が制約されているため、ベクトルユニットのように電力を消費するリソースを大量に使用する計算結合フェーズでは、電力の割り当てにおけるわずかな増加だけでも大きなメリットを得ることができる。このように、多くの場合、電力の割り当てにおけるわずかな減少によりパフォーマンス−電力のスケーリングが悪いフェーズで失われるパフォーマンスの絶対値は、電力の割り当てにおけるわずかな増加によりパフォーマンス−電力のスケーリングがよいフェーズで得られるパフォーマンスの絶対値よりも小さい。結果として、アプリケーション全体のパフォーマンスが向上し、電力がより効率的に使用され、そして、アプリケーションによって使用される平均電力がシステムの電力リミットを超えない。上記の説明は例としてパフォーマンスを使用するが、この実施形態は他の目的関数(例えば、効率、パフォーマンスなど)に広げることができる。
パフォーマンス−電力スケーリングが悪いフェーズの電力を下げることは、いつまでも利益をもたらさない可能性があることにも留意されたい。例えば、ある地点の後では、記憶制限フェーズの電力を切ることは、もはやパフォーマンスにわずかな影響も与えない可能性がある。電力がある変曲点を過ぎて制限されていると、フェーズのパフォーマンスが急激に低下し、追加の電力を受ける他のフェーズへの利益にもかかわらずアプリケーション全体のパフォーマンスに実質的に害を及ぼす可能性がある。したがって、動的時間的電力スケジューラは、特定の実施形態によれば、アプリケーション全体のパフォーマンスが最大化又は改善されるように、フェーズ間でステアリングする(steer)電力量を見つけるように構成されている。
特定の実施形態では、電力管理装置115は、シーケンス210の現在フェーズに基づいて、処理装置110及び/又はコンピュータシステム105内の電力を空間的に再分配するようにさらに構成されている。第1記憶フェーズ212では、電力管理装置115は、一つ以上の処理コア112に関連づけられた電力ドメインが必要とする電力がより少なくてよいと決定することができる。したがって、電力管理装置115は、記憶フェーズ212中は(例えば、エネルギーを節約するために)一つ以上の処理コア112に割り当てられた電力を下げて、及び/又は電力の少なくとも一部を(例えば、記憶フェーズ212に関与するリソースのパフォーマンスを向上させるために)他の電力ドメインに再分配する。
他の例として、図2Cは、アイドルフェーズ222とアクティブフェーズ224とが交互に繰り返されるシーケンス220を示す。電力管理装置115は、例えば、(強制又は非強制の)アイドル期間及びアクティブ期間を含む処理のデューティサイクルを制御するように構成することができる。いくつかの実施形態では、アイドル期間中、処理装置110は状態期間(state period)に置かれ、ハードウェア及びソフトウェア動作を能動的には処理しない。処理装置110は、一つ以上の処理コア112、グラフィックス処理ユニット114、I/O装置116、メモリ装置118及び他のアンコアコンポーネントを含め、装置の一部又は全部にわたってアイドル状態に置かれてもよい。他の実施形態では、処理装置110は、コンピュータシステム105を正しく機能させるために不可欠な動作のみを処理することができる。他の実施形態では、処理装置110は、スロットリング閾値(throttling threshold)に基づいて、一部ではあるが全てではないソフトウェア及びハードウェア動作を処理することができる。電力管理装置115は、特定のアプリケーションに対してアイドルフェーズ222とアクティブフェーズ224との間の最適又は改善された電力分配を決定し、実行中、それに応じて電力を再分配するように構成されている。
図3は、複数の電力ドメイン(ドメイン310a、310b、…、310nとして示されている)含むノード305と、電力供給システム312と、電力マネージャ314と、実行平均電力コントローラ316とを含む装置300のブロック図である。ノード305は、例えば、図1に示すコンピュータシステム105などのコンピュータシステムを含むことができる。このような実施形態では、各ドメイン310a、310b、…、310nは、別個の処理装置110を含むことができる。他の例では、ノード305は、サーバ若しくは、マイクロプロセッサ、マルチコアマイクロプロセッサの個々のコア、メモリコントローラハブ(MCH)、入出力コントローラハブ(IOH)、メモリ装置、ネットワークインタフェース等のコンピュータシステムコンポーネント、又は電力消費についてモニタされ、制御されることができる一つ以上の電力ドメインを有する任意の他のタイプの装置とすることができる。図示されている電力供給システム312は、ノード305にある範囲の電圧を供給することができるスイッチング又は線形電圧レギュレータ(VR、図示せず)を含むことができる。
図示されている電力マネージャ314は、フェーズモジュール318及び動的時間的電力スケジューラ320を含み、第三者要素であっても、又は電力供給システム312に含まれてもよく、固定機能ハードウェア、マイクロコード、ファームウェア、ソフトウェア又はそれらの任意の組み合わせで実装されることができる。他の実施形態では、電力マネージャ314は、ノード305に含まれても、ノード305によって実行されてもよい。例えば、ノード305は、電力マネージャ314を実装するように構成された一つ以上の処理コアを含むことができる。フェーズモジュール318は、ノード305によって実行されるアプリケーション又は処理のフェーズを検出するように構成されている。特定の実施形態は、例えば、ランタイム開発者、ライブラリ開発者、アプリケーションプログラマ等のユーザがソフトウェアコードにアノテーションをつけて再コンパイルすることができるソフトウェアアプリケーションプログラムインタフェース(API)を含み、コードがフェーズ情報を電力マネージャ314に通信するようにする。フェーズモジュール318は、コードと共にコンパイルされたフェーズ情報を使用して、実行中にフェーズに入っている(being entered)が又は終了している(being exited)のかを決定する。APIは、コードに挿入されるオーバーヘッドを最小限に抑えるために軽量にすることができる。APIは、例えば、各フェーズのコードに一つ以上のAPI呼び出しを挿入することができる。
APIの特定の実施形態では、共有ライブラリが使用されることができ、オペレーティングシステム(例えば、Linux(登録商標))は、アプリケーションと共有ライブラリとの間に計測レイヤを挿入することができる。ユーザが計測レイヤを書き込む必要があるかもしれないが、このような実施形態であれば、アプリケーション又は共有ライブラリの修正又は再コンパイルを必要としない。さらに、ライブラリはアプリケーションによって使用される標準APIを有するので、一つの計測レイヤがAPIを実装する任意の共有ライブラリをサポートすることができる。さらに、再リンクが可能な場合、この例示的な実施形態は、静的リンクライブラリも同様に使用することができる。
追加的に、又は他の実施形態では、フェーズモジュール318は、フェーズを自動的に推定するモードをサポートするように構成されている。そのような実施形態は、アプリケーションを計測しない(instrument)。むしろ、装置300は、ハードウェアパフォーマンスモニタ能力を介してアプリケーションアクティビティを測定する。例えば、装置300は、ハードウェアパフォーマンスカウンタの痕跡(trace)をサンプリングし、分析する。実行時間では、フェーズモジュール318は、痕跡に時系列信号処理分析を適用して、アプリケーション実行の痕跡を安定した挙動のセグメントに分割する。次いで、フェーズモジュール318は、クラスタ化技術を適用して、反復セグメントをアプリケーションフェーズとして認識する。例えば、フェーズモジュール318は、再帰最小二乗を伴うARIMAX自己回帰を使用して、次の時間ステップにおいてパフォーマンスカウンタの痕跡が何であるかを学習し予測することができる。予測が間違っている場合、フェーズモジュール318は、アプリケーションがフェーズを変更している可能性があると決定する。フェーズモジュール318は、安定化ループを適用して、偽の(mispredictions)誤予測をフィルタリングする。しかし、誤予測が偽でない場合、フェーズモジュール318は、フェーズが変化した時点を特定する。
特定の実施形態では、フェーズモジュール318は、アプリケーションがフェーズに入っている、又はフェーズを出ているのかを判断するステートマシンを含む。各フェーズについて、フェーズモジュール318は、アプリケーションアクティビティシグネチャを追跡する。シグネチャは、例えば、モニタされているパフォーマンスカウンタアクティビティから導出された、計算、通信又は記憶の強度を含む特性のベクトルである。どのフェーズが現在実行されているかを決定するために、フェーズモジュール318は、アクティビティシグネチャを使用し、空間クラスタリング技術を適用する。フェーズモジュール318は、可能性のあるシグネチャの空間を等しいサイズの領域に分割し、各領域に、対応するフェーズ番号を与える。限定ではなく例として、100以上の異なる領域/フェーズがあることができる。アプリケーションがフェーズに入ると、フェーズモジュール318は、フェーズのシグネチャが空間のどの領域内に含まれるか調べ、そのフェーズを、その領域に対して指定された番号又は識別子でラベル付けする。動的時間的電力スケジューラ320は、フェーズ番号又は識別子を受け、各フェーズに対する最適又は改善された電力割り当てを決定する。
動的時間的電力スケジューラ320は、どのフェーズ間で電力をステアリングするかを決定するように構成される。一実施形態は、上記に参照されたソフトウェアAPIを使用する。このAPIにより、開発者などのユーザは、省電力や加速のためにフェーズは最適化されるべきかどうかをアノテーションを付けることができる。動的時間的電力スケジューラ320は、省電力のために指定されたフェーズからどれだけの電力を取り除くべきか、及び最大又は向上したパフォーマンスのため、加速のために指定されたフェーズにどれだけの電力を加えるべきかを学習する。例えば、動的時間的電力スケジューラ320は、すべての可能性にわたる徹底的な探索を使用する、又は、勾配降下法若しくは機械学習を介して知的に探索を削ることができる。探索は、各フェーズに割り当てられた電力が、電力上限によって示唆されるエネルギーバジェットと一致する(フェーズにわたって足された)合計エネルギーをもたらすという制限によって結合されている。言い換えると、電力上限は、フェーズよりも長い時間間隔にわたる平均電力であり、電力上限と時間間隔との積はエネルギーバジェットに等しい。
制約を満たす割り当てを見つけるために、特定の実施形態によれば、動的時間的電力スケジューラ320は、(各フェーズについて)フェーズの実行時間が電力にどのようにスケーリングするかを測定し、この電力スケーリング情報をテーブルに記録する。割り当てを試すときは、電力スケーリング情報を備えたテーブルを参照して、不整合な(inconsistent)割り当てを除外する。他の実施形態では、動的時間的電力スケジューラ320は、フェーズの実行時間が電力にどのようにスケーリングするかを測定し、全体の制約と不整合な割り当てを早急に訂正する。
特定の実施形態では、動的時間的電力スケジューラ320は、省電力のために指定されたフェーズと次の加速フェーズとの間にどのフェーズが入るかを知るためにフェーズのシーケンスを予測する。装置300は、例えば、時間の経過とともにフェーズの痕跡を保持することができる。特定の実施形態は、動的時間的電力スケジューラ320は、現在フェーズ及び最後にこのフェーズにいたアプリケーションでどのシーケンスが起きたかのみに基づいて次のフェーズが予測できるように、省電力フェーズと加速フェーズとの間のフェーズは常に同じであると想定している。多くのバルク同期HPCアプリケーションは、この想定に適合する。追加的に、又は他の実施形態では、機械学習方法を介して次のフェーズを予測することによって、分岐(又は、フェーズが省電力フェーズと加速フェーズとの間に入る可変性)が対応されることができる。
他の実施形態は、API又はソフトウェアによって提供されるアノテーションからの情報を使用せずに、どのフェーズが電力を節約し、どのフェーズを加速すべきかを指定する。特定のこのような実施形態では、動的時間的電力スケジューラ320は、上述した自動フェーズ検出及びアクティビティシグネチャを使用する。シグネチャを介して、動的時間的電力スケジューラ320は、例えば、どのフェーズが記憶集中型であり、通信集中型であり、計算集中型であるかを決定する。動的時間的電力スケジューラ320は、例えば、電力が節約されるべきフェーズとして記憶集中型及び通信集中型のフェーズを指定し、加速されるべきフェーズとして計算集中型のフェーズを指定することができる。次に、上述したように、動的時間的電力スケジューラ320は、平均電力上限によって示唆されるエネルギーバジェット要件に適合させることによって制約されるフェーズ間での電力の最適又は改善された割り当てを探索する。
追加的に、又は他の実施形態では、動的時間的電力スケジューラ320は、システム構成、実行時間イベント及び他の挙動変化の変更に適応する。例えば、アプリケーションの挙動が変化する(例えば、新しいアプリケーションが実行を開始する)、システム管理者が電力マネージャ314の所望の目的関数を変更し得る(例えば、エネルギー効率から最大パフォーマンスへの切り替え)、及び/又は基本的なシステム制約が変化し得る(例えば、電力上限又は利用可能な総電力)ということが起き得る。動的時間的電力スケジューラ320は、ノード305がアプリケーションを実行するときにフェーズ間の電力の最適な又は改善された割り当てを再度、決定又は学習することによって、実行時間における動作挙動の変化に適応するように構成されている。動的時間的電力スケジューラ320は、例えば、ユーザ入力、定期的な所定の時間間隔によって指示された場合に、及び/又はシステム内の変化の検出に応じて、再学習手順が自動的に起動されるモードにおいて、再学習手順を行うことができる。
実行平均電力コントローラ316は、電力モニタモジュール322と、ドメインパフォーマンス制御モジュール324と、平均電力エンフォーサモジュール325と、ドメイン電力バジェットマネージャモジュール326とを含む。実行平均電力コントローラ316は、別個の装置又はモジュールとして示されているが、実行平均電力コントローラ316は、電力マネージャ314又はノード305の一部である、又はそれらによって実行されてよい。実行平均電力コントローラ316は、電力マネージャ314から受けた(例えば、ノード305の全体平均電力を示す)平均電力信号328及び時間的ステアリングインタフェース330に基づいて、ノード305の様々な電力ドメイン310a、310b、…、310n内の電力をモニタ及び制御するように構成されている。実装によるが、時間的ステアリングインタフェース330は、各フェーズに対する、各ドメイン又はドメインのグループの電力制限、ドメイン電力バジェットマネージャモジュール326に内部ヒューリスティックを通じた自発的な電力分配を決定させることを任せるヌル値、及び/又は各ドメインの相対的な重要性又は影響を示すもの(例えば、ドメイン電力バジェットマネージャモジュール326に相対的な重要度又は影響に基づいて電力分配を決定させることを任せる)を含むことができる。
電力モニタモジュール322は、様々な電力ドメイン310a、310b、…、310nの電力消費を測定し、上述したように、対応する電力モニタデータ321をフェーズモジュール318及び/又は動的時間的電力スケジューラ320に供給するように構成されている。電力モニタモジュール322はまた、電力モニタデータを平均電力エンフォーサモジュール325及びドメイン電力バジェットマネージャモジュール326に提供する。
ドメインパフォーマンス制御モジュール324は、例えば、周波数、制限帯域(throttling bandwidth)、及び/又は他のパフォーマンスパラメータを調整することを通じて、各ドメインのパフォーマンス及び電力を調整する制御を含む。特定の実施形態では、パフォーマンスレベルは、多数の異なる方法で定義され、選択されることができる。一つのアプローチとしては、パフォーマンス状態又は、P0状態の装置が最大パフォーマンス能力を使用し、最大電力を消費することができ、P1状態の装置が、その最大値よりも低く制限されたパフォーマンス能力を使用し、最大電力未満を消費する等のPx状態を選択することである。平均電力エンフォーサモジュール325は、ドメインパフォーマンス制御モジュール324を設定し、プログラマブル時間ウィンドウにわたってノード305についての平均電力信号328によって示される全体平均電力を維持するようにその設定を時間とともに適応させる。平均電力エンフォーサモジュール325は、標準コントローラ技術で実装され得る制御システムを含む。ドメイン電力バジェットマネージャモジュール326は、電力バジェットを平均電力エンフォーサモジュール325に出力するロジックを含む。ドメイン電力バジェットマネージャモジュール326は、動的時間的電力スケジューラ320にいくつかの異なるインタフェースを提供することができ、それにより、動的時間的電力スケジューラ320が、各ドメインに対する特定の電力バジェット(例えば、ワットに比例する単位)を直接的に指定する、又は各ドメインの相対的重要度又は影響に関するヒントを(抽象単位で)指定することによって、ドメイン電力バジェットマネージャモジュール326が内部ヒューリスティックをヒントに適用し、それらをドメインについての特定のバジェットにマッピングすることによりバジェットを間接的に指定することができる。
図4は、一実施形態による動的時間的電力ステアリングのための方法400のフローチャートである。方法400は、アプリケーションのフェーズのシーケンスを決定するステップ410を含み、複数のフェーズの各々は、他のフェーズの動作挙動とは異なる動作挙動を呈するアプリケーションのセグメントを含む。このシーケンスは、エネルギーバジェットに関連する時間間隔に対応する。方法400はまた、パフォーマンス指標、目的関数、及び測定間隔及び/又はイベント(例えば、フェーズ変化又は反復の終了)を選択するステップ412を含む。パフォーマンスには様々な定義が使用されることができ、パフォーマンスは様々な異なる粒度で測定されることができる。これにより、パフォーマンスは、リタイアされる命令のレート、1秒当たりの浮動小数点演算(FLOPS)、進行度、実行時間等の指標によって定義されることができる。このようなレート、実行時間又は他のパフォーマンス指標は、様々な粒度で計算されることができる。例えば、選択されたパフォーマンス指標は、各フェーズ内の短い時間間隔で測定される、各フェーズの終了などのイベントがあったら測定される、フェーズよりも長い時間間隔で測定される、(反復アプリケーションに対しては)反復の終了などのイベントがあったら測定される等とすることができる。方法400は、さらに、現在フェーズを検出するためにアプリケーションをモニタするステップ414を含む。
特定の実施形態では、方法400は、さらに、選択されたパフォーマンス指標ごとに最適な時間的電力割り当てが達成されたかどうかを問い合わせるステップ418を含む。言い換えると、方法400は、フェーズ間での準最適な時間的割り当てで一つ以上の反復を実行し、各フェーズ中及び複数のフェーズ境界にわたってパフォーマンスを測定して、改善又は最適な割り当てを探索することができる。最適な時間的電力割り当てが達成されたかどうかを決定するために、いくつかの方法が使用されることができる。例えば、方法400は、多数又はすべての順列(すなわち、可能な電力割り当て)を試し、結果としての測定されたパフォーマンスを比較して、最適分配を決定することができる。他の例として、方法400は、勾配探索法(すなわち、電力割り当て変数に関してパフォーマンス指標の勾配を推定し、勾配方向にステップし、勾配経路に沿って順列を試みるだけである)を用いることによって最適解の近似を求めることができる。さらに他の例では、順列空間が大きい場合、順列空間を徹底的に探索する代わりに、方法400は、様々なサンプリング方法を適用し、試行された割り振りの中で最適の割り当てを採用することができる。
測定が、フェーズのシーケンスにわたる最適な時間的電力割り当てが達成されていない(又は、まだ改善されることができる)と決定する場合、方法400はシーケンスのフェーズ間で電力を時間的に再割り当てするステップ420を含む。しかし、測定が、フェーズのシーケンスにわたる最適な時間的電力割り当てが達成された決定する場合、方法400は、現在フェーズに対応する時間的電力割り当てを複数の電力ドメインに適用するステップ421を含む。特定の実施形態では、例えば、図3に示す電力マネージャ314又はドメイン電力バジェットマネージャ326は、現在フェーズに割り当てられた電力リミットが複数の電力ドメインにわたってどのように空間的に分配されるかを決定するように構成することができる。他の実施形態では、図5に関して以下に説明するように、空間電力ステアリングアルゴリズムが使用されて、(時間電力ステアリングによって決定されるような)現在フェーズに対する特定の電力リミットについて複数の電力ドメインにわたる空間電力割り当てを最適化することができる。
方法400はまた、システム変更、アプリケーション変更、電力上限変更又は選択されたパフォーマンス指標変更があるかを問い合わせるステップ422を含む。ない場合は、方法400は、現在の(又は次の)フェーズを検出するために、そして、フェーズのシーケンスにわたる電力の時間的割り当てを最適化することを続けるために、アプリケーションをモニタするステップ414を続ける。一方、システム変更、アプリケーション変更、電力上限変更又は選択されたパフォーマンス指標変更があると決定される場合、方法400は、現在フェーズを検出するためにアプリケーションをモニタするステップ414の前に、フェーズのシーケンスを決定するステップ410及び/又はパフォーマンス指標、目的関数及び測定間隔/イベントを選択するステップ412を再度行い、最適な時間的電力割り当てが達成されたかどうかを問い合わせるステップ418を再度行うということを繰り返す。
上述したように、特定の実施形態は、フェーズ境界にわたる動的時間的電力ステアリングと、各フェーズに対する電力ドメイン間の動的空間電力ステアリングとの組み合わせを含む。特定のこのような実施形態では、動的空間電力ステアリングは、動的時間的電力ステアリングのための方法400内で入れ子にされてもよい。例えば、図5は、図4に示すような、複数のフェーズ間で電力を時間的に再割り当てするステップ420のためのフローチャートであり、一実施形態による動的空間電力ステアリングも含む。選択されたパフォーマンス指標毎に最適な時間的電力割り当てが達成されたかどうかを問い合わせるステップ418を行い、フェーズのシーケンスにわたる最適な時間的電力割り当てが達成されていない(又は、まだ改善されることができる)と決定した後、図5は、シーケンスのフェーズ間で電力を時間的に再割り当てするステップ420は、シーケンスのフェーズ間で新しい時間的電力割り当てを選択するステップ510と、新しい時間的電力分配に基づいて現在フェーズが省電力、加速、又はどちらもないに指定されているかどうか問い合わせるステップ512と含み得ることを示す。特定の実施形態では、この問い合わせは、現在フェーズの実行時間が電力変動どのようにスケーリングするか(又は、どのようにスケーリングするかについての前の決定を洗練する)を決定することを含むことができる。
現在フェーズが省電力のために指定されている場合、この方法は、現在フェーズ中は、新しい時間的電力割り当てによりノード内の複数の電力ドメイン全体の電力リミットを下げるステップ514を含む。現在フェーズが加速のために指定されている場合、この方法は、現在フェーズ中は、新しい時間的電力割り当てによりノード内の複数の電力ドメイン全体の電力リミットを上げるステップ516を含む。現在フェーズが省電力にも加速のためにも指定されていない場合、この方法は、エネルギーバジェットにより現在フェーズの全体の電力リミットを維持する。
図5は、さらに、選択されたパフォーマンス指標ごとに、複数の電力ドメイン間の最適な空間電力分配が現在フェーズに対して達成されたかどうかを問い合わせるステップ518を含む。測定が、最適な空間電力分配が達成されていない(又は、まだ改善されることができる)と決定する場合、この方法は、現在フェーズに対して、新しい時間的電力割り当て(すなわち、フェーズ間の新しい時間的電力割り当てに基づいた現在フェーズに対する新しい電力リミット)に基づいて、複数の電力ドメインの間で電力を空間的に再分配するステップ520を含む。この方法は、再分配された電力が複数の電力ドメイン間で最適な空間電力分配を提供するかどうかを問い合わせるステップ518を再度行う。測定が、最適又は十分な空間電力分配が達成されたと決定する場合、この方法は、現在フェーズに対応する空間電力分配を複数の電力ドメインに適用するステップ522を含む。次いで、この方法は、図4に示すように、すなわち、システム変更、アプリケーション変更、電力上限変更又は選択されたパフォーマンス指標変更があるかどうかを問い合わせるステップ422を行うことによって、続く。
以下はさらなる実施形態の例である。例は、方法、方法の動作を実行する手段、機械によって実行されると、その機械に方法、又は、本明細書に記載されている実施形態及び例による拡張ビデオをレンダリングするための機械若しくはシステムの動作を実行させる命令を含む少なくとも一つの機械読み取り可能媒体等の主題を含むことができる。
例1は、電力マネージャを使用して、ノード上で実行するためのタスクを含むアプリケーションに対応する、フェーズのシーケンスを決定するステップであって、該シーケンスはエネルギーバジェットに関連する時間間隔に対応する、ステップと、各フェーズに対して、前記ノード内の複数の電力ドメインに分配される電力の増加又は減少のため、実行時間において測定された応答を含む電力スケーリングを決定するステップと、各フェーズに対する前記電力スケーリングに基づいて、前記シーケンスのフェーズ間での時間的電力分配を決定して、前記エネルギーバジェットを満たし、前記ノードによる前記アプリケーションの実行時間パフォーマンスを改善又は最適化するステップと、を含む方法である。
例2は、パフォーマンス指標、目的関数、及び前記パフォーマンス指標を評価するための測定間隔及び測定イベントのうちの少なくとも一つを選択するステップをさらに含み、前記パフォーマンス指標は、前記ノードによる前記アプリケーションの実行時間パフォーマンスを改善又は最適化するように選択され、前記目的関数は、電力上限内でのパフォーマンスを最大化すること、パフォーマンスを最大化すること、電力上限内でエネルギー効率を最大にすること、及び効率を最大にすることを含む群から選択される、例1に記載の主題である。
例3は、現在フェーズを検出するために前記アプリケーションをモニタするステップと、前記現在フェーズにおいて、前記時間的電力割り当てが前記目的関数を満たさないと決定するステップと、前記決定に応じて、前記シーケンスのフェーズ間で前記電力を時間的に再割り当てするステップと、をさらに含む、例2に記載の主題である。
例4は、前記シーケンスのフェーズ間で前記電力を時間的に再割り当てするステップは、前記シーケンスのフェーズ間で新しい時間的電力割り当てを選択するステップと、前記時間的電力分配に基づいて、前記現在フェーズが省電力又は加速のために指定されているかどうかを決定するステップと、前記現在フェーズが省電力のために指定されている場合、前記新しい時間的電力割り当てに従って前記ノード内の複数の電力ドメインに対する全体の電力リミットを下げるステップと、前記現在フェーズが加速のために指定されている場合、前記新しい時間的電力分配に従って前記ノード内の複数の電力ドメインの全体の電力リミットを上げるステップと、を含む、例3に記載の主題である。
例5は、前記現在フェーズが省電力又は加速のために指定されているかどうかを示す、前記アプリケーションのコンピュータ実行可能コード内のアノテーションを検出するステップをさらに含む、例4に記載の主題である。
例6は、前記ノード内の複数の電力ドメイン間の空間電力分配が前記パフォーマンス指標を満たさないと決定するステップと、前記決定に応じて、前記新しい時間的電力割り当てに基づいて、前記現在フェーズにおける前記複数の電力ドメイン間の前記電力を空間的に再分配するステップと、をさらに含む、例4に記載の主題である。
例7は、前記アプリケーション、前記ノード、電力上限及び前記ノードを含むシステムのうちの少なくとも一つの変化を検出するステップと、検出された前記変化に応じて、前記シーケンスのフェーズ間の時間的電力分配を再構成するステップと、をさらに含む、例1から6のいずれか一つに記載の主題である。
例8は、計算結合フェーズ、記憶結合フェーズ、通信結合フェーズ、アイドルフェーズ、アクティブフェーズ及びそれらのフェーズの任意のものの組み合わせのうち少なくとも2つを検出するステップをさらに含む、例1から7のいずれか一つに記載の主題である。
例9は、前記シーケンスの各フェーズに対して、前記シーケンスの第1反復に基づいた前記時間的電力分配を決定するステップと、前記シーケンスの各フェーズに対して、前記シーケンスの第2反復に前記時間的電力割り当てを適用するステップと、をさらに含む、例1から8のいずれか一つに記載の主題である。
例10は、少なくとも一部にハードウェアを含むロジックを含む電力マネージャであって、該電力マネージャは、アプリケーションのフェーズのシーケンスを決定するフェーズモジュールであって、該シーケンスはエネルギーバジェットに関連する時間間隔に対応し、各フェーズは、他のフェーズの動作挙動とは異なる動作挙動を呈するアプリケーションのセグメントを有する、フェーズモジュールと、前記シーケンスのフェーズ間の時間的電力分配を決定して、前記エネルギーバジェットを満たし、前記アプリケーションの実行時間パフォーマンスを改善又は最適化する動的時間的電力スケジューラモジュールと、を含む装置である。
例11は、前記電力マネージャは、パフォーマンス指標、目的関数、及び前記パフォーマンス指標を評価するための測定間隔及び測定イベントのうちの少なくとも一つを選択するように構成され、前記目的関数は、前記アプリケーションの実行時間パフォーマンスを改善又は最適化するように選択される、例10に記載の主題である。
例12は、前記フェーズモジュールは、さらに、現在フェーズを検出するために前記アプリケーションをモニタするように構成され、前記動的時間的電力スケジューラモジュールは、さらに、前記現在フェーズにおいて、前記時間的電力割り当てが前記目的関数を満たさないと決定し、前記決定に応じて、前記シーケンスのフェーズ間で電力を時間的に再割り当てするように構成されている、例11に記載の主題である。
例13は、前記電力を時間的に再割り当てするために、前記動的時間的電力スケジューラモジュールは、さらに、前記シーケンスのフェーズ間で新しい時間的電力割り当てを選択し、前記時間的電力分配に基づいて、前記現在フェーズが省電力又は加速のために指定されているかどうかを決定し、前記現在フェーズが省電力のために指定されている場合、前記新しい時間的電力割り当てに従って、ノード内の複数の電力ドメインの全体の電力リミットを下げ、前記現在フェーズが加速のために指定されている場合、前記新しい時間的電力分配に従って前記ノード内の複数の電力ドメインの全体の電力リミットを上げる、ように構成されている、例12に記載の主題である。
例14は、前記動的時間的電力スケジューラモジュールは、さらに、前記現在フェーズが省電力又は加速のために指定されているかどうかを示す、前記アプリケーションのコンピュータ実行可能コード内のアノテーションを検出するように構成されている、例13に記載の主題である。
例15は、前記電力マネージャは、さらに、前記ノード内の複数の電力ドメイン間の空間電力分配が前記目的関数を満たさないと決定し、前記決定に応じて、前記新しい時間的電力割り当てに基づいて、前記現在フェーズにおける前記複数の電力ドメイン間の前記電力を空間的に再分配する、ように構成されている例13に記載の主題である。
例16は、前記電力マネージャは、さらに、前記アプリケーション、前記ノード、電力上限及び前記装置を含むシステムのうちの少なくとも一つの変化を検出し、検出された前記変化に応じて、前記シーケンスのフェーズ間の時間的電力分配を再構成する、ように構成されている、例10から15のいずれか一つに記載の主題である。
例17は、システムであって、少なくとも一つのコアドメインと、少なくとも一つのアンコアドメインとを含む複数の電力ドメインと、一つ以上のプロセッサによって実行されると、該一つ以上のプロセッサに動作を実行させる命令を記憶した少なくとも一つのコンピュータ読み取り可能記憶媒体と、を含み、該動作は、当該システムによって実行されるアプリケーションのフェーズのシーケンスを決定するステップであって、該シーケンスは、エネルギーバジェットに関連する時間間隔に対応する、ステップと、各フェーズに対して、当該システム内の前記複数の電力ドメインに分配される電力の増加又は減少のため、実行時間において測定された応答を含む電力スケーリングを決定するステップと、各フェーズに対する前記電力スケーリングに基づいて、前記シーケンスのフェーズ間での時間的電力分配を決定して、前記エネルギーバジェットを満たし、当該システムによる前記アプリケーションの実行時間パフォーマンスを改善又は最適化するステップと、を含む、システムである。
例18は、前記動作は、パフォーマンス指標、目的関数、及び前記パフォーマンス指標を評価するための測定間隔及び測定イベントのうちの少なくとも一つを選択するステップをさらに含み、前記パフォーマンス指標は、当該システムによる前記アプリケーションの実行時間パフォーマンスを改善又は最適化するように選択される、例17に記載の主題である。
例19は、前記動作は、現在フェーズを検出するために前記アプリケーションをモニタするステップと、前記現在フェーズにおいて、前記時間的電力割り当てが前記目的関数を満たさないと決定するステップと、前記決定に応じて、前記シーケンスのフェーズ間で前記電力を時間的に再割り当てするステップと、をさらに含む、例18に記載の主題である。
例20は、前記シーケンスのフェーズ間で前記電力を時間的に再割り当てするために、前記動作は、前記シーケンスのフェーズ間で新しい時間的電力割り当てを選択するステップと、前記時間的電力分配に基づいて、前記現在フェーズが省電力又は加速のために指定されているかどうかを決定するステップと、前記現在フェーズが省電力のために指定されている場合、前記新しい時間的電力割り当てに従って当該システム内の複数の電力ドメインに対する全体の電力リミットを下げるステップと、前記現在フェーズが加速のために指定されている場合、前記新しい時間的電力分配に従って前記ノード内の複数の電力ドメインの全体の電力リミットを上げるステップと、をさらに含む、例19に記載の主題である。
例21は、前記動作は、前記現在フェーズが省電力又は加速のために指定されているかどうかを示す、前記アプリケーションのコンピュータ実行可能コード内のアノテーションを検出するステップをさらに含む、例20に記載の主題である。
例22は、前記動作は、前記ノード内の複数の電力ドメイン間の空間電力分配が前記パフォーマンス指標を満たさないと決定するステップと、前記決定に応じて、前記新しい時間的電力割り当てに基づいて、前記現在フェーズにおける前記複数の電力ドメイン間の前記電力を空間的に再分配するステップと、をさらに含む、例20に記載の主題である。
例23は、前記フェーズのシーケンスを決定するために、前記動作は、前記アプリケーション、前記ノード、電力上限及び前記ノードを含むシステムのうちの少なくとも一つの変化を検出するステップと、検出された前記変化に応じて、前記シーケンスのフェーズ間の時間的電力分配を再構成するステップと、をさらに含む、例17から22のいずれか一つに記載の主題である。
例24は、前記フェーズのシーケンスを決定するために、前記動作は、計算結合フェーズ、記憶結合フェーズ、通信結合フェーズ、アイドルフェーズ、アクティブフェーズ及びそれらのフェーズの任意のものの組み合わせのうち少なくとも2つを検出するステップをさらに含む、例17から23のいずれか一つに記載の主題である。
例25は、前記動作は、前記シーケンスの各フェーズに対して、前記シーケンスの第1反復に基づいた前記時間的電力分配を決定するステップと、前記シーケンスの各フェーズに対して、前記シーケンスの第2反復に前記時間的電力割り当てを適用するステップと、をさらに含む、例17から24のいずれか一つに記載のシステムである。
例26は、例1から9のいずれか一つに記載の方法を実装する又は装置を実現する機械読み取り可能命令を含む機械読み取り可能ストレージである。
例27は、電力マネージャを使用して、ノード上で実行するためのタスクを含むアプリケーションに対応する、フェーズのシーケンスを決定する手段であって、該シーケンスはエネルギーバジェットに関連する時間間隔に対応する、手段と、各フェーズに対して、前記ノード内の前記複数の電力ドメインに分配される電力の増加又は減少のため、実行時間において測定された応答を含む電力スケーリングを決定する手段と、各フェーズに対する前記電力スケーリングに基づいて、前記シーケンスのフェーズ間での時間的電力分配を決定して、前記エネルギーバジェットを満たし、前記ノードによる前記アプリケーションの実行時間パフォーマンスを改善又は最適化する手段と、を含む装置である。
例28は、パフォーマンス指標、目的関数、及び前記パフォーマンス指標を評価するための測定間隔及び測定イベントのうちの少なくとも一つを選択する手段をさらに含み、前記パフォーマンス指標は、前記ノードによる前記アプリケーションの実行時間パフォーマンスを改善又は最適化するように選択される、前記目的関数は、電力上限内でのパフォーマンスを最大化すること、パフォーマンスを最大化すること、電力上限内でエネルギー効率を最大にすること、及び効率を最大にすることを含む群から選択される、例27に記載の主題である。
例29は、現在フェーズを検出するために前記アプリケーションをモニタする手段と、前記現在フェーズにおいて、前記時間的電力割り当てが前記目的関数を満たさないと決定する手段と、前記決定に応じて、前記シーケンスのフェーズ間で前記電力を時間的に再割り当てする手段と、をさらに含む、例28に記載の主題である。
例30は、前記シーケンスのフェーズ間で前記電力を時間的に再割り当てする手段は、前記シーケンスのフェーズ間で新しい時間的電力割り当てを選択する手段と、前記時間的電力分配に基づいて、前記現在フェーズが省電力又は加速のために指定されているかどうかを決定する手段と、前記現在フェーズが省電力のために指定されている場合、前記新しい時間的電力割り当てに従って前記ノード内の複数の電力ドメインに対する全体の電力リミットを下げる手段と、前記現在フェーズが加速のために指定されている場合、前記新しい時間的電力分配に従って前記ノード内の複数の電力ドメインの全体の電力リミットを上げる手段と、を含む、例29に記載の主題である。
例31は、前記現在フェーズが省電力又は加速のために指定されているかどうかを示す、前記アプリケーションのコンピュータ実行可能コード内のアノテーションを検出する手段をさらに含む、例30に記載の主題である。
例32は、前記ノード内の複数の電力ドメイン間の空間電力分配が前記パフォーマンス指標を満たさないと決定する手段と、前記決定に応じて、前記新しい時間的電力割り当てに基づいて、前記現在フェーズにおける前記複数の電力ドメイン間の前記電力を空間的に再分配する手段と、をさらに含む、例30に記載の主題である。
例33は、前記アプリケーション、前記ノード、電力上限及び前記ノードを含むシステムのうちの少なくとも一つの変化を検出する手段と、検出された前記変化に応じて、前記シーケンスのフェーズ間の時間的電力分配を再構成する手段と、をさらに含む、例27から32のいずれか一つに記載の主題である。
例34は、計算結合フェーズ、記憶結合フェーズ、通信結合フェーズ、アイドルフェーズ、アクティブフェーズ及びそれらのフェーズの任意のものの組み合わせのうち少なくとも2つを検出する手段をさらに含む、例27から33のいずれか一つに記載の主題である。
例35は、前記シーケンスの各フェーズに対して、前記シーケンスの第1反復に基づいた前記時間的電力分配を決定する手段と、前記シーケンスの各フェーズに対して、前記シーケンスの第2反復に前記時間的電力割り当てを適用する手段と、をさらに含む、例27から34のいずれか一つに記載の主題である。
上記の説明は、本明細書に説明されている実施形態の完全な理解のための多数の特定の詳細を提供する。しかし、当業者であれば、特定の詳細の一つ以上は省略されてもよく、他の方法、コンポーネント、又は材料が使用されてもよいことを認識するであろう。場合によっては、周知の特徴、構造、又は操作は、詳細には示されておらず、記載されていない。
さらに、説明されている特徴、動作又は特性は、広範囲の異なる構成でアレンジ及び設計されることができ、及び/又は一つ以上の実施形態において任意の適切な方法で組み合わせられることができる。したがって、システム及び方法の発明を実施するための形態は、特許請求の範囲に記載されている本開示の範囲を限定するものではなく、本開示の可能な実施形態の単なる代表例である。さらに、開示された実施形態に関連して説明されている方法のステップ又は行動の順序は、当業者には明らかであるように変更され得ることは容易に理解されるものである。したがって、図面又は発明を実施するため形態の順序は、説明を目的とするのみであり、順序を必要とすると指定されない限り、順序が必要とされることを示唆することを意図していない。
用語「結合された」は、本明細書では、問題となっているコンポーネント間の直接的又は間接的な任意のタイプの関係を示すために使用され、電気的、機械的、流体的、光学的、電磁的、電気機械的、その他の接続に適用されることができる。追加的に、用語「第1」、「第2」等は、本明細書では説明を容易にするためにのみ使用されることができ、特に示されない限り、なんら特定の時間的又は時系列的な意味はない。
本明細書において、「一実施形態」、「実施形態」、「例示的実施形態」等の言及は、実施形態に関連して説明される特定の特徴、構造又は特性が、少なくとも一つの実施形態に含まれることを意味している。本明細書の様々な場所においてそのような語句が出現するが、必ずしも全てが同じ実施形態を示しているとは限らない。さらに、特定の特徴、構造又は特性が任意の実施形態に関連して記載されている場合、他の実施形態に関連したそのような特徴、構造、又は特性に影響を及ぼすことは、当業者の理解の範囲内である。
様々な実施形態は、ハードウェア要素、ソフトウェア要素及び/又はその両方の組み合わせを使用して実装されることができる。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路要素(例えば、トランジスタ、抵抗器、コンデンサ、インダクタ等)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含む。ソフトウェアの例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、命令セット、計算コード、コンピュータコード、コードセグメント、コンピュータコードセグメント、単語、値、記号、又はそれらの任意の組み合わせを含む。
少なくとも一つの実施形態の一つ以上の態様は、プロセッサ内に様々なロジックを呈し、機械によって読み取られると、機械に本明細書で説明されている技術を実行するためのロジックを組み上げさせる機械読み取り可能媒体に格納された代表的な命令によって実装されることができる。「IPコア」として知られるそのような表現は、有形の機械読み取り可能媒体に記憶されることができ、様々な顧客又は製造施設に供給され、実際にロジック又はプロセッサを製造する製造機械にロードされる。
多くの例示的な実施形態を参照して実施形態を説明したが、当業者によって、本開示の原理の精神及び範囲内に入る多くの他の修正及び実施形態が考案されることができることを理解されたい。より詳細には、本開示、図面、及び添付の特許請求の範囲の範囲内の主題の組み合わせアレンジメントのコンポーネントの部分及び/又はアレンジメントにおいて、様々な変更及び修正が可能である。コンポーネントの部品及び/又はアレンジメントの変更及び修正に加えて、代替の使用もまた当業者には明らかであろう。したがって、本発明の範囲は、添付の特許請求の範囲によってのみ決定されるべきである。

Claims (25)

  1. 電力マネージャを使用して、ノード上で実行するためのタスクを含むアプリケーションに対応する、フェーズのシーケンスを決定するステップであって、該シーケンスは電力上限に関連する時間間隔に対応する、ステップと、
    各フェーズに対して、前記ノード内の複数の電力ドメインに分配される電力の増加又は減少のため、フェーズの実行時間が電力にどのようにスケーリングするかを測定して、電力スケーリングを決定するステップと
    各フェーズに対する前記電力スケーリングに基づいて、前記シーケンスのフェーズ間での時間的電力分配を決定して、前記電力上限を満たし、前記ノードによる前記アプリケーションの実行時間パフォーマンスを改善又は最適化するステップと、を含み、
    パフォーマンス指標と、目的関数と、前記パフォーマンス指標を評価するための測定間隔及び測定イベントのうちの少なくとも一つと、を選択するステップをさらに含み、
    前記パフォーマンス指標は、前記ノードによる前記アプリケーションの実行時間パフォーマンスを改善又は最適化するように選択され、
    前記目的関数は、前記電力上限内でのパフォーマンスを最大化すること、パフォーマンスを最大化すること、前記電力上限内でエネルギー効率を最大にすること、及び効率を最大にすることを含む群から選択される、方法。
  2. 現在フェーズを検出するために前記アプリケーションをモニタするステップと、
    前記現在フェーズにおいて、前記時間的電力分配が前記目的関数を満たさないと決定するステップと、
    前記決定に応じて、前記シーケンスのフェーズ間で前記電力を時間的に再分配するステップと、をさらに含む、請求項に記載の方法。
  3. 前記シーケンスのフェーズ間で前記電力を時間的に再分配するステップは、
    前記シーケンスのフェーズ間で新しい時間的電力分配を選択するステップと、
    前記時間的電力分配に基づいて、前記現在フェーズが省電力又は加速のために指定されているかどうかを決定するステップと、
    前記現在フェーズが省電力のために指定されている場合、前記新しい時間的電力分配に従って前記ノード内の複数の電力ドメインに対する電力を下げるステップと、
    前記現在フェーズが加速のために指定されている場合、前記新しい時間的電力分配に従って前記ノード内の複数の電力ドメインに対する電力を上げるステップと、を含む、請求項に記載の方法。
  4. 前記現在フェーズが省電力又は加速のために指定されているかどうかを示す、前記アプリケーションのコンピュータ実行可能コード内のアノテーションを検出するステップをさらに含む、請求項3に記載の方法。
  5. 前記ノード内の複数の電力ドメイン間の電力分配が前記パフォーマンス指標を満たさないと決定するステップと、
    前記決定に応じて、前記新しい時間的電力分配に基づいて、前記現在フェーズにおける前記複数の電力ドメイン間の前記電力を再分配するステップと、をさらに含む、請求項3に記載の方法。
  6. 前記アプリケーション、前記ノード、前記電力上限及び前記ノードを含むシステムのうちの少なくとも一つの変化を検出するステップと、
    検出された前記変化に応じて、前記シーケンスのフェーズ間の時間的電力分配を再構成するステップと、をさらに含む、請求項1に記載の方法。
  7. 計算結合フェーズ、記憶結合フェーズ、通信結合フェーズ、アイドルフェーズ、アクティブフェーズ及びそれらのフェーズの任意のものの組み合わせのうち少なくとも2つを検出するステップをさらに含む、請求項1に記載の方法。
  8. 前記シーケンスの各フェーズに対して、前記シーケンスの第1反復に基づいた前記時間的電力分配を決定するステップと、
    前記シーケンスの各フェーズに対して、前記シーケンスの第2反復に前記時間的電力分配を適用するステップと、をさらに含む、請求項1に記載の方法。
  9. 少なくとも一部にハードウェアを含むロジックを含む電力マネージャであって、該電力マネージャは、
    ノード上で実行するためのタスクを含むアプリケーションのフェーズのシーケンスを決定するフェーズモジュールであって、該シーケンスは電力上限に関連する時間間隔に対応し、各フェーズは、他のフェーズの動作挙動とは異なる動作挙動を呈するアプリケーションのセグメントを有する、フェーズモジュールと、
    前記シーケンスのフェーズ間の時間的電力分配を決定して、前記電力上限を満たし、前記アプリケーションの実行時間パフォーマンスを改善又は最適化する動的時間的電力スケジューラモジュールと、を含み、
    前記電力マネージャは、パフォーマンス指標と、目的関数と、前記パフォーマンス指標を評価するための測定間隔及び測定イベントのうちの少なくとも一つと、を選択するように構成され、
    前記目的関数は、前記アプリケーションの実行時間パフォーマンスを改善又は最適化するように選択される、装置。
  10. 前記フェーズモジュールは、さらに、現在フェーズを検出するために前記アプリケーションをモニタするように構成され、
    前記動的時間的電力スケジューラモジュールは、さらに、
    前記現在フェーズにおいて、前記時間的電力分配が前記目的関数を満たさないと決定し、
    前記決定に応じて、前記シーケンスのフェーズ間で電力を時間的に再分配する、ように構成されている、請求項に記載の装置。
  11. 前記電力を時間的に再分配するために、前記動的時間的電力スケジューラモジュールは、さらに、
    前記シーケンスのフェーズ間で新しい時間的電力分配を選択し、
    前記時間的電力分配に基づいて、前記現在フェーズが省電力又は加速のために指定されているかどうかを決定し、
    前記現在フェーズが省電力のために指定されている場合、前記新しい時間的電力分配に従って、前記ノード内の複数の電力ドメインに対する電力を下げ、
    前記現在フェーズが加速のために指定されている場合、前記新しい時間的電力分配に従って前記ノード内の複数の電力ドメインに対する電力を上げる、ように構成されている、請求項10に記載の装置。
  12. 前記動的時間的電力スケジューラモジュールは、さらに、前記現在フェーズが省電力又は加速のために指定されているかどうかを示す、前記アプリケーションのコンピュータ実行可能コード内のアノテーションを検出するように構成されている、請求項11に記載の装置。
  13. 前記電力マネージャは、さらに、
    前記ノード内の複数の電力ドメイン間の電力分配が前記目的関数を満たさないと決定し、
    前記決定に応じて、前記新しい時間的電力分配に基づいて、前記現在フェーズにおける前記複数の電力ドメイン間の前記電力を再分配する、ように構成されている請求項11に記載の装置。
  14. 前記電力マネージャは、さらに、
    前記アプリケーション、前記ノード、前記電力上限及び前記装置を含むシステムのうちの少なくとも一つの変化を検出し、
    検出された前記変化に応じて、前記シーケンスのフェーズ間の時間的電力分配を再構成する、ように構成されている、請求項から13のいずれか一項に記載の装置。
  15. システムであって、
    少なくとも一つのコアドメインと、少なくとも一つのアンコアドメインとを含む複数の電力ドメインと、
    一つ以上のプロセッサによって実行されると、該一つ以上のプロセッサに動作を実行させる命令を記憶した少なくとも一つのコンピュータ読み取り可能記憶媒体と、を含み、
    該動作は、
    当該システムによって実行されるアプリケーションのフェーズのシーケンスを決定するステップであって、該シーケンスは、電力上限に関連する時間間隔に対応する、ステップと、
    各フェーズに対して、当該システム内の前記複数の電力ドメインに分配される電力の増加又は減少のため、フェーズの実行時間が電力にどのようにスケーリングするかを測定して、電力スケーリングを決定するステップと、
    各フェーズに対する前記電力スケーリングに基づいて、前記シーケンスのフェーズ間での時間的電力分配を決定して、前記電力上限を満たし、当該システムによる前記アプリケーションの実行時間パフォーマンスを改善又は最適化するステップと、を含み、
    前記動作は、パフォーマンス指標と、目的関数と、前記パフォーマンス指標を評価するための測定間隔及び測定イベントのうちの少なくとも一つと、を選択するステップをさらに含み、
    前記パフォーマンス指標は、当該システムによる前記アプリケーションの実行時間パフォーマンスを改善又は最適化するように選択される、システム。
  16. 前記動作は、
    現在フェーズを検出するために前記アプリケーションをモニタするステップと、
    前記現在フェーズにおいて、前記時間的電力分配が前記目的関数を満たさないと決定するステップと、
    前記決定に応じて、前記シーケンスのフェーズ間で前記電力を時間的に再分配するステップと、をさらに含む、請求項15に記載のシステム。
  17. 前記シーケンスのフェーズ間で前記電力を時間的に再分配するために、前記動作は、
    前記シーケンスのフェーズ間で新しい時間的電力分配を選択するステップと、
    前記時間的電力分配に基づいて、前記現在フェーズが省電力又は加速のために指定されているかどうかを決定するステップと、
    前記現在フェーズが省電力のために指定されている場合、前記新しい時間的電力分配に従って当該システム内の複数の電力ドメインに対する電力を下げるステップと、
    前記現在フェーズが加速のために指定されている場合、前記新しい時間的電力分配に従って当該システム内の複数の電力ドメインに対する電力を上げるステップと、をさらに含む、請求項16に記載のシステム。
  18. 前記動作は、前記現在フェーズが省電力又は加速のために指定されているかどうかを示す、前記アプリケーションのコンピュータ実行可能コード内のアノテーションを検出するステップをさらに含む、請求項17に記載のシステム。
  19. 前記動作は、
    当該システム内の複数の電力ドメイン間の電力分配が前記パフォーマンス指標を満たさないと決定するステップと、
    前記決定に応じて、前記新しい時間的電力分配に基づいて、前記現在フェーズにおける前記複数の電力ドメイン間の前記電力を再分配するステップと、をさらに含む、請求項17に記載のシステム。
  20. 前記フェーズのシーケンスを決定するために、前記動作は、
    前記アプリケーション、前記電力上限及び当該システムのうちの少なくとも一つの変化を検出するステップと、
    検出された前記変化に応じて、前記シーケンスのフェーズ間の時間的電力分配を再構成するステップと、をさらに含む、請求項15から19のいずれか一項に記載のシステム。
  21. 前記フェーズのシーケンスを決定するために、前記動作は、計算結合フェーズ、記憶結合フェーズ、通信結合フェーズ、アイドルフェーズ、アクティブフェーズ及びそれらのフェーズの任意のものの組み合わせのうち少なくとも2つを検出するステップをさらに含む、請求項15から19のいずれか一項に記載のシステム。
  22. 前記動作は、
    前記シーケンスの各フェーズに対して、前記シーケンスの第1反復に基づいた前記時間的電力分配を決定するステップと、
    前記シーケンスの各フェーズに対して、前記シーケンスの第2反復に前記時間的電力分配を適用するステップと、をさらに含む、請求項15から19のいずれか一項に記載のシステム。
  23. 実行されると、請求項1からのいずれか一項に記載の方法を実施するプログラム。
  24. 請求項1からのいずれか一項に記載の方法を実行する手段を含む装置。
  25. 請求項23に記載のプログラムを記憶している機械読み取り可能媒体。
JP2017533567A 2014-12-23 2015-10-13 動的時間的電力ステアリングのためのシステム及び方法 Active JP6668355B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/581,911 US9829902B2 (en) 2014-12-23 2014-12-23 Systems and methods for dynamic temporal power steering
US14/581,911 2014-12-23
PCT/US2015/055353 WO2016105646A1 (en) 2014-12-23 2015-10-13 Systems and methods for dynamic temporal power steering

Publications (2)

Publication Number Publication Date
JP2018503184A JP2018503184A (ja) 2018-02-01
JP6668355B2 true JP6668355B2 (ja) 2020-03-18

Family

ID=56129279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017533567A Active JP6668355B2 (ja) 2014-12-23 2015-10-13 動的時間的電力ステアリングのためのシステム及び方法

Country Status (6)

Country Link
US (1) US9829902B2 (ja)
EP (1) EP3237998B1 (ja)
JP (1) JP6668355B2 (ja)
CN (1) CN107003686B (ja)
BR (1) BR112017010418B1 (ja)
WO (1) WO2016105646A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10620687B2 (en) 2014-12-22 2020-04-14 Intel Corporation Hybrid power management approach
US10067847B1 (en) 2015-09-08 2018-09-04 Amazon Technologies, Inc. Time-based on-chip hardware performance monitor
US11372464B2 (en) 2017-06-12 2022-06-28 Intel Corporation Adaptive parameterization for maximum current protection
US11481016B2 (en) * 2018-03-02 2022-10-25 Samsung Electronics Co., Ltd. Method and apparatus for self-regulating power usage and power consumption in ethernet SSD storage systems
US11500439B2 (en) 2018-03-02 2022-11-15 Samsung Electronics Co., Ltd. Method and apparatus for performing power analytics of a storage system
CN108491275B (zh) 2018-03-13 2022-12-13 Oppo广东移动通信有限公司 程序优化方法、装置、终端及存储介质
US10942557B2 (en) * 2018-07-18 2021-03-09 Dell Products L.P. System and method to maintain optimal system performance while adhering to competing power cap policies
TWI679439B (zh) * 2018-10-01 2019-12-11 緯穎科技服務股份有限公司 電源管理系統及電源管理方法
WO2020231014A1 (en) 2019-05-16 2020-11-19 Samsung Electronics Co., Ltd. Electronic device for performing power management and method for operating the same
US11550348B2 (en) * 2021-03-24 2023-01-10 Stmicroelectronics International N.V. Methods and devices for bypassing a voltage regulator

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69535577T2 (de) 1994-12-22 2008-03-06 Intel Corp., Santa Clara Leistungsverwaltung mit charakteristischem leistungsverbrauch einer vorrichtung
EP3321769A1 (en) * 2003-05-07 2018-05-16 Conversant Intellectual Property Management Inc. Managing power on integrated circuits using power islands
US7549177B2 (en) 2005-03-28 2009-06-16 Intel Corporation Advanced thermal management using an average power controller over an adjustable time window
US7484108B2 (en) 2005-06-23 2009-01-27 Intel Corporation Enhancing power delivery with transient running average power limits
US7562234B2 (en) * 2005-08-25 2009-07-14 Apple Inc. Methods and apparatuses for dynamic power control
US8069359B2 (en) * 2007-12-28 2011-11-29 Intel Corporation System and method to establish and dynamically control energy consumption in large-scale datacenters or IT infrastructures
KR101617377B1 (ko) * 2009-11-06 2016-05-02 삼성전자주식회사 동적 전압 주파수 스케일링 방법
US8839006B2 (en) 2010-05-28 2014-09-16 Nvidia Corporation Power consumption reduction systems and methods
US8484498B2 (en) * 2010-08-26 2013-07-09 Advanced Micro Devices Method and apparatus for demand-based control of processing node performance
CN102207769B (zh) * 2011-05-24 2013-09-04 东北大学 一种基于静态电压调度的dvs系统的能量优化方法
US8799693B2 (en) * 2011-09-20 2014-08-05 Qualcomm Incorporated Dynamic power optimization for computing devices
US9141166B2 (en) 2011-12-13 2015-09-22 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including dynamic control of energy consumption in power domains
JP5981020B2 (ja) 2012-04-24 2016-08-31 インテル コーポレイション 効率的な消費電力管理のための動的インタラプト再コンフィグレーション
US9568966B2 (en) 2012-08-31 2017-02-14 Dell Products L.P. Dynamic power budget allocation
US9110644B2 (en) 2012-09-14 2015-08-18 Intel Corporation Providing additional current capacity to a processor for a turbo mode
US20140089699A1 (en) * 2012-09-27 2014-03-27 Advanced Micro Devices Power management system and method for a processor
US20140181553A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Idle Phase Prediction For Integrated Circuits
US9235252B2 (en) 2012-12-21 2016-01-12 Intel Corporation Dynamic balancing of power across a plurality of processor domains according to power policy control bias
US9195285B2 (en) 2012-12-27 2015-11-24 Intel Corporation Techniques for platform duty cycling

Also Published As

Publication number Publication date
US9829902B2 (en) 2017-11-28
EP3237998B1 (en) 2024-02-14
JP2018503184A (ja) 2018-02-01
EP3237998A4 (en) 2018-09-19
US20160179117A1 (en) 2016-06-23
BR112017010418B1 (pt) 2022-12-06
CN107003686A (zh) 2017-08-01
WO2016105646A1 (en) 2016-06-30
CN107003686B (zh) 2019-04-30
EP3237998A1 (en) 2017-11-01
BR112017010418A2 (pt) 2017-12-26

Similar Documents

Publication Publication Date Title
JP6668355B2 (ja) 動的時間的電力ステアリングのためのシステム及び方法
US10521002B2 (en) Systems and methods for dynamic spatial power steering
Sarood et al. Maximizing throughput of overprovisioned hpc data centers under a strict power budget
TWI575370B (zh) 在多核心處理器中執行電源管理
US7730340B2 (en) Method and apparatus for dynamic voltage and frequency scaling
KR101629155B1 (ko) 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용
JP5564564B2 (ja) 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置
US8364997B2 (en) Virtual-CPU based frequency and voltage scaling
US20150046679A1 (en) Energy-Efficient Run-Time Offloading of Dynamically Generated Code in Heterogenuous Multiprocessor Systems
Gao et al. On exploiting dynamic execution patterns for workload offloading in mobile cloud applications
Ge et al. The case for cross-component power coordination on power bounded systems
KR20120066189A (ko) 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법
EP3295276B1 (en) Reducing power by vacating subsets of cpus and memory
Lin et al. ARM platform for performance and power efficiency—Hardware and software perspectives
Fargo et al. Autonomic performance-per-watt management (APM) of cloud resources and services
Choi et al. An Adaptive and Integrated Low‐Power Framework for Multicore Mobile Computing
Chien et al. A thermal-aware scheduling for multicore architectures
Salami et al. Physical-aware predictive dynamic thermal management of multi-core processors
KR101586712B1 (ko) 멀티 프로세서 시스템에서 태스크 의존성 그래프를 이용한 스케줄링 방법 및 장치
Islam et al. Learning based power management for periodic real-time tasks
Lee et al. Power-efficient Big. LITTLE core assignment scheme for task graph based real-time smartphone applications
Tsafack Chetsa et al. A three step blind approach for improving high performance computing systems' energy performance
Hu et al. G2LC: Resources autoscaling for real time bioinformatics applications in IaaS
Pelogeiko et al. On stochastic optimization for smartphone CPU energy consumption decrease
Sugiarto et al. Software-defined PMC for runtime power management of a many-core neuromorphic platform

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191008

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: 20200128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200226

R150 Certificate of patent or registration of utility model

Ref document number: 6668355

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