(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-19
(54)【発明の名称】ワークロードを認識する仮想処理装置
(51)【国際特許分類】
G06F 9/50 20060101AFI20240711BHJP
G06F 1/3228 20190101ALI20240711BHJP
G06F 1/329 20190101ALI20240711BHJP
【FI】
G06F9/50 120A
G06F1/3228
G06F1/329
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024502019
(86)(22)【出願日】2022-07-21
(85)【翻訳文提出日】2024-02-13
(86)【国際出願番号】 US2022037848
(87)【国際公開番号】W WO2023004028
(87)【国際公開日】2023-01-26
(32)【優先日】2021-07-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-12-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】アニルーダ アチャリャ
(72)【発明者】
【氏名】スリーカント ゴーディ
(72)【発明者】
【氏名】ルイジン ウー
【テーマコード(参考)】
5B011
【Fターム(参考)】
5B011EA08
5B011LL11
(57)【要約】
処理装置[100]は、識別したワークロード[200、225]に基づいて異なるように構成され、処理装置の各構成は、異なる仮想処理装置[111、112]としてソフトウェア(例えば、デバイスドライバ[103])に提示される。これらの技術を用いることにより、処理システムは、様々な構成の処理装置を提供して様々な種類のワークロードをサポートすることができ、システムリソースを節約することができる。更に、処理システムは、様々な構成を様々な仮想処理装置として提示することによって、既存のデバイスドライバ又は他のシステムインフラストラクチャを用いて様々な処理装置構成を実装する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
方法であって、
処理装置で実行される第1のワークロードを識別することに応じて、前記処理装置を第1の電力モードで動作するように構成することであって、前記第1の電力モードは、前記処理装置の処理要素の第1のサブセットが低電力モードにあることに対応する、ことと、
前記処理装置が前記第1の電力モードにある間、前記処理装置を第1の仮想処理装置として提示することと、を含む、
方法。
【請求項2】
前記処理装置で実行される第2のワークロードを識別することに応じて、前記第1の処理装置を第2の電力モードで動作するように構成することであって、前記第2の電力モードは、前記処理装置の処理要素の第2のサブセットが前記低電力モードにあることに対応する、ことと、
前記第1の処理装置が前記第2の電力モードにある間、前記処理装置を第2の仮想処理装置として提示することと、を含む、
請求項1の方法。
【請求項3】
前記第1のワークロードを、前記第1のワークロードに関連付けられたアプリケーションによって提供されたメタデータに基づいて識別することを含む、
請求項1又は2の方法。
【請求項4】
前記メタデータは、前記処理装置で実行される描画呼出の数、スレッドディスパッチの数、グラフィックスプリミティブの数、ワークグループの数、及び、シェーダ命令の数のうち少なくとも1つを示す、
請求項3の方法。
【請求項5】
前記第1のワークロードを識別することは、前記第1のワークロードを、前記アプリケーションによって経時的に提供される前記メタデータの平均に基づいて識別することを含む、
請求項3の方法。
【請求項6】
前記第1のワークロードを、前記第1のワークロードに関連付けられたアプリケーションの格納されたプロファイルに基づいて識別することを含む、
請求項1の方法。
【請求項7】
前記第1のワークロードを、前記第1のワークロードに関連付けられたアプリケーションの実行時プロファイルに基づいて識別することを含む、
請求項1の方法。
【請求項8】
前記処理要素の第1のサブセットを、ソフトウェア要求に基づいて選択することを含む、
請求項1の方法。
【請求項9】
前記処理要素の第1のサブセットを、プログラム可能な仮想処理装置プロファイルの集合から選択することを含む、
請求項1の方法。
【請求項10】
方法であって、
処理装置で実行される第1のワークロードに基づいて、処理装置を第1の構成に設定することと、
前記処理装置が前記第1の構成にある間、前記処理装置を第1の仮想処理装置としてデバイスドライバに提示することと、を含む、
方法。
【請求項11】
前記処理装置で実行される第2のワークロードに基づいて、前記処理装置を第2の構成に設定することと、
前記処理装置が前記第2の構成にある間、前記処理装置を第2の仮想処理装置として前記デバイスドライバに提示することと、を含む、
請求項10の方法。
【請求項12】
処理装置であって、
処理要素の集合と、
前記処理要素の集合の電力モードを制御するための電力制御モジュールと、
スケジューラと、を備え、
前記スケジューラは、
前記処理装置で実行される第1のワークロードを識別することに応じて、前記処理要素の集合を第1の電力モードで動作するように構成することであって、前記第1の電力モードは、前記処理要素の集合の第1のサブセットが低電力モードにあることに対応する、ことと、
前記処理要素の集合が前記第1の電力モードにある間、前記処理装置を第1の仮想処理装置として提示することと、
を行うように構成されている、
処理装置。
【請求項13】
前記スケジューラは、
前記処理装置で実行される第2のワークロードを識別することに応じて、前記処理要素の集合を第2の電力モードで動作するように構成することであって、前記第2の電力モードは、前記処理要素の集合の第2のサブセットが前記低電力モードにあることに対応する、ことと、
前記第1の処理装置が前記第2の電力モードにある間、前記処理装置を第2の仮想処理装置として提示することと、
を行うように構成されている、
請求項12の処理装置。
【請求項14】
前記スケジューラは、
前記第1のワークロードを、前記第1のワークロードに関連付けられたアプリケーションによって提供されたメタデータに基づいて識別するように構成されている、
請求項12又は13の処理装置。
【請求項15】
前記メタデータは、前記処理装置で実行される描画呼出の数、スレッドディスパッチの数、グラフィックスプリミティブの数、及び、ワークグループの数のうち少なくとも1つを示す、
請求項14の処理装置。
【請求項16】
前記スケジューラは、
前記第1のワークロードを、前記アプリケーションによって経時的に提供される前記メタデータの平均に基づいて識別するように構成されている、
請求項14の処理装置。
【請求項17】
前記スケジューラは、
前記第1のワークロードを、前記第1のワークロードに関連付けられたアプリケーションの格納されたプロファイルに基づいて識別するように構成されている、
請求項12の処理装置。
【請求項18】
前記スケジューラは、
前記第1のワークロードを、前記第1のワークロードに関連付けられたアプリケーションの実行時プロファイルに基づいて識別するように構成されている、
請求項12の処理装置。
【請求項19】
前記スケジューラは、
前記処理要素の第1のサブセットを、ソフトウェア要求に基づいて選択するように構成されている、
請求項12の処理装置。
【請求項20】
前記スケジューラは、
前記処理要素の第1のサブセットを、プログラム可能な仮想処理装置プロファイルの集合から選択するように構成されている、
請求項12の処理装置。
【発明の詳細な説明】
【背景技術】
【0001】
いくつかの処理システムは、処理効率を高めるために特別に設計及び構成された処理装置を用いており、汎用処理装置では、それほど効率的に実行されない特定のタスクを実行する。例えば、いくつかの処理システムは、1つ以上の中央処理装置(CPU)の代わりにグラフィックス及びベクトル処理動作を実行するように構成された1つ以上のグラフィックス処理装置(GPU)を用いる。CPUは、特定のコマンド(例えば、描画コマンド)をGPUに送り、GPUは、コマンドによって示されるグラフィックス又はベクトル処理動作を実行する。しかしながら、GPU又は他の処理装置の特別に設計及び構成された回路は、処理効率を向上させる一方で、場合によっては、システムリソースを望ましくないほど多く消費する。
【0002】
本開示は、添付の図面を参照することによってより良好に理解され、その数々の特徴及び利点が当業者に明らかになり得る。異なる図面における同じ符号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0003】
【
図1】いくつかの実施形態による、識別したワークロードに基づいて仮想GPUを提示するように構成されたグラフィックス処理装置(GPU)のブロック図である。
【
図2】いくつかの実施形態による、異なる識別したワークロードに基づいて異なる仮想GPUをデバイスドライバに提示する
図1のGPUの一例を示すブロック図である。
【
図3】いくつかの実施形態による、
図1のGPUにおけるワークロードを識別するために使用される様々なワークロード指標を示すブロック図である。
【
図4】いくつかの実施形態による、異なる識別したワークロードに基づいて異なる仮想処理装置をデバイスドライバに提示する方法を示すフロー図である。
【発明を実施するための形態】
【0004】
図1~
図4は、処理装置(processing unit)を、識別したワークロードに基づいて異なるように構成し、処理装置の各構成を異なる仮想処理装置としてソフトウェア(例えば、デバイスドライバ)に提示(exposing)するための技術を示す。これらの技術を用いることにより、処理システムは、様々な構成の処理装置を提供して様々な種類のワークロードをサポートすることができ、システムリソースを節約することができる。更に、処理システムは、様々な構成を様々な仮想処理装置として提示することによって、既存のデバイスドライバ又は他のシステムインフラストラクチャを用いて様々な処理装置構成を実装する。
【0005】
例示すると、いくつかの実施形態では、処理システムは、中央処理装置(CPU)のグラフィックス処理を実行するGPUを含む。CPUにおいて実行されるアプリケーションプログラムは、コマンド(例えば、描画コマンド)を送信し、このコマンドに基づいて、GPUは、コマンドによって示されるタスクを実行するための動作の集合(set of operations)を実行する。1つ以上のコマンドに対する動作の集合をワークロードと呼ぶ。場合によっては、ワークロード及び対応する動作は、異なるアプリケーション間で、又は、単一のアプリケーションの異なるフェーズ間で大きく変動する。更に、変動するワークロードの少なくとも一部は、GPUのリソースの少なくとも一部を生産的に使用することがない。したがって、GPUを異なる構成とすることによって、異なるワークロードの処理要件を満たすことができ、性能と電力消費とのバランスを改善することができる。
【0006】
本明細書の技術を用いて、GPUは、識別したワークロードに基づいて構成を変更することができ、それによって、所定のワークロードにGPUのリソースを適合させ、必要とされないリソースを節約する。例えば、いくつかの実施形態では、比較的軽いワークロード(例えば、必要なシェーディング動作が比較的少ないワークロード)の場合、GPUは、利用可能なワークグループプロセッサの比較的小さなサブセットのみがアクティブモードとなり、残りのワークグループプロセッサが低電力モードとなるように構成される。比較的重いワークロード(例えば、必要なシェーディング動作が多いゲームアプリケーション)の場合、GPUは、より多くのワークグループプロセッサがアクティブモードとなるように構成される。したがって、より軽いワークロードの場合、GPUは、ワークロードを満足のいくように実行するために十分なリソースを依然として提供しながら、電力及び他のシステムリソースを節約するように構成される。より重いワークロードの場合、GPUは、より多くのシステムリソースが利用可能となるように構成され、それによって、より重いワークロードを確実に満足のいくように実行する。したがって、GPUにおけるワークロードが変動するにつれて、GPUの構成が変動し、それによって満足のいく性能を維持しながらリソースを節約する。
【0007】
更に、GPUの各構成は、デバイスドライバ又は他のソフトウェアに仮想GPUとして提示される。これにより、デバイスドライバは、既存の通信プロトコル及び既存のコマンドを用いて、異なるGPU構成の各々と相互作用することが可能になる。すなわち、汎用デバイスドライバを、異なるGPU構成の各々と相互作用するように再設計又は変更する必要がなく、したがって、複数のGPU構成の全体的な実装が単純化する。
【0008】
いくつかの実施形態では、GPUは、アプリケーションによって提供されるワークロードメタデータ、オフラインアプリケーションプロファイリング、実行時プロファイリング、ソフトウェアヒント等の複数の因子のうち1つ以上、又は、それらの任意の組合せに基づいて、実行されるワークロードを識別する。例えば、いくつかの実施形態では、アプリケーションは、描画呼出(ドローコール)の数、ディスパッチの数、プリミティブの数、ワークグループの数、シェーダの複雑性等、又は、それらの組合せ等のように、ワークロードのリソース要件を示すメタデータを提供し、GPUは、このメタデータに基づいてワークロードを識別する。
【0009】
他の実施形態では、アプリケーションによって生成されたワークロードは、試験環境において識別及びプロファイリングされ、ワークロードプロファイルの集合として格納される。アプリケーションが非試験環境において実行される場合、GPUは、実行中のワークロードを識別するために、格納されたワークロードプロファイルの集合にアクセスする。
【0010】
更に他の実施形態では、GPUは、実行時にワークロードを動的に識別する。例えば、場合によっては、GPUは、キャッシュヒット、キャッシュミス、メモリアクセス、描画呼出の数、シェーダ命令等の情報をパフォーマンスカウンタの集合に記録する。GPUは、パフォーマンスカウンタ内の情報を使用して、実行中のワークロードをプロファイリングする。ワークロードがその後再び実行される場合、GPUは、このプロファイルを使用してGPU構成を決定する。
【0011】
いくつかの他の実施形態において、実行中のアプリケーションは、実行中のアプリケーションの種類を示すソフトウェアヒントを提供する。GPUは、アプリケーションタイプに基づいて、ワークロード及び対応する構成を識別する。例えば、アプリケーションタイプがゲームアプリケーションを示す場合、GPUは、典型的には、ワークロードを重いワークロードとして識別し、アクティブシステムリソースの数が比較的多い構成(例えば、多数のワークグループプロセッサがアクティブモードである)を採用する。アプリケーションタイプがワードプロセッシングアプリケーションを示す場合、GPUは、ワークロードを比較的軽いワークロードとして識別し、アクティブシステムリソースの数が比較的少ない構成(例えば、比較的多数のワークグループプロセッサが低電力モードである)を採用する。
【0012】
上記の例及び以下の
図1~
図4について説明する例示的な実施形態は、GPUに関連して説明しているが、他の実施形態では、本明細書に記載の技術が、ベクトル処理装置、並列プロセッサ、機械学習処理装置、単一命令複数データ(SIMD)処理装置、人工知能処理装置等の様々な種類の処理装置において実施されることが理解されるであろう。
【0013】
いくつかの実施形態では、GPUの様々な構成はプログラム可能であり、したがって、オペレーティングシステム又はCPUで実行されるアプリケーションによって調整することができる。これにより、ソフトウェア開発者は、アプリケーションのリソースニーズに従ってGPUの構成を制御すること、又は、アプリケーションの様々なフェーズのためにGPU構成を調整することが可能になる。更に、いくつかの実施形態では、ユーザは、グラフィカルユーザインターフェース(GUI)又は他のインターフェースを介して構成を調整し、個々のユーザの目的に構成を適合させることができる。例えば、より多くの電力節約を望むユーザ(ラップトップシステムのユーザ等)は、使用するシステムリソースをより少なくするように構成を調整することによって、1つ以上の構成によって消費される電力量を減少させる。
【0014】
上記の例及び以下の
図1~
図4について説明する例示的な実施形態は、GPUに関連して説明しているが、他の実施形態では、本明細書に記載の技術が、ベクトル処理装置、並列プロセッサ、機械学習処理装置、単一命令複数データ(SIMD)処理装置、人工知能処理装置等の様々な種類の処理装置において実施されることが理解されるであろう。
【0015】
図1は、いくつかの実施形態による、識別したワークロードに基づいて仮想GPUを提示するように構成されたGPU100を示す。GPUは、1つ以上の中央処理装置(CPU)を有する処理システムに組み込まれ、1つ以上のCPUから受信したコマンドに基づいてグラフィックス処理を実行する。したがって、異なる実施形態では、GPU100は、デスクトップコンピュータ、ラップトップコンピュータ、サーバ、タブレット、スマートフォン、ゲームコンソール等の様々な電子デバイスのうち何れかの一部である。
【0016】
GPU100は、概して、デバイスドライバ103から受信したコマンド(例えば、描画コマンド)を実行するように構成される。いくつかの実施形態では、デバイスドライバ103は、CPUで実行されるソフトウェアであり、GPUと、CPUにおける1つ以上のアプリケーションと、のインターフェースを提供する。例えば、いくつかの実施形態では、CPUは、オペレーティングシステム(OS)及び1つ以上のアプリケーションを実行する。アプリケーションは、OSを介してデバイスドライバ103にコマンドを提供する。デバイスドライバ103は、このコマンドをGPU100が期待するフォーマットに変換する。このように、デバイスドライバ103は、GPU100と、CPUで実行されるアプリケーションと、の間の抽象化層を提供する。
【0017】
受信されたコマンドの実行をサポートするために、GPU100は、スケジューラ102と、シェーダエンジン105及び106と、を含む。いくつかの実施形態では、GPU100は、GPU100のメモリ階層をサポートするためのメモリモジュール(例えば、キャッシュの集合)、受信されるコマンドの受信及び実行を管理するためのコマンドプロセッサ、シェーダエンジン105及び106に追加する処理要素等のように、受信されるコマンドの実行をサポートするための追加の回路及びモジュールを含むことが理解されよう。更に、特定のモジュールに関して本明細書で説明される機能の1つ以上は、いくつかの実施形態では、異なる回路又はモジュールによって実行されることが理解されよう。例えば、いくつかの実施形態では、スケジューラ102は、GPU100のコマンドプロセッサの一部であり、スケジューラ102に関して本明細書で説明される機能のうち1つ以上は、コマンドプロセッサの別のモジュールによって実行される。
【0018】
スケジューラ102は、概して、デバイスドライバ103からコマンドを受信し、シェーダエンジン105及び106の処理要素で実行するための1つ以上の動作の集合を生成するように構成される。スケジューラ102が1つ以上のコマンドに基づいて実行用に生成する動作の集合を、本明細書においてGPU100のワークロードと呼ぶ。したがって、スケジューラ102は、デバイスドライバ103から受信したコマンドに基づいて、シェーダエンジン105及び106で実行するための1つ以上のワークロードを生成し、1つ以上のワークロードの動作をスケジューリングする。いくつかの実施形態では、スケジューラは、汎用デバイスドライバによってコマンド内に挿入された1つ以上のトークン、例えば、画像フレーム境界に基づく1つ以上のトークンに基づいて、所定のワークロードの開始又は終了を識別する。
【0019】
シェーダエンジン105及び106は、スケジューラ102から受信したワークロードに基づいてシェーディング及び他のグラフィックス処理を実行するようにそれぞれ構成されたモジュールの集合である。いくつかの実施形態では、シェーダエンジンの各々は、複数のワークグループプロセッサ(WGP)を含み、各WGPは、受信したデータに対してプログラム可能並列演算(例えば、ベクトル算術演算)を実行するように構成された複数の計算ユニットを含む。例えば、いくつかの実施形態において、各計算ユニットは、受信したデータの集合に対してプログラム可能な並列演算を実行するように構成された複数の単一命令複数データ(SIMD)ユニットを含む。WGP、計算ユニット及びSIMDユニットは、本明細書では概して処理要素と呼ばれる。いくつかの実施形態では、シェーダエンジンの各々は、上述した処理要素に加えて、グラフィックスプリミティブ動作を実行するためのプリミティブユニット、ラスタライザ、1つ以上のレンダーバックエンド、及び、処理要素のためのデータを格納する1つ以上のキャッシュ等のような追加のモジュールを含む。
【0020】
いくつかの実施形態では、シェーダエンジン105及び106の処理要素のうち1つ以上を複数の電力モードにすることができ、各電力モードは、処理要素での異なる電力消費の水準と、それに対応する処理能力の水準と、を表す。例えば、いくつかの実施形態では、各シェーダエンジンのWGPを独立してアクティブモードにすることができ、このモードにおいて、WGPは通常の処理動作を実行することが可能であり、電力消費量は比較的多く、また、各シェーダエンジンのWGPを独立して低電力モードにすることができ、このモードにおいて、WGPは通常の処理動作を実行することはできないが、電力消費量が比較的少ない。いくつかの実施形態では、WGPが低電力モードにされると、WGPのモジュールが電力ゲートされ、電圧レールからの電力がWGPモジュールに印加されない。
【0021】
異なる処理要素の電力モードは、スケジューラ102から提供される制御シグナリングに基づいて、電力制御モジュール108によって制御される。したがって、いくつかの実施形態では、シェーダエンジン105及び106の各WGPの電力モードは、スケジューラ102によって制御される制御シグナリングによって個別に設定される。こうして、場合によっては、シェーダエンジン105及び106の少なくとも一方のWGPがアクティブモードに設定され、少なくとも一方の他のWGPが低電力モードに設定され、その結果、異なるWGPがそれぞれ同時にアクティブモード及び低電力モードになる。いくつかの実施形態において、電力制御モジュール108は、処理要素の様々な粒度段階に対して電力モードを設定する。したがって、いくつかの実施形態では、電力制御モジュール108は、WGP、計算ユニット、SIMDユニット若しくは他の段階において、又は、それらの任意の組合せにおいて電力モードを設定する。説明のために、電力制御モジュール108が電力モードをWGPの段階において設定すると仮定する。
【0022】
いくつかの実施形態では、スケジューラ102は、デバイスドライバ103によって提供される又は提供されると予想されるワークロードを、ワークロード指標107の集合に基づいて識別するように構成される。異なる実施形態では、ワークロード指標107は、アプリケーションによって提供されるワークロードメタデータ、オフラインアプリケーションプロファイリング情報、実行時プロファイリング情報、ソフトウェアヒント等の異なる因子、又は、それらの任意の組合せ等を含むか組み込む。例えば、いくつかの実施形態では、デバイスドライバ103は、実行されるワークロードについて、描画呼出の数、ディスパッチの数、プリミティブの数、ワークグループの数等、又は、それらの組合せ等のような、ワークロードの予想処理要求を示すメタデータを提供する。
【0023】
いくつかの実施形態では、ワークロード指標107は、現在の実行されるワークロードの指標ではなく、むしろ将来GPU100で実行されることが予想されるワークロードに関するヒントである。例えば、いくつかの実施形態において、スケジューラ102は、特定のプログラムから受信したワークロードのパターンを記録する。これらのパターンに基づいて、スケジューラ102は、将来実行されることが予想されるワークロードを示すワークロード指標107を生成する。例えば、ワークロードAの実行後にワークロードBが頻繁に実行されることをパターンが示す場合、スケジューラ102は、ワークロードAの実行に応じて、ワークロードBを示すようにワークロード指標107を設定する。
【0024】
識別したワークロードに基づいて、スケジューラ102は、電力制御モジュール108に制御シグナリングを供給し、シェーダエンジン105及び106の各WGPの電力モードを設定する。例えば、いくつかの実施形態では、予想されるワークロードが、効率的な実行のために処理電力量を比較的多く必要とするものであることをワークロード指標107が示す場合、スケジューラ102は、電力制御モジュール108に指示して、より多数のWGPをアクティブモードに設定する。対照的に、予想されるワークロードが、より少ない処理電力量を必要とするものであることをワークロード指標107が示す場合、スケジューラ102は、電力制御モジュール108に指示して、より少数のWGPをアクティブモードに設定し、より多数のWGPを低電力モードに設定して電力を節約する。説明を容易にするために、シェーダ105及び106の処理要素の特定の設定を、本明細書ではシェーダの「電力構成」と呼ぶ。したがって、スケジューラ102は、ワークロード指標107に基づいて、シェーダ105及び106の電力構成を設定するように構成される。例えば、いくつかの実施形態では、WGPが特定のシェーダ配列にグループ化され、シェーダ配列が特定のシェーダエンジンにグループ化される。シェーダ配列内の全てのWGPが低電力モードにされる場合、シェーダ配列全体(WGPに作業を提供する、又は、別途WGPをサポートするために使用される任意のロジックを含む)も低電力モードにされて電力を節約する。
【0025】
電力構成は、GPU100でワークロードを処理するために利用可能なリソースを設定する。少なくともいくつかの場合において、デバイスドライバ103は、GPU100において利用可能なリソースを認識していることが望ましく、その結果、デバイスドライバ103は、GPUで実行するアプリケーションにおいて、それらのリソース間のインターフェースを提供するように適切に構成される。こうして、スケジューラ102がワークロード指標107に基づいてシェーダ105及び106の電力構成を設定するため、デバイスドライバ103には、設定された特定の電力構成を通知することが有用であり、また、デバイスドライバ103を、利用可能なリソースを使用するように構成することが有用である。この通知及び構成の過程を簡略化するために、いくつかの実施形態では、GPUは、仮想GPU(vGPU)110の集合を格納する。各vGPU(例えば、vGPU111、112)は、シェーダエンジン105及び106の異なる電力構成のために利用可能なリソースを示すデータの集合である。
【0026】
シェーダエンジン105及び106における特定の電力構成の設定に応じて、スケジューラ102は、vGPU110の集合から対応するvGPUを選択し、選択されたvGPUとしてGPU100をデバイスドライバ103に提示する。すなわち、スケジューラ102は、選択されたvGPUをデバイスドライバ103に通知し、その結果、デバイスドライバ103にとって、GPU100は、あたかもGPU100が、選択されたvGPUによって示されるリソースのみを有する物理GPUであるかのように見える。例えば、選択されたvGPUにおいては、低電力モードにある処理要素が示されないため、これらの処理要素は、デバイスドライバ103には物理的に利用可能に見えない。
【0027】
更に説明すると、いくつかの実施形態において、デバイスドライバ103は、GPUのリストと、リスト内の各GPUに関連付けられた対応するリソースと、を維持する。更に、デバイスドライバ103は、リストに各GPUのデバイスIDを含める。デバイスドライバ103は、ドライバリセットに応じて、デバイスIDのクエリをGPU100に送信する。これに応じて、スケジューラ102は、選択されたvGPUに対応するデバイスIDを提供する。したがって、GPU100は、デバイスドライバ103にとっては、提供されたデバイスIDによって示されるリソースを有する物理GPUであるように見える。例えば、いくつかの実施形態では、マイクロコントローラ、ハイパーバイザ又はシステムソフトウェアで実行するファームウェア等のモジュールが、選択されたvGPUに対する要求を受信し、動作させるvGPUを準備する。モジュールは、現在の構成が要求されたvGPUと一致しない場合にGPUをリセットし、GPU100のパラメータを再構成して、選択されたvGPUのパラメータと一致させる。次いで、モジュールは、vGPUがコマンドを受け入れる準備ができていることをデバイスドライバ103に通知する。異なる電力構成の各々をvGPUとして提示することによって、GPU100は、デバイスドライバ103の広範な再設計を必要とせずに複数の異なる電力構成を用いることができ、それによって異なる構成の実装が単純化される。
【0028】
図2は、いくつかの実施形態による、識別した異なるワークロードに基づいて、異なるvGPUをデバイスドライバ103に提示するGPU100の一例を示すブロック図を示す。
図2の例では、シェーダエンジン105の各々は、シェーダエンジン105用のWGP221及びWGP222、並びに、シェーダエンジン106用のWGP223及びWGP224と呼ばれる2つの異なるWGPを含む。
図2は、2つの異なる時刻216及び217におけるGPU100の2つの異なる電力構成を示す。各WGPの電力モードは、対応するボックスの網掛けによって示され、クリア(白色)の網掛けは、WGPがアクティブパワーモードにあることを示し、グレーの網掛けは、WGPが低電力モードにあることを示す。
【0029】
図示した例では、時刻216又はその付近で、スケジューラ102は、ワークロード指標107に基づいてワークロード220を識別する。選択された電力構成は、WGP221がアクティブモードに設定され、WGP222、223、224が低電力モードに設定されるようになっている。このように、時刻216において、ワークロード指標107は、要求されるシェーダエンジン105及び106の処理要素が比較的少ないと予想されるワークロード(ワークロード220)を示して、ワークロードが効率的に実行されるようにする。したがって、スケジューラ102は、比較的多数の処理要素が低電力モードとなるGPU100の電力構成を選択し、それによって、ワークロード220を効率的に処理するための十分なリソースを提供しながら電力を節約する。
【0030】
いくつかの実施形態では、スケジューラ102は、いくつかのエントリを有するテーブルを格納し、各エントリは、ワークロード識別子、ワークロード識別子に対応するワークロード指標の集合(又はワークロード指標範囲)、及び、電力構成を含む。スケジューラ102は、電力構成を選択するために、ワークロード指標107に対応するテーブルのエントリを識別する。すなわち、スケジューラ102は、ワークロード指標107と一致するワークロード指標の集合を格納するテーブルのエントリ、又は、ワークロード指標107がエントリのワークロード指標の集合によって示される範囲に入るエントリを識別する。次いで、スケジューラ102は、識別したエントリに格納された電力構成を選択する。いくつかの実施形態では、テーブルは、デバイスドライバ103又は他のソフトウェアによってプログラム可能である。これにより、例えば、アプリケーションは、所定のワークロード又は所定のワークロードの種類に対して特定の電力構成を選択することができ、その結果、アプリケーションは、特定のアプリケーションに基づいてGPUの性能及び電力消費を適合させることができる。
【0031】
上述したように、時刻216において、スケジューラ102は、WGP221がアクティブモードに設定され、WGP222、223、224が低電力モードに設定されるように、GPU100の電力構成を選択する。スケジューラ102は、制御シグナリングを電力制御モジュール108に提供して、WGP221から224を示された電力モードに設定する。加えて、スケジューラ102は、vGPU111が選択された電力構成に対応すると判定して、GPU100をvGPU111としてデバイスドライバ103に提示する。例えば、いくつかの実施形態では、スケジューラ102の上記のテーブルの各エントリは、そのエントリに関連付けられた電力構成に対応するvGPU識別子を示す。エントリを選択し、GPU100を対応する電力構成に設定することに応じて、スケジューラ102は、リセット信号をデバイスドライバ103に送信し、ドライバリセットを開始する。ドライバリセット中、デバイスドライバ103は、GPU100のデバイスタイプを識別するために、スケジューラ102にクエリを送信する。それに応じて、スケジューラ102は、vGPU111の識別子をデバイスドライバ103に提供する。こうして、デバイスドライバ103には、GPU100が、アクティブ電力モードのリソースに対応したリソースを有する物理GPUとして見える。すなわち、デバイスドライバ103には、GPU100が、WGP221を有し、WGP222、223、224を有しないGPUとして見える。
【0032】
時刻216に続き、時刻217では、スケジューラ102は、異なるワークロード(指定ワークロード225)がGPU100で実行されるようにワークロード指標107が変化したと判定する。ワークロード225は、ワークロード225と比べてより多くの処理リソースを要求する。したがって、スケジューラ102は、ワークロード指標107に基づいて、WGP222が低電力モードとなり、WGP221、223、224がアクティブモードとなるように、GPU100の電力構成を選択する。
【0033】
ワークロード225の電力構成の選択に応じて、スケジューラ102は、選択された電力構成に対応した、指定されたvGPU112であるvGPUを選択する。スケジューラ102は、デバイスドライバ103にリセット信号を送信し、ドライバリセットを開始する。ドライバリセット中に、スケジューラ102は、vGPU112の識別子をデバイスドライバ103に提供する。したがって、WGP221、223、224がアクティブモードにあるため、デバイスドライバ103には、GPU100がこれらを有する物理GPUのように見え、また、WGP222が低電力モードにあるため、これを有しない物理GPUのように見える。
【0034】
したがって、
図2の例によって示されるように、いくつかの実施形態において、スケジューラ102は、実行されるワークロードに基づいてGPU100の電力構成を変更する。更に、異なる電力構成ごとに、GPU100は、異なる仮想GPUとしてデバイスドライバ103に提示される。すなわち、デバイスドライバ103には、GPU100は、異なる電力構成ごとに異なる物理GPUとして見える。これにより、異なる電力構成を認識しない、又は、それに対応するように特別に設計されていないデバイスドライバを用いたシステムであっても、GPUの電力構成を変更することが可能になる。
【0035】
図3は、いくつかの実施形態による、ワークロード指標107の一例を示す。図示した例では、ワークロード指標107は、ワークロードプロファイル330、アプリケーションタイプ331、ソフトウェアヒント332、実行時プロファイル333及びワークロードメタデータ334を含む。ワークロードプロファイル330は、1つ以上のワークロードについて試験環境で収集されたデータを含む。例えば、いくつかの実施形態において、GPU100、又は、GPU100と同様の設計のGPUを処理システム試験環境に配置し、1つ以上のアプリケーションを処理システムにおいて実行することによって、GPUでの1つ以上のワークロードを生成する。処理システムは、1つ以上のワークロードを示すデータをワークロードプロファイル330として記録し、ワークロードプロファイル330のコピーが、GPU100の製造及び初期構成中にGPU100に格納される。
【0036】
例えば、いくつかの実施形態では、ワークロードプロファイル330は、ワークロード識別子(ID)のリストとして格納され、異なるワークロードIDが、「軽い」ワークロード(試験環境で、比較的少ない処理リソースを要求すると示されたワークロード)及び「重い」ワークロード(試験環境で、比較的多くの処理リソースを要求すると示されたワークロード)等の分類に編成される。ワークロードがGPU100で実行される場合、スケジューラ102は、ワークロードのワークロードIDを識別し、ワークロードプロファイル330に基づいて、実行されるワークロードが軽いワークロード又は重いワークロードに分類されるか判定する。ワークロードが重いワークロードに指定されているという判定に応じて、スケジューラ102は、より多数の処理要素をアクティブモードにする電力構成を選択する。ワークロードが軽いワークロードに指定されているという判定に応じて、スケジューラ102は、より多数の処理要素をアクティブモードにする電力構成を選択する。
【0037】
アプリケーションタイプ331は、様々なアプリケーションタイプに関連付けられた予想ワークロードを示すデータの集合である。例えば、いくつかの実施形態では、アプリケーションタイプは、様々な種類のアプリケーションのリストを格納し、この様々な種類のアプリケーションは、軽いワークロードと重いワークロードに分類される。アプリケーションが実行を開始すると、デバイスドライバ103は、アプリケーションタイプをスケジューラ102に示す。例えば、いくつかの実施形態では、ゲームアプリケーションが重いワークロードアプリケーションとして分類され、ワードプロセッサが軽いワークロードアプリケーションとして分類される。アプリケーションタイプを示すデバイスドライバ103に応じて、スケジューラ102は、アプリケーションタイプ331にアクセスして、アプリケーションタイプが軽いワークロード又は重いワークロードに関連付けられているかどうかを判定し、判定に基づいて電力構成を選択する。重いワークロード分類及び軽いワークロード分類は単なる例であり、他の実施形態では、異なるワークロード指標107は、軽いワークロード、中程度のワークロード及び重いワークロード等のように、より多くのワークロード分類を反映することが理解されよう。
【0038】
ソフトウェアヒント332は、GPU100で実行される予想ワークロードに関して、ソフトウェアによって提供されるヒントを示すデータを格納する。例えば、いくつかの実施形態では、GPUで実行されるソフトウェアは、デバイスドライバ103を介して、予想ワークロードに関するヒントをスケジューラ102に提供し、ヒントは、予想ワークロードが重いワークロードであるか軽いワークロードであるかを示す。このヒントに基づいて、スケジューラ102は、GPU100の電力構成を選択する。いくつかの実施形態では、所定のアプリケーションは、GPU100における予想ワークロードが変化するにつれて、異なるヒントをスケジューラ102に提供する。
【0039】
実行時プロファイル333は、異なるワークロードの実行中にGPU100に記録された性能情報を反映するデータの集合である。例えば、いくつかの実施形態では、GPU100は、キャッシュヒット、メモリアクセス、動作ディスパッチ、実行サイクル等、又は、それらの任意の組合せ等の性能情報を記録する性能カウンタの集合を含む。所定のワークロード(例えば、特定の描画コマンドに基づくワークロード)が実行されると、スケジューラ102は、性能カウンタに性能データを記録し、次に、実行時プロファイル333にワークロードのその性能データを格納する。ワークロードが再び実行される場合、スケジューラ102は、実行時プロファイル333に格納されたワークロードの性能データを使用して、ワークロードが重いワークロードであるか軽いワークロードであるか等のように、ワークロードの種類を判定する。例えば、いくつかの実施形態では、スケジューラ102は、性能データを1つ以上の指定された又はプログラム可能な閾値と比較し、その比較に基づいて、ワークロードを重いワークロード及び軽いワークロードのうち何れか一方に分類する。次いで、スケジューラ102は、ワークロード分類に基づいて電力構成を選択する。
【0040】
ワークロードメタデータ334は、GPU100において実行されるワークロードの予想リソース要件を示すデータを格納する。いくつかの実施形態では、ワークロードメタデータは、実行中のアプリケーションから、デバイスドライバ103を介して提供される。例えば、いくつかの実施形態では、アプリケーションは、所定のワークロードについて、描画呼出の数、ディスパッチの数、プリミティブの数、ワークグループの数等、又は、それらの任意の組合せを示す。いくつかの実施形態では、スケジューラ102は、ワークロードのリソース要求をより良好に提示するために、複数の作業単位(例えば、所定のワークロードの複数回の実行)のワークロードメタデータ334を平均化する。スケジューラ102は、ワークロードメタデータ334を1つ以上の指定された又はプログラム可能な閾値と比較し、ワークロードの分類(例えば、軽いワークロード又は重いワークロード)を判定し、次いで、判定された分類に基づいてGPU100の電力構成を選択する。
【0041】
異なる種類のワークロード指標107が個別に上述されているが、いくつかの実施形態では、スケジューラ102は、異なる種類の指標の組合せを用いて、実行中のワークロードの種類を判定することが理解されよう。例えば、いくつかの実施形態では、スケジューラ102は、ワークロードメタデータ334及びアプリケーションタイプ331の両方を使用して、実行されるワークロードの種類を判定し、判定された種類に基づいてGPU100の電力構成を選択する。
【0042】
図4は、いくつかの実施形態による、異なる識別したワークロードに基づいて異なる仮想処理装置をデバイスドライバに提示する方法400のフロー図である。方法400は、
図1のGPU100における例示的な実装に関して記述されている。しかしながら、他の実施形態では、方法400は、異なる種類の処理装置又は異なる構成を有する処理装置において実施される。
【0043】
ブロック402では、スケジューラ102は、ワークロード指標107に基づいて、GPU100において実行されるワークロードを判定する。例えば、いくつかの実施形態では、スケジューラ102は、ワークロード指標107に基づいて、ワークロードが重いワークロードであるか軽いワークロードであるか等のように、実行されるワークロードの分類を判定する。
【0044】
ブロック404では、スケジューラ102は、ワークロードに基づいて、GPU100の電力構成を選択し、選択された電力構成に基づいて、制御シグナリングを電力制御モジュール108へ送信し、シェーダエンジン105及び106の各処理要素の電力モードを設定する。例えば、いくつかの実施形態では、ブロック402において、スケジューラ102が、実行されるワークロードを軽いワークロードと判定した場合、スケジューラ102は、シェーダエンジン105及び106のより少数のWGPがアクティブモードにされ、残りのWGPが低電力モードに設定される電力構成を選択する。スケジューラ102が、実行されるワークロードを重いワークロードと判定した場合、スケジューラ102は、シェーダエンジン105及び106のより多数のWGPがアクティブモードにされ、残りのWGPが低電力モードに設定される電力構成を選択する。
【0045】
ブロック406において、スケジューラ102は、ブロック404で選択された電力構成に対応するvGPUを、仮想GPU110から選択する。ブロック408において、スケジューラ102は、選択されたvGPUをデバイスドライバ103に提示する。例えば、いくつかの実施形態では、スケジューラ102は、デバイスドライバ103にリセット指示を送信し、ドライバリセットを行う。ドライバリセット処理中に、デバイスドライバ103は、GPU100のデバイス識別子を要求する。それに応じて、スケジューラ102は、選択されたvGPUの識別子を提供し、その結果、デバイスドライバ103には、GPU100がアクティブモードにある処理要素のみを有する物理GPUとして見える。
【0046】
本明細書で開示されるように、いくつかの実施形態では、方法は、処理装置で実行される第1のワークロードを識別することに応じて、処理装置を第1の電力モードで動作するように構成することであって、第1の電力モードは、低電力モードにある処理装置の処理要素の第1のサブセットに対応する、ことと、処理装置が第1の電力モードにある間、処理装置を第1の仮想処理装置として提示することと、を含む。一様態では、方法は、処理装置で実行される第2のワークロードを識別することに応じて、第1の処理装置を第2の電力モードで動作するように構成することであって、第2の電力モードは、低電力モードにある処理装置の処理要素の第2のサブセットに対応する、ことと、第1の処理装置が第2の電力モードにある間、処理装置を第2の仮想処理装置として提示することと、を含む。別の態様では、本方法は、第1のワークロードを、第1のワークロードに関連付けられたアプリケーションによって提供されたメタデータに基づいて識別することを含む。更に別の態様では、メタデータは、処理装置で実行される描画呼出の数、スレッドディスパッチの数、グラフィックプリミティブの数、ワークグループの数及びシェーダ命令のうち少なくとも1つを示す。
【0047】
一態様では、第1のワークロードを識別することは、第1のワークロードを、アプリケーションによって経時的に提供されたメタデータの平均に基づいて識別することを含む。別の態様では、本方法は、第1のワークロードを、第1のワークロードに関連付けられたアプリケーションの格納プロファイルに基づいて識別することを含む。更に別の態様では、本方法は、第1のワークロードを、第1のワークロードに関連付けられたアプリケーションの実行時プロファイルに基づいて識別することを含む。更に別の態様では、本方法は、処理要素の第1のサブセットを、ソフトウェア要求に基づいて選択することを含む。別の態様では、本方法は、処理要素の第1のサブセットを、プログラム可能な仮想処理装置プロファイルの集合から選択することを含む。
【0048】
いくつかの実施形態では、方法は、処理装置を、処理装置で実行される第1のワークロードに基づいて第1の構成に設定することと、処理装置が第1の構成にある間、処理装置を第1の仮想処理装置としてデバイスドライバに提示することと、を含む。別の様態では、方法は、処理装置を、処理装置で実行される第2のワークロードに基づいて第2の構成に設定することと、処理装置が第2の構成にある間、処理装置を第2の仮想処理装置としてデバイスドライバに提示することと、を含む。
【0049】
いくつかの実施形態では、処理装置は、処理要素の集合と、処理要素の集合の電力モードを制御する電力制御モジュールと、スケジューラと、を含み、スケジューラは、処理装置で実行される第1のワークロードを識別することに応じて、処理要素の集合を第1の電力モードで動作するように構成することであって、第1の電力モードは、低電力モードにある処理要素の集合の第1のサブセットに対応する、ことと、処理要素の集合が第1の電力モードにある間、処理装置を第1の仮想処理装置として提示することと、を行うように構成されている。一様態では、スケジューラは、処理装置で実行される第2のワークロードを識別することに応じて、処理要素の集合を第2の電力モードで動作するように構成することであって、第2の電力モードは、低電力モードにある処理要素の集合の第2のサブセットに対応する、ことと、第1の処理装置が第2の電力モードにある間、処理装置を第2の仮想処理装置として提示することと、を行うように構成されている。
【0050】
一態様では、スケジューラは、第1のワークロードを、第1のワークロードに関連付けられたアプリケーションによって提供されるメタデータに基づいて識別するように構成されている。別の態様では、メタデータは、処理装置で実行される描画呼出の数、スレッドディスパッチの数、グラフィックスプリミティブの数及びワークグループの数のうち少なくとも1つを示す。更に別の態様では、スケジューラは、第1のワークロードを、アプリケーションによって経時的に提供されたメタデータの平均に基づいて識別するように構成されている。
【0051】
一態様では、スケジューラは、第1のワークロードを、第1のワークロードに関連付けられたアプリケーションの格納プロファイルに基づいて識別するように構成されている。別の態様では、スケジューラは、第1のワークロードを、第1のワークロードに関連付けられたアプリケーションの実行時プロファイルに基づいて識別するように構成されている。更に別の態様では、スケジューラは、処理要素の第1のサブセットを、ソフトウェア要求に基づいて選択するように構成されている。更に別の態様では、スケジューラは、処理要素の第1のサブセットを、プログラム可能な仮想処理装置プロファイルの集合から選択するように構成されている。
【0052】
いくつかの実施形態では、上述した技術の特定の態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装される。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶されるか、別の方法で明確に具体化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、命令及び特定のデータを含んでもよく、当該命令及び特定のデータは、1つ以上のプロセッサによって実行されると、上述した技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する。非一時的なコンピュータ可読記憶媒体は、例えば、磁気又は光ディスク記憶デバイス、フラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス(単数又は複数)等を含み得る。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈され若しくは別の方法で実行可能な他の命令形式で実装可能である。
【0053】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0054】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【手続補正書】
【提出日】2024-03-18
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
処理装置で実行される第1のワークロードを識別することに応じて、前記処理装置を第1の電力モードで動作するように構成することであって、前記第1の電力モードは、前記処理装置の処理要素の第1のサブセットが低電力モードにあることに対応する、ことと、
前記処理装置が前記第1の電力モードにある間、前記処理装置を第1の仮想処理装置として提示することと、を含む、
方法。
【請求項2】
前記処理装置で実行される第2のワークロードを識別することに応じて、前記第1の処理装置を第2の電力モードで動作するように構成することであって、前記第2の電力モードは、前記処理装置の処理要素の第2のサブセットが前記低電力モードにあることに対応する、ことと、
前記第1の処理装置が前記第2の電力モードにある間、前記処理装置を第2の仮想処理装置として提示することと、を含む、
請求項1の方法。
【請求項3】
前記第1のワークロードを、前記第1のワークロードに関連付けられたアプリケーションによって提供されたメタデータに基づいて識別することを含む、
請求項1又は2の方法。
【請求項4】
前記メタデータは、前記処理装置で実行される描画呼出の数、スレッドディスパッチの数、グラフィックスプリミティブの数、ワークグループの数、及び、シェーダ命令の数のうち少なくとも1つを示す、
請求項3の方法。
【請求項5】
前記第1のワークロードを識別することは、前記第1のワークロードを、前記アプリケーションによって経時的に提供される前記メタデータの平均に基づいて識別することを含む、
請求項3の方法。
【請求項6】
前記第1のワークロードを、前記第1のワークロードに関連付けられたアプリケーションの格納されたプロファイルに基づいて識別することを含む、
請求項1の方法。
【請求項7】
前記第1のワークロードを、前記第1のワークロードに関連付けられたアプリケーションの実行時プロファイルに基づいて識別することを含む、
請求項1の方法。
【請求項8】
前記処理要素の第1のサブセットを、ソフトウェア要求に基づいて選択することを含む、
請求項1の方法。
【請求項9】
前記処理要素の第1のサブセットを、プログラム可能な仮想処理装置プロファイルの集合から選択することを含む、
請求項1の方法。
【請求項10】
処理装置であって、
処理要素の集合と、
前記処理要素の集合の電力モードを制御するための電力制御モジュールと、
スケジューラと、を備え、
前記スケジューラは、
前記処理装置で実行される第1のワークロードを識別することに応じて、前記処理要素の集合を第1の電力モードで動作するように構成することであって、前記第1の電力モードは、前記処理要素の集合の第1のサブセットが低電力モードにあることに対応する、ことと、
前記処理要素の集合が前記第1の電力モードにある間、前記処理装置を第1の仮想処理装置として提示することと、
を行うように構成されている、
処理装置。
【請求項11】
前記スケジューラは、
前記処理装置で実行される第2のワークロードを識別することに応じて、前記処理要素の集合を第2の電力モードで動作するように構成することであって、前記第2の電力モードは、前記処理要素の集合の第2のサブセットが前記低電力モードにあることに対応する、ことと、
前記第1の処理装置が前記第2の電力モードにある間、前記処理装置を第2の仮想処理装置として提示することと、
を行うように構成されている、
請求項
10の処理装置。
【請求項12】
前記スケジューラは、
前記第1のワークロードを、前記第1のワークロードに関連付けられたアプリケーションによって提供されたメタデータに基づいて識別するように構成されている、
請求項
10の処理装置。
【請求項13】
前記メタデータは、前記処理装置で実行される描画呼出の数、スレッドディスパッチの数、グラフィックスプリミティブの数、及び、ワークグループの数のうち少なくとも1つを示す、
請求項
12の処理装置。
【請求項14】
前記スケジューラは、
前記第1のワークロードを、前記アプリケーションによって経時的に提供される前記メタデータの平均に基づいて識別するように構成されている、
請求項
12の処理装置。
【請求項15】
前記スケジューラは、
前記第1のワークロードを、前記第1のワークロードに関連付けられたアプリケーションの格納されたプロファイルに基づいて識別するように構成されている、
請求項
10の処理装置。
【国際調査報告】