JP6817453B2 - 適応電力制御ループ - Google Patents

適応電力制御ループ Download PDF

Info

Publication number
JP6817453B2
JP6817453B2 JP2019540544A JP2019540544A JP6817453B2 JP 6817453 B2 JP6817453 B2 JP 6817453B2 JP 2019540544 A JP2019540544 A JP 2019540544A JP 2019540544 A JP2019540544 A JP 2019540544A JP 6817453 B2 JP6817453 B2 JP 6817453B2
Authority
JP
Japan
Prior art keywords
gpu
performance
power
measurement cycle
adjusting
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
JP2019540544A
Other languages
English (en)
Other versions
JP2020505703A5 (ja
JP2020505703A (ja
Inventor
ギュ クオン スン
ギュ クオン スン
ファン ジュン
ファン ジュン
ペゼシュギー シャリアル
ペゼシュギー シャリアル
サビーノ デュエニャス アレクサンダー
サビーノ デュエニャス アレクサンダー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2020505703A publication Critical patent/JP2020505703A/ja
Publication of JP2020505703A5 publication Critical patent/JP2020505703A5/ja
Application granted granted Critical
Publication of JP6817453B2 publication Critical patent/JP6817453B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3218Monitoring of peripheral devices of display devices
    • 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/325Power saving in peripheral device
    • G06F1/3265Power saving in display device
    • 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)
  • Power Sources (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

本開示は、概して、電力管理に関し、より詳細には、グラフィックス処理ユニット(GPU)における電力管理に関する。
プロセッサは、消費電力を最適化することが望ましい環境においてますます使用されている。例えば、プロセッサは、バッテリ寿命を延ばすために消費電力を最小限に抑えることが望まれるコンピューティング対応スマートフォン、ラップトップコンピュータ、ポータブルゲーミングデバイス等の重要なコンポーネントである。プロセッサのグラフィック機能を高めるためにグラフィックス処理ユニット(GPU)を組み込むこともプロセッサにとっては一般的である。GPUは、電子デバイスが複雑なグラフィックスを比較的高速で表示することを可能にし、これにより、ユーザエクスペリエンスを向上させる。しかしながら、GPUは、プロセッサの消費電力を増大させる場合がある。
添付図面を参照することによって本開示をより良く理解することができ、その多くの特徴及び利点が当業者に明らかになるであろう。異なる図面で同じ符号を使用している場合には、類似又は同一のアイテムを示している。
いくつかの実施形態による、適応電力制御を用いる処理システムのブロック図である。 いくつかの実施形態による、図1の処理システムにおいて動的電力レベル管理を行うための電力制御ループを示すブロック図である。 いくつかの実施形態による、図1の電力制御ループによって利用される様々な電力レベル調整係数を示す図である。 いくつかの実施形態による、適応電力制御を実行する方法のフロー図である。
図1〜4は、GPUが現在処理している特定のワークロードに応じてクロック及び電圧レベルを変更するように電力管理設定の調整を可能にすることによって、処理システムのGPUにおける動的電力レベルを管理する技術を示している。各測定サイクルにおいて、GPUドライバは、測定されたハードウェアパフォーマンスメトリクス(例えば、前のサイクルで累積した平均利用、平均温度及び平均電力)と、現在のコンピューティング環境を表すデータ(例えば、システムによって要求されたワークロードのタイプ、パフォーマンス(例えば、フレーム毎秒(FPS)、スループット又は単位時間毎の送信等)測定)との両方からの入力を取得して、次のサイクルで使用される電力レベル設定(すなわち、クロック周波数又は動作電圧等のGPUの動作を管理する動作パラメータ)を計算する。いくつかの実施形態では、計算された設定は、クロックが周波数を変更可能なレート(アップヒステリシス/ダウンヒステリシス)、クロック周波数を変更するためのアクティビティ閾値等を含むことができる。
いくつかの実施形態では、動的電力レベル管理は、いくつかの連続する測定サイクルの間、処理システムにおいて処理中のワークロードに対応する第1パフォーマンスメトリクスを識別することを含む。いくつかの連続する定サイクルは、現在の測定サイクルと、少なくとも1つの前の測定サイクルと、を含む。連続する測定サイクルの数が最小ヒステリシス数を超えるという判別に基づいて、推定された最適化が、将来の測定サイクルのためにGPUに適用されるように決定される。将来の測定サイクルに関するGPUにおける電力レベル設定は、推定された最適化に基づいて調整される。例えば、異なる処理ワークロード及びハードウェア構成等を含むパフォーマンスメトリクスを考慮することによって、GPUは、電力設定を、現在処理中の特定のワークロードに対して動的に適応させることができる。
本明細書で開示される技術とは対照的に、従来のプロセッサは、事前に定義されたメトリクス及び閾値を用いて、静的な設定に基づいてGPUの電力設定を変更することができる。しかしながら、このような従来の技術は、異なる動作環境(例えば、オペレーティングシステムの違い、周辺温度、異なるアプリケーションに関する様々なワークロード及び/又はランタイム中に発生するユースケース、異なるハードウェア構成等)を考慮していない。実行時のハードウェアパフォーマンスや特定の処理ワークロードの識別等の入力を含むメトリクスの考慮を可能にすることによって、本明細書で開示される技術は、GPUが、電力レベル設定を調整して、省電力及びパフォーマンスの向上の両方をより最適化することができる。
本明細書で使用される「処理ワークロード」という用語は、GPUが所定の時間間隔で行った作業のタイプ及び量を指し、GPUが所定の時間内に多くの作業を行うと、処理ワークロードが増大する。いくつかの実施形態では、処理ワークロードは、少なくとも2つのコンポーネント(すなわち、現在の処理ワークロードと、予測される将来の処理ワークロードと)を含む。現在の処理ワークロードは、現在の処理ワークロードが測定されたときにGPUが現在経験している処理ワークロード、又は、GPUが比較的近い過去に経験した処理ワークロードを指す。いくつかの実施形態では、現在の処理ワークロードは、GPUの1つ以上の個々のモジュールにおけるアクティビティの量(例えば、GPUのプロセッサコアにおいて所定時間に亘ってアクティブなコンピュートユニットと、アイドルなコンピュートユニットとの割合)に基づいて識別される。予測される将来の処理ワークロードは、GPUが比較的近い将来に経験することが予測される処理ワークロードを指す。いくつかの実施形態では、予測される将来の処理ワークロードは、GPUにおいて実行するようにスケジューリングされたいくつかのスレッドに基づいて識別される。
図1は、いくつかの実施形態による、処理システム100のブロック図である。処理システムは、中央処理装置(CPU)104における1つ以上の汎用プロセッサコア(図示省略)等の他のシステムコンポーネントに接続されたグラフィックス処理ユニット(GPU)102と、コンピュータ可読記憶媒体106又は図に示されていない1つ以上の他のモジュール(例えば、キャッシュを形成するように構成されたメモリモジュールやインタフェースモジュール(例えば、ノースブリッジ又はサウスブリッジ)等)と、を含む。例えば、様々な実施形態では、GPU102は、フレームバッファとして動作するランダムアクセスメモリ(RAM)等のGPUメモリ(図示省略)に接続されている。GPU102は、コンピュータ、サーバ、コンピュータ対応携帯電話、ゲームコンソール等の様々な電子デバイスの何れかの一部であってもよい。概して、コンピュータ可読記憶媒体106は、処理システム100に命令及び/又はデータを提供するために使用中に処理システム100によってアクセス可能な任意の記憶媒体を含む。
コンピュータ可読記憶媒体106は、オペレーティングシステム(OS)108と、GPUドライバ110と、GPUファームウェア112と、を記憶する。オペレーティングシステム108、GPUドライバ110及びGPUファームウェア112の各々は、処理システム100において実行されると、本明細書で説明する動作を実施する命令を含む。一実施形態において、OS108及びGPUドライバ110は、CPU104において実行され、GPUファームウェアは、GPU102において(例えば、GPU102の1つ以上のプロセッサコア(図示省略)において)実行される。他の実施形態では、OS108は、CPU104において実行され、GPUドライバ110及びGPUファームウェア112は、GPU102において(例えば、GPU102の1つ以上のプロセッサコア(図示省略)において)実行される。しかしながら、当業者は、様々な実施形態において、オペレーティングシステム108、GPUドライバ110及びGPUファームウェア112の何れかが、本発明の範囲から逸脱することなく、処理システム100の他の場所で実施されることを認識するであろう。いくつかの実施形態では、GPUドライバ110は、GPU102が処理システム100内の他のコンポーネント又はモジュールと相互作用する方法を制御するソフトウェアモジュールである。特に、GPUドライバ110は、GPU102と、オペレーティングシステム108及び/又はGPU102を含むデバイス(例えば、処理システム100)のハードウェアと、の間のインタフェースを提供する。
GPU102は、グラフィックスワークロードの処理をサポートするために、グラフィックスパイプライン114と、スケジューラ116と、GPUパフォーマンスモジュール118と、電力及びクロックコントローラモジュール120と、を含む。図示した例では、グラフィックスパイプライン114は、概して、命令のスレッドを実行して、グラフィックスワークロードの処理等のタスクを含むグラフィックス関連タスクを実行するように構成されている。少なくとも1つの実施形態において、GPUドライバ110は、グラフィックスワークロードを、処理するためにグラフィックスパイプライン114に供給する。グラフィックスワークロード(図示省略)は、実行されると、GPU102が表示用の1つ以上のオブジェクトを生成するグラフィックス命令のセットである。例えば、グラフィックスワークロードは、ビデオ又は静的なグラフィックスのフレーム又はフレームの一部をレンダリングするための命令のスレッドであってもよい。
スレッドの実行を容易にするために、グラフィックスパイプライン114は、コンピュートユニット(CU)122を含む。いくつかの実施形態では、グラフィックスパイプライン114は、図1に具体的に示されていない追加のモジュール(例えば、バッファ、メモリデバイス(例えば、キャッシュ又はスクラッチメモリとして使用されるメモリ)、GPU102の他のモジュールとの通信を容易にするためのインタフェースデバイス等)を含むことができる。CU122の各々(例えば、CU122(1),122(2))は、概して、GPU102に代わってパイプライン方式で命令を実行するように構成されている。さらに、CU122の各々は、図1に具体的に示されていない追加のモジュール(例えば、CUに代わって命令をフェッチ及びデコードするためのフェッチ及びデコードロジック、命令を実行するためのデータを記憶するためのレジスタファイル、キャッシュメモリ等)を含むことができる。
スケジューラ116は、GPU102においてスレッドを実行するための要求を受信し、グラフィックスパイプライン114において実行するためにこれらのスレッドをスケジューリングする。いくつかの実施形態では、要求は、CPU104内のプロセッサコアから受信される。スケジューラ116は、スレッドを実行するために1つ以上のCU122が利用可能になるまで、受信した要求の各々をバッファする。1つ以上のCU122がスレッドを実行するのに利用可能になると、スケジューラ116は、例えば、スレッドの最初の命令のアドレスを1つ以上のCU(例えば、CU122(1))のフェッチステージに提供することによって、スレッドの実行を開始する。
GPUパフォーマンスモジュール118は、グラフィックスパイプライン114及びスケジューラ116におけるパフォーマンス特性を監視して、GPU102における処理ワークロードを識別することを含む、GPU102におけるパフォーマンス特性を監視する。いくつかの実施形態では、図1に示すように、GPUパフォーマンスモジュール118は、利用率モニタ124と、1つ以上の温度センサ126と、1つ以上の電力センサ128と、を含む。利用率モニタ124は、その利用率(例えば、どのくらいビジーであるか)についてグラフィックスパイプライン114を監視し、例えば、グラフィックスパイプライン114内のCU122のアクティビティのパーセンテージレベルを表すビジーパーセンテージメトリクスを生成する。
1つ以上の温度センサ126は、GPU102の動作温度を測定する。1つ以上の温度センサ126は、任意のタイプの温度感知回路であってもよい。いくつかの実施形態では、2つ以上の温度センサが実装される場合、温度センサを、GPUの表面上に物理的に分布させることができ、GPUパフォーマンスモジュール118内に物理的に分布させるように限定されない。1つ以上の電力センサ128は、GPU102の消費電力を測定する。いくつかの実施形態では、1つ以上の電力センサ128は、GPU102の電源からの電流を測定する電力測定回路(図示省略)からデータを受信して、消費電力を決定する。他の実施形態では、1つ以上の電力センサ128は、GPU102内のアクティビティレベルに基づいて、消費電力を推定する。例えば、1つ以上の電力センサ128は、GPU102内の様々なパフォーマンスカウンタを読み取り、消費電力の推定値を導出するように構成されてもよい。
GPU102のパフォーマンスは、複数の動作パラメータ(GPU102のGPUプロセッサコアクロックレート、GPUメモリ(例えば、フレームバッファ)のメモリクロックレート、及び、クロックレートに必要な他の関連する設定(例えば、コアクロック及びメモリクロックに提供される基準電圧、(例えば、冷却を提供する)ファンの速度、メモリタイミング等)等を含むがこれらに限定されない)に依存する。一般に、(例えば、フレーム毎秒(FPS)における)GPU102のパフォーマンスは、コアクロックレート及びメモリクロックレートの増加と共に増大する。
電力及びクロックコントローラモジュール120は、GPU102の電力管理のためのパラメータを制御する制御要素を含む。一実施形態において、電力及びクロックモジュール120は、コアクロック及び電圧コントローラ130と、メモリクロック及び電圧コントローラ132と、を含む。コアクロック及び電圧コントローラ130は、GPU102用のコアクロック信号及びコア電圧信号を生成する。同様に、メモリクロック及び電圧コントローラ132は、GPU102用のメモリクロック信号及びメモリ電圧信号を生成する。
電力及びクロックモジュール120は、電圧及び周波数のスケーリングを実行して、GPUプロセッサコア及びGPUの電圧及び/又はクロックレベルを適応させて、事前に定義されたGPU設定(例えば、各々が異なるクロック及び電圧レベルを有する)のセットの間でGPU設定を切り替える。事前に定義されたGPU設定のセットは、パフォーマンスが最適化された複数のGPU設定のセットと、電力が最適化された複数のGPU設定のセットと、を含む、所定の消費電力で異なるレベルのGPUパフォーマンスを提供するGPUの様々な構成を含む。一実施形態において、GPU設定は、電圧の大きさと、動作周波数と、を含んでもよい。本明細書では、電源電圧の大きさと動作周波数との組み合わせを、概して「電力レベル」と呼ぶ。電源電圧の大きさは、GPUプロセッサコア及び/又はGPUメモリに供給される電源電圧の大きさであってもよい。動作周波数は、GPUプロセッサコア及び/又はGPUメモリに供給される1つ以上のクロックの周波数であってもよい。一般に、GPUに供給される動作周波数及び/又は電圧が高いほど、パフォーマンス及び消費電力が高くなる。
本明細書でさらに詳細に説明するように、GPUドライバ110は、処理システム100の過去の挙動と現在及び/又は将来のワークロードとに基づいて新たなGPU設定(すなわち、電力レベル)を定期的に決定することによって、動的電力レベル管理を実行する。新たなGPU設定は、固定の時間間隔(ここでは、「測定サイクル」又は「サイクル」と呼ばれる)を用いて、過去の挙動に基づく将来の動作の最適化設定の予測に基づいて決定される。各測定サイクルにおいて、GPUドライバ110は、GPUパフォーマンスモジュール118からのハードウェア信号、計算されたパフォーマンスメトリクス、及び、GPU102によって処理されているワークロードのタイプのうち少なくとも1つを含む複数の入力に基づいて、次のサイクルの最適化設定を予測する。
例えば各測定サイクルでは、GPUパフォーマンスモジュール118からのハードウェア信号を用いて、利用率モニタ124からの平均ビジーパーセンテージメトリクス、1つ以上の温度センサ126からの平均温度メトリクス、及び、1つ以上の電力センサ128からの測定サイクルの間に消費された平均累積電力のうち1つ以上を計算する。計算されたパフォーマンス測定値(例えば、FPS、スループット、単位時間毎の書き込み)及びGPU102によって処理されるワークロード/ユースケースのタイプ(例えば、分析、視覚化、3D画像レンダリング、人工知能処理、一般的な計算機能等)の他の入力も、将来のサイクルに適用される電力レベル設定を予測する際に考慮に入れられる。また、いくつかの実施形態では、GPUドライバ110は、将来のサイクルに適用される電力レベル設定を予測するのに予想される将来の処理ワークロードも考慮する。
図2は、いくつかの実施形態による、図1の処理システムにおいて動的電力レベル管理を行うための電力制御ループ200を示すブロック図である。本明細書では現在の測定サイクル及び次のサイクルの文脈で説明しているが、当業者は、説明した電力レベル管理動作を任意の数のサイクルに亘って適用することができるのを認識するであろう。現在の測定サイクルでは、ドライバ202(例えば、図1のGPUドライバ110等)は、GPU(例えば、図1のGPU102等)に関連するファームウェア204及びハードウェア206からの入力を受信する。ファームウェア204は、ハードウェア206からのハードウェア信号(例えば、GPUパフォーマンスモジュール118からのデータ)を使用して、平均アクティビティパーセンテージメトリクス、平均温度メトリクス及び平均消費電力メトリクスのうち少なくとも1つを計算するように構成されている。また、ドライバ202は、計算されたパフォーマンス測定値(例えば、FPS、スループット、単位時間毎の書き込み)、GPU102によって処理されるワークロード/ユースケースのタイプ(例えば、分析、視覚化、3D画像レンダリング、人工知能処理、一般的な計算機能等)等の他のシステム入力208も受信する。いくつかの実施形態では、他のシステム入力208を、オペレーティングシステム(図1のOS108等)及び/又はCPU(図1のCPU104等)によってドライバに提供することができる。
一実施形態では、ファームウェア204は、現在の測定サイクルに関して、GPUにおける利用アクティビティのパーセンテージレベルを表す平均アクティビティパーセンテージメトリクスを計算する。平均アクティビティパーセンテージメトリクス(0〜100%の範囲のパーセンテージ用語で表すことができる)は、例えば、GPUにおけるコンピュートユニット(例えば、図1のグラフィックスパイプライン114内のCU122)のアクティビティのパーセンテージレベルを表している。ドライバ202は、ファームウェア204から平均アクティビティパーセンテージメトリクスを受信し、平均アクティビティパーセンテージメトリクスを所定のアクティビティ閾値と比較する。
計算された平均アクティビティパーセンテージメトリクスが所定のアクティビティ閾値に達した(すなわち、GPUでのより高いレベルの処理アクティビティを示す)後に、ファームウェア204は、GPUの電力レベルを異なるクロック及び/又は電圧設定に調整するかどうかを判別する。いくつかの実施形態では、ファームウェア204は、所定のアップヒステリシスレベル及びダウンヒステリシスレベルに基づいて、電力レベルを調整するかどうかを判別する。所定の現在の測定サイクルに関して、平均アクティビティパーセンテージメトリクスが所定のアクティビティ閾値以上である場合、ファームウェア204は、動作周波数及び/又はGPUに供給される電圧を増大させることによってGPUの電力レベルを調整する前に、平均アクティビティパーセンテージメトリクスを継続してアクティビティ閾値以上に維持するかどうか(すなわち、GPUでのより高いレベルの処理アクティビティを示す)を、いくつかの将来のサイクルに亘って繰り返しチェックする。アップヒステリシスレベル及びダウンヒステリシスレベルは、平均アクティビティパーセンテージメトリクスがアクティビティ閾値を超える場合と、ファームウェア204が望ましくない頻繁な切り替えを抑制するように電力レベルを調整する場合と、の間に動的ラグを設ける。例えば、GPU利用率が50%の仮想アクティビティ閾値が与えられた場合、ある測定サイクルと別の測定サイクルとの間でアクティビティパーセンテージメトリクスが49%から51%まで変動する場合、電力レベルを変更することは非効率であり、望ましくないであろう。
アップヒステリシスレベルは、GPUに供給される動作周波数及び/又は電圧を増大させることによってGPUの電力レベルを調整する前に、アクティビティパーセンテージメトリクスをアクティビティ閾値以上に維持する必要がある最小数の連続サイクルを提供する。したがって、アップヒステリシスレベルが高く設定されるほど、ファームウェア204が電力レベルを増大させるのが遅くなり、その可能性が低くなる。アップヒステリシスレベルが低く設定されるほど、ファームウェア204が電力レベルを増大させるのが速くなり、その可能性が高くなる。同様に、アクティビティパーセンテージメトリクスがアクティビティ閾値を下回る場合、ファームウェア204は、GPUに供給される動作周波数及び/又は電圧を低下させることによってGPUの電力レベルを調整する前に、平均アクティビティパーセンテージメトリクスを、継続してアクティビティ閾値を下回る(すなわち、GPUでのより低いレベルの処理アクティビティを示す)ように維持するかどうかを、いくつかの将来のサイクルに亘って繰り返しチェックする。ダウンヒステリシスレベルは、GPUの電力レベルを低下させる前に、アクティビティパーセンテージメトリクスがアクティビティ閾値を下回るように維持する必要がある最小数の連続サイクルを提供する。したがって、ダウンヒステリシスレベルが高く設定されるほど、ファームウェア204が電力レベルを低下させるのが遅くなり、その可能性が低くなる。ファームウェア204は、より長い期間、より高いレベルで電力レベルを保持することになる。ダウンヒステリシスレベルが低く設定されるほど、ファームウェア204が電力レベルを低下させるのが速くなり、その可能性が高くなる。
いくつかの実施形態では、ドライバ202は、以下に提供する表1に基づいて電力レベルを調整するかどうかを判別する。
Figure 0006817453
表1によれば、アクティビティパーセンテージメトリクスがアクティビティ閾値以上である場合、ドライバ202は、アップヒステリシスレベルを低下させ、ダウンヒステリシスレベルを増大させ、及び/又は、高い電力レベル設定に調整するのに必要とされるアクティビティ閾値を低下させることによって、パフォーマンスの最適化に有利な電力レベル設定を選択する。アクティビティパーセンテージメトリクス(すなわち、ビジー信号)がアクティビティ閾値を下回る場合、ドライバ202は、アップヒステリシスレベルを増大させ、ダウンヒステリシスレベルを低下させ、及び/又は、高い電力レベル設定に調整するのに必要とされるアクティビティ閾値を増大させることによって、電力の最適化及び保全に有利な電力レベル設定を選択する。
いくつかの実施形態では、電力レベル設定をあるサイクルから別のサイクルに調整することができる量は、アクティビティパーセンテージメトリクス(すなわち、ビジー信号)がアクティビティ閾値からどのくらい離れているかに基づいてさらに計算される。図3は、いくつかの実施形態による、様々な電力レベル調整係数を示す表300を示している。表300では、列302は、アクティビティパーセンテージメトリクスを表しており、電力レベル設定をあるサイクルから別のサイクルへ変更可能な最大量は、最大調整係数(MAF)と呼ばれる。
列304の実施形態では、GPUドライバ(例えば、図2のドライバ202)は、50%のアクティビティ閾値と、1〜5の調整係数の範囲と、5のMAFと、を有するように構成されている。この構成は、例えば、GPUでの一般的な計算機能処理に適用することができる。アップヒステリシスレベル及び/又はダウンヒステリシスレベルを満たすと仮定すると、列304の実施形態は、調整係数(すなわち、電力レベル設定を現在の測定サイクルから将来の次の測定サイクルまでどのくらい変化することができるかを示す量)が、現在の測定サイクルに関するアクティビティパーセンテージメトリクス(すなわち、ビジー信号)とアクティビティ閾値との差の程度に依存することを示している。例えば、40〜60%の範囲のビジー信号には「1」の調整係数が割り当てられるが、0〜10%又は90〜10%の範囲のビジー信号には、50%のアクティビティ閾値に対する相対的な近似及び距離に起因して「5」の調整係数が割り当てられる。
当業者は、本明細書で説明する調整係数が特定の電力レベル(例えば、特定の電圧若しくは動作周波数)又は電力レベル間の比率に関連付けられるのを意図していないことを認識するであろう。むしろ、調整係数は、電力レベル調整の大きさの相対的な差を示すために提供されている。例えば、「2」の調整係数に基づく将来の測定サイクルの電力レベル設定は、「1」の調整係数に基づくものよりも大きくなる。同様に、「3」の調整係数に基づく将来の測定サイクルの電力レベル設定は、「1」又は「2」の調整係数に基づくものよりも大きくなる等である。
列306の実施形態では、GPUドライバ(例えば、図2のドライバ202)は、50%のアクティビティ閾値と、2〜10の調整係数の範囲と、10のMAFと、を有するように構成されている。この構成は、例えば、電力レベル及びGPUパフォーマンスをより迅速に向上させることが望ましい(省力を犠牲にしようとも)ゲーミングアプリケーション又は3Dレンダリング等の高アクティビティのグラフィックス処理ワークロードに適用することができる。例えば、列306の実施形態におけるビジー信号では、(同じ「2」の調整係数が割り当てられている列304の実施形態の60〜70%の範囲のビジー信号とは対照的に)50〜60%の範囲に「2」の調整係数が割り当てられる。したがって、列304の実施形態は、同じ電力レベル設定に到達するために列306の実施形態よりも高い測定されたアクティビティパーセンテージを必要とする。或いは、調整係数及びMAFの差は、列306の実施形態が単一サイクルで到達する電力レベルに到達するために、列304の実施形態では複数サイクルかかる場合があることを示している。
列308の実施形態では、GPUドライバ(例えば、図2のドライバ202)は、30%のアクティビティ閾値と、0〜10の調整係数の範囲と、10のMAFと、を有するように構成されている。このような構成は、例えば、消費電力をより細かく考慮に入れることが望ましい処理システム(例えば、バッテリで動作するラップトップ)に適用することができる。アップヒステリシスレベル及び/又はダウンヒステリシスレベルを満たすと仮定すると、列308の実施形態は、30%という低いアクティビティ閾値によって、電力レベルが、上昇(すなわち、30%の閾値を超えて測定されたアクティビティが7パーセンテージポイント変化する毎の「1」の調整係数の変化)が許容される速度の2倍の速度の低下(すなわち、測定されたアクティビティが3パーセンテージポイント変化する毎の「1」の調整係数の変化)を可能にする電力節約指向の設定を可能にすることを示している。
列304〜308の実施形態は、例えば、異なる処理ワークロード及びハードウェア構成を含むパフォーマンスメトリクスを考慮に入れるように電力設定を調整する方法の例として提供されることを理解されたい。当業者は、このような実施形態が、本明細書で提供される教示の範囲を、具体的に説明した実施形態に限定することを意図していないことを理解するであろう。
図4は、いくつかの実施形態による、適応電力制御を実行する方法400のフロー図である。ブロック402において、方法400は、GPUにおいて現在処理しているワークロードに基づく現在の測定サイクルのパフォーマンスメトリクスを受信することによって開始する。一実施形態では、図1及び図2に関して上述したように、GPUドライバは、GPUファームウェア及びハードウェアからの入力を受信する。ファームウェアは、ハードウェアからのハードウェア信号(例えば、図1に関連して説明したGPUパフォーマンスモジュール118からのデータ)を利用して、平均アクティビティパーセンテージメトリクス、平均温度メトリクス及び平均消費電力メトリクスのうち少なくとも1つを含むパフォーマンスメトリクスを計算するように構成されている。また、GPUドライバは、GPU102によって処理されているワークロード/ユースケースのタイプ(例えば、一般的な計算機能等の低アクティビティワークロード、又は、分析、視覚化、3D画像レンダリング、人工知能処理等の高アクティビティワークロード)、処理システムの特定のハードウェア構成(例えば、RAMメモリの量、CPUのタイプ等)、及び、現在の測定サイクルの計算されたパフォーマンス測定(例えば、FPS、スループット、単位時間毎の書き込み)等の他のシステム入力も受信する。したがって、GPUドライバは、ある測定サイクルから別の測定サイクルまでGPUが処理する特定のワークロードの概要だけでなく、特定のハードウェア構成がこのようなワークロードをどのように実行するかを示すパフォーマンスメトリクスも受信する。
ブロック404では、受信した現在の測定サイクルのパフォーマンスメトリクスを所定のメトリクス閾値と比較して、GPUドライバが、GPU電力レベルを現在の測定サイクルにおける現在の設定から次の測定サイクルにおける異なる設定に調整するかどうかを決定する。一実施形態では、図2及び図3に関連して説明したように、パフォーマンスメトリクスは、GPUハードウェアが単位時間毎に(すなわち、測定サイクル毎に)処理しているワークロードの量を示すアクティビティパーセンテージメトリクスを含む。アクティビティパーセンテージメトリクスが所定のアクティビティパーセンテージ閾値を満たすか超えると、GPUドライバは、ブロック406に進み、GPUの電力レベル(例えば、GPUに適用される動作周波数又は電圧)を、パフォーマンスの向上を提供するために次の高いレベルに上げようとする。
当業者は、実施形態がアクティビティパーセンテージの文脈で具体的に説明されており、本明細書で説明する動的電力レベル管理動作をアクティビティパーセンテージと共に又はアクティビティパーセンテージを代替的に除外して、GPUにおける平均動作温度、GPUで消費される平均電力、又は、GPUパフォーマンスモジュール(例えば、図1のGPUパフォーマンスモジュール118)のセンサ/モニタによってキャプチャされた(又は、これらによってキャプチャされたデータから導出可能な)他のパフォーマンス関連データ等の他のパフォーマンスメトリクスに有利に適用可能であることを認識するであろう。例えば、いくつかの実施形態では、方法400は、GPUが過熱していることをGPUドライバが検出した場合に、GPUが電力レベルを低下し、非集約的又は低アクティビティなワークロード中にGPUをより速く冷却するのを可能にするために、平均アクティビティパーセンテージと併せて平均動作温度を考慮することができる。
ブロック406では、GPUドライバは、受信したパフォーマンスメトリクスが、最小ヒステリシス数を超える連続サイクルに亘ってメトリクス閾値を超えたかどうかを判別する。一実施形態において、図2及び図3に関して説明したように、ヒステリシス数は、GPUの電力レベル設定への調整を可能にするために、アクティビティパーセンテージメトリクスをアクティビティ閾値以上に維持する必要がある最小数の連続する測定サイクルを規定するアップヒステリシスレベル及び/又はダウンヒステリシスレベルを含む。例えば、アップヒステリシスレベルは、GPUの電力レベルを増大させる前に、アクティビティパーセンテージメトリクスをアクティビティ閾値以上に維持する必要がある連続サイクルの最小数を定義する。同様に、ダウンヒステリシスレベルは、GPUの電力レベルを低下させる前に、アクティビティパーセンテージメトリクスがアクティビティ閾値を下回るように維持する必要がある連続サイクルの最小数を定義する。アップヒステリシスレベル及びダウンヒステリシスレベルの正確な値は、設計上の選択事項であり、本明細書では説明しないことを理解されたい。
GPUドライバが、ブロック406において、受信したパフォーマンスメトリクスが、最小アップヒステリシス数を超える連続サイクルに亘ってメトリクス閾値を満たしていないと判別した場合、方法400はブロック402に戻る。GPUドライバが、ブロック406において、受信したパフォーマンスメトリクスが、最小アップヒステリシス数を超える連続サイクルに亘ってメトリクス閾値を満たしていると判別した場合、方法400はブロック408に進む。
ブロック408において、GPUドライバは、次の測定サイクルのためにGPUに適用されるGPU設定の推定される最適化を決定する。一実施形態において、図1に関連して説明したように、GPU設定の推定された最適化(例えば、GPUのコアクロック及びメモリクロックに関する電圧及び周波数)は、所定の消費電力で異なるレベルのGPUパフォーマンスを提供するGPUの様々な構成を含む事前定義されたGPU設定のセットから決定することができ、このセットは、GPU設定のパフォーマンスが最適化された複数のセット及びGPU設定の電力が最適化された複数のセットを少なくとも含む。事前定義されたGPU設定のセットは、例えば、静的な電力レベル設定を有するシステムからのデータに基づいて選択され、スペクトルの一端としてパフォーマンスが最適化された設定のセットと、他端として電力が最適化された設定のセットと、を表す特定の範囲の設定を提供する。本開示において説明するように、動的電力レベル管理動作は、静的な事前定義された閾値を超えるアクティビティパーセンテージメトリクスのみに基づいて電力レベルを増大させる訳ではない。むしろ、本明細書で説明するパフォーマンスメトリクスの超過は、現在のワークロードに対する他の要因(例えば、OSの違い、環境の周辺温度の違い、OS上で実行されるアプリケーションのワークロードの違い、及び、RAM、CPU、マザーボード、チップセット等の処理システムのハードウェア構成の違い等)の考慮に基づいて、GPU設定の推定された最適化を決定するために、GPUドライバの必要条件として機能する。さらに、最適な設定は、異なるAPI(DirextX(登録商標)9(DX9)、DX10、DX11、DX12等)の一般的な動作のプリセット設定に基づいて推定することができる。また、現在のサイクル及び以前の測定サイクルのワークロードに基づいて最適な設定を推定することができるだけではなく、GPUスケジューラによる実行がスケジューリングされているように、予測される将来のワークロードに関する情報を含むこともできる。
ブロック410において、GPUドライバは、推定された最適化に基づいて、将来の測定サイクルのGPUでの電力レベル設定を調整するようにGPUに命令する。一実施形態において、図1に関連して説明したように、GPUドライバは、GPUの電力及びクロックコントローラモジュール(例えば、図1の電力及びクロックコントローラモジュール120)に対して、各々が所定の消費電力で異なるレベルのGPUパフォーマンスを提供する事前定義されたGPU設定(例えば、各々が異なるクロック及び電圧レベルを有する)のセット間で切り替えるように命令する。いくつかの実施形態において、電力及びクロックモジュールは、GPUのクロック及び電圧信号を生成するために、コアクロック及び電圧コントローラと、メモリクロック及び電圧コントローラと、を含む。
次に、ブロック404に戻ると、アクティビティパーセンテージメトリクスが所定のアクティビティパーセンテージ閾値を下回ると判別された場合、GPUドライバは、ブロック412に進み、GPUの電力レベル(例えば、GPUに適用される動作周波数又は電圧)を、パフォーマンスを低下させ、省電力を向上する次の低いレベルにするように低下させることを試みる。ブロック412では、GPUドライバは、受信したパフォーマンスメトリクスが、最小ヒステリシス数を超える連続サイクルに亘ってメトリクス閾値を超えたかどうかを判別する。GPUドライバが、ブロック412において、受信したパフォーマンスメトリクスが、最小ダウンヒステリシス数を超える連続サイクルに亘ってメトリクス閾値を満たしていないと判別した場合、方法400はブロック402に戻る。GPUドライバが、ブロック412において、受信したパフォーマンスメトリクスが、最小ダウンヒステリシス数を超える連続サイクルに亘ってメトリクス閾値を満たしていると判別した場合、方法400はブロック414に進む。
ブロック414において、GPUドライバは、次の測定サイクルでGPUに適用されるGPU設定の推定された最適化を決定する。ブロック414の動作は、推定された最適化が、ブロック408のパフォーマンスの向上を実現する推定の代わりに、パフォーマンスの低下及び省電力の向上を実現する低い電力レベルに関するものであることを除いて、ブロック408に関連して上述したものと同様である。ブロック416において、GPUドライバは、(ブロック410の動作と同様に)推定された最適化に基づいて将来の測定サイクルでのGPUの電力レベル設定を調整するようにGPUに命令する。
動的電力管理動作は、ブロック410及び/又は416で終了しないことを理解されたい。むしろ、GPUは、方法400の動作を定期的に実行し、電力レベルを動的に適応させて、所定の時間に処理されるワークロードに基づいて省電力及びパフォーマンスの向上を最適化する。これにより、GPUは、省電力指向の設定に留まり、高アクティビティのワークロードが処理を開始した後にパフォーマンス指向の設定に移行し、GPUが再びアイドル状態になった後に省電力指向の設定に戻ることを可能にする。例えば、図4に示すように、現在の測定サイクルに関するブロック410,416の後、方法400は、ブロック402にループバックして、現在の測定サイクルから変更した後の電力レベル設定を、将来の測定サイクルでの電力レベル設定を決定するための入力として提供することができる。
本明細書では、測定サイクルの正確なサイクル時間を明示的に定義していないが、当業者は、GPUドライバを、サイクル時間を変更するように構成することができることを認識するであろう(サイクル時間を短くすると、電力レベル管理動作の細分性/精度が向上し、電力レベルの変更間隔が短くなる[GPUをより頻繁に動作させるためにCPU負荷を追加するコストがかかる]、サイクル時間を長くすると、動的電力レベル管理動作に起因するCPU負荷が低下するが、精度は低下する)。
いくつかの実施形態では、上述した装置及び技術は、1つ以上の集積回路(IC)デバイス(集積回路パッケージ又はマイクロチップとも呼ばれる)を備えるシステム(例えば、図1〜4を参照して上述したGPU等)において実施される。これらのICデバイスの設計及び製造には、通常、電子設計自動化(EDA)及びコンピュータ支援設計(CAD)ソフトウェアツールが使用される。これらの設計ツールは、通常、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計又は適合するための処理の少なくとも一部を実行するように1つ以上のICデバイスの回路を表すコードで動作するようにコンピュータシステムを操作する、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、通常、コンピューティングシステムがアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ICデバイスの設計又は製造の1つ以上のフェーズを表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶されてもよいし、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体からアクセスされてもよい。
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。かかる記憶媒体には、限定されないが、光媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)、キャッシュ)、不揮発性メモリ(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステムに内蔵されてもよいし(例えば、システムRAM又はROM)、コンピュータシステムに固定的に取り付けられてもよいし(例えば、磁気ハードドライブ)、コンピュータシステムに着脱可能に取り付けられてもよいし(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)、有線又は無線のネットワークを介してコンピュータシステムに接続されてもよい(例えば、ネットワークアクセス可能なストレージ(NAS))。
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。

Claims (17)

  1. いくつかの連続する測定サイクルに関する閾値との第1関係を有するグラフィックス処理ユニット(GPU)における現在のワークロードの処理に関連する第1パフォーマンスメトリクスを識別することであって、前記いくつかの連続する測定サイクルは、現在の測定サイクルと、少なくとも1つの以前の測定サイクルと、を含み、前記第1パフォーマンスメトリクスは、現在のワークロードを処理している間のGPUパフォーマンスを示す、ことと、
    前記連続する測定サイクルの数がアップヒステリシスレベル及びダウンヒステリシスレベルの何れかを超えたことに応じて、前記現在のワークロードを処理する現在のコンピューティング環境のハードウェア構成を表すデータに基づいて、将来の測定サイクルで前記GPUに適用される推定された最適化を決定することと、
    前記アップヒステリシスレベル及び前記ダウンヒステリシスレベルの何れかを調整することによって、前記将来の測定サイクルでの前記GPUの電力レベル設定を前記推定された最適化に基づいて調整することと、を含む、
    方法。
  2. 前記電力レベル設定を調整することは、前記GPUのコアクロック周波数及びメモリクロック周波数のうち少なくとも一方を変更することを含む、
    請求項1の方法。
  3. 前記第1パフォーマンスメトリクスを識別することは、前記GPUの平均利用率、前記GPUの平均動作温度、及び、前記現在の測定サイクルの間に消費された平均累積電力のうち少なくとも1つを識別することを含む、
    請求項1の方法。
  4. 前記第1パフォーマンスメトリクスを識別することは、前記現在の測定サイクルに関する前記GPUの現在の処理ワークロードと、前記将来の測定サイクルに関する前記GPUの予測された将来の処理ワークロードと、に基づいて、前記第1パフォーマンスメトリクスを識別することを含む、
    請求項1の方法。
  5. 前記電力レベル設定を調整することは、前記アップヒステリシスレベルを調整することを含む、
    請求項1の方法。
  6. 前記電力レベル設定を調整することは、前記ダウンヒステリシスレベルを調整することを含む、
    請求項1の方法。
  7. 前記GPUの電力レベル設定を調整することは、識別された前記第1パフォーマンスメトリクスとパフォーマンスメトリクス閾値との間の差に基づく前記GPUの現在の電力レベルの大きさによって、前記将来の測定サイクルでの電力レベル設定を調整することを含む、
    請求項1の方法。
  8. 実行可能命令のセットを具体化するコンピュータ可読記憶媒体であって、
    前記実行可能命令のセットは、
    いくつかの連続する測定サイクルに関する閾値との第1関係を有するグラフィックス処理ユニット(GPU)における現在のワークロードの処理に関連する第1パフォーマンスメトリクスを識別することであって、前記いくつかの連続する測定サイクルは、現在の測定サイクルと、少なくとも1つの以前の測定サイクルと、を含み、前記第1パフォーマンスメトリクスは、現在のワークロードを処理している間のGPUパフォーマンスを示す、ことと、
    前記連続する測定サイクルの数がアップヒステリシスレベル及びダウンヒステリシスレベルの何れかを超えたことに応じて、
    将来の測定サイクルで前記GPUに適用される推定された最適化を決定することと、
    前記アップヒステリシスレベル及び前記ダウンヒステリシスレベルの何れかを調整することによって、前記推定された最適化に基づいて、前記将来の測定サイクルでの前記GPUの電力レベル設定を調整することと、
    を行うようにプロセッサを操作する、
    コンピュータ可読記憶媒体。
  9. 前記電力レベル設定を調整することは、前記GPUのコアクロック周波数及びメモリクロック周波数のうち少なくとも一方を変更することを含む、
    請求項8のコンピュータ可読記憶媒体。
  10. 前記第1パフォーマンスメトリクスを識別することは、前記GPUの平均利用率、前記GPUの平均動作温度、及び、前記現在の測定サイクルの間に消費された平均累積電力のうち少なくとも1つを識別することを含む、
    請求項8のコンピュータ可読記憶媒体。
  11. 前記電力レベル設定を調整することは、前記アップヒステリシスレベルを調整することを含む、
    請求項8のコンピュータ可読記憶媒体。
  12. 前記電力レベル設定を調整することは、前記ダウンヒステリシスレベルを調整することを含む、
    請求項8のコンピュータ可読記憶媒体。
  13. グラフィックス処理ユニット(GPU)を備えるデバイスであって、
    前記GPUは、
    複数のコンピュートユニット(CU)を含むグラフィックスパイプラインと、
    パフォーマンスモジュールと、
    電力及びクロックコントローラモジュールと、を備え、
    前記パフォーマンスモジュールは、
    いくつかの連続する測定サイクルに関する閾値との第1関係を有する前記GPUにおける現在のワークロードの処理に関連する第1パフォーマンスメトリクスを識別することであって、前記いくつかの連続する測定サイクルは、現在の測定サイクルと、少なくとも1つの以前の測定サイクルと、を含み、前記第1パフォーマンスメトリクスは、現在のワークロードを処理している間のGPUパフォーマンスを示す、ことと、
    前記連続する測定サイクルの数がアップヒステリシスレベル及びダウンヒステリシスレベルの何れかを超えたことに応じて、前記デバイスのハードウェア構成を表すデータに基づいて、将来の測定サイクルで前記GPUに適用される推定された最適化を決定することと、を行い、
    前記電力及びクロックコントローラモジュールは、
    前記アップヒステリシスレベル及び前記ダウンヒステリシスレベルの何れかを調整することによって、前記推定された最適化に基づいて、前記GPUの電力レベル設定を調整する、
    デバイス。
  14. 前記推定された最適化は、パフォーマンスが最適化された複数の設定と、省電力が最適化された複数の設定と、を含む事前定義された電力レベル設定のセットから選択される、
    請求項13のデバイス。
  15. 前記電力及びクロックコントローラモジュールは、前記推定された最適化に基づいて、前記GPUのコアクロック周波数及びメモリクロック周波数のうち少なくとも一方を調整するようにさらに構成されている、
    請求項14のデバイス。
  16. 前記パフォーマンスモジュールは、前記GPUの平均利用率、前記GPUの平均動作温度、及び、前記現在の測定サイクルの間に消費された平均累積電力のうち少なくとも1つを識別するようにさらに構成されている、
    請求項13のデバイス。
  17. 前記デバイスは、前記パフォーマンスモジュールでキャプチャされたセンサデータに基づいて前記第1パフォーマンスメトリクスを計算するように構成されたGPUファームウェアをさらに備える、
    請求項13のデバイス。
JP2019540544A 2017-01-26 2018-01-25 適応電力制御ループ Active JP6817453B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/416,955 US10649518B2 (en) 2017-01-26 2017-01-26 Adaptive power control loop
US15/416,955 2017-01-26
EP17154351.5A EP3355163B1 (en) 2017-01-26 2017-02-02 Adaptive power control loop
EP17154351.5 2017-02-02
PCT/IB2018/050467 WO2018138674A1 (en) 2017-01-26 2018-01-25 Adaptive power control loop

Publications (3)

Publication Number Publication Date
JP2020505703A JP2020505703A (ja) 2020-02-20
JP2020505703A5 JP2020505703A5 (ja) 2020-06-18
JP6817453B2 true JP6817453B2 (ja) 2021-01-20

Family

ID=57963065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019540544A Active JP6817453B2 (ja) 2017-01-26 2018-01-25 適応電力制御ループ

Country Status (6)

Country Link
US (1) US10649518B2 (ja)
EP (1) EP3355163B1 (ja)
JP (1) JP6817453B2 (ja)
KR (1) KR102210355B1 (ja)
CN (1) CN110199241B (ja)
WO (1) WO2018138674A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10579121B2 (en) 2017-04-01 2020-03-03 Intel Corporation Processor power management
US10304154B2 (en) * 2017-04-24 2019-05-28 Intel Corporation Coordination and increased utilization of graphics processors during inference
US10817041B2 (en) * 2017-11-17 2020-10-27 Philip Vaccaro Energy efficient computer process
US11106261B2 (en) * 2018-11-02 2021-08-31 Nvidia Corporation Optimal operating point estimator for hardware operating under a shared power/thermal constraint
US11410027B2 (en) * 2019-09-16 2022-08-09 SambaNova Systems, Inc. Performance estimation-based resource allocation for reconfigurable architectures
US11263044B2 (en) * 2019-11-22 2022-03-01 Advanced Micro Devices, Inc. Workload-based clock adjustment at a processing unit
CN111158454A (zh) * 2019-12-20 2020-05-15 青岛海尔科技有限公司 一种实时嵌入式操作系统低功耗方法及装置
US20210200255A1 (en) * 2019-12-30 2021-07-01 Qualcomm Incorporated Higher graphics processing unit clocks for low power consuming operations
US11709701B2 (en) * 2019-12-31 2023-07-25 Paypal, Inc. Iterative learning processes for executing code of self-optimizing computation graphs based on execution policies
US11736822B1 (en) 2020-02-28 2023-08-22 Apple Inc. Controlling an image sensor based on GPU temporal processing values
US11169841B2 (en) * 2020-03-17 2021-11-09 Internationl Business Machines Corporation Tunable power save loop for processor chips
US11847501B2 (en) 2020-06-12 2023-12-19 Baidu Usa Llc Method for data protection in a data processing cluster with partition
US11687376B2 (en) * 2020-06-12 2023-06-27 Baidu Usa Llc Method for data protection in a data processing cluster with dynamic partition
US11687629B2 (en) 2020-06-12 2023-06-27 Baidu Usa Llc Method for data protection in a data processing cluster with authentication
US11249540B2 (en) * 2020-07-15 2022-02-15 Dell Products L.P. System and method of configuring power consumption of a processor and a graphics processing unit
CN114510140B (zh) * 2020-11-16 2024-04-16 深圳市万普拉斯科技有限公司 一种调频方法、装置及电子设备
US20230024130A1 (en) * 2021-07-23 2023-01-26 Advanced Micro Devices, Inc. Workload aware virtual processing units
TWI785785B (zh) * 2021-09-09 2022-12-01 華碩電腦股份有限公司 電子裝置及其電源管理方法
KR102516412B1 (ko) * 2022-01-13 2023-03-31 성균관대학교산학협력단 기계학습 추론을 위한 gpu 클럭 조절 방법 및 장치
CN117528746A (zh) * 2022-07-29 2024-02-06 Oppo广东移动通信有限公司 一种发射功率调整方法、装置、芯片、设备和存储介质
CN116301662B (zh) * 2023-05-12 2023-08-01 合肥联宝信息技术有限公司 一种固态硬盘功耗管理方法及固态硬盘

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6188206B1 (en) * 1999-12-08 2001-02-13 Intel Corporation Dynamic hysteresis voltage regulation
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US7017060B2 (en) 2001-03-19 2006-03-21 Intel Corporation Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down
US7903116B1 (en) 2003-10-27 2011-03-08 Nvidia Corporation Method, apparatus, and system for adaptive performance level management of a graphics system
KR101533572B1 (ko) 2009-05-20 2015-07-03 삼성전자주식회사 전력 관리 방법
KR101617377B1 (ko) 2009-11-06 2016-05-02 삼성전자주식회사 동적 전압 주파수 스케일링 방법
WO2011074059A1 (ja) * 2009-12-14 2011-06-23 富士通株式会社 演算処理装置、情報処理装置及びその制御方法
US20120297232A1 (en) 2011-05-16 2012-11-22 Bircher William L Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value
EP2788834A4 (en) * 2011-12-09 2015-07-22 Intel Corp ADAPTIVE MANAGEMENT OF THE PERFORMANCE AND POWER OF A GRAPHIC SUBSYSTEM
US9304570B2 (en) * 2011-12-15 2016-04-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements
CN104205087B (zh) * 2012-02-04 2018-01-16 英派尔科技开发有限公司 芯片多处理器中的核心级动态电压和频率调节
US9170912B1 (en) * 2012-04-09 2015-10-27 Purdue Research Foundation System and methods for power and energy modeling in computing devices using system call tracing
US8943341B2 (en) * 2012-04-10 2015-01-27 International Business Machines Corporation Minimizing power consumption for fixed-frequency processing unit operation
US9250665B2 (en) 2012-06-07 2016-02-02 Apple Inc. GPU with dynamic performance adjustment
US9449359B2 (en) 2012-09-13 2016-09-20 Ati Technologies Ulc Rendering settings in a multi-graphics processing unit system
US20140089699A1 (en) 2012-09-27 2014-03-27 Advanced Micro Devices Power management system and method for a processor
KR101471303B1 (ko) * 2013-10-02 2014-12-10 포항공과대학교 산학협력단 그래픽 처리 장치를 위한 전력 관리 장치 및 방법
CN103809719B (zh) * 2012-11-09 2017-06-20 辉达公司 电路板及用于电路板的电源管理系统
KR20140088691A (ko) * 2013-01-03 2014-07-11 삼성전자주식회사 Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법
US9310872B2 (en) * 2013-02-01 2016-04-12 Nvidia Corporation Processor frequency mainly depending on a target frame rate while processing a graphics application
KR101659705B1 (ko) * 2013-02-05 2016-09-26 퀄컴 인코포레이티드 보장된 과도 데드라인들로 중앙 프로세싱 유닛 전력을 제어하기 위한 시스템 및 방법
US9304573B2 (en) * 2013-06-21 2016-04-05 Apple Inc. Dynamic voltage and frequency management based on active processors
US8766953B1 (en) * 2013-06-27 2014-07-01 Elwha Llc Tactile display driven by surface acoustic waves
CN105637556B (zh) * 2013-10-14 2019-06-28 马维尔国际贸易有限公司 用于图形处理单元功率管理的系统和方法
US20150149800A1 (en) * 2013-11-27 2015-05-28 Alexander Gendler Performing an operating frequency change using a dynamic clock control technique
US9244747B2 (en) * 2014-03-13 2016-01-26 Qualcomm Incorporated System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication
US20160116954A1 (en) 2014-10-28 2016-04-28 Linkedln Corporation Dynamic adjustment of cpu operating frequency
US9958921B2 (en) * 2015-03-09 2018-05-01 Advanced Micro Devices, Inc. Power management to change power limits based on device skin temperature
US10001856B2 (en) * 2015-04-22 2018-06-19 Mediatek Inc. Dynamic enablement, disablement and adjustment of offset of a periodic timing control signal
US9760160B2 (en) 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
US9904612B2 (en) * 2015-07-08 2018-02-27 Futurewei Technologies, Inc. Dynamic voltage/frequency scaling for multi-processors using end user experience metrics
CN104932659B (zh) * 2015-07-15 2020-01-07 京东方科技集团股份有限公司 图像显示方法及显示系统
KR101666549B1 (ko) * 2015-09-15 2016-10-17 인천대학교 산학협력단 컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법
US10007292B2 (en) * 2016-01-11 2018-06-26 Qualcomm Incorporated Energy aware dynamic adjustment algorithm
US20180018118A1 (en) * 2016-07-15 2018-01-18 Qualcomm Incorporated Power management in scenarios that handle asynchronous stimulus
US20180137668A1 (en) * 2016-11-12 2018-05-17 Intel Corporation Dynamically selecting optimum graphics frequency and graphics power gating configuration

Also Published As

Publication number Publication date
CN110199241B (zh) 2021-10-15
US20180210530A1 (en) 2018-07-26
EP3355163A1 (en) 2018-08-01
JP2020505703A (ja) 2020-02-20
WO2018138674A1 (en) 2018-08-02
US10649518B2 (en) 2020-05-12
KR102210355B1 (ko) 2021-02-01
CN110199241A (zh) 2019-09-03
EP3355163B1 (en) 2019-09-11
KR20190109408A (ko) 2019-09-25

Similar Documents

Publication Publication Date Title
JP6817453B2 (ja) 適応電力制御ループ
US20240029488A1 (en) Power management based on frame slicing
JP6005895B1 (ja) ワット当たりの最適パフォーマンスのためのインテリジェントマルチコア制御
USRE47658E1 (en) Heat dissipation system for computers
JP5746271B2 (ja) 低電力動作のための方法、装置、コンピュータプログラム及びシステム
CN110637271B (zh) 用于对便携式计算设备中的沉浸式多媒体工作负载的智能调整的系统和方法
KR101471303B1 (ko) 그래픽 처리 장치를 위한 전력 관리 장치 및 방법
JP5695766B2 (ja) マルチコアシステムエネルギー消費最適化
EP3535641B1 (en) Thread importance based processor core partitioning
EP1363180A2 (en) Method and apparatus for adaptive CPU power management
US20120192200A1 (en) Load Balancing in Heterogeneous Computing Environments
KR20100113554A (ko) 데이터 처리 시스템의 강제 정지
WO2012058202A1 (en) Method and apparatus for thermal control of processing nodes
JP2013536532A (ja) 処理ノードの動的パフォーマンス制御
TW200941209A (en) Power-aware thread schedulingard and dynamic use of processors
GB2459968A (en) Using the number of times a processor has to wait for a response to determine an efficiency metric and an operational characteristic for the processor
US20180120920A1 (en) Thread Importance Based Processor Core Parking And Frequency Selection
US10025372B2 (en) Techniques for managing system power using deferred graphics rendering
CN114730200A (zh) 处理单元处的基于工作负载的时钟调整
US20240004448A1 (en) Platform efficiency tracker
WO2024006020A1 (en) Adaptive power throttling system
CN115867893A (zh) 基于使用策略和核心约束的核心选择

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200501

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200501

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200501

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200825

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201112

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201224

R150 Certificate of patent or registration of utility model

Ref document number: 6817453

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250