IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドの特許一覧 ▶ エーティーアイ・テクノロジーズ・ユーエルシーの特許一覧

特許7359698スループットベースのワークロードにおける電力効率の最適化
<>
  • 特許-スループットベースのワークロードにおける電力効率の最適化 図1
  • 特許-スループットベースのワークロードにおける電力効率の最適化 図2
  • 特許-スループットベースのワークロードにおける電力効率の最適化 図3
  • 特許-スループットベースのワークロードにおける電力効率の最適化 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-02
(45)【発行日】2023-10-11
(54)【発明の名称】スループットベースのワークロードにおける電力効率の最適化
(51)【国際特許分類】
   G06F 1/324 20190101AFI20231003BHJP
   G06F 1/3228 20190101ALI20231003BHJP
   G06F 9/30 20180101ALI20231003BHJP
   G06F 9/38 20180101ALI20231003BHJP
【FI】
G06F1/324
G06F1/3228
G06F9/30 330B
G06F9/38 370X
【請求項の数】 14
(21)【出願番号】P 2019569358
(86)(22)【出願日】2018-06-19
(65)【公表番号】
(43)【公表日】2020-08-13
(86)【国際出願番号】 US2018038179
(87)【国際公開番号】W WO2018236798
(87)【国際公開日】2018-12-27
【審査請求日】2021-06-11
(31)【優先権主張番号】62/522,073
(32)【優先日】2017-06-19
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/011,476
(32)【優先日】2018-06-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(73)【特許権者】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】レオナルド デ ポーラ ローザ ピガ
(72)【発明者】
【氏名】サミュエル ナフザイガー
(72)【発明者】
【氏名】イヴァン マトセビッチ
(72)【発明者】
【氏名】インドラニ ポール
【審査官】松浦 かおり
(56)【参考文献】
【文献】特開2015-082321(JP,A)
【文献】特開2014-186478(JP,A)
【文献】特開2014-164361(JP,A)
【文献】特開2009-110509(JP,A)
【文献】特開2014-186522(JP,A)
【文献】米国特許出願公開第2015/0169035(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/26-1/3296
G06F 9/30-9/38
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスの電力効率を最適化する方法であって、
前記コンピューティングデバイスによって、前記コンピューティングデバイス内の1つ以上の処理コアからの処理コアアクティビティデータに基づいて、前記1つ以上の処理コアの処理コアアクティビティ偏差データを決定することであって、前記処理コアアクティビティ偏差データは、アクティブな処理コアの実際の数とアクティブになる処理コアの予想数との間のアクティビティ偏差に基づいている、ことと、
前記処理コアアクティビティ偏差データが前記1つ以上の処理コアの均一なワークロードを示していることに応じて、前記コンピューティングデバイスによって、前記コンピューティングデバイス内の前記1つ以上の処理コアのうち少なくとも1つの処理コアの周波数を調整することと、を含む、
方法。
【請求項2】
前記調整することは、前記コンピューティングデバイスによって、前記1つ以上の処理コアのうち少なくとも1つの処理コアの周波数を低下させること含む、
請求項1の方法。
【請求項3】
前記処理コアアクティビティ偏差データを決定することは、前記1つ以上の処理コアの総数と、前記1つ以上の処理コアのうちアクティブな処理コアの処理コアアクティビティレベルと、に基づいている、
請求項1の方法。
【請求項4】
前のインターバルにおける処理コア内のアクティブサイクルの割合が閾値よりも高い場合に、前記処理コアがアクティブであると判別される、
請求項の方法。
【請求項5】
複数の処理コアと、
前記複数の処理コアに接続された処理コア周波数調整ロジックと、
を備えるシステムオンチップであって、
前記処理コア周波数調整ロジックは、
前記複数の処理コアからの処理コアアクティビティデータに基づいて、前記複数の処理コアの処理コアアクティビティ偏差データを決定することであって、前記処理コアアクティビティ偏差データは、アクティブな処理コアの実際の数とアクティブになる処理コアの予想数との間のアクティビティ偏差に基づいている、ことと、
前記処理コアアクティビティ偏差データが前記複数の処理コアの均一なワークロードを示していることに応じて、前記複数の処理コアのうち少なくとも1つの処理コアの周波数を調整することと、
を行うように構成されている、
システムオンチップ。
【請求項6】
前記処理コア周波数調整ロジックは、
記複数の処理コアのうち少なくとも1つの処理コアの周波数を低下させることによって、前記周波数を調整するように構成されている、
請求項5のシステムオンチップ。
【請求項7】
前記処理コア周波数調整ロジックは、
前記複数の処理コアの総数と、前記複数の処理コアのうちアクティブな処理コアの処理コアアクティビティレベルと、に基づいて、前記処理コアアクティビティ偏差データを決定するように構成されている、
請求項5のシステムオンチップ。
【請求項8】
前記アクティブな処理コアの実際の数は、前記複数の処理コアの処理コアアクティビティレベルに基づいて決定される
請求項のシステムオンチップ。
【請求項9】
前記アクティブになる処理コアの予想数は、前記複数の処理コアの数と、前記複数の処理コアの処理コアアクティビティレベルと、を考慮する二項分布に基づいて決定される
請求項8のシステムオンチップ。
【請求項10】
前のインターバルにおける処理コア内のアクティブサイクルの割合が閾値よりも高い場合に、前記処理コアがアクティブであると判別される、
請求項のシステムオンチップ。
【請求項11】
前記前のインターバルは、移動平均ウィンドウに基づいている、
請求項10のシステムオンチップ。
【請求項12】
複数の処理コアと、
前記複数の処理コアに接続された処理コア周波数調整ロジックと、
を備えるサーバであって、
前記処理コア周波数調整ロジックは、
前記複数の処理コアからの処理コアアクティビティデータに基づいて、前記複数の処理コアの処理コアアクティビティ偏差データを決定することであって、前記処理コアアクティビティ偏差データは、アクティブな処理コアの実際の数とアクティブになる処理コアの予想数との間のアクティビティ偏差に基づいている、ことと、
前記処理コアアクティビティ偏差データが前記複数の処理コアの均一なワークロードを示していることに応じて、前記複数の処理コアのうち少なくとも1つの処理コアの周波数を調整することと、
を行うように構成されている、
サーバ。
【請求項13】
前記処理コア周波数調整ロジックは、
前記複数の処理コアのうち少なくとも1つの処理コアの周波数を低下させることによって、前記周波数を調整するように構成されている、
請求項12のサーバ。
【請求項14】
前記処理コア周波数調整ロジックは、前記複数の処理コアの総数と、前記複数の処理コアのうちアクティブな処理コアの処理コアアクティビティレベルと、に基づいて、前記処理コアアクティビティ偏差データを決定するように構成されている、
請求項13のサーバ。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、Leonardo De Paula Rosa Piga等が発明者であり「POWER EFFICIENCY OF OPTIMIZATION IN THROUGHPUT-BASED WORKLOADS」という名称の2017年6月19日に出願された仮出願第62/522,073号の優先権を主張し、引用することによって本明細書に援用される。
【背景技術】
【0002】
多くのサーバのワークロードは、様々な負荷分散技術を使用して、一定の作業量で安定した均一な負荷動作を示す。これらのワークロードは、通常、レイテンシクリティカルではなく、データ依存のスレッドもない。つまり、個々の要求を処理する時間は、平均スループットが一定に保たれている限り重要ではない。システムオンチップ(SoC)の電力管理アルゴリズムは、これらのスループットベースのワークロードを識別して、パフォーマンスを低下させることなくアイドル時間を最小化するために周波数を下げ、これにより最適な電力効率を実現する必要がある。既存の電力管理アルゴリズムは、個々の命令プロセッサ(例えば、シングルプロセッサ等)の動作を調べるか、SoCとワークロードとの間の相互作用をモデル化するためのアドホックなソリューションを含んでいるため、スループット及びレイテンシクリティカルなワークロードを区別できず、結果として最適とは言えない動作ポイントになっている。
【0003】
例えば、ローカルな最適化アルゴリズムの集合が、特定のサービス品質(QoS)をターゲットとするグローバルに最適な動作状態を達成する可能性は低い。それどころか、このソリューションでは、パフォーマンス及び電力効率の低下につながるであろう。したがって、SoCが益々複雑になるにつれて、SoCとワークロードとの相互作用を理解し、グローバルなQoS目標に向けた最適化を行いながら、スケーラブルな方法で電力を管理することが重要になっている。
【0004】
本開示は、以下の図面が添付された場合に、以下の説明を考慮してより容易に理解されるであろう。ここで、同様の符号は同様の要素を表す。
【図面の簡単な説明】
【0005】
図1】本開示で説明する一例による、1つ以上の処理コアの周波数を調整することができる処理コア周波数調整ロジックを含む、例えばサーバ等の例示的なコンピューティングデバイスを示す機能ブロック図である。
図2】本開示で説明する一例による、図1の処理コア周波数調整ロジックのより詳細な機能ブロック図である。
図3】本開示で説明する一例による、単一の処理コアのCPUアクティビティのプロットを示す図である。
図4】本開示で説明する一例による、ワークロードの実行に対するQoSを測定するための例示的な方法のフローチャートである。
【発明を実施するための形態】
【0006】
簡潔に言えば、方法及び装置は、スループットベースのワークロードにおける電力効率の最適化を提供する。一例では、コンピューティングデバイスの電力効率を最適化する方法が説明されている。コンピューティングデバイスは、例えばサーバであってもよい。コンピューティングデバイスは、処理コアからの処理コアアクティビティデータに基づいて、コンピューティングデバイス内の処理コア(例えば、CPU、GPU等)の処理コアアクティビティ偏差データ(processing core activity deviation data)を決定する。コンピューティングデバイスは、処理コアアクティビティ偏差データに基づいて、コンピューティングデバイス内の少なくとも1つの処理コアの周波数を調整する。
【0007】
コンピューティングデバイスは、処理コアアクティビティ偏差データが処理コアの均一なワークロードを示すかどうかを判別する。処理コアアクティビティ偏差データが処理コアの均一なワークロードを示していると判別したことに応じて、コンピューティングデバイスは、少なくとも1つの処理コアの周波数を低下させる。
【0008】
処理コアアクティビティ偏差データを決定する際に、コンピューティングデバイスは、アクティブな処理コアの数と、アクティブになる処理コアの予想数と、を決定する。次に、コンピューティングデバイスは、アクティブな処理コアの数と、アクティブになる処理コアの予想数との間のアクティビティ偏差を決定する。
【0009】
アクティブな処理コアの数の決定は、処理コアの処理コアアクティビティレベルに基づいている。アクティブになる処理コアの予想数の決定は、処理コアの数と処理コアの処理コアアクティビティレベルとを考慮した二項分布に基づいている。前のインターバル(移動平均ウィンドウに基づいている)における処理コアのアクティブサイクルの割合が閾値よりも高い場合、処理コアはアクティブであると判別される。処理コアアクティビティ偏差データを決定する場合、コンピューティングデバイスは、処理コアの現在のQoSがターゲットQoSからどの程度偏差しているかを決定する。
【0010】
一例では、システムオンチップ又はSoCは、複数の処理コアと、複数の処理コアに接続された処理コア周波数調整ロジックと、を含む。処理コア周波数調整ロジックは、複数の処理コアからの処理コアアクティビティデータに基づいて、複数の処理コアの処理コアアクティビティ偏差データを決定し、決定された処理コアアクティビティ偏差データに基づいて、複数の処理コアのうち少なくとも1つ処理コアの周波数を調整する。
【0011】
別の例では、サーバは、複数の処理コアと、ネットワークインタフェースと、複数の処理コアとネットワークインタフェースとに接続された処理コア周波数調整ロジックと、を含む。処理コア周波数調整ロジックは、複数の処理コアからの処理コアアクティビティデータに基づいて、複数の処理コアの処理コアアクティビティ偏差データを決定し、決定された処理コアアクティビティ偏差データに基づいて、複数の処理コアのうち少なくとも1つの処理コアの周波数を調整する。
【0012】
本開示は、1)スループットベースのワークロードのQoSメトリック、2)スループットとレイテンシセンシティブなワークロードとを区別するためのヒューリスティック、及び、3)ヒューリスティックとQoSメトリックとを組み合わせて、アイドル時間を最小限に抑え、パフォーマンスを低下させることなく電力効率を向上させるためのターゲット周波数を決定するアルゴリズム、を提案する電力管理アルゴリズムフレームワークについて説明する。
【0013】
本開示は、サーバクラスのスループットベースのワークロードにおける電力効率の最適化を可能にする管理アルゴリズムフレームワークを提供すると同時に、レイテンシセンシティブなワークロードに対して所望のパフォーマンスを提供する。本開示の目的は、パフォーマンスに重大な悪影響を与えることなく、1つ以上の処理コアを低周波数(したがって、低電力)で実行できるワークロードを識別することにより、電力の節約を実現することである。この開示は、この種の技術を実際に実行可能にするために、少なくとも2つの問題(すなわち、1)パフォーマンスの周波数感度が低いワークロードをどのように識別するか、2)パフォーマンスが過度に低下する前に、周波数をどの程度安全に下げることができるか)に対処している。
【0014】
本開示は、特に、1)各スレッドが、スレッドがレイテンシクリティカルであるデータ依存スレッドを有するワークロードから固定量の作業を行う、独立したスレッドを有する均一で安定したクラスのワークロードを区別し、及び、2)スループット指向のワークロードのアイドル時間を減らして電力効率を最適化する、ためのソリューションを提供する。
【0015】
例えば、特定のQoSアルゴリズムは、特定の「ターゲット中央処理装置(CPU)アイドル率」(0%~100%)をパラメータとして取得し、CPU周波数を変調してそのQoSターゲットを達成する。CPUのアイドル状態(idleness)が閾値よりも高い場合、周波数が低くなり、その逆も同様である。スループットベースの負荷の場合、システムは、アイドル時間によって提供される全てのスラックを使用して、アイドル状態を0に低減することが望ましい。但し、実際には、システムは、ワークロードの動作のばらつきと、電源状態の変化の粒度と、を考慮する必要があるため、これは不可能である。したがって、ターゲットとなる実際のアイドル時間は、省電力とパフォーマンス低下との間のトレードオフのために最適化されるように、調整可能な構成パラメータとして残される。
【0016】
システムのアイドル状態のQoSメトリックは、次の式を使用して計算できる。
【数1】

