JP2022539504A - 性能保証された電力管理を用いるリアルタイムgpuレンダリング - Google Patents
性能保証された電力管理を用いるリアルタイムgpuレンダリング Download PDFInfo
- Publication number
- JP2022539504A JP2022539504A JP2021573929A JP2021573929A JP2022539504A JP 2022539504 A JP2022539504 A JP 2022539504A JP 2021573929 A JP2021573929 A JP 2021573929A JP 2021573929 A JP2021573929 A JP 2021573929A JP 2022539504 A JP2022539504 A JP 2022539504A
- Authority
- JP
- Japan
- Prior art keywords
- rendering tasks
- performance setting
- processor
- rendering
- next video
- 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.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 90
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000015654 memory Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000003247 decreasing effect Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 9
- 230000007423 decrease Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7814—Specially adapted for real time processing, e.g. comprising hardware timers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2310/00—Command of the display device
- G09G2310/08—Details of timing specific for flat panels, other than clock recovery
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0261—Improving the quality of display appearance in the context of movement of objects on the screen or movement of the observer relative to the screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/021—Power management, e.g. power saving
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/08—Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Sources (AREA)
Abstract
性能保証された電力管理を用いるリアルタイムビデオレンダリングを実行するためのシステム、装置及び方法が開示される。システムは、少なくとも、ソフトウェアドライバと、電力管理ユニットと、レンダリングタスクを実行する複数の処理要素と、を含む。システムは、実行される必要のあるレンダリングタスクに対応する入力を受信する。ソフトウェアドライバは、受信した入力と、それらが対応するレンダリングタスクの数と、を監視する。また、ソフトウェアドライバは、次のビデオ同期信号までの残り時間を監視する。ソフトウェアドライバは、次のビデオ同期信号の前に現在のフレームのレンダリングタスクを終了するのに十分な時間を引き続き確保しながら消費電力を最小にする性能設定を決定する。そして、ソフトウェアドライバは、複数の処理要素が現在のフレームのレンダリングタスクを実行する際に、この性能設定を電力管理ユニットに提供させる。【選択図】図5
Description
(関連技術の説明)
様々なアプリケーションが、画像又はビデオコンテンツのリアルタイムレンダリングに依存している。例えば、クラウドゲーム、バーチャルリアリティ及びゲーム観戦は、コンテンツのリアルタイムレンダリングを必要とするアプリケーションの一例である。ビデオフレームのリアルタイムレンダリングは、多くの場合、大量の電力を消費する相当量の処理リソースを使用する。リアルタイムレンダリング環境では、生成された画像フレームの遅延を制御しなければならないという要件と、フレームの欠落を回避したいという要望とにより、電力管理に特別な要求を課している。一方では、遅延を最小限に抑え、画像のレンダリングが時間通りに完了することを保証するために、可能な限り高いクロックレートで実行されることが望ましい。他方では、処理ハードウェアが過熱し始めたり、温度閾値に近づいたりすると、ハードウェアがクロックレートを低下させ、その結果、フレームの欠落がもたらされる。これらの問題は、電力又は熱に制約のあるプラットフォームでは特に困難である。
様々なアプリケーションが、画像又はビデオコンテンツのリアルタイムレンダリングに依存している。例えば、クラウドゲーム、バーチャルリアリティ及びゲーム観戦は、コンテンツのリアルタイムレンダリングを必要とするアプリケーションの一例である。ビデオフレームのリアルタイムレンダリングは、多くの場合、大量の電力を消費する相当量の処理リソースを使用する。リアルタイムレンダリング環境では、生成された画像フレームの遅延を制御しなければならないという要件と、フレームの欠落を回避したいという要望とにより、電力管理に特別な要求を課している。一方では、遅延を最小限に抑え、画像のレンダリングが時間通りに完了することを保証するために、可能な限り高いクロックレートで実行されることが望ましい。他方では、処理ハードウェアが過熱し始めたり、温度閾値に近づいたりすると、ハードウェアがクロックレートを低下させ、その結果、フレームの欠落がもたらされる。これらの問題は、電力又は熱に制約のあるプラットフォームでは特に困難である。
様々なフレームベースのリアルタイムアプリケーションは、ゲームアプリケーションだけでなく、各フレームに複数のジョブを投入し、この処理を一定又は不定のフレームレートで繰り返す他のタイプのレンダリングアプリケーションも含む。フレーム当たりの処理ユニットのワークロード(例えば、ジョブの数、ジョブ当たりの時間、ジョブ当たりのリソース)は、アプリケーションのランタイム動作に応じて、複雑さや計算需要が変化し得る。このようなアプリケーションでは、処理ユニットが、フレームの実行を十分に早く完了させて、フレームをタイミングよく使用(例えば、表示又は伝送)できるようにするか、又は、処理ユニットが、フレームの実行を完了させるのに遅れ、その結果、フレームがドロップされ、若しくは、消費されるのが遅くなるか、の何れかである。このような遅延は、ユーザエクスペリエンスに悪影響を与える。
上記の観点から、性能保証された電力管理を用いるリアルタイムビデオレンダリングを管理するための改良された方法が望まれている。
添付図面と併せて以下の説明を参照することによって、本明細書に記載される方法及びメカニズムの利点をより良く理解することができる。
以下の説明では、本明細書で提示される方法及びメカニズムの十分な理解をもたらすために、多数の具体的な詳細が示されている。しかしながら、当業者であれば、これらの具体的な詳細が無くても、様々な実施形態を実施し得ることを認識するはずである。いくつかの例では、本明細書で説明するアプローチを曖昧にすることを避けるために、周知の構造、構成要素、信号、コンピュータプログラム命令及び技術が詳細に示されていない。説明を簡単且つ明確にするために、図面に示される要素は、必ずしも縮尺通りに描かれていないことを理解されたい。例えば、いくつかの要素の寸法が、他の要素と比べて誇張されていてもよい。
ユースケース駆動型のイベントベースフィードフォワード制御ウィンドウ(use case driven event-based feed-forward control window)に基づく性能保証された電力管理ガバナ(power management governor)を用いるリアルタイムGPUレンダリングを実施するためのシステム、装置及び方法が本明細書に開示されている。一実施形態では、システムは、少なくとも、ソフトウェアドライバと、電力管理ユニットと、レンダリングタスクを実行するための1つ以上の処理要素と、を含む。システムは、実行される必要のあるレンダリングタスクに対応する入力を受け取る。ソフトウェアドライバは、受け取った入力の数、及び、それらが対応するレンダリングタスクの数を監視する。また、ソフトウェアドライバは、次のビデオ同期信号までの残り時間を監視する。ソフトウェアドライバは、次のビデオ同期信号までに現在のフレームのレンダリングタスクを終了するのに十分な時間を確保しながら、消費電力を最小にする性能設定を決定する。そして、ソフトウェアドライバは、複数の処理要素が現在のビデオフレームのレンダリングタスクを実行する際に、電力管理ユニットにこの性能設定を提供させる。
図1を参照すると、コンピューティングシステム100の一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム100は、少なくとも、プロセッサ105A~105Nと、制御ユニット110と、入力/出力(I/O)インターフェース120と、バス125と、メモリコントローラ(複数可)130と、ネットワークインターフェース135と、メモリデバイス(複数可)140と、電源145と、電力管理ユニット150と、ディスプレイコントローラ160と、ディスプレイ165と、を含む。他の実施形態では、コンピューティングシステム100は他の構成要素を含み、及び/又は、コンピューティングシステム100は異なる構成とされる。プロセッサ105A~105Nは、システム100に含まれる任意の数のプロセッサを表しており、プロセッサの数は実施形態によって異なる。
一実施形態では、プロセッサ105Aは、中央処理装置(CPU)等の汎用プロセッサである。一実施形態では、プロセッサ105Nは、高度な並列アーキテクチャを有するデータ並列プロセッサである。データ並列プロセッサには、グラフィックスプロセッシングユニット(GPU)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等が含まれる。一実施形態では、プロセッサ105Nは、ディスプレイ165まで送られるようにディスプレイコントローラ160にピクセルを供給するGPUである。いくつかの実施形態では、プロセッサ105A~105Nは、複数のデータ並列プロセッサを含む。一実施形態では、制御ユニット110は、プロセッサ105A上で実行されるソフトウェアドライバである。他の実施形態では、制御ユニット110は、プロセッサ105A~105Nから独立した制御ロジック、及び/又は、プロセッサ105A~105N内に組み込まれた制御ロジックを含む。一般的に言えば、制御ユニット110は、ソフトウェア及び/又はハードウェアの任意の適切な組み合わせである。
メモリコントローラ(複数可)130は、プロセッサ105A~105Nによってアクセス可能な任意の数及びタイプのメモリコントローラを表す。メモリコントローラ(複数可)130は、任意の数及びタイプのメモリデバイス(複数可)140に結合されている。メモリデバイス(複数可)140は、任意の数及びタイプのメモリデバイスを表す。例えば、メモリデバイス(複数可)140内のメモリのタイプとしては、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、NANDフラッシュメモリ、NORフラッシュメモリ、強誘電体ランダムアクセスメモリ(FeRAM)、又は、他のメモリが挙げられる。
I/Oインターフェース120は、任意の数及びタイプのI/Oインターフェース(例えば、ペリフェラルコンポーネントインターコネクト(PCI)バス、PCIエクステンデッド(PCI-X)、PCIE(PCI Express)バス、ギガビットイーサネット(登録商標)(GBE)バス、ユニバーサルシリアルバス(USB))を表す。様々なタイプの周辺装置(図示省略)がI/Oインターフェース120に結合されている。このような周辺装置には、ディスプレイ、キーボード、マウス、プリンタ、スキャナ、メディア記録デバイス、外部ストレージデバイス、ネットワークインターフェースカード等が含まれる(ただし、これらに限定されない)。ネットワークインターフェース135は、ネットワークを介したネットワークメッセージの送受信を行うために用いられる。バス125は、システム100の異なる構成要素を互いに接続するための任意の数のリンクを有する任意のタイプのバス又はファブリックを表す。
一実施形態では、キュー(複数可)142は、メモリデバイス(複数可)140に格納されている。他の実施形態では、キュー(複数可)142は、システム100内の他の場所に格納されている。キュー(複数可)142は、システム100内に割り当てられた任意の数及びタイプのキューを表す。一実施形態では、キュー(複数可)142は、レンダリングされるフレームに対して実行されるレンダリングタスクを記憶する。一実施形態では、レンダリングタスクは、ネットワークインターフェース135を介して受信された入力に基づいて、キュー(複数可)142にエンキューされる。例えば、あるシナリオでは、入力は、ビデオゲームアプリケーションのユーザによって生成され、ネットワーク(図示省略)を介してシステム100に送信される。別の実施形態では、入力は、I/Oインターフェース120に接続された周辺装置によって生成される。
一実施形態では、電力管理ユニット150は、電源145からシステム100の構成要素に電力を供給し、電力管理ユニット150は、システム100内の構成要素の様々な電力性能状態を制御する。制御ユニット110から更新データを受信したことに応じて、電力管理ユニット150は、システム100内の他の構成要素に対して、その現在の電力性能状態を高めるか低めるかの何れかを行わせる。様々な実施形態では、電力性能状態を変更することは、デバイスの現在の動作周波数を変更すること、及び/又は、デバイスの現在の電圧レベルを変更することを含む。プロセッサ105A~105Nの電力性能状態が低下すると、プロセッサ105A~105Nによって実行されている演算タスクが完了するまでにより時間がかかるようになる。
一実施形態では、制御ユニット110は、現在のフレームのレンダリングタスクの数が所定の閾値よりも大きいと判別したことに応じて、プロセッサ105Nを比較的高い電力性能状態で動作させるように、電力管理ユニット150にコマンドを送る。一実施形態では、所定の閾値は、次のビデオ同期信号までの残り時間に基づいて調整される。例えば、次のビデオ同期信号までの時間が短いほど、所定の閾値を低くするようにプログラムされている。
様々な実施形態では、コンピューティングシステム100は、コンピュータ、ラップトップ、モバイルデバイス、サーバ、又は、様々な他のタイプのコンピューティングシステム若しくはデバイスである。コンピューティングシステム100の構成要素の数は、実施形態によって異なることに留意されたい。例えば、他の実施形態では、各構成要素の数は、図1に示す数よりも多い又は少ない。他の実施形態では、コンピューティングシステム100は、図1に示されていない他の構成要素を含み、及び/又は、コンピューティングシステム100に示す構成要素のうち1つ以上が省略されることに留意されたい。さらに、他の実施形態では、コンピューティングシステム100は、図1に示されているものと異なる方法で構成されている。
図2を参照すると、別の実施形態のコンピューティングシステム200のブロック図が示されている。一実施形態では、システム200は、GPU205と、システムメモリ225と、GPU205に属するローカルメモリ230と、を含む。また、システム200は、図を不明瞭にすることを避けるために示されていない他の構成要素を含む。GPU205は、少なくとも、コマンドプロセッサ235と、スケジューラ250と、コンピュートユニット255A~255Nと、メモリコントローラ220と、グローバルデータシェア270と、レベル1(L1)キャッシュ265と、レベル2(L2)キャッシュ260と、を含む。コンピュートユニット255A~255Nは、本明細書では「複数の処理要素」と呼ばれる場合があることに留意されたい。他の実施形態では、GPU205は、他の構成要素を含み、図示した構成要素のうち1つ以上を省略し、図2に1つのインスタンスのみが示されている場合でも複数の構成要素のインスタンスを有し、及び/又は、他の適切な方法で編成されている。一実施形態では、GPU205の回路は、(図1の)プロセッサ105Nに含まれている。
様々な実施形態では、コンピューティングシステム200は、様々なタイプのソフトウェアアプリケーションの何れかを実行する。所定のソフトウェアアプリケーションを実行する一環として、コンピューティングシステム200のホストCPU(図示省略)は、GPU205で実行されるレンダリングタスクを起動する。コマンドプロセッサ235は、ホストCPUからコマンドを受信し、スケジューラ250を使用して、対応するレンダリングタスクをコンピュートユニット255A~255Nに発行する。コンピュートユニット255A~255Nで実行されるレンダリングタスクは、GPU205内のグローバルデータシェア270、L1キャッシュ265及びL2キャッシュ260に対してデータを読み書きする。図2に示されていないが、一実施形態では、コンピュートユニット255A~255Nは、各コンピュートユニット255A~255N内に1つ以上のキャッシュ及び/又はローカルメモリを含む。様々な実施形態では、コンピュートユニット255A~255Nは、リアルタイムで表示、ストリーミング、又は、消費されるフレームをレンダリングする、任意の数のフレームベースのアプリケーションを実行する。一実施形態では、キュー(複数可)232は、ローカルメモリ230に格納されている。他の実施形態では、キュー(複数可)232は、システム200内の他の場所に格納されている。キュー(複数可)232は、システム200内に割り当てられた任意の数及びタイプのキューを表す。一実施形態では、キュー(複数可)232は、GPU205によって実行されるレンダリングタスクを記憶する。
一実施形態では、GPU205の性能設定は、キュー(複数可)232に記憶された現在のフレームのレンダリングタスクの数に基づいて、及び、次のビデオ同期信号までの残り時間に基づいて調整される。様々な実施形態では、GPU205の性能設定は、次のビデオ同期信号の前にレンダリングタスクを終了させるとともに、電力消費目標を達成するように調整される。一実施形態では、性能設定は、制御ユニット(図示省略)によって調整される。制御ユニットは、CPU(図示省略)で実行されるソフトウェアドライバであってもよいし、制御ユニットは、プログラマブルロジックデバイス(例えば、FPGA)内に実装された制御ロジック又は専用ハードウェア(例えば、ASIC)として実装された制御ロジックを含んでもよい。場合によっては、制御ユニットは、ソフトウェアとハードウェアとの組み合わせを含む。
一実施形態では、GPU205の性能設定は、GPU205の特定の電力設定、電力状態、又は、動作点に対応する。一実施形態では、制御ユニットは、動的電圧及び周波数スケーリング(DVFS)を用いて、GPU205の周波数及び/又は電圧を変更し、消費電力を選択された電力割り当てに制限する。各々の周波数及び電圧の設定は、別個の性能設定に対応し得る。一実施形態では、制御ユニットによって選択された性能設定が、対応するクロック信号を生成してGPU205に分配する位相ロックループ(PLL)ユニット(図示省略)を制御する。一実施形態では、制御ユニットによって選択された性能設定が、GPU205に供給電圧を供給する電圧レギュレータ(図示省略)を制御する。他の実施形態では、特定の性能設定に到達するためのコマンドを制御ユニットから受信したことに応じて、GPU205の動作点及び/又は電力設定を変更するために、他のメカニズムを使用することができる。
図3を参照すると、キュー占有率に基づいて、レンダリングされるフレームの性能設定を選択する一実施形態のタイミング図が示されている。ビデオシーケンスのフレームをレンダリングする際に、一実施形態では、ソフトウェアドライバは、キューの占有率に少なくとも部分的に基づいて、レンダリングハードウェアの性能設定を変更する。キュー占有率とは、レンダリングされる現在のフレームに対して処理ハードウェア(例えば、GPU)にエンキューされるレンダリングタスクの数を指す。
レンダリングされる各フレームの開始及び終了に対応するビデオ同期信号(又は、VSync)によって境界が定められるフレーム期間が示される。図3に示す最初のフレーム期間では、レンダリングされるフレームについての初期性能設定325が処理ハードウェアに設定される。初期性能設定325は、一実施形態では、デフォルト設定であってもよい。別の実施形態では、初期性能設定325は、アプリケーションのタイプ、アプリケーションによって生成されたヒント、レンダリングされる現在のフレームの複雑さの推定値、及び/又は、他の要因に基づいてプログラム可能である。一実施形態では、性能設定の制御を担当するソフトウェアドライバは、レンダリングタスクキュー(複数可)のキュー占有率を監視する。ソフトウェアドライバは、フレーム期間毎に、キュー占有率を複数回監視する。監視の頻度は、実施形態に応じて固定又はプログラム可能の何れかであってもよい。図3に示すように、最初の占有率サンプル305は、特定の数のレンダリングタスクがエンキューされていることを示す。このサンプル305に基づいて、ソフトウェアドライバは、現在の性能設定325を維持する。
次のキュー占有率サンプル310は、前のサンプル305よりも減少している。このことは、処理ハードウェアによって1つ以上のレンダリングタスクが完了したことにより、レンダリングタスクの数が減少したことを示す。したがって、サンプル310からサンプル305へのキュー占有率の減少を検出したことに応じて、ソフトウェアドライバは、性能設定330を低減させて、処理ハードウェアの電力消費を減少させる。この傾向は、次の2つのサンプル315,320についても継続し、ソフトウェアドライバは、性能設定335,340の各々の電力を低減させる。この性能設定の低減は、処理ハードウェアが現在のフレームの間に終了すべきレンダリングタスクが少なくなるので、許容可能である。ビデオ同期信号が発生すると、現在のフレームが、ディスプレイに送られるか、ネットワークを介して1つ以上のクライアントに送られるか、又は、他の場所に送られる。
次のフレーム期間では、最初の占有率サンプル345は、このフレームのレンダリングタスクが比較的少ないことを示す。したがって、性能設定340は、フレーム期間の開始時に処理ハードウェアに対して比較的低いレベルであり続けることができる。次の占有率サンプル350は、レンダリングタスクの数が減少していることを示し、より低い性能設定370を可能にする。しかし、その後の占有率サンプル355は、キュー占有率が増加したことを示す。これは、複数のレンダリングタスクを受信したことに起因する可能性があり、このようなレンダリングタスクは、ゲームシナリオでのプレイヤの入力、バーチャルリアリティ環境でのユーザの動き、又は、他のタイプのアプリケーションで生成された他の入力若しくはイベントによってもたらされる可能性がある。
ソフトウェアドライバは、占有率サンプル355の占有率の増加、及び、次のビデオ同期信号までの残り時間の減少を検出すると、処理ハードウェアに供給される電力を性能設定375まで増加させることによって応答する。一実施形態では、性能設定375は、処理ハードウェアの最大限の性能設定である。次の2つの占有率サンプル360,365は、現在のフレームのレンダリングタスクの数が減少したことを示す。しかし、これらのレンダリングタスクを終了するまでの時間も短くなっており、これは、ソフトウェアドライバが、処理ハードウェアの比較的高い性能設定375を維持することを意味する。
タイミング図300に示す例は、レンダリングタスクキュー(複数可)のキュー占有率に基づいて性能設定を調整するソフトウェアドライバに関する1つの特定の実施形態であることを示す。他の実施形態では、ソフトウェアドライバは、キュー占有率の変化に基づいて、他のタイプの調整を行うことができる。性能設定の更新が行われる粒度は、実施形態によって異なり得ることを理解されたい。また、ソフトウェアドライバがキュー占有率をチェックする頻度も、実施形態によって異なり得る。
図4を参照すると、入力タスク数及び残り時間を性能設定にマッピングするためのテーブル400の一実施形態が示されている。一実施形態では、制御ロジック又はソフトウェアドライバは、テーブル400の列405,410のルックアップを実行して、対応する性能設定を取得する。取得された性能設定は、複数の処理要素(例えば、図2のGPU205)が特定の動作点で動作するようにプログラムするために使用される。一実施形態では、列405は、入力タスク(例えば、レンダリングタスク)の数について異なる可能な値を含む。他の実施形態では、列405は、現在のフレームをレンダリングするために実行される必要のある作業量を表す他の値を含む。例えば、別の実施形態では、列405は、キュー占有率に関して測定される。他の実施形態では、列405は、受け取ったヒントの数、検出されたイベントの数、又は、他の観点から測定される。一実施形態では、列410は、次のビデオ同期信号までの異なる残り時間についてのエントリを含む。
一実施形態では、ソフトウェアドライバは、レンダリングタスクの数と次のビデオ同期信号までの残り時間とを使用して、テーブル400のルックアップを実行する。ルックアップの結果がヒットした場合、一致するエントリから性能設定が取得される。ルックアップが失敗した場合、ソフトウェアドライバは、最も近い2つのエントリに基づいて性能設定値を補間することができる。ソフトウェアドライバは、特定の性能設定を取得及び/又は計算した後に、レンダリングハードウェアを特定の性能設定で動作させる。一実施形態では、ソフトウェアドライバは、フレーム期間中にレンダリングタスクの数及び/又は残り時間が変化すると、テーブル400に対してフレーム当たり複数回のルックアップを実行して、性能設定を更新する。
一実施形態では、システム上で動作する可能性のある異なるアプリケーション毎に別個のテーブル400が存在する。例えば、クラウドゲーム環境では、第1のテーブル400Aがシステムによって記憶されている。バーチャルリアリティアプリケーションでは、第2のテーブル400Bがシステムによって記憶されている。他の任意の数のテーブル400C~400Nが、同様に、様々なアプリケーションのためにシステムによって記憶されてもよい。各アプリケーションは、アプリケーションの実行時に実行される可能性が高いレンダリングタスクに対して、異なる特性及び複雑さを有し得る。そのために、各アプリケーションは、レンダリングタスク数及び残り時間に基づいて使用される異なる性能設定に対応するために、別個のテーブル400を有する。
一実施形態では、各テーブル400は、ソフトウェアによってプログラムされる。テーブル400は、テストデータに基づいてプログラムすることができ、及び/又は、テーブル400は、アプリケーションの動作を監視することに基づくリアルタイムトレーニングに基づいてプログラムすることができる。例えば、一実施形態では、テーブル400は、所定のアプリケーションのためのデフォルト値を用いて、ソフトウェアによってプログラムされる。そして、ランタイム中に、ソフトウェアは、所定のアプリケーションを監視して、テーブル400のデフォルト値を生成するために使用されたテストシナリオと比較して、ランタイム環境に何らかの変化が観察されたかどうかを確認することができる。レンダリングタスクが予測よりも時間がかかる場合、又は、レンダリングタスクが予測よりも早く終了する場合には、性能設定列415に記憶されている値を更新して、所定のアプリケーションの動作をより正確に反映することができる。別の実施形態では、ソフトウェアドライバは、テーブル400を使用して性能設定を選択するのではなく、入力タスク数及び残り時間に基づいて性能設定を計算するための式を使用する。他の実施形態では、ソフトウェアドライバは、性能設定を選択するために他の適切な技術を使用する。
図5を参照すると、性能保証された電力管理を用いるリアルタイムビデオレンダリングを行う方法500の一実施形態が示されている。説明のために、本実施形態のステップ及び図6のステップは、順番に示されている。しかしながら、説明する方法の様々な実施形態では、説明する要素のうち1つ以上は、同時に実行されてもよいし、図示した順番とは異なる順番で実行されてもよいし、完全に省略されてもよいことに留意されたい。他の追加の要素も必要に応じて実行される。本明細書に記載された様々なシステム又は装置の何れも、方法500を実施するように構成されている。
ソフトウェアドライバは、レンダリングされている現在のフレームについてのレンダリングタスクに対応する入力を監視する(ブロック505)。一実施形態では、入力は、ネットワーク上のユーザに関連するイベントである。例えば、ユーザが、クラウドゲームのシナリオでビデオゲームをプレイしている。別の実施形態では、入力は、バーチャルリアリティ環境におけるユーザの動きである。他の実施形態では、他のタイプのシナリオに対する他のタイプの入力が、ブロック505で受信される。また、ソフトウェアドライバは、次のビデオ同期信号までの現在のフレーム期間の残り時間を監視する(ブロック510)。次に、ソフトウェアドライバは、次のビデオ同期信号までの残り時間において入力レンダリングタスクを完了するための可能な限り低い性能設定を決定する(ブロック515)。一実施形態では、処理ハードウェア(例えば、GPU)の性能設定は、対応する電圧及び周波数の値を含む。
ソフトウェアドライバが、次のビデオ同期信号までの残り時間において最大限の性能設定でも入力レンダリングタスクを完了できないと判別した場合(条件付きブロック520:「No」)、ソフトウェアドライバは、前のフレームを再生させ、処理ハードウェアをアイドル状態又は比較的低い性能設定(例えば、可能な限り低い性能設定)に設定する(ブロック525)。或いは、ソフトウェアドライバは、ブロック525において、前のフレームを再生するのではなく、現在のフレームを遅延させることができる。次のVsyncまでの残り時間において入力レンダリングタスクを完了させることができる性能設定がある場合(条件付きブロック520:「Yes」)、ソフトウェアドライバは、処理ハードウェアを所定の性能設定で動作させる(ブロック530)。一実施形態では、所定の性能設定は、次のビデオ同期信号までの残り時間内に入力レンダリングタスクを完了するための可能な限り低い性能設定である。別の実施形態では、所定の性能設定は、次のビデオ同期信号までの残り時間内で入力レンダリングタスクを完了するための許容誤差を提供するために、可能な限り低い性能設定よりも1つ高い設定である。他の実施形態では、許容誤差を、可能な限り低い性能設定よりも2つ以上高い設定に増やすことができる。
現在のフレームのレンダリングが終了していない場合(条件付きブロック540:「No」)、ある程度の時間が経過した後に、又は、何らかのイベント(すなわち、キュー占有率の変化)が検出された後に、方法500はブロック505に戻る。性能設定があまりにも頻繁に変更されるのを防ぐために、ループに何らかのヒステリシスを追加することが可能であることに留意されたい。現在のフレームのレンダリングが終了した場合(条件付きブロック540:「Yes」)、方法500は終了する。方法500は、レンダリングされるビデオシーケンスの各ビデオフレームに対して実行され得ることに留意されたい。
図6を参照すると、アプリケーションタイプに基づいて処理ハードウェアの性能設定を制御する方法600の一実施形態が示されている。制御ユニットは、何れのアプリケーションがシステムによって現在実行されているかを判別する(ブロック605)。次に、制御ユニットは、アプリケーションに対応する性能設定ルックアップテーブル(例えば、図4のテーブル400)をロードする(ブロック610)。次に、制御ユニットは、テーブルを使用して、キュー占有率及び次のビデオ同期信号までの残り時間に基づいて、処理ハードウェアの性能設定を選択する(ブロック615)。制御ユニットが、システムによって実行されている別のアプリケーションを検出した場合(条件付きブロック620:「Yes」)、方法600はブロック610に戻る。或いは、所定のアプリケーションがシステムによって実行され続ける場合(条件付きブロック620:「No」)、方法600はブロック615に戻る。場合によっては、1つのアプリケーションが複数の異なる性能設定ルックアップテーブルを有することができることに留意されたい。例えば、ビデオゲームアプリケーションは、レンダリングの複雑さの量が異なる様々なシーンを有し得る。アプリケーションの第1のシーンでは、制御ユニットが第1のテーブルをロードすることができ、第2のシーンでは、制御ユニットが第2のテーブルをロードする、等である。
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令を使用して、本明細書に説明する方法及び/又はメカニズムを実施する。例えば、汎用プロセッサ又は特殊目的プロセッサによって実行可能なプログラム命令が考慮される。様々な実施形態では、このようなプログラム命令は、高レベルプログラミング言語によって表すことができる。他の実施形態では、プログラム命令は、高レベルプログラミング言語からバイナリ、中間、又は、他の形式にコンパイルされてもよい。或いは、ハードウェアの動作又は設計を記述したプログラム命令が書き込まれてもよい。このようなプログラム命令は、C等の高レベルプログラミング言語によって表されてもよい。或いは、Verilog等のハードウェア設計言語(HDL)が使用されてもよい。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体の何れかに記憶される。記憶媒体は、プログラム実行のためにプログラム命令をコンピューティングシステムに提供するために、使用中にコンピューティングシステムによってアクセス可能である。一般的に、このようなコンピューティングシステムは、少なくとも1つ以上のメモリと、プログラム命令を実行するように構成された1つ以上のプロセッサと、を含む。
上記の実施形態は、実施形態の非限定的な例に過ぎないことを強調しておきたい。上記の開示が十分に理解されると、多数の変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲は、このような変形及び修正の全てを包含するものと解釈されることが意図されている。
Claims (20)
- 1つ以上の処理要素と、
電力管理ユニットと、
制御ユニットと、を備え、
前記制御ユニットは、
レンダリングされている現在のフレームに対して実行されるのを待っているレンダリングタスクの数を表す入力を監視することと、
次のビデオ同期信号までの残り時間を監視することと、
前記次のビデオ同期信号までの残り時間内で1つ以上のレンダリングタスクを完了させるとともに電力消費目標を達成するための所定の性能設定を選択することと、
前記所定の性能設定の指標を前記電力管理ユニットに伝達して、前記1つ以上の処理要素を前記所定の性能設定で動作させることと、
を行うように構成されている、
システム。 - 前記制御ユニットは、前記次のビデオ同期信号までの残り時間が減少している間により多くのレンダリングタスクがキューに入れられたことを前記入力が示すと判別したことに応じて、前記所定の性能設定を高めるように構成されている、
請求項1のシステム。 - 前記制御ユニットは、前記次のビデオ同期信号までの残り時間内で前記1つ以上のレンダリングタスクを完了することができる可能な限り低い性能設定を選択するように構成されている、
請求項1のシステム。 - 前記制御ユニットは、レンダリングタスクの数と前記残り時間との組み合わせを前記所定の性能設定にマッピングするように構成されている、
請求項1のシステム。 - 前記制御ユニットは、前記レンダリングタスクの数と前記残り時間との組み合わせを前記所定の性能設定にマッピングするためのテーブルを保持するように構成されており、前記テーブルの各エントリは、所定のレンダリングタスクの数と所定の残り時間とを、対応する性能設定にマッピングする、
請求項4のシステム。 - 前記入力は、バーチャルリアリティ環境でのユーザの動きを含む、
請求項1のシステム。 - 前記制御ユニットは、
前記レンダリングタスクの数が閾値よりも大きいと判別したことに応じて、前記1つ以上の処理要素を比較的高い性能設定で動作させることであって、前記閾値は、前記次のビデオ同期信号までの残り時間に基づいている、ことと、
前記レンダリングタスクの数が前記閾値以下であると判別したことに応じて、前記1つ以上の処理要素を比較的低い性能設定で動作させることと、
を行うように構成されている、
請求項1のシステム。 - 制御ユニットが、レンダリングされている現在のフレームに対して実行されるのを待っているレンダリングタスクの数を表す入力を監視することと、
次のビデオ同期信号までの残り時間を監視することと、
前記次のビデオ同期信号までの残り時間内で1つ以上のレンダリングタスクを完了させるとともに電力消費目標を達成するための所定の性能設定を選択することと、
前記所定の性能設定の指標を電力管理ユニットに伝達して、1つ以上の処理要素を前記所定の性能設定で動作させることと、を含む、
方法。 - 前記次のビデオ同期信号までの残り時間が減少している間により多くのレンダリングタスクがキューに入れられたことを前記入力が示すと判別したことに応じて、前記所定の性能設定を高めることをさらに含む、
請求項8の方法。 - 前記次のビデオ同期信号までの残り時間内で前記1つ以上のレンダリングタスクを完了することができる可能な限り低い性能設定を選択することをさらに含む、
請求項8の方法。 - レンダリングタスクの数と前記残り時間との組み合わせを前記所定の性能設定にマッピングすることをさらに含む、
請求項8の方法。 - 前記レンダリングタスクの数と前記残り時間との組み合わせを前記所定の性能設定にマッピングするためのテーブルを保持することをさらに含み、前記テーブルの各エントリは、所定のレンダリングタスクの数と所定の残り時間とを、対応する性能設定にマッピングする、
請求項11の方法。 - 前記入力は、バーチャルリアリティ環境でのユーザの動きを含む、
請求項8の方法。 - 前記レンダリングタスクの数が閾値よりも大きいと判別したことに応じて、前記1つ以上の処理要素を比較的高い性能設定で動作させることであって、前記閾値は、前記次のビデオ同期信号までの残り時間に基づいている、ことと、
前記レンダリングタスクの数が前記閾値以下であると判別したことに応じて、前記1つ以上の処理要素を比較的低い性能設定で動作させることと、をさらに含む、
請求項8の方法。 - 第1のプロセッサと、
第2のプロセッサと、
プログラム命令を記憶するメモリと、を備え、
前記プログラム命令は、前記第1のプロセッサによって実行されると、
レンダリングされている現在のフレームに対して実行されるのを待っているレンダリングタスクの数を表す入力を監視することと、
次のビデオ同期信号までの残り時間を監視することと、
前記次のビデオ同期信号までの残り時間内で1つ以上のレンダリングタスクを完了させるとともに電力消費目標を達成するための所定の性能設定を選択することと、
前記第2のプロセッサを前記所定の性能設定で動作させることと、
を前記第1のプロセッサに行わせる、
装置。 - 前記プログラム命令は、前記第1のプロセッサによって実行されると、
前記次のビデオ同期信号までの残り時間が減少している間により多くのレンダリングタスクがキューに入れられたことを前記入力が示すと判別したことに応じて、前記所定の性能設定を高めることを前記第1のプロセッサに行わせる、
請求項15の装置。 - 前記プログラム命令は、前記第1のプロセッサによって実行されると、
前記次のビデオ同期信号までの残り時間内で前記1つ以上のレンダリングタスクを完了することができる可能な限り低い性能設定を選択することを前記第1のプロセッサに行わせる、
請求項15の装置。 - 前記プログラム命令は、前記第1のプロセッサによって実行されると、
レンダリングタスクの数と前記残り時間との組み合わせを前記所定の性能設定にマッピングすることを前記第1のプロセッサに行わせる、
請求項15の装置。 - 前記プログラム命令は、前記第1のプロセッサによって実行されると、
前記レンダリングタスクの数と前記残り時間との組み合わせを前記所定の性能設定にマッピングするためのテーブルを保持することを前記第1のプロセッサに行わせ、前記テーブルの各エントリは、所定のレンダリングタスクの数と所定の残り時間とを対応する性能設定にマッピングする、
請求項18の装置。 - 前記プログラム命令は、前記第1のプロセッサによって実行されると、
前記レンダリングタスクの数が閾値よりも大きいと判別したことに応じて、前記第2のプロセッサを比較的高い性能設定で動作させることであって、前記閾値は、前記次のビデオ同期信号までの残り時間に基づいている、ことと、
前記レンダリングタスクの数が前記閾値以下であると判別したことに応じて、前記第2のプロセッサを比較的低い性能設定で動作させることと、
を前記第1のプロセッサに行わせる、
請求項15の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/457,179 | 2019-06-28 | ||
US16/457,179 US11100698B2 (en) | 2019-06-28 | 2019-06-28 | Real-time GPU rendering with performance guaranteed power management |
PCT/IB2020/054450 WO2020260966A1 (en) | 2019-06-28 | 2020-05-11 | Real-time gpu rendering with performance guaranteed power management |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022539504A true JP2022539504A (ja) | 2022-09-12 |
JPWO2020260966A5 JPWO2020260966A5 (ja) | 2023-05-02 |
Family
ID=74044173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021573929A Pending JP2022539504A (ja) | 2019-06-28 | 2020-05-11 | 性能保証された電力管理を用いるリアルタイムgpuレンダリング |
Country Status (6)
Country | Link |
---|---|
US (2) | US11100698B2 (ja) |
EP (1) | EP3991425A4 (ja) |
JP (1) | JP2022539504A (ja) |
KR (1) | KR20220027964A (ja) |
CN (1) | CN114009035A (ja) |
WO (1) | WO2020260966A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11100698B2 (en) | 2019-06-28 | 2021-08-24 | Ati Technologies Ulc | Real-time GPU rendering with performance guaranteed power management |
CN112925592A (zh) | 2019-12-05 | 2021-06-08 | 超威半导体公司 | 渲染主页面的内核软件驱动的颜色重新映射 |
TWI785785B (zh) * | 2021-09-09 | 2022-12-01 | 華碩電腦股份有限公司 | 電子裝置及其電源管理方法 |
CN116563085B (zh) * | 2023-07-06 | 2023-09-01 | 湖南马栏山视频先进技术研究院有限公司 | 一种离线渲染的大规模并行处理方法及系统 |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4980836A (en) | 1988-10-14 | 1990-12-25 | Compaq Computer Corporation | Apparatus for reducing computer system power consumption |
US5396635A (en) | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
US5617572A (en) | 1995-01-31 | 1997-04-01 | Dell Usa, L.P. | System for reducing power consumption in computers |
US5692202A (en) | 1995-12-29 | 1997-11-25 | Intel Corporation | System, apparatus, and method for managing power in a computer system |
US6334167B1 (en) | 1998-08-31 | 2001-12-25 | International Business Machines Corporation | System and method for memory self-timed refresh for reduced power consumption |
US6657634B1 (en) | 1999-02-25 | 2003-12-02 | Ati International Srl | Dynamic graphics and/or video memory power reducing circuit and method |
JP2003308246A (ja) | 2002-04-17 | 2003-10-31 | Fujitsu Ltd | メモリコントローラのクロック制御装置及び方法 |
US7028200B2 (en) | 2002-05-15 | 2006-04-11 | Broadcom Corporation | Method and apparatus for adaptive power management of memory subsystem |
US7428644B2 (en) | 2003-06-20 | 2008-09-23 | Micron Technology, Inc. | System and method for selective memory module power management |
US7800621B2 (en) | 2005-05-16 | 2010-09-21 | Ati Technologies Inc. | Apparatus and methods for control of a memory controller |
DE102005037635B4 (de) | 2005-08-09 | 2007-07-12 | Infineon Technologies Ag | Hardwaresteuerung für den Wechsel des Betriebsmodus eines Speichers |
US7562234B2 (en) * | 2005-08-25 | 2009-07-14 | Apple Inc. | Methods and apparatuses for dynamic power control |
US7496777B2 (en) | 2005-10-12 | 2009-02-24 | Sun Microsystems, Inc. | Power throttling in a memory system |
EP1785982A1 (en) | 2005-11-14 | 2007-05-16 | Texas Instruments Incorporated | Display power management |
US7899990B2 (en) | 2005-11-15 | 2011-03-01 | Oracle America, Inc. | Power conservation via DRAM access |
US7613941B2 (en) | 2005-12-29 | 2009-11-03 | Intel Corporation | Mechanism for self refresh during advanced configuration and power interface (ACPI) standard C0 power state |
US8102398B2 (en) * | 2006-03-03 | 2012-01-24 | Ati Technologies Ulc | Dynamically controlled power reduction method and circuit for a graphics processor |
US7873850B2 (en) | 2006-10-11 | 2011-01-18 | Hewlett-Packard Development Company, L.P. | System and method of controlling power consumption and associated heat generated by a computing device |
US7743267B2 (en) | 2006-11-08 | 2010-06-22 | Xerox Corporation | System and method for reducing power consumption in a device |
US7868479B2 (en) | 2007-06-27 | 2011-01-11 | Qualcomm Incorporated | Power gating for multimedia processing power management |
US8181046B2 (en) | 2008-10-29 | 2012-05-15 | Sandisk Il Ltd. | Transparent self-hibernation of non-volatile memory system |
US8253746B2 (en) * | 2009-05-01 | 2012-08-28 | Microsoft Corporation | Determine intended motions |
US8402232B2 (en) | 2009-12-23 | 2013-03-19 | Oracle America, Inc. | Memory utilization tracking |
US8656198B2 (en) | 2010-04-26 | 2014-02-18 | Advanced Micro Devices | Method and apparatus for memory power management |
CN102088472B (zh) * | 2010-11-12 | 2013-06-12 | 中国传媒大学 | 面向广域网的动漫渲染任务分解支持方法及实现系统 |
US8982136B2 (en) | 2011-05-16 | 2015-03-17 | Qualcomm Incorporated | Rendering mode selection in graphics processing units |
US9110674B1 (en) | 2011-06-23 | 2015-08-18 | Marvell International Ltd. | Systems and methods for dynamic power management and performance adjustment of media playing |
US9129394B2 (en) * | 2012-12-14 | 2015-09-08 | Microsoft Technology Licensing, Llc | CPU-GPU parallelization |
KR20140088691A (ko) * | 2013-01-03 | 2014-07-11 | 삼성전자주식회사 | Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법 |
US9348401B2 (en) * | 2013-06-25 | 2016-05-24 | Intel Corporation | Mapping a performance request to an operating frequency in a processor |
US9378536B2 (en) * | 2014-04-30 | 2016-06-28 | Qualcomm Incorporated | CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing |
KR102169692B1 (ko) * | 2014-07-08 | 2020-10-26 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법 |
US20160055615A1 (en) * | 2014-11-11 | 2016-02-25 | Mediatek Inc. | Smart Frequency Boost For Graphics-Processing Hardware |
US10444819B2 (en) * | 2015-06-19 | 2019-10-15 | Intel Corporation | Techniques to control computational resources for an electronic device |
GB2545508B (en) * | 2015-12-18 | 2019-04-10 | Imagination Tech Ltd | Controlling operation of a GPU |
US10007292B2 (en) * | 2016-01-11 | 2018-06-26 | Qualcomm Incorporated | Energy aware dynamic adjustment algorithm |
US20170262955A1 (en) * | 2017-05-26 | 2017-09-14 | Mediatek Inc. | Scene-Aware Power Manager For GPU |
US11474591B2 (en) * | 2016-08-05 | 2022-10-18 | Ati Technologies Ulc | Fine-grain GPU power management and scheduling for virtual reality applications |
US20180157315A1 (en) * | 2016-12-01 | 2018-06-07 | Qualcomm Incorporated | System and method for proactive power and performance management of a workload in a portable computing device |
GB2558884B (en) * | 2017-01-12 | 2019-12-25 | Imagination Tech Ltd | Graphics processing units and methods using cost indications for sets of tiles of a rendering space |
US10319065B2 (en) * | 2017-04-13 | 2019-06-11 | Microsoft Technology Licensing, Llc | Intra-frame real-time frequency control |
US20180329742A1 (en) * | 2017-05-10 | 2018-11-15 | Mediatek Inc. | Timer-assisted frame running time estimation |
US10373287B2 (en) * | 2017-08-18 | 2019-08-06 | Apple Inc. | Fast GPU context switch |
WO2019212541A1 (en) * | 2018-05-01 | 2019-11-07 | Intel Corporation | Power control arbitration |
US10388255B2 (en) * | 2018-06-29 | 2019-08-20 | Intel Corporation | Computers for supporting multiple virtual reality display devices and related methods |
US10761583B2 (en) * | 2018-09-11 | 2020-09-01 | International Business Machines Corporation | Variation-aware intra-node power shifting among different hardware components |
US10877545B2 (en) * | 2018-09-20 | 2020-12-29 | Arm Limited | Energy management in graphics processing units |
US20200183485A1 (en) * | 2018-12-07 | 2020-06-11 | Advanced Micro Devices, Inc. | Hint-based fine-grained dynamic voltage and frequency scaling in gpus |
US11100698B2 (en) | 2019-06-28 | 2021-08-24 | Ati Technologies Ulc | Real-time GPU rendering with performance guaranteed power management |
-
2019
- 2019-06-28 US US16/457,179 patent/US11100698B2/en active Active
-
2020
- 2020-05-11 JP JP2021573929A patent/JP2022539504A/ja active Pending
- 2020-05-11 WO PCT/IB2020/054450 patent/WO2020260966A1/en active Application Filing
- 2020-05-11 CN CN202080044869.XA patent/CN114009035A/zh active Pending
- 2020-05-11 EP EP20832922.7A patent/EP3991425A4/en active Pending
- 2020-05-11 KR KR1020227001688A patent/KR20220027964A/ko not_active Application Discontinuation
-
2021
- 2021-08-20 US US17/408,034 patent/US11954792B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3991425A1 (en) | 2022-05-04 |
US11100698B2 (en) | 2021-08-24 |
WO2020260966A1 (en) | 2020-12-30 |
US11954792B2 (en) | 2024-04-09 |
US20210383596A1 (en) | 2021-12-09 |
EP3991425A4 (en) | 2023-07-26 |
CN114009035A (zh) | 2022-02-01 |
KR20220027964A (ko) | 2022-03-08 |
US20200410747A1 (en) | 2020-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022539504A (ja) | 性能保証された電力管理を用いるリアルタイムgpuレンダリング | |
US11474591B2 (en) | Fine-grain GPU power management and scheduling for virtual reality applications | |
US10078882B2 (en) | Priority-based command execution | |
CA2913513C (en) | Managing transitions of adaptive display rates for different video playback scenarios | |
US7603503B1 (en) | Efficiency based arbiter | |
JP6467062B2 (ja) | スプーフクロック及び細粒度周波数制御を使用する下位互換性 | |
US8621253B1 (en) | Processor boost based on user interface demand | |
US8364999B1 (en) | System and method for processor workload metering | |
EP3254171B1 (en) | Clock rate adjustment for processing unit | |
US20200250787A1 (en) | Multiple application cooperative frame-based gpu scheduling | |
US9183610B2 (en) | Method for graphics driver level decoupled rendering and display | |
US7548481B1 (en) | Method and apparatus for dynamic power adjustment in a memory subsystem | |
CN101101503A (zh) | 针对显示子系统的基于工作的时钟管理 | |
CN116635929A (zh) | 在多显示器系统上执行异步存储器时钟改变 | |
CN106462456B (zh) | 基于对生产者/消费者工作负载序列化的检测的处理器状态控制 | |
US20160358303A1 (en) | Low-power state with a variable refresh rate display | |
CN105719229B (zh) | 一种基于指令流截取的应用程序透明化的分辨率控制 | |
US20220013087A1 (en) | Methods and apparatus for display processor enhancement | |
WO2021151228A1 (en) | Methods and apparatus for adaptive frame headroom | |
WO2021000226A1 (en) | Methods and apparatus for optimizing frame response | |
US20190101973A1 (en) | Saving power in the command processor using queue based watermarks | |
US20240111442A1 (en) | On-Demand Regulation of Memory Bandwidth Utilization to Service Requirements of Display | |
US20240103754A1 (en) | Memory Power Performance State Optimization During Image Display | |
US11922533B2 (en) | Dynamically reducing latency in processing pipelines | |
US9564186B1 (en) | Method and apparatus for memory access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230424 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230424 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240402 |