ここで、Nは、システム内の処理コアの総数であり、idle cycles of Core iは、i番目のコアの非C0(すなわち、CC1サイクル及びCC6サイクル)の合計であり、total cyclesは、同期管理ユニット(SMU)のサンプル時間(1ms)中の現在のCPU周波数でのCPUサイクル(アクティブ及びアイドルの両方)の総数である。
【0017】
このアルゴリズムでは、アプリケーションの動作についていくつかの仮定を行っている。
【0018】
1)ワークロードは、純粋にスループットベースであり、個々の要求の処理レイテンシは、平均スループットが一定に保たれている限り、パフォーマンスにとって重要ではない。したがって、アクティブCPU時間とアイドルCPU時間とが交互に繰り返されるが、アクティブ期間がレイテンシクリティカルであるワークロードでは、QoSアルゴリズムはオンにならない。例えば、アイドル期間が入出力(I/O)の待機に費やされ、計算動作とI/O動作との間にデータ依存関係がある場合である。
【0019】
2)アルゴリズムは、必ずしもコア毎に個別の制御を提案しているわけではない。むしろ、全ての処理コアに同じ周波数が適している均一な負荷を想定している。これは、通常、負荷分散を特徴とするサーバのワークロードの現実的な想定である。但し、このアルゴリズムは、例えば、スレッドの少ないクライアントワークロードではオンにすべきではなく、結果として、単一スレッドのパフォーマンスが低下する。
【0020】
3)負荷レベルは、QoSアルゴリズムのフィードバック応答時間に対してゆっくり変化する程十分に安定している。例えば、周波数が、大幅に低い負荷で低アイドル時間をターゲットとして設定されている間に負荷が突然増加した場合、システムのパフォーマンスは、フィードバック応答を受信するまで低下する。
【0021】
QoSアルゴリズムは、適切に機能するために特定の条件を必要とし、これらの条件が満たされていないアプリケーションでオンにされるとパフォーマンスが低下するリスクが生じるため、オンにするタイミングについて保守的なヒューリスティックが必要である。
【0022】
レイテンシセンシティブなワークロードのスループットを区別するためのコアアクティビティ分散ヒューリスティック
【0023】
スループットベースの均一で安定した負荷についてのさらなる観察は、特定の瞬間におけるアクティブな処理コアの数の分布が二項分布に密接に従うことである。アクティブなコアの数は、直前の短いインターバルでアクティブなサイクルの割合が高い閾値(例えば、90%)を超えるものとして定義される。これは、このような負荷では、次の特性が観察されるためである。
【0024】
1)負荷が時間的に安定しているため、単一の処理コアが異なる時間T1,T2でアクティブになる確率は、ほぼ等しくなる。例えば、負荷が60%の場合、所定のコアは約60%の時間アクティブになる。
【0025】
2)負荷は均一でバランスがとれているため、全ての処理コアで確率が同じである。
【0026】
3)所定の時点でアクティブな2つの処理コアの確率は修正されない。
【0027】
したがって、次の式に示すように、所定の時点でN個の処理コアが観測される場合、アクティブな処理コアの予想数は、N回の試行と、アクティビティレベルに等しい確率Aとによる二項分布で与えられる。
【数2】
【0028】
例えば、アクティビティレベルが60%で、ワークロードが4つの処理コアで実行されている場合、
【数3】

すなわち、約34.6%に等しい時間の一部で正確に3つの処理コアがアクティブになると予想される。
【0029】
アクティブな処理コアの数の実際の分布を測定し、理論上の二項分布と比較することにより(Nが処理コアの数であり、Aが測定時間インターバルにおいて測定された平均アクティビティレベルである場合)、アイドル状態のQoSのターゲットとなるタイプからアプリケーションがどの程度偏差しているかを推定することができる。具体的には、この測定は、次をキャプチャする。
【0030】
1)特定の処理コアに偏った分布を生じさせる、安定し均一でバランスのとれた負荷からの偏差。
【0031】
2)個々の作業単位が修正されない純粋なスループットベースの負荷からの偏差。
【0032】
ワークロードが安定し均一であることのみを測定することに関して価値を付加するのは、特性2)である。例えば、CPUに完全にバインドされた単一スレッドを伴うワークロードがCPUアフィニティなしで実行され、その結果、ラウンドロビン方式でN個の処理コアに亘ってスケジュールされる場合を考える。このワークロードは、安定して均一に見え、各処理コアは、1/Nの時間アクティブになる。但し、アイドル状態のQoSを有効にすると、スループットベースではなく、CPUで実行される各タイムスライスが以前のタイムスライスに依存するため、パフォーマンスが低下する。
【0033】
このケースは、2項分布ヒューリスティックによって正常に識別される。これは、正確に1つの処理コアが100%の時間アクティブであること(A=1/Nによる2項分布ではなく)が分布により示されるためである。これは簡単な例であるが、CPU周波数を下げるとクリティカルパスが拡張してパフォーマンスが低下するような、一連の依存する計算を提示する任意の種類のワークロードでは、個々の処理コアがアクティブな時間が相関しているため、分布が二項分布から偏差することを、同様の推論が示している。
【0034】
QoSオン/オフアルゴリズム
【0035】
パフォーマンスの低下を回避するには、前のセクションで説明した特性を持つワークロードに対してのみアルゴリズムをオンにする必要がある。このアプローチは、均一な(負荷分散)スループットベースのアプリケーションで観察される特定の規則性が、他のアプリケーションタイプでは観察されないという仮定に基づいている。具体的には、アルゴリズムは、次の条件が観察されるとQoSをオンにする。
【0036】
1)各処理コアには、数十秒のスケールで一定期間、安定した平均負荷がかかる。
【0037】
2)全ての処理コアは、ほぼ同じ平均負荷でビジー状態になる。
【0038】
3)処理コアアクティビティの分布は、二項分布に近似している。
【0039】
安定した負荷レベルに必要な長い時間スケールは、より短い時間スケールでは、実際には多くの変動が観察されるからである。例えば、サーバの電力とパフォーマンスの特性とを測定するベンチマークプログラム(例えば、SPEC(Standard Performance Evaluation Corporation)が提供するSpecPower(登録商標)ベンチマーク等)からのアクティビティ図を検討する。アクティブなインターバルの長さが数ミリ秒から数百ミリ秒の間で変動するため、僅か1~2秒のインターバルであっても、アクティブな時間とアイドル時間との比較に含まれるランダムな変動が依然として大きくなる可能性がある。
【0040】
これにより、数分のスケールで安定した負荷レベルを示すワークロードに対してこの技術が効果的になる。これは、数分間の安定したスロットル負荷レベルを測定し、測定開始前に所定のレベルの各々で長いウォームアップインターバルを備えていることが特徴である、典型的なサーバベンチマーク(SPECが提供するSpecPower(登録商標)又はSERT(商標)ベンチマーク等)に当てはまる。
【0041】
安定した平均負荷を検出するには、アクティビティの移動平均を使用できるが、サンプリングの時間分解能(1ms)を考慮すると、大量のメモリが必要になる。したがって、代わりに1秒のスケールでの通常の平均の計算を使用でき、これらの移動平均ウィンドウを使用することができる。基本的な平均インターバルのサイズ(1秒)、移動平均ウィンドウ(数十秒)、安定したワークロードの時間閾値(数十秒)、及び、許容される変動(単一の処理コア内、処理コア間、及び、二項分布からの発散)は、全て調整可能なパラメータである。同様に、これらの条件が適用されなくなり、処理コア内及び処理コア間の負荷変動(同じ方法で計算)が所定の閾値を超える場合、アルゴリズムが使用されない。
【0042】
図面を参照すると、本開示のコンピューティングデバイス102の一例が図1に示されている。コンピューティングデバイス102は、例えば、サーバ、又は、任意の他の適切なデバイスであってもよい。コンピューティングデバイス102は、データセンタの一部、又は、クラウドベース(例えば、クラウドコンピューティング)システム等の分散システムの一部であってもよい。
【0043】
図1に示すように、コンピューティングデバイス102は、処理コア周波数調整ロジック104を含む。また、コンピューティングデバイス102は、上述したアルゴリズムに関連するパラメータ等のパラメータを記憶するのに使用可能なRAM、ROM又は他の適切なメモリ等のメモリ106を含む。メモリ106は、以下にさらに説明するように、処理コア周波数調整ロジック104によってアクセス及び実行される実行可能命令を記憶することもできる。
【0044】
コンピューティングデバイス102は、処理コア1 122と、処理コア2 126と、処理コア3 124と、処理コアN 128と、を含む。当業者によって認識されるように、処理コアの数は異なっていてもよい。処理コア122,124,126,128は、例えば、CPU、加速処理ユニット(APU)又はグラフィックス処理ユニット(GPU)に関連付けられた処理コアとすることができる。また、処理コア122,124,126,128は、SoC 112の一部であってもよい。他の例では、SoC 112は、異種SoC、APU、dGPU、CPU、又は、セミカスタムSoCであってもよい。さらに、図示されていないが、コンピューティングデバイス102は、追加の処理コアを備えた追加のSoCを含むことができる。
【0045】
コンピューティングデバイス102は、例えば、ディスプレイ、キーパッド、キーボード、又は、他の適切なI/Oデバイス等を含むことができるI/Oデバイス108を含む。また、コンピューティングデバイス102は、1つ以上のネットワークと通信するための1つ以上のネットワークインタフェース110を含む。例えば、ネットワークインタフェース110は、例えば、複数のデバイス(例えば、イーサネット(登録商標)、WiFi(登録商標)、WAN、インターネット)間の通信を可能にする任意の適切なネットワークとの通信をサポートすることができる。
【0046】
図1に示すように、処理コア周波数調整ロジック104、処理コア122,124,126,128、メモリ106、I/Oデバイス108及びネットワークインタフェース110の各々は、バス114に接続されている。バス114は、デバイスが互いに通信するのを可能にする有線又は無線バス等の任意の適切なバスであってもよい。
【0047】
いくつかの実施形態では、コンピューティングデバイス102の機能の一部又は全ては、例えば、ソフトウェアドライバ、ファームウェア、又は、メモリに記憶された他の適切な実行可能コードを実行することができる任意の適切なプロセッサによって実行されてもよい。例えば、処理コア周波数調整ロジック104の機能の一部又は全ては、任意の適切な処理コアによって実行されてもよい。一例では、処理コア周波数調整ロジック104は、メモリ106から実行可能な命令を読み出して実行する。いくつかの実施形態では、処理コア周波数調整ロジック104は、CPU、APU、GPU、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、1つ以上の状態機械として又は任意の適切なロジック及び/若しくはハードウェアとソフトウェアとの適切な組み合わせとしてのマイクロコントローラ、又は、任意の他の適切な命令処理デバイスであってもよい。
【0048】
処理コア周波数調整ロジック104を備えたコンピューティングデバイス102は、例えば、図2に関して以下に説明するように、1つ以上の処理コア122,124,126,128の周波数を調整する。一例では、処理コア周波数調整ロジック104を備えたコンピューティングデバイス102は、追加的又は代替的に、例えばリモートサーバ等の別のコンピューティングデバイスに関連する処理コアの周波数を調整することができる。例えば、コンピューティングデバイス102は、1つ以上のネットワークを介してリモートサーバと通信することができる。
【0049】
図2は、図1の処理コア周波数調整ロジック104のより詳細な機能ブロック図である。図2に示すように、処理コア周波数調整ロジック104は、処理コアアクティビティ決定ロジック202と、処理コアワークロード感度決定ロジック204と、処理コア周波数決定ロジック206と、を含む。
【0050】
処理コアアクティビティ決定ロジック202は、例えば、図1の処理コア122,124,126,128等の1つ以上の処理コアから処理コアアクティビティデータ212を取得(例えば、受信)する。処理コアアクティビティデータ212は、特定の処理コアがアクティブ(例えば、ワークロードを実行している)であるかアイドルであるかを示すデータを含むことができる。処理コアアクティビティ決定ロジック202は、処理コアアクティビティデータ212に基づいて、処理コアの処理コアアクティビティレベルを決定する。処理コアのアクティビティレベルは、例えば、一定期間のプロセッサアクティビティの割合を示す。一例では、処理コアアクティビティ決定ロジック202は、上記の式1を含むアルゴリズムを実行する。処理コアアクティビティ決定ロジック202は、処理コアアクティビティレベルを処理コアアクティビティレベルデータ210として処理コアワークロード感度決定ロジック204に提供する。
【0051】
処理コアワークロード感度決定ロジック204は、1つ以上の処理コアの現在のQoSがターゲットQoSからどれだけ偏差しているかを決定する。例えば、処理コアワークロード感度決定ロジック204は、処理コアアクティビティレベルデータ210に基づいて、アクティブな処理コアの数を決定する。例えば、処理コアワークロード感度決定ロジック204は、先行する短いインターバルのアクティブサイクルの割合が高い閾値(例えば、90%)を超える場合、処理コアがアクティブであると決定することができる。処理コアワークロード感度決定ロジック204は、例えば、上記の式2を含むアルゴリズムの実行に基づいて、アクティブなコアの予想数も決定する。次に、処理コアワークロード感度決定ロジック204は、例えば上記のように、アクティブな処理コアの数とアクティブになる処理コアの予想数との間のアクティビティ偏差を決定し、アクティビティ偏差を、処理コアアクティビティ偏差データ208として処理コア周波数決定ロジック206に提供する。
【0052】
次に、処理コア周波数決定ロジック206は、処理コアアクティビティ偏差データ208に基づいて、1つ以上の処理コアの周波数を調整する。例えば、処理コア周波数決定ロジック206は、図1の処理コア122,124,126,128のうち1つ以上の処理コアの周波数を、処理コア周波数調整データ214を介して調整(例えば、増加又は減少)することができる。
【0053】
本明細書で開示される例示的なアルゴリズムの動作を説明するために、図3では、ワークロードが50%の負荷レベルであるベンチマークプログラム(SPECが提供するSpecPower(登録商標)ベンチマーク等)を実行しているシステムにおける単一コアのCPUアクティビティのプロットを示している。図3では、分かり易くするために1つの処理コアのみを示しているが、負荷は均一であり、他の処理コアでも同様に見え得る。図3の各点は、2秒間の合計期間において、1ミリ秒のサンプルにおけるアクティブ(つまり、C0)サイクルの割合をプロットしたものを示している。図3から、このワークロードは、要求が処理されている間、CPUを完全にビジー状態に保っており、これにより、C0アクティビティが100%の期間とアイドル期間とが交互に現れていることが明らかである。この場合、時間の約50%がアイドル状態であり、ベンチマークにおけるこのフェーズの負荷レベルを反映している。ベンチマークプログラム(SPECが提供するSpecPower(登録商標)ベンチマーク等)は、システムの最大スループットを測定することによって負荷を制御し、さらに、負荷に応じて消費電力がどのように増減するかを測定するために、要求の割合を0%から100%の間で調整する。
【0054】
このようなスループットベースの負荷の場合には、処理コアの使用率が100%を大幅に下回るので、同じスループットを維持しながら処理コアの速度を低下させることができ、これにより、アイドル時間の割合を下げることができる。これが、アイドル時間QoSアルゴリズムの基礎である。
【0055】
図4は、本開示で説明する一例による、ワークロードを実行するためのQoSを測定する例示的な方法のフローチャート400を提供する。図4に示す方法、及び、本明細書で説明する例示的な方法の各々は、コンピューティングデバイス102によって実行されてもよい。したがって、方法は、ハードウェアによって実行されてもよいし、ハードウェアとハードウェアが実行するソフトウェアとの組み合わせによって実行されてもよい。適切なハードウェアには、1つ以上のGPU、CPU、APU、ASIC、状態機械、FPGA、デジタル信号プロセッサ(DSP)、又は、他の適切なハードウェアが含まれてもよい。方法は、(例えば、図4において)図示したフローチャートを参照して説明されているが、この方法に関連する動作を実行する他の多くの方法を使用することができることが理解されるであろう。例えば、一部の動作の順序は変更されてもよいし、説明する一部の動作はオプションであってもよい。また、方法は、例示的なコンピューティングデバイス102を参照して説明することができるが、他の装置によっても実施することができ、コンピューティングデバイス102は他の方法を実施することができることが理解されよう。
【0056】
図4に示すように、ブロック402において、基本入出力システム(BIOS)設定は、QoSが有効であるか否かを判別する。QoSが有効である場合、ブロック408において、ワークロード検出ループが開始される。この方法は、ブロック406から開始タイミングパラメータを取得することを含む。そうでない場合、この機能は、ブロック404において無効化される。ブロック410においてワークロードが検出されると、方法は、ブロック412に進み、そこでQoSループが開始される。ブロック414において、QoSループが実行され、実行中のワークロードのQoSが測定される。この方法は、ブロック416から、アイドル時間ターゲットパラメータを取得することを含む。ブロック418において、ワークロードが終了したか否かについての判別が行われる。この方法は、ブロック420から、終了タイミングパラメータを取得することも含む。ワークロードが終了した場合、方法は、ブロック410に戻る。そうでない場合、QoSループは、ブロック414における実行を継続する。ブロック414において、この方法は、電力状態制限信号を提供して、電力状態の変更を1つ以上の処理コアに提供する。一例では、開始タイミングパラメータ、アイドル時間ターゲットパラメータ及び終了タイミングパラメータのうち1つ以上が、図1のメモリ106等のメモリから取得される。
【0057】
上記の詳細な説明及びそこに記載されている例は、例示及び説明のみを目的として提示されたものであり、限定することを目的とするものではない。例えば、説明した動作を、任意の適切な方法で行うことができる。したがって、本実施形態は、上記で開示され、本明細書で請求される基本的な基礎原理の範囲に含まれるあらゆる変更、変形又は均等物を包含することを意図している。さらに、上記の説明では、コードを実行するプロセッサの形態でのハードウェア、状態機械の形態でのハードウェア、又は、同様の効果を奏する専用ロジックの形態のハードウェアについて説明しているが、他の構造も考えられる。
図1
図2
図3
図4