JP2007512613A - Pcバス上の多重3−dグラフィックパイプラインのための方法およびシステム - Google Patents

Pcバス上の多重3−dグラフィックパイプラインのための方法およびシステム Download PDF

Info

Publication number
JP2007512613A
JP2007512613A JP2006540774A JP2006540774A JP2007512613A JP 2007512613 A JP2007512613 A JP 2007512613A JP 2006540774 A JP2006540774 A JP 2006540774A JP 2006540774 A JP2006540774 A JP 2006540774A JP 2007512613 A JP2007512613 A JP 2007512613A
Authority
JP
Japan
Prior art keywords
gpu
data
graphics
hub
gpus
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
Application number
JP2006540774A
Other languages
English (en)
Inventor
バカラシュ,リューヴェン
レメズ,オフィアー
バー−オル,ギギー
フォゲル,エフィ
シャハム,アミール
Original Assignee
ルシッド インフォメーション テクノロジー リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ルシッド インフォメーション テクノロジー リミテッド filed Critical ルシッド インフォメーション テクノロジー リミテッド
Publication of JP2007512613A publication Critical patent/JP2007512613A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1438Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using more than one graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

1つまたは複数の並列化モードを使用してイメージ処理の並列化を改善するための方法およびシステムが提供され、この方法およびシステムにおいては、イメージが1つまたは複数のグラフィック処理装置によって少なくとも1つのコンピュータスクリーン上に表示される。グラフィックコマンドを発行するためのソフトウェアアプリケーションが提供され、グラフィックコマンドを実施するために使用されるデータを保存するためのグラフィックライブラリが提供される。ハードウェアハブをコントロールし、コンピュータのオペレーションシステムおよびグラフィックライブラリと対話し、データストリームのリアルタイムな分析を実行して、そこからイメージのフレームを生成し、それぞれのGPUの並列化モードを決定し、そしてデータストリームまたはその一部をそれぞれのGPUへ転送するためのソフトウェアハブドライバが提供される。GPUがグラフィックライブラリと対話できるようにするためのGPUドライバが提供され、ソフトウェアモジュールとハードウェアハブの間を相互接続するためのI/Oモジュールが提供される。グラフィックコマンドおよびデータストリームまたはその一部は、それぞれのフレームごとに、複数のGPUの間において、ハードウェアハブによって、イメージ内におけるそれらの相対的な複雑度に従って分散され、その複雑度は、ソフトウェアハブドライバによって定義される。ソフトウェアハブドライバはまた、少なくとも1つのGPUから得られる出力を使用して、表示用として1つのグラフィックス出力を合成し、その一方で、必要とされる場合は常に、それぞれのフレームごとに並列化モードを切り替える。

Description

本発明は、3−D(three−dimensional)多重グラフィック処理のための方法およびシステムに関する。より詳細には、本発明は、GPU(Graphic Processing Unit)によるイメージ処理の並列化を、時分割方法、イメージ分割方法、およびオブジェクト分割方法という3つの並列化方法の統合されたフレームワークに基づいて改善するための方法およびシステムに関する。
定義、頭字語、および略語
本明細書を通じて、下記の定義が採用される。
GPU:GPU(Graphic Processing Unit)は、CPU(Central Processing Unit)に類似しており、GPUは、主として3−D関数を計算するために使用されるシングルチッププロセッサである。これは、ライティング効果、オブジェクトの変形、および3−Dの動きなどのタスクを含む。これらは、数学的に負荷の大きいタスクであり、あるいはCPUに多くの負担をかけることになるが、専用のGPUは、3−Dの計算の大部分を処理することができるため、コンピュータがこれらのタスクをより効率的に、そしてもちろんより速く実行する上で役に立つ。
多角形:3−Dグラフィックス内の多角形は、二次元のプリミティブであり、3−Dの複雑なグラフィカルオブジェクトの生成および表示を可能にする。多角形は、オブジェクトの面であり、N個の頂点から構成される。実際には多角形は、閉じられた平面図形であり、3つ以上の線分によって画定される。
フレームバッファ:FB(Frame Buffer)は、1つのイメージのコンテンツをピクセルごとに保存するバッファである。一般にメモリのその部分は、表示用としてモニタに送信される完全なビットマップイメージを保持するために確保される。通常ではフレームバッファは、ビデオアダプタ上のメモリチップ内に格納される。しかし場合によっては、ビデオチップセットは、マザーボードの設計内に統合され、フレームバッファは、一般的なメインメモリ内に格納される。
オブジェクト合成ユニット:複数の三次元のラスタを最終的なイメージへと再合成する。マージされたデータは、ピクセルの深みの値に基づいて3−Dスペース内のビューアにとって最も近いピクセルのために分解される。この新しい方法は、自律的で連合的な決定に基づいて、あらゆるフレームの複雑性のために複数のGPUを使用できるようにする。
ディスプレイリスト:ディスプレイリストは、多角形および属性などのグラフィックなプリミティブのリストを通じた3−Dシーンの記述である。ディスプレイリストは、迅速なイメージ検索のための中間のイメージストレージを提供する。
頂点アレイ:頂点アレイは、3−Dシーンを記述する頂点のアレイである。頂点アレイは、迅速なイメージ検索のための中間のイメージストレージを提供する。
アルファブレンディング:アルファブレンディングは、透明性あるいは不透明性のレベルなど、グラフィックな情報が表示される方法をコントロールする。
三次元のグラフィックパイプラインアーキテクチャは、CPU、バス、GPUの頂点処理およびGPUのフラグメント(ピクセル)処理というセグメント化されたステージへと分割される。所与のパイプラインは、上記のステージのうちの1つの最も弱いリンクと同程度に強いだけであり、したがって主要なネックが、全体的なスループットを決定する。パフォーマンスを高めることが、ネックを減らすあるいはなくすために必要とされるすべてである。主要なネックは、アプリケーションに強く依存する。両極端な事例は、多くの多角形(頂点)を特徴とするCAD(Computer Aided Design)のようなアプリケーションと、多角形の総数は少ないがフラグメントアクティビティ(たとえばテクスチャリング)の負荷が大きいビデオゲームアプリケーションである。前者にとっては、頂点処理がネックであり、その一方で後者にとっては、フラグメントがネックである。双方とも、PCバス上で頻繁に妨害される。多くのアプリケーションには、これらの特徴が混在しており、これらのネックは、単一のフレームの基準上で、両極端の間で不規則に入れ替わる可能性がある。
GPUのパフォーマンスを改善するための唯一の方法は、ネックを解消する方法のうちの1つに従って複数のGPUを並列化することによる。複数のGPUを使用してグラフィックデータをレンダリングするための2つの主要な方法がある。これらの方法は、時分割(タイムドメインの合成)とイメージ分割(スクリーンスペースの合成)とを含み、時分割においては、それぞれのGPUは、次の連続したフレームをレンダリングし、イメージ分割においては、それぞれのGPUは、それぞれのフレームのピクセルのサブセットをレンダリングする。3つめの方法は、さほど一般的ではなく、オブジェクト分割(多角形の分解)方法である。
時分割方法においては、それぞれのGPUは、次の連続したフレームをレンダリングする。これは、それぞれのGPUにフレーム全体をレンダリングさせるという短所を有する。したがって、それぞれのフレームがレンダリングされるスピードは、単一のGPUのレンダリング速度に制限される。複数のGPUは、より高いフレームレートを可能にするが、ユーザの入力に対するシステムの応答時間(待ち時間)において遅延が生じることがある。これが生じるのは、任意の所与の時点において、1つのGPUのみが、レンダリングされるフレームの表示に従事する間、GPUのそれぞれは、1つのシーケンス内の一連のフレームのうちの1つをレンダリングする過程にあるためである。高いフレームレートを維持するために、システムは、シーケンスを通じて信号サイクルを最初に受け取った特定のGPUが、そのレンダリングされるフレームの表示に再び従事するまで、ユーザの入力を遅らせる。実際の応用例においては、この条件は、1つのシステム内で使用されるGPUの数を制限する役割を果たす。大きなデータセットの場合、それぞれのGPUがすべてのデータにアクセスできなければならないという事実のために、別のネックが存在する。これは、大きなデータセットの複数のコピーオペレーションを維持すること、または単一のコピーオペレーションにアクセスする際の可能性のあるコンフリクトのいずれかを必要とする。
イメージ分割方法は、スクリーンをN個のGPUの間において分割し、それによってそれぞれのGPUは、そのイメージの1/Nを表示する。多角形のセットの全体は、処理用としてそれぞれのGPUに転送されるが、ピクセルの処理は、ウィンドウのサイズまで大幅に縮小される。イメージ分割には、待ち時間の問題はないが、大きなデータセットに伴う同様のネックがあり、これは、それぞれのGPUが、そのGPUに割り当てられたスクリーンの部分の範囲内にどのグラフィック要素が収まるかを決定するためにデータベースの全体を点検しなければならないことによる。イメージ分割方法は、ピクセル処理の負荷が大きいアプリケーションに適する。
オブジェクト分割方法は、複数のGPUの間におけるデータサブセットの分散に基づく。データサブセットは、GPUパイプライン内にレンダリングされ、フラグメント(サブイメージピクセル)のFB(Frame Buffer)に変換される。複数のFBのサブイメージをマージ(合成)して、表示される最終的なイメージを生成しなければならない。オブジェクト分割は、大量の多角形から構成される非常に複雑なデータの単一フレームのレベル上での並列のレンダリングを実行する。入力データは、多角形のレベルにおいて分解され、ピクセルのレベルにおいて再合成される。専用のドライバが、アプリケーションによって生成されるデータストリームをすべてのGPUの間においてインテリジェントに分散させる。GPUによって生成されるラスタは、最終的なラスタへと合成され、ディスプレイへ移動される。オブジェクト分割方法は、大量の幾何学的なデータをレンダリングする必要のあるアプリケーションに非常に適する。これらは通常、CAD、デジタルコンテンツの作成、および類似のビジュアルシミュレーションアプリケーションであり、これらは「ビューア」とみなされており、これは、データが事前に設計されており、それによってスペース内におけるそれらの三次元の位置が、ユーザの対話式のコントロール下にはないことを意味している。しかしユーザは、実際にはビューアの位置、ビューの方向、およびグラフィックデータのスケールに対する対話式のコントロールを有する。ユーザは、データのサブセットの選択、およびそれがレンダリングされる方法に対するコントロールを有することもできる。これは、基礎をなすデータのイメージのライティング、彩色、透明性、およびその他の視覚的特性の効果を操作することを含む。
上記の応用例においては、データは、通常ではディスプレイリストまたは頂点アレイにおける大量の幾何学的なエンティティから構成されるため、非常に複雑になる傾向がある。したがって単一のフレームの構築時間は、非常に長くなる傾向があり(たとえば、通常では2千万個の多角形に対して0.5秒)、ひいては全体的なシステムパフォーマンスが遅くなる。
したがって、PC(Personal Computer)バス上の大きなトラフィックにさらされながらも最良のシステムパフォーマンスを保証することができるシステムを提供する必要性がある。
本発明の1つの目的は、複数のGPUを並列化することによってGPUの増幅された強度を提供することである。
本発明の別の目的は、単一のフレームの構築時間によって全体的なシステムの反応が遅くなることのないシステムを提供することである。
本発明のさらに別の目的は、頂点処理およびフラグメント処理のグラフィックパイプラインのネックが透過的かつインテリジェントに解決されるシステムおよび方法を提供することである。
本発明のさらに別の目的は、高いスケーラビリティおよび限りないシーンの複雑性を有するシステムおよび方法を提供することである。
本発明のさらに別の目的は、データの分解によって課される困難を克服するプロセスを提供することであり、それは、複数のGPUの間におけるデータとグラフィックコマンドとのパーティションである。
本発明のさらに別の目的は、状態マシンとしてのグラフィックライブラリの基本的な機能を保持してグラフィックの標準に準拠する、データとグラフィックコマンドとのインテリジェントな分解のための方法およびシステムを提供することである。
本発明のその他の目的および利点は、説明が進むにつれて明らかになるであろう。
本発明は、1つまたは複数の並列化モードを使用してイメージ処理の並列化を改善するためのシステムを対象とし、このシステムにおいては、イメージが1つまたは複数のグラフィック処理装置によって少なくとも1つのコンピュータスクリーン上に表示され、このシステムは、
グラフィックコマンドを発行するための1つまたは複数のソフトウェアアプリケーションと、
グラフィックコマンドを実施するために使用されるデータを保存するための1つまたは複数のグラフィックライブラリと、
ハードウェアハブをコントロールし、コンピュータのオペレーションシステムおよびグラフィックライブラリと対話し、データストリームのリアルタイムな分析を実行して、そこからイメージのフレームを生成し、それぞれのGPUの並列化モードを決定し、そしてデータストリームまたはその一部をそれぞれのGPUへ転送するための1つまたは複数のソフトウェアハブドライバと、
GPUがグラフィックライブラリと対話できるようにするための1つまたは複数のGPUドライバと、
ソフトウェアモジュールとハードウェアハブの間を相互接続するための少なくとも1つのI/Oモジュールとを含み、
ハードウェアハブは、それぞれのフレームごとに、複数のGPUの間において、グラフィックコマンドおよびデータストリームまたはその一部を、イメージ内におけるそれらの相対的な複雑度に従って分散させ、その複雑度を定義し、ソフトウェアハブドライバはまた、少なくとも1つのGPUから得られる出力を使用して、表示用として1つのグラフィックス出力を合成し、その一方で、必要とされる場合は常に、それぞれのフレームごとに並列化モードを切り替える。
並列化は、オブジェクト分割モードに、もしくはイメージ分割モードに、または時分割モードに、あるいはそれらの任意の組合せに基づく。ハードウェアハブは、データストリームの処理された部分から1つの完全なフレームを作成するための合成ユニットを含む。ハードウェアハブはハブルータを含み、このハブルータは、オブジェクト分割モードで、もしくはイメージ分割モードで、または時分割モードで、あるいはそれらの任意の組合せで動作している間に、多角形のデータをルーティングし、グラフィックコマンドストリームをルーティングし、ピクセルデータをルーティングし、合成の結果をルーティングする。ハードウェアハブは、I/Oモジュール内のソフトウェアハブドライバからコマンドを受け取るためのコントロールユニットを含む。ハードウェアハブはメモリユニットを含み、このメモリユニットは、1つまたは複数のGPUの中間処理結果と、合成のために必要とされるデータとを保存し、その処理されたデータを表示用として転送する。
ソフトウェアハブドライバは、
OSインターフェースおよびユーティリティによって、標準グラフィックライブラリからのグラフィックコマンドを傍受するオペレーションと、
OSインターフェースおよびユーティリティによって、グラフィックコマンドをGPUドライバへ転送および作成するオペレーションと、
OSインターフェースおよびユーティリティによって、ハードウェアハブ、レジストリ、およびインストールのオペレーションをコントロールするオペレーションと、
状態モニタリングを使用している間に、入力グラフィックコマンドストリームに基づいて複数のGPUにわたってグラフィックマシンの状態の一貫性を維持するオペレーションと、
アプリケーションおよびグラフィックリソースの分析を使用している間に、実行されるアプリケーションのグラフィックコンテキストにおけるグラフィックの負荷および過負荷のタイプを見積もるオペレーションと、
アプリケーションおよびグラフィックリソースの分析を使用している間に、グラフィックコマンドストリームおよび時間の測定に基づくGPUの負荷のバランスに関する負荷の見積もりを行うオペレーションと、
アプリケーションおよびグラフィックリソースの分析を使用している間に、負荷のバランスに関してそれぞれのGPUから受け取ったフィードバックに従って複数のGPUの間における負荷の配分を調整するオペレーションと、
その時点での並列化モードに従ってグラフィック機能内での操作を実行するオペレーションと、
分散されたグラフィック機能をコントロールし、その一方でその時点での並列化モードに従ってグラフィックコマンドおよびデータストリームを修正するオペレーションとを実行できることが好ましい。
本発明は、1つまたは複数の並列化モードを使用してイメージ処理の並列化を改善する方法を対象とし、この方法においては、イメージが1つまたは複数のグラフィック処理装置によって少なくとも1つのコンピュータスクリーン上に表示される。グラフィックコマンドを発行するためのソフトウェアアプリケーションが提供され、グラフィックコマンドを実施するために使用されるデータを保存するためのグラフィックライブラリが提供される。ハードウェアハブをコントロールし、コンピュータのオペレーションシステムおよびグラフィックライブラリと対話し、データストリームのリアルタイムな分析を実行して、そこからイメージのフレームを生成し、それぞれのGPUの並列化モードを決定し、そしてデータストリームまたはその一部をそれぞれのGPUへ転送するためのソフトウェアハブドライバが提供される。GPUがグラフィックライブラリと対話できるようにするためのGPUドライバが提供され、ソフトウェアモジュールとハードウェアハブの間を相互接続するためのI/Oモジュールが提供される。グラフィックコマンドおよびデータストリームまたはその一部は、それぞれのフレームごとに、複数のGPUの間において、ハードウェアハブによって、イメージ内におけるそれらの相対的な複雑度に従って分散され、その複雑度は、ソフトウェアハブドライバによって定義される。ソフトウェアハブドライバはまた、少なくとも1つのGPUから得られる出力を使用して、表示用として1つのグラフィックス出力を合成し、その一方で、必要とされる場合は常に、それぞれのフレームごとに並列化モードを切り替える。
並列化モードがオブジェクト分割の並列化モードである場合は常に、
それぞれのフレームごとに、グラフィックオペレーションおよび多角形のデータのストリームを生成するステップと、
複数のGPUの間において分散させるために、ソフトウェアハブドライバによって多角形のデータおよびグラフィックコマンドをマークするステップと、
マークされたデータをハードウェアハブに送信するステップと、
マークされたデータを、ハブルータを介して複数のGPUへ分散させるステップと、
GPUによってデータをレンダリングするステップと、
複数のフレームバッファからデータを検索し、検索されたデータを、ハブルータを介して合成ユニットへ転送するステップと、
複数のフレームバッファのコンテンツを単一のフレームバッファへと合成するステップと、
単一のフレームバッファのコンテンツを表示用として少なくとも1つの指定のGPUへ転送するステップとが実行される。
並列化モードがイメージ分割の並列化モードである場合は常に、
ソフトウェアハブドライバによってスクリーンを複数の部分へさらに分割し、別々のビューポートを複数のGPUに割り当てるステップと、
多角形のデータおよびグラフィックコマンドの全体をハブルータへ移動するステップと、
多角形のデータおよびグラフィックコマンドの全体を複数のGPUに送信し、それぞれのGPUが、同じデータを受信するステップと、
GPUによってデータをレンダリングするステップと、
複数のフレームバッファ内に保存されているコンテンツの一部を、完全なイメージの作成のためにハードウェアハブ内の合成ユニットへ転送するステップと、
イメージを表示用として少なくとも1つの指定のGPUへ転送するステップとが実行される。
並列化モードが時分割の並列化モードである場合は常に、
レンダリングのために多角形の全体を複数のGPUのそれぞれに転送するステップと、
ソフトウェアハブドライバによって多角形のデータおよびグラフィックコマンドの全体をすべてのGPUにリダイレクトし、その一方でそれらの間で切り替えを行うステップと、
GPUによってデータをレンダリングするステップと、
レンダリングされたデータを、ハブルータを介して少なくとも1つのGPUから転送するステップと、
結果として生じたフレームバッファのコンテンツを、表示用としてハブルータを介して少なくとも1つの指定のGPUにリダイレクトするステップとが実行される。
複数のGPUの間における多角形の分散は、複数のGPUの間においてデータのブロックを分散させるステップと、次いでそれぞれのグラフィックオペレーションをブロッキングモードに関してテストし、そこにおいて1つまたは複数の並列化モードが実行されるステップとによって実行される。データは、ブロッキングではない通常のパスにおいて少なくとも1つの指定のGPUにリダイレクトされ、このプロセスは、ブロッキングオペレーションが検出されるまで繰り返される。そしてGPUは、レンダリングを終了して、それぞれのGPU内で内部のパイプラインをクリーンアップするためにフラッシュオペレーションを実行するステップと、複数のフレームバッファのコンテンツを単一のフレームバッファへとマージするために合成オペレーションを実行するステップと、その単一のフレームバッファをすべてのGPUに返信するステップとによって同期化される。そしてスワップオペレーションが検出された場合は常に、合成された完全なフレームが、1つまたは複数の指定のGPU以外のすべてのGPUにおいて終了され、その1つまたは複数の指定のGPUによって、そのイメージが表示される。ブロッキングモードがアクティブであり、かつスワップオペレーションが検出されない限り、すべてのGPUによって同じデータが処理される。ブロッキングモードがアクティブでない場合は常に、指定されたデータが、複数のGPUによってさらに処理される。
説明を簡単かつ明確にするために、図に示されている要素は、必ずしも正確な縮尺では描かれていないということが理解できるであろう。たとえばいくつかの要素の寸法は、説明を明確にするために他の要素に比べて誇張されているかもしれない。さらに、適切とみなされる場合には、参照番号は、対応する要素あるいは類似した要素を示すために複数の図の間で繰り返すことができる。
多重3−Dグラフィックパイプライン
本発明は、新奇なオペレーショナルコンポーネント、3−Dパイプラインハブを含む拡張されたPCグラフィックアーキテクチャの導入を必要とする。
図1は、本発明の一実施形態による多重GPUアーキテクチャシステム100を提示している。ハブ110は、CPU(Central Processing Unit)とGPUのクラスタ130の間のPCバス上の一意の位置に配置される。この多重グラフィックパイプラインアーキテクチャは、図1に示されているように、ソフトウェアアプリケーション121、グラフィックライブラリ122、ソフトウェアハブドライバ123、GPUドライバ124、ハードウェアハブ110、GPUのクラスタ130、および(1つまたは複数の)ディスプレイ140から構成される。通常、GPUのうちの1つが、ディスプレイユニットとして指定される。複数のディスプレイユニットを有すること、あるいは1つのディスプレイユニットを直接ハードウェアハブ内に含めることも可能であるという点に留意すべきである。また、1つのディスプレイユニットが複数のスクリーンを駆動することもできる。
ハブメカニズムは、I/O(Input/Output)チップセット160の間のPCバス上に配置されたI/Oモジュールであるハードウェアハブコンポーネント110と、GPUのクラスタ130と、PCによって実行されるソフトウェアハブドライバ123を含むソフトウェアモジュールとから構成される。
ハードウェアハブ110は、少なくとも下記のアクションを実行する。
−分解された多角形ストリームおよびグラフィックコマンドを複数のGPUの間において分散させ、
−別々の並列モードに従って表示用のグラフィックス出力を合成し、
−データのキャッシュを作成し、
−並列処理のモードを切り替える。
ソフトウェアハブドライバ123は、ハードウェアハブ110をコントロールすることに加えて、少なくとも下記のアクションも実行する。
−OpenGL、DirectXなどのOS(Operation System)およびグラフィックライブラリと対話し、
−データストリームのリアルタイムの分析を実行し、
−並列化モードを決定し、
−データおよびコマンドストリームを分解する。
この方法の1つの利点は、ハードウェアハブ110の一意の位置によってグラフィックパイプラインのコントロールが可能となり、その一方で、それがアプリケーション121にとって透過的であるという点である。アプリケーション121は、OpenGLなどのグラフィックライブラリ122と共に、まるで単一のGPUであるかのように作業を続ける。
この方法の別の利点は、ハードウェアハブ110の一意の位置によってユーザインターフェース150とディスプレイ140の間におけるグラフィックパイプラインのコントロールが可能となり、その一方で、それがGPUにとって透過的であるという点である。クラスタのそれぞれのGPUは、まるでI/Oチップセット160上で接続されている唯一のグラフィックプロセッサであるかのように作業を続ける。
この方法のさらに別の利点は、ハードウェアハブ110の一意の位置によって、イメージ分割モード、時分割モード、あるいはオブジェクト分割モードという別々の並列化モードごとにグラフィックパイプラインをコントロールすることができるという点である。
この方法のさらなる利点は、ハードウェアハブ110の一意の位置によって、多角形の総数、テクスチャのボリューム、人間の対話など、アプリケーションの負荷に関する変わりゆくパラメータをリアルタイムに感知し、その時点での最適な並列化方法をインテリジェントに決定し、実行することができるという点である。
本発明のすべての実施形態によれば、(1つまたは複数の)ディスプレイ140は、ハードウェアハブ110に直接あるいは間接的に接続することができるという点に留意すべきである。
次いで図2を参照すると、本発明の一実施形態によるハードウェアハブ110のコンポーネントが開示されている。コントロールユニット210は、ソフトウェアハブドライバからバスを介して専用のコマンドを受け取り、それに従って他のユニットをコントロールする。ハブルータ230は、多角形のデータおよびグラフィックコマンドのストリームを左から右へルーティングし、ピクセルデータを右から合成ユニットへルーティングし、そして合成結果を右へルーティングする。合成ユニット240は、並列化モードに従ってさまざまな合成スキームを実行する。補助メモリブロック220は、1つまたは複数のGPUの中間処理結果と、合成のために必要とされるデータとを保存すること、および処理されたデータを表示用として転送することのために使用される。
ハードウェアハブ110は、オブジェクト分割モード、イメージ分割モード、時分割モードという並列化モードに従ってそのユニットを利用する。これらのモードは、アプリケーションのニーズに従ってハードウェアハブ110によって適宜操作される。
図3は、本発明の一実施形態によるオブジェクト分割の並列化モードのオペレーションを開示している。CPUは、3−Dグラフィックアプリケーション310を実行し、この3−Dグラフィックアプリケーション310は、標準グラフィックライブラリと共に、グラフィックオペレーションおよび多角形のデータのストリームを生成する。これらは通常、データブロック内で、ディスプレイリスト、頂点アレイ、またはフリーな多角形のいずれかとして編成される。フリーな多角形とは、ディスプレイリスト内にも頂点アレイ内にも編成されていない多角形である。ソフトウェアハブドライバは、ステップ320において、全体的な負荷のバランスがとれるような方法で複数のGPUの間において分散させるために多角形のデータおよびグラフィックコマンドをマークする。マークされたデータは、ハードウェアハブに転送される。ステップ330において、これは、ハブルータを介して複数のGPUに分散される。GPU内のレンダリング処理がステップ340において完了した後、複数のフレームバッファが検索され、ステップ350においてハブルータを介して合成ユニットへ転送される。ここでは、複数のフレームバッファが単一のフレームバッファに合成され、表示用として指定のGPUへ転送される。この単一のフレームバッファが、ステップ360において表示される。
図4は、本発明の一実施形態によるイメージ分割の並列化モードのオペレーションを開示している。このモードにおいては、ソフトウェアハブドライバが、スクリーンを複数のGPUの間においてさらに分割するために別々のビューポートを複数のGPUに割り当てる。これらのビューポートの側面は、全体的なGPUの負荷のバランスを均等に維持するために負荷のバランスを考慮して設定される。ステップ420においては、多角形のデータおよびグラフィックコマンドの全体が、ハードウェアハブにおけるハブルータへ移動され、ステップ430において複数のGPUに送信される。すべてのGPUは、同じデータを受信する。ステップ440におけるレンダリングの後、一部のフレームバッファが、ステップ450における完全なイメージの作成のためにハードウェアハブ内の合成ユニットにもたらされ、そしてこのイメージが、表示用として指定のGPUへ移動される。この完全なイメージは、ステップ460において表示される。
図5は、本発明の一実施形態による時分割の並列化モードのオペレーションを開示している。時分割においては、それぞれのフレームの処理は、N個のGPU(あるいはGPUのN個のクラスタ)が参加している間にNフレームのタイムユニットを要する。多角形の全体は、レンダリングのためにそれぞれのGPUに転送される。それぞれのフレームのタイムユニットにおいて、ソフトウェアハブドライバは、多角形のデータおよびグラフィックコマンドをステップ530において一度にGPUの1つのクラスタにリダイレクトし、その一方でそれらの間で切り替えを行う。これらのデータは、ハブルータを介してGPUの上記のクラスタへ転送され、ステップ540においてGPU内でレンダリングされ、そして結果として生じたフレームバッファは、ステップ550において表示用としてハブルータを介して指定のGPUにリダイレクトされる。すべてのGPUは、ソフトウェアハブドライバによって、フレームの連続したシーケンスを生成するように調整される。結果として生じたフレームバッファは、ステップ560において表示される。
ハードウェアハブの強みは、その拡張するテクノロジーであり、専用のプロセスのアーキテクチャおよびクラスタは、チップ、カード、あるいはチップIP(Intellectual Property)コアのレベルにおいて複数のGPUを並列に使用できるようにすること、およびCPUとGPUの間における複数のバス経路を操作することによって、PCベースのシステムにおける既存のGPUのパフォーマンスを拡張することに向けられる。このテクノロジーは、パフォーマンスにおける直線的な増大を達成する。これは、グラフィックスベンダにとって不変のものであり、またアプリケーションにとっては透過的なものでもある。本発明においては、頂点処理、フラグメント処理、およびバス転送のグラフィックパイプラインのネックは、完全かつインテリジェントに解決される。ネックは複数のフレームの間で移動する可能性があるため、ハードウェアハブは、図2で開示されたコントロールユニット210と、図1で開示されたソフトウェアハブドライバ123の間に、別々のネックを克服してフレームのレベルにおいて最大のパフォーマンスを維持するために別々の並列化モードを利用するバスによるスマートなリアルタイムのフィードバックシステムを備えて設計される。
ソフトウェアハブドライバ
ソフトウェアハブドライバは、PC内に常駐して、コンピュータのオペレーティングシステム、標準グラフィックライブラリ、アプリケーション、およびベンダのGPUドライバと共存するソフトウェアパッケージである。図6は、ソフトウェアハブドライバ630を本発明の一実施形態によるオペレーティングシステム環境へと統合する可能な形態のブロック概略図である。グラフィックアプリケーションブロック610の次には、標準グラフィックライブラリブロック620がある。ソフトウェアハブドライバ630は、標準グラフィックライブラリ620の下に配置され、グラフィックコマンドおよびデータストリームをベンダのGPUドライバ640への途中で傍受する。ソフトウェアハブドライバ630は、ハードウェアハブ660もコントロールする。
図7は、本発明の一実施形態によるソフトウェアハブドライバの主要なタスクを提示する機能ブロック図である。OSインターフェースおよびユーティリティブロック710は、標準グラフィックライブラリからのグラフィックコマンドを傍受すること、グラフィックコマンドをベンダのGPUドライバへ転送および作成すること、ハードウェアハブ、レジストリ、およびインストールをコントロールすること、OSサービス、ならびにユーティリティを担当する。状態モニタリングブロック720は、入力グラフィックコマンドストリームに基づいて複数のGPUにわたってグラフィックマシンの状態の一貫性を維持することを担当する。アプリケーションおよびグラフィックリソース分析ブロック730は、その時点でのアプリケーションのグラフィックコンテキストにおけるグラフィックの負荷およびネックのタイプに関するアプリケーションの観察−見積もり、グラフィックコマンドストリームおよび時間の測定に基づく負荷のバランスのためのグラフィックリソース(GPU)の負荷の見積もり、負荷のバランスをとることに関するGPUからのフィードバックの処理を担当する。並列処理ポリシー管理ブロック740は、負荷の分析に基づく。すべての並列化モード、すなわちオブジェクト分割モード、イメージ分割モード、および時分割モードは、最良のパフォーマンスおよび最適な負荷の処理を達成するために組み合わされる。並列化ポリシーは、負荷の分析に基づき、電子回路またはチップの全体にわたってすべての関連するGPUにおいてグラフィックシステムの状態を保存しなければならない。たとえば、どこかの時点でシーン内に新たな光源を追加することによる状態の変化は、別々のGPUにおいて後続のすべての多角形に影響を与えなければならない。並列処理ポリシー管理ブロック740は、グラフィック機能内での特定の操作に関するポリシーの解釈を担当する。分散グラフィック機能コントロールブロック750は、並列化ポリシーに基づくグラフィックコマンドおよびデータストリームの修正を担当する。
オブジェクト分割の分解プロセス
オブジェクトの分割は、よく知られている概念であるが、データの分解(複数のGPUの間におけるデータとグラフィックコマンドとのパーティション)は、これもまた知られている概念ではあるものの、さまざまな大きな困難を課すために、まだ効果的に適用されていない。これらの困難は、本発明による提案されているプロセスおよびその実施によって、首尾よく処理される。
分解、そしてさらに重要なこととして合成は、正確かつ効率的でなければならない。一部のオペレーションは、アプリケーションによって提示される順に実行されなければならない。たとえば半透明性の場合、コマンドおよび多角形のストリームは、正しいグラフィックの結果を作成するために一定の順序を維持しなければならない。
状態マシンとしてのグラフィックライブラリの基本的な機能を保持してグラフィックの標準に準拠する、データとグラフィックコマンドとのインテリジェントな分解が必要とされている。本発明による提案されている分解プロセスは、ソフトウェアハブドライバによって実行される。CPUは、3−Dグラフィックアプリケーションを実行し、グラフィックコマンドおよびデータのフローを生成する。これらは通常、システムメモリ内に保存されているディスプレイリストや頂点アレイなどのブロック内で編成される。
本発明によれば、ソフトウェアハブドライバは、CPU内で実行され、シーンの多角形(あるいは頂点)のセットを分解する。それらの物理的な分散は、ハードウェアハブによって実行される。
多角形は、GPU内でレンダリングされ、その一方で、結果として生じるフレームバッファをローカルメモリ内に保持する。すべてのFBは、ハブルータを介してハードウェアハブ内の合成ユニットへ転送されて、単一のFBへとマージされる。最終的に、合成されたFBは、表示用として転送される。
ソフトウェアハブドライバは、複数のGPUの間において多角形を分散させる下記のプロセスを実行する。グラフィックアプリケーションが動作する通常の方法は、依然として変わらないと仮定する。フレームごとに、典型的なアプリケーションは、グラフィックデータのブロックを含むグラフィックコールのストリームを生成し、それぞれのブロックは、単一頂点のオペレーションやバッファベースのオペレーション(頂点アレイ)などの幾何学的なオペレーションのリストから構成される。通常、分解プロセスは、ブロックを基本的なデータユニットとして保存する複数のGPUの間においてデータを分割する。幾何学的なオペレーションは、データの(1つまたは複数の)ブロックに付随し、そのデータが処理される方法を指示する。1つのブロックは、指定のGPUを対象とする。しかしフラッシュ、スワップ、アルファブレンディングなどのブロッキングオペレーションのグループに属するオペレーションがあり、これは、グラフィックシステムの全体に影響を与え、システムをブロッキングモードに設定する。ブロッキングオペレーションは、作成された有効なFBデータを必要とするという点で例外的であり、したがって本発明の並列設定においては、すべてGPUに1つの影響を与える。したがってブロッキングオペレーションのうちの1つが発行される場合は常に、すべてのGPUが同期化されなければならない。それぞれのフレームは、フラッシュおよびスワップという少なくとも2つのブロッキングオペレーションを有し、これはフレームを終了させる。
図8は、本発明の一実施形態による複数のGPUの間において多角形を分散させるためのプロセスを提示するフローチャートである。フレームアクティビティは、複数のGPUの間においてデータのブロックを分散させることによって始動する。それぞれのグラフィックオペレーションは、ステップ820においてブロッキングモードに関してテストされる。通常の(ブロッキングではない)パスにおいては、データは、ステップ830において指定のGPUにリダイレクトされる。このループは、ブロッキングオペレーションが検出されるまで繰り返される。
ブロッキングオペレーションが検出されると、すべてのGPUは、ステップ840において少なくとも下記のシーケンスによって同期化されなければならない。
−レンダリングを終了して、GPU内で内部のパイプラインをクリーンアップする(フラッシュする)ためにフラッシュオペレーションを実行し、
−複数のFBのコンテンツを単一のFBへとマージするために合成を実行し、
−継続するための共通の基盤を形成するために、その単一のFBのコンテンツをすべてのGPUに返信する。
スワップオペレーションは、ダブルバッファリングメカニズムを起動して、バックおよびフロントのカラーバッファを交換する。スワップがステップ850において検出された場合は、合成された完全なフレームがGPU0以外のすべてのGPUにおいて終了されなければならないことを意味している。すべてのGPUは、最終的な作成されたコンテンツを保存するように指定されているFBのそうしたコンテンツを有するが、スクリーンに接続されているGPU(GPU0)のみが、ステップ860においてそのイメージを表示する。
別のケースは、シーン全体に適用され、すべてのGPUに送信される必要のあるオペレーションである。透明性のためのアルファブレンディングなど、他のブロッキングオペレーションのうちの1つが識別された場合、すべてのGPUは、前述のステップ840におけるようにフラッシュされ、共通のFBへとマージされる。今度は、スワップオペレーションは検出されず(ステップ850)、したがってすべてのGPUは、同じデータを有し、ブロッキングモードがオンである限り(ステップ870)、それらのすべては、同じデータの処理を続ける(ステップ880)。ブロックモードの終わりがステップ870において検出された場合、GPUは、指定されたデータ上の作業に戻る(ステップ830)。
3つの分割方法を組み合わせることによるグラフィックの負荷の臨機応変な処理
さらに本発明は、前の処理ステージによる負荷の表示に基づいてオブジェクト分割方法をイメージドメインおよびタイムドメインにおいてイメージ分割方法および時分割方法と組み合わせる動的な負荷バランシング技術を導入する。3つの並列の方法のすべてを1つの統合されたフレームワークへと組み合わせることによって、本発明の効率性は劇的に高まる。
並列処理は、任意の共通のGPUなどのパイプラインによって実施され、データをタイムドメイン、イメージドメイン、およびオブジェクトドメインにおいて並列に処理できるようにする。複数のGPU上で並列に、または順次、グラフィカル処理システム上で実行された処理の結果、完全なラスタイメージのシーケンスがフレームバッファ内に保存され、ディスプレイユニットへ送信される。これらのイメージは、フレームと略称される。1つのフレームは、複数のフラグメントから構成される。フラグメントとは、メモリ内に保存されている拡張されたピクセルであり、色、アルファ、深み、ステンシルなどの属性から構成される。処理がタイムドメインにおいて並列に実行される場合、通常それぞれのGPUは、完全なフレームの生成を担当する。他の2つのドメイン、すなわちイメージドメインおよびオブジェクトドメインにおいては、すべてのGPUは、並列に動作して単一のフレームを生成する。スクリーンスペースの並列処理は、それぞれのGPUがそれぞれのフレームのフラグメントのサブセットをレンダリングすることを意味し、オブジェクトの並列処理は、それぞれのフレームごとの入力データ、とりわけ幾何学的なデータ(たとえば、シーンを表す多角形のセット)が複数のGPUの間において分散されることを意味する。
3つのドメイン(タイムドメイン、イメージドメイン、およびオブジェクトドメイン)のそれぞれには、長所と短所がある。それぞれの専門領域の有効性は、入力データに基づく動態関数である。さらに、多くの場合、どの単一の専門領域が優位ということはない。これらの場合、3つの専門領域のうちの2つあるいはすべてを組み合わせることによって、最適な結果をもたらすことができる。
本発明は、三次元データの並列処理システムのための仕様について記述する。これは、オブジェクトの並列処理のための新奇なプロセスを提供し、このプロセスは、別々のGPUの間においてデータを効率よく分解することと、次いでさまざまなGPU上で生成されたフレームを、レンダリングされる準備の整った最終的なフレームへと合成することとから構成される。
本発明は、3つの並列モードのすべてを1つの統合されたフレームワークへと動的に統合して最大の負荷のバランシングを達成するための方法を提供する。それぞれのフレームにおいて、前のフレームをレンダリングするのに要した時間と、これらのフレームの処理中に提示されたネックとに基づいて、利用可能なGPUのセットを再構成することができる。
図9は、本発明の一実施形態による8つのGPUを採用するシステムのサンプル構成を開示している。上記のサンプル構成によれば、バランスのとれたグラフィックアプリケーションが見込まれる。GPUは、時分割の並列処理のために2つのグループへと分割される。1、2、3、および4とインデックスを付けられたGPUは、偶数のフレームを処理するように構成され、5、6、7、および8とインデックスを付けられたGPUは、奇数のフレームを処理するように構成される。それぞれのグループ内では、2つのGPUサブグループがイメージ分割のためにセットされ、低位のインデックス(それぞれ1、2と5、6)を有するGPUは、スクリーンの半分を処理するように構成され、高位のインデックスを付けられたGPU(それぞれ3、4と7、8)は、残りの半分を処理するように構成される。最後に、オブジェクト分割のために、1、3、5、および7とインデックスを付けられたGPUは、オブジェクトの半分と共に提供され、2、4、6、および8とインデックスを付けられたGPUは、オブジェクトの残りの半分と共に提供される。
前のフレームにおいて提示されたネックがパイプラインのラスタステージにおいて生じていることをどこかの時点でシステムが検出した場合は、フレームをレンダリングするのに要する時間をフラグメント処理が独占していること、および構成がアンバランスであることを意味している。その時点でGPUが再構成され、それによってそれぞれのGPUは、それぞれのフレーム内でスクリーンの1/4をレンダリングする。GPU1、2、3、4の間における、および5、6、7、8の間における時分割のための元のパーティションは、依然として保持されるが、GPU2およびGPU5は、偶数のフレームと奇数のフレームのそれぞれにおいてスクリーンの最初の1/4をレンダリングするように構成される。GPU1およびGPU6は2番目の1/4を、GPU4およびGPU7は3番目の1/4を、そしてGPU3およびGPU8は4番目の1/4をレンダリングするように構成される。オブジェクトの分割は、まったく含意されていない。
さらに、前のフレームにおいて提示されたネックがパイプの幾何学ステージにおいて生じていることをどこかの時点でシステムが検出した場合は、GPUが再構成され、それによってそれぞれのGPUは、それぞれのフレーム内で幾何学的なデータの1/4を処理する。すなわちGPU3およびGPU5は、偶数のフレームと奇数のフレームのそれぞれにおいて多角形の最初の1/4を処理するように構成される。GPU1およびGPU7は2番目の1/4を、GPU4およびGPU6は3番目の1/4を、そしてGPU2およびGPU8は4番目の1/4を処理するように構成される。イメージの分割は、まったく含意されていない。
フレームごとに3つの並列モード、すなわち時分割モード、イメージ分割モード、およびオブジェクト分割モードのすべてを組み合わせるためには、8個のGPUを採用すれば十分であるという点に留意すべきである。8個を超える数のGPUを採用しても、3つのモードのすべてを組み合わせることができるが、これは非対称的な方法になる。時分割サイクルでは、フレームの総数における柔軟性も存在する。上記の例においては、8個のGPUのクラスタが2つのグループへと分割され、それぞれのグループが1つのフレームを取り扱っていた。しかし時分割モードにおけるフレームの数を、2つよりも長いフレーム、たとえば3つあるいは4つのフレームのシーケンスへ拡張することが可能である。
より少ない数のGPUを採用しても、やはり並列モードの組合せが可能だが、これは2つのモードの組合せのみとなる。たとえば4個だけのGPUを採用すると、時分割モードを除いて、イメージ分割モードとオブジェクト分割モードを組み合わせることができる。図9から明確に理解できるように、GPU1、GPU2、GPU3、およびGPU4のグループを採用すると、左側のクラスタとなる。同様にGPU1、GPU2、GPU5、およびGPU6のグループは、上側のクラスタであり、オブジェクト分割モードと時分割モードの双方を採用する。最後に、GPU2、GPU4、GPU5、およびGPU6のグループの構成は、中央のクラスタであり、イメージ分割モードと時分割モードを採用する。
上記の実施形態と同様に、複数の並列モードの間におけるいかなる組合せも、グラフィックの負荷のバランスを均等にするようにスケジュールすることができるという点に留意すべきである。
本発明によれば、すべてのGPUの間における並列化プロセスは、それぞれのフレームの処理パフォーマンスを最適化するために、オブジェクト分割モード、もしくはイメージ分割モード、または時分割モード、あるいはそれらの任意の組合せに基づくことができるという点にも留意すべきである。
本発明のいくつかの実施形態について例示として説明したが、本発明は、多くの修正、変形形態、および適合形態と共に、また当業者の範囲内である多くの均等物あるいは代替ソリューションを使用して、本発明の趣旨から逸脱することなく、あるいは特許請求の範囲を越えることなく実施することができるということは明らかであろう。
本発明の一実施形態による多重GPUアーキテクチャシステムを示すブロック図である。 本発明の一実施形態によるハードウェアハブコンポーネントを示すブロック図である。 本発明の一実施形態によるオブジェクト分割の並列化モードを示すブロック図である。 本発明の一実施形態によるイメージ分割の並列化モードを示すブロック図である。 本発明の一実施形態による時分割の並列化モードを示すブロック図である。 ソフトウェアハブドライバを本発明の一実施形態によるオペレーティングシステム環境へと統合する可能な形態を示すブロック概略図である。 本発明の一実施形態によるソフトウェアハブドライバの主要なタスクを提示する機能ブロック図である。 本発明の一実施形態による複数のGPUの間において多角形を分散させるためのプロセスを提示するフローチャートである。 本発明の一実施形態による8つのGPUを採用するシステムのサンプル構成を開示する図である。

Claims (13)

  1. 1つまたは複数の並列化モードを使用してイメージ処理の並列化を改善するためのシステムにおいて、前記イメージが1つまたは複数のグラフィック処理装置によって少なくとも1つのコンピュータスクリーン上に表示されるシステムであって、少なくとも、
    a.グラフィックコマンドを発行するための1つまたは複数のソフトウェアアプリケーションと、
    b.前記グラフィックコマンドを実施するために使用されるデータを保存するための1つまたは複数のグラフィックライブラリと、
    c.ハードウェアハブをコントロールし、前記コンピュータのオペレーションシステムおよび前記グラフィックライブラリと対話し、データストリームのリアルタイムな分析を実行して、そこから前記イメージのフレームを生成し、それぞれのGPUの前記並列化モードを決定し、そして前記データストリームまたはその一部をそれぞれのGPUへ転送するための1つまたは複数のソフトウェアハブドライバと、
    d.前記GPUが前記グラフィックライブラリと対話できるようにするための1つまたは複数のGPUドライバと、
    e.前記ソフトウェアモジュールと前記ハードウェアハブの間を相互接続するための少なくとも1つのI/Oモジュールとを含み、
    前記ハードウェアハブが、それぞれのフレームごとに、前記複数のGPUの間において、グラフィックコマンドおよび前記データストリームまたはその一部を、前記イメージ内におけるそれらの相対的な複雑度に従って分散させ、前記複雑度が前記ソフトウェアハブドライバによって定義され、少なくとも1つのGPUから得られる出力を使用して、表示用として1つのグラフィックス出力を合成し、その一方で、必要とされる場合は常に、前記それぞれのフレームごとに前記並列化モードを切り替えるシステム。
  2. 前記並列化が、オブジェクト分割モードに、もしくはイメージ分割モードに、または時分割モードに、あるいはそれらの任意の組合せに基づく請求項1に記載のシステム。
  3. 前記ハードウェアハブが、少なくとも前記データストリームの処理された部分から1つの完全なフレームを作成するための少なくとも1つの合成ユニットを含む請求項1に記載のシステム。
  4. 前記ハードウェアハブが、少なくとも1つのハブルータを含み、このハブルータが、前記オブジェクト分割モードで、もしくは前記イメージ分割モードで、または前記時分割モードで、あるいはそれらの任意の組合せで動作している間に、多角形のデータをルーティングし、グラフィックコマンドストリームをルーティングし、ピクセルデータをルーティングし、合成の結果をルーティングする請求項2に記載のシステム。
  5. 前記ハードウェアハブが、前記I/Oモジュール内の前記ソフトウェアハブドライバからコマンドを受け取るための少なくとも1つのコントロールユニットを含む請求項1に記載のシステム。
  6. 前記ハードウェアハブが、1つのメモリユニットを含み、このメモリユニットが、1つまたは複数のGPUの中間処理結果と、合成のために必要とされるデータとを保存し、前記処理されたデータを表示用として転送する請求項1に記載のシステム。
  7. 前記ソフトウェアハブドライバが、
    a.OSインターフェースおよびユーティリティによって、標準グラフィックライブラリからの前記グラフィックコマンドを傍受するオペレーションと、
    b.前記OSインターフェースおよびユーティリティによって、グラフィックコマンドを前記GPUドライバへ転送および作成するオペレーションと、
    c.前記OSインターフェースおよびユーティリティによって、前記ハードウェアハブ、レジストリ、およびインストールのオペレーションをコントロールするオペレーションと、
    d.状態モニタリングを使用している間に、入力グラフィックコマンドストリームに基づいて前記複数のGPUにわたってグラフィックマシンの状態の一貫性を維持するオペレーションと、
    e.アプリケーションおよびグラフィックリソースの分析を使用している間に、実行されるアプリケーションのグラフィックコンテキストにおけるグラフィックの負荷および過負荷のタイプを見積もるオペレーションと、
    f.アプリケーションおよびグラフィックリソースの分析を使用している間に、グラフィックコマンドストリームおよび時間の測定に基づく前記GPUの負荷のバランスに関する負荷の見積もりを行うオペレーションと、
    g.アプリケーションおよびグラフィックリソースの分析を使用している間に、前記負荷のバランスに関してそれぞれのGPUから受け取ったフィードバックに従って複数のGPUの間における負荷の配分を調整するオペレーションと、
    h.現時点での並列化モードに従ってグラフィック機能内での操作を実行するオペレーションと、
    i.分散されたグラフィック機能をコントロールし、その一方で前記現時点での並列化モードに従って前記グラフィックコマンドおよび前記データストリームを変更するオペレーションとを実行することができる請求項1に記載のシステム。
  8. 1つまたは複数の並列化モードを使用してイメージ処理の並列化を改善する方法において、前記イメージが1つまたは複数のグラフィック処理装置によって少なくとも1つのコンピュータスクリーン上に表示される方法であって、少なくとも、
    a.グラフィックコマンドを発行するための1つまたは複数のソフトウェアアプリケーションを提供するステップと、
    b.前記グラフィックコマンドを実施するために使用されるデータを保存するための1つまたは複数のグラフィックライブラリを提供するステップと、
    c.ハードウェアハブをコントロールし、前記コンピュータのオペレーションシステムおよび前記グラフィックライブラリと対話し、データストリームのリアルタイムな分析を実行して、そこから前記イメージのフレームを生成し、それぞれのGPUの前記並列化モードを決定し、そして前記データストリームまたはその一部をそれぞれのGPUへ転送するための1つまたは複数のソフトウェアハブドライバを提供するステップと、
    d.前記GPUが前記グラフィックライブラリと対話できるようにするための1つまたは複数のGPUドライバを提供するステップと、
    e.前記ソフトウェアモジュールと前記ハードウェアハブの間を相互接続するための少なくとも1つのI/Oモジュールを提供するステップと、
    f.それぞれのフレームごとに、前記複数のGPUの間において、かつ前記ハードウェアハブによって、グラフィックコマンドおよび前記データストリームまたはその一部を、前記イメージ内におけるそれらの相対的な複雑度に従って分散させ、前記複雑度が前記ソフトウェアハブドライバによって定義され、少なくとも1つのGPUから得られる出力を使用して、表示用として1つのグラフィックス出力を合成し、その一方で、必要とされる場合は常に、前記それぞれのフレームごとに前記並列化モードを切り替えるステップとを含む方法。
  9. 前記並列化モードがオブジェクト分割の並列化モードであり、
    a.それぞれのフレームごとに、グラフィックオペレーションおよび多角形のデータのストリームを生成するステップと、
    b.複数のGPUの間において分散させるために、前記ソフトウェアハブドライバによって前記多角形のデータおよびグラフィックコマンドをマークするステップと、
    c.前記マークされたデータを前記ハードウェアハブに送信するステップと、
    d.前記マークされたデータを、前記ハブルータを介して前記複数のGPUへ分散させるステップと、
    e.GPUによって前記データをレンダリングするステップと、
    f.複数のフレームバッファから前記データを検索し、前記検索されたデータを、前記ハブルータを介して前記合成ユニットへ転送するステップと、
    g.前記複数のフレームバッファのコンテンツを単一のフレームバッファへと合成するステップと、
    h.前記単一のフレームバッファのコンテンツを表示用として少なくとも1つの指定のGPUへ転送するステップとが実行される請求項8に記載の方法。
  10. 前記並列化モードがイメージ分割の並列化モードであり、
    a.前記ソフトウェアハブドライバによって前記スクリーンを複数の部分へさらに分割し、別々のビューポートを複数のGPUに割り当てるステップと、
    b.前記多角形のデータおよびグラフィックコマンドの全体を前記ハブルータへ移動するステップと、
    c.前記多角形のデータおよびグラフィックコマンドの全体を複数のGPUに送信し、それぞれのGPUが、同じデータを受信するステップと、
    d.GPUによって前記データをレンダリングするステップと、
    e.前記複数のフレームバッファ内に保存されている前記コンテンツの一部を、完全なイメージの作成のためにハードウェアハブ内の合成ユニットへ転送するステップと、
    f.前記イメージを表示用として少なくとも1つの指定のGPUへ転送するステップとが実行される請求項8に記載の方法。
  11. 前記並列化モードが時分割の並列化モードであり、
    a.レンダリングのために多角形の全体を前記複数のGPUのそれぞれに転送するステップと、
    b.ソフトウェアハブドライバによって前記多角形のデータおよびグラフィックコマンドの全体をすべてのGPUにリダイレクトし、その一方でそれらの間で切り替えを行うステップと、
    c.GPUによって前記データをレンダリングするステップと、
    d.レンダリングされたデータを、前記ハブルータを介して少なくとも1つのGPUから転送するステップと、
    e.結果として生じた前記フレームバッファのコンテンツを、表示用としてハブルータを介して少なくとも1つの指定のGPUにリダイレクトするステップとが実行される請求項8に記載の方法。
  12. 複数のGPUの間における多角形の前記分散が、
    a.複数のGPUの間においてデータのブロックを分散させるステップと、
    b.それぞれのグラフィックオペレーションをブロッキングモードに関してテストし、そこにおいて1つまたは複数の並列化モードが実行されるステップと、
    c.ブロッキングではない通常のパスにおけるデータを少なくとも1つの指定のGPUにリダイレクトするステップと、
    d.ブロッキングオペレーションが検出されるまでステップ(b)および(c)を繰り返すステップと、
    e.
    e.1.レンダリングを終了して、それぞれのGPU内で内部のパイプラインをクリーンアップするためにフラッシュオペレーションを実行し、
    e.2.前記複数のフレームバッファの前記コンテンツを単一のフレームバッファへとマージするために合成オペレーションを実行し、
    e.3.前記単一のフレームバッファをすべてのGPUに返信する
    というシーケンスによって複数のGPUを同期化するステップと、
    f.スワップオペレーションが検出された場合は常に、前記合成された完全なフレームを1つまたは複数の指定のGPU以外のすべてのGPUにおいて終了し、前記1つまたは複数の指定のGPUによってそのイメージを表示するステップと、
    g.前記ブロッキングモードがアクティブであり、かつ前記スワップオペレーションが検出されない限り、すべてのGPUによって同じデータを処理するステップと、
    h.前記ブロッキングモードがアクティブでない場合は常に、複数のGPUによって、指定されたデータの処理を続けるステップとによって実行される請求項8に記載の方法。
  13. 前記並列化が、オブジェクト分割モードに、もしくはイメージ分割モードに、または時分割モードに、あるいはそれらの任意の組合せに基づく請求項8に記載の方法。
JP2006540774A 2003-11-19 2004-11-19 Pcバス上の多重3−dグラフィックパイプラインのための方法およびシステム Pending JP2007512613A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US52308403P 2003-11-19 2003-11-19
US52310203P 2003-11-19 2003-11-19
PCT/IL2004/001069 WO2005050557A2 (en) 2003-11-19 2004-11-19 Method and system for multiple 3-d graphic pipeline over a pc bus

Publications (1)

Publication Number Publication Date
JP2007512613A true JP2007512613A (ja) 2007-05-17

Family

ID=34623170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006540774A Pending JP2007512613A (ja) 2003-11-19 2004-11-19 Pcバス上の多重3−dグラフィックパイプラインのための方法およびシステム

Country Status (6)

Country Link
US (9) US7808499B2 (ja)
EP (1) EP1687732A4 (ja)
JP (1) JP2007512613A (ja)
CN (1) CN1890660A (ja)
CA (1) CA2546427A1 (ja)
WO (1) WO2005050557A2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025823A (ja) * 2011-07-18 2013-02-04 Apple Inc 仮想gpu
JP2013506898A (ja) * 2009-11-13 2013-02-28 ブル・エス・アー・エス 複数の入力/出力コントローラと補助演算ユニットとを備えるマルチプロセッサアーキテクチャにおけるソフトウェアアプリケーションの実行を最適化するための方法および装置
US8751658B2 (en) 2011-03-31 2014-06-10 Fujitsu Limited Allocating method, allocating apparatus, and computer product
JP2015506036A (ja) * 2011-12-15 2015-02-26 クゥアルコム・インコーポレイテッドQualcomm Incorporated コマンドプロセッサを備えるグラフィックス処理ユニット
JP2015507804A (ja) * 2012-01-06 2015-03-12 アセルサン・エレクトロニク・サナイ・ヴェ・ティジャレット・アノニム・シルケティAselsan Elektronik Sanayi veTicaret Anonim Sirketi 分散型画像生成システム
US9965822B2 (en) 2014-02-21 2018-05-08 Samsung Electronics Co., Ltd. Electronic device and method for processing a plurality of image pieces
JP2018092607A (ja) * 2016-09-30 2018-06-14 ダッソー システムズDassault Systemes 並列に動作する演算リソースの集合を用いて3dシーンをシミュレートするための方法、プログラム、及びシステム

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745173B1 (en) * 2011-12-30 2014-06-03 hopTo Inc. Client computing system for and method of receiving cross-platform remote access to 3D graphics applications
US7222305B2 (en) * 2003-03-13 2007-05-22 Oracle International Corp. Method of sharing a desktop with attendees of a real-time collaboration
WO2005050557A2 (en) 2003-11-19 2005-06-02 Lucid Information Technology Ltd. Method and system for multiple 3-d graphic pipeline over a pc bus
US7457921B2 (en) * 2005-02-23 2008-11-25 Microsoft Corporation Write barrier for data storage integrity
US8217950B2 (en) * 2005-05-27 2012-07-10 Advanced Micro Devices, Inc. Video processing across multiple graphics processing units
US10026140B2 (en) * 2005-06-10 2018-07-17 Nvidia Corporation Using a scalable graphics system to enable a general-purpose multi-user computer system
US7629978B1 (en) * 2005-10-31 2009-12-08 Nvidia Corporation Multichip rendering with state control
US7830387B2 (en) 2006-11-07 2010-11-09 Microsoft Corporation Parallel engine support in display driver model
KR100803220B1 (ko) * 2006-11-20 2008-02-14 삼성전자주식회사 다중 파이프라인의 3차원 그래픽스 렌더링 방법 및 장치
US8726289B2 (en) * 2008-02-22 2014-05-13 International Business Machines Corporation Streaming attachment of hardware accelerators to computer systems
US7953912B2 (en) * 2008-02-22 2011-05-31 International Business Machines Corporation Guided attachment of accelerators to computer systems
US8250578B2 (en) * 2008-02-22 2012-08-21 International Business Machines Corporation Pipelining hardware accelerators to computer systems
CN102016798A (zh) * 2008-03-11 2011-04-13 韩国科亚电子股份有限公司 处理支持固定管线的三维图形
US9117007B2 (en) * 2008-05-14 2015-08-25 Microsoft Technology Licensing, Llc Visualization of streaming real-time data
US8319782B2 (en) 2008-07-08 2012-11-27 Dell Products, Lp Systems and methods for providing scalable parallel graphics rendering capability for information handling systems
CN101639930B (zh) * 2008-08-01 2012-07-04 辉达公司 一连串绘图处理器处理绘图数据的方法及系统
US8427474B1 (en) 2008-10-03 2013-04-23 Nvidia Corporation System and method for temporal load balancing across GPUs
US8892804B2 (en) 2008-10-03 2014-11-18 Advanced Micro Devices, Inc. Internal BUS bridge architecture and method in multi-processor systems
US8373709B2 (en) * 2008-10-03 2013-02-12 Ati Technologies Ulc Multi-processor architecture and method
US8228337B1 (en) * 2008-10-03 2012-07-24 Nvidia Corporation System and method for temporal load balancing across GPUs
US8368701B2 (en) * 2008-11-06 2013-02-05 Via Technologies, Inc. Metaprocessor for GPU control and synchronization in a multiprocessor environment
GB2465812A (en) * 2008-12-01 2010-06-02 Imagination Tech Ltd Distributed processing for rendering 3D images
KR101519825B1 (ko) * 2008-12-05 2015-05-13 삼성전자주식회사 데이터 처리 장치 및 그 제어 방법
US9479358B2 (en) * 2009-05-13 2016-10-25 International Business Machines Corporation Managing graphics load balancing strategies
US20110063306A1 (en) * 2009-09-16 2011-03-17 Nvidia Corporation CO-PROCESSING TECHNIQUES ON HETEROGENEOUS GPUs INCLUDING IDENTIFYING ONE GPU AS A NON-GRAPHICS DEVICE
JP5590849B2 (ja) * 2009-10-08 2014-09-17 キヤノン株式会社 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、その制御装置、およびその制御方法、プログラム
US9830889B2 (en) 2009-12-31 2017-11-28 Nvidia Corporation Methods and system for artifically and dynamically limiting the display resolution of an application
US20110242115A1 (en) * 2010-03-30 2011-10-06 You-Ming Tsao Method for performing image signal processing with aid of a graphics processing unit, and associated apparatus
US20110298816A1 (en) * 2010-06-03 2011-12-08 Microsoft Corporation Updating graphical display content
US8675002B1 (en) 2010-06-09 2014-03-18 Ati Technologies, Ulc Efficient approach for a unified command buffer
JP2012003619A (ja) * 2010-06-18 2012-01-05 Sony Corp 情報処理装置、情報処理装置の制御方法、およびプログラム
JP5835942B2 (ja) 2010-06-25 2015-12-24 キヤノン株式会社 画像処理装置、その制御方法及びプログラム
US20120001925A1 (en) 2010-06-30 2012-01-05 Ati Technologies, Ulc Dynamic Feedback Load Balancing
US20120001905A1 (en) * 2010-06-30 2012-01-05 Ati Technologies, Ulc Seamless Integration of Multi-GPU Rendering
US20120127183A1 (en) * 2010-10-21 2012-05-24 Net Power And Light, Inc. Distribution Processing Pipeline and Distributed Layered Application Processing
US20120147015A1 (en) * 2010-12-13 2012-06-14 Advanced Micro Devices, Inc. Graphics Processing in a Multi-Processor Computing System
US8866825B2 (en) * 2010-12-15 2014-10-21 Ati Technologies Ulc Multiple display frame rendering method and apparatus
US8786619B2 (en) 2011-02-25 2014-07-22 Adobe Systems Incorporated Parallelized definition and display of content in a scripting environment
CN102270095A (zh) * 2011-06-30 2011-12-07 威盛电子股份有限公司 多重显示器控制方法及其系统
US9019292B2 (en) 2011-09-12 2015-04-28 Microsoft Technology Licensing Llc Reordering graph execution for processing optimization
US20130148947A1 (en) * 2011-12-13 2013-06-13 Ati Technologies Ulc Video player with multiple grpahics processors
US8769052B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications
US8766990B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Server computing system for and method of providing cross-platform remote access to 3D graphics applications
US8838749B1 (en) 2011-12-30 2014-09-16 hopTo Inc. Cloud based client computing system for and method of receiving cross-platform remote access to 3D graphics applications
US8692832B2 (en) 2012-01-23 2014-04-08 Microsoft Corporation Para-virtualized asymmetric GPU processors
US20130328884A1 (en) * 2012-06-08 2013-12-12 Advanced Micro Devices, Inc. Direct opencl graphics rendering
CN102868601B (zh) * 2012-09-24 2015-05-13 上海天玑科技股份有限公司 一种有关基于图形配置数据库业务网络拓扑的路由系统
TWI482118B (zh) * 2012-10-18 2015-04-21 Wistron Corp 處理圖形運算負載平衡之方法及系統
TW201421420A (zh) * 2012-11-21 2014-06-01 Inst Information Industry 圖形處理單元虛擬裝置、圖形處理單元主機裝置及其圖形處理單元程式處理方法
KR102124395B1 (ko) * 2013-08-12 2020-06-18 삼성전자주식회사 그래픽스 처리 장치 및 방법
US9348602B1 (en) 2013-09-03 2016-05-24 Amazon Technologies, Inc. Resource allocation for staged execution pipelining
US20150279037A1 (en) 2014-01-11 2015-10-01 Userful Corporation System and Method of Video Wall Setup and Adjustment Using Automated Image Analysis
US9471955B2 (en) * 2014-06-19 2016-10-18 Apple Inc. Multiple display pipelines driving a divided display
CN104915320A (zh) * 2015-05-28 2015-09-16 浪潮电子信息产业股份有限公司 一种gpu服务器
CN106326186B (zh) * 2015-06-29 2019-04-30 深圳市中兴微电子技术有限公司 一种片上系统、图形绘制方法、中间层及嵌入式设备
US10499072B2 (en) * 2016-02-17 2019-12-03 Mimax, Inc. Macro cell display compression multi-head raster GPU
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
US10504259B2 (en) 2017-04-24 2019-12-10 Intel Corporation Separately processing regions or objects or interest from a render engine to a display engine or a display panel
US11055807B2 (en) * 2017-06-12 2021-07-06 Apple Inc. Method and system for a transactional based display pipeline to interface with graphics processing units
CN108153593A (zh) * 2017-12-22 2018-06-12 合肥寰景信息技术有限公司 一种高并发的gpu集群架构及其负载均衡方法
CN108416836A (zh) * 2018-02-06 2018-08-17 上海滚滚文化传播有限公司 一种通过三维建模渲染转二维平面的漫画制作方法
US10573034B2 (en) 2018-04-13 2020-02-25 Honeywell International Inc. System and method for translation of graphics to newer format using pattern matching
CN111465966B (zh) * 2018-05-31 2023-06-02 华为技术有限公司 用于命令流优化和增强的装置和方法
US10747207B2 (en) 2018-06-15 2020-08-18 Honeywell International Inc. System and method for accurate automatic determination of “alarm-operator action” linkage for operator assessment and alarm guidance using custom graphics and control charts
US10699159B2 (en) 2018-08-17 2020-06-30 Honeywell International Inc. Objects aggregation and standardization for legacy graphics conversion
CN109408456B (zh) * 2018-12-07 2023-08-29 中国地质大学(武汉) 一种基于s905d芯片与stm32芯片协同工作硬件电路
US11397624B2 (en) * 2019-01-22 2022-07-26 Arm Limited Execution of cross-lane operations in data processing systems
CN109962691A (zh) * 2019-04-04 2019-07-02 同济大学 一种用于传感器网络的分布式自适应滤波器设计方法
CN111045623B (zh) * 2019-11-21 2023-06-13 中国航空工业集团公司西安航空计算技术研究所 一种多gpu拼接环境下图形命令的处理方法
US11042957B1 (en) 2019-12-12 2021-06-22 Honeywell International Inc. Identification of process and control linkages from custom graphics for the purpose of backbuilding standard operating procedures
US11080814B1 (en) * 2020-02-03 2021-08-03 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by pretesting against screen regions using prior frame information
CN111491059B (zh) * 2020-04-09 2021-08-10 上海众链科技有限公司 图像渲染增强系统及方法
CN111679877B (zh) * 2020-05-27 2023-08-29 浙江大华技术股份有限公司 一种变更终端设备背景的方法、装置和电子设备
CN112057851A (zh) * 2020-09-02 2020-12-11 北京蔚领时代科技有限公司 一种基于多显卡的单帧画面实时渲染方法
CN112037117A (zh) * 2020-09-07 2020-12-04 西安芯瞳半导体技术有限公司 用于运行高性能gpu应用的方法、装置及计算机存储介质
DE112020007672T5 (de) * 2020-11-12 2023-08-24 Nvidia Corporation Intra-schicht-adapter für die new radio-kommunikation der fünften generation (5g-nr)
CN114625330A (zh) 2020-12-11 2022-06-14 慧荣科技股份有限公司 多屏幕显示控制装置
CN114625329A (zh) * 2020-12-11 2022-06-14 慧荣科技股份有限公司 多屏幕显示控制装置
US11574579B2 (en) * 2021-06-23 2023-02-07 Dell Products L.P. Enabling display filters in collaborative environments
CN113436232B (zh) * 2021-06-29 2023-03-24 上海律信信息科技有限公司 一种基于跟踪算法的硬件加速方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02176980A (ja) * 1988-12-28 1990-07-10 Agency Of Ind Science & Technol 並列画像表示処理方法
US20030164832A1 (en) * 2002-03-04 2003-09-04 Alcorn Byron A. Graphical display system and method

Family Cites Families (217)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2770598B2 (ja) * 1990-06-13 1998-07-02 株式会社日立製作所 図形表示方法およびその装置
CA2073516A1 (en) 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
JP3199205B2 (ja) * 1993-11-19 2001-08-13 株式会社日立製作所 並列演算装置
EP0693737A3 (en) * 1994-07-21 1997-01-08 Ibm Method and apparatus for managing tasks in a multiprocessor system
US5745762A (en) * 1994-12-15 1998-04-28 International Business Machines Corporation Advanced graphics driver architecture supporting multiple system emulations
US5687357A (en) 1995-04-14 1997-11-11 Nvidia Corporation Register array for utilizing burst mode transfer on local bus
US5754866A (en) 1995-05-08 1998-05-19 Nvidia Corporation Delayed interrupts with a FIFO in an improved input/output architecture
US5909595A (en) 1995-05-15 1999-06-01 Nvidia Corporation Method of controlling I/O routing by setting connecting context for utilizing I/O processing elements within a computer system to produce multimedia effects
US5758182A (en) 1995-05-15 1998-05-26 Nvidia Corporation DMA controller translates virtual I/O device address received directly from application program command to physical i/o device address of I/O device on device bus
US5623692A (en) 1995-05-15 1997-04-22 Nvidia Corporation Architecture for providing input/output operations in a computer system
US5794016A (en) 1995-12-11 1998-08-11 Dynamic Pictures, Inc. Parallel-processor graphics architecture
KR100269106B1 (ko) 1996-03-21 2000-11-01 윤종용 멀티프로세서 그래픽스 시스템
EP0948859A1 (en) 1996-08-14 1999-10-13 Nortel Networks Limited Internet-based telephone call manager
US6118462A (en) 1997-07-01 2000-09-12 Memtrax Llc Computer system controller having internal memory and external memory control
US6169553B1 (en) 1997-07-02 2001-01-02 Ati Technologies, Inc. Method and apparatus for rendering a three-dimensional scene having shadowing
US6201545B1 (en) 1997-09-23 2001-03-13 Ati Technologies, Inc. Method and apparatus for generating sub pixel masks in a three dimensional graphic processing system
US6856320B1 (en) 1997-11-25 2005-02-15 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US6337686B2 (en) 1998-01-07 2002-01-08 Ati Technologies Inc. Method and apparatus for line anti-aliasing
US6496187B1 (en) 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system configured to perform parallel sample to pixel calculation
US6182196B1 (en) 1998-02-20 2001-01-30 Ati International Srl Method and apparatus for arbitrating access requests to a memory
US6473089B1 (en) 1998-03-02 2002-10-29 Ati Technologies, Inc. Method and apparatus for a video graphics circuit having parallel pixel processing
US6259460B1 (en) 1998-03-26 2001-07-10 Silicon Graphics, Inc. Method for efficient handling of texture cache misses by recirculation
US7038692B1 (en) 1998-04-07 2006-05-02 Nvidia Corporation Method and apparatus for providing a vertex cache
US6092124A (en) 1998-04-17 2000-07-18 Nvidia Corporation Method and apparatus for accelerating the rendering of images
US6184908B1 (en) 1998-04-27 2001-02-06 Ati Technologies, Inc. Method and apparatus for co-processing video graphics data
US6212617B1 (en) 1998-05-13 2001-04-03 Microsoft Corporation Parallel processing method and system using a lazy parallel data type to reduce inter-processor communication
US6477687B1 (en) 1998-06-01 2002-11-05 Nvidia U.S. Investment Company Method of embedding RAMS and other macrocells in the core of an integrated circuit chip
US7068272B1 (en) 2000-05-31 2006-06-27 Nvidia Corporation System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline
US6636215B1 (en) 1998-07-22 2003-10-21 Nvidia Corporation Hardware-assisted z-pyramid creation for host-based occlusion culling
US7023437B1 (en) 1998-07-22 2006-04-04 Nvidia Corporation System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering
US6646639B1 (en) 1998-07-22 2003-11-11 Nvidia Corporation Modified method and apparatus for improved occlusion culling in graphics systems
US6415345B1 (en) 1998-08-03 2002-07-02 Ati Technologies Bus mastering interface control system for transferring multistream data over a host bus
US6191800B1 (en) * 1998-08-11 2001-02-20 International Business Machines Corporation Dynamic balancing of graphics workloads using a tiling strategy
US6492987B1 (en) 1998-08-27 2002-12-10 Ati Technologies, Inc. Method and apparatus for processing object elements that are being rendered
US6188412B1 (en) 1998-08-28 2001-02-13 Ati Technologies, Inc. Method and apparatus for performing setup operations in a video graphics system
US6292200B1 (en) 1998-10-23 2001-09-18 Silicon Graphics, Inc. Apparatus and method for utilizing multiple rendering pipes for a single 3-D display
US6362825B1 (en) * 1999-01-19 2002-03-26 Hewlett-Packard Company Real-time combination of adjacent identical primitive data sets in a graphics call sequence
US6753878B1 (en) 1999-03-08 2004-06-22 Hewlett-Packard Development Company, L.P. Parallel pipelined merge engines
JP3169933B2 (ja) 1999-03-16 2001-05-28 四国日本電気ソフトウェア株式会社 並列描画装置
US6535209B1 (en) 1999-03-17 2003-03-18 Nvidia Us Investments Co. Data stream splitting and storage in graphics data processing
US6288418B1 (en) 1999-03-19 2001-09-11 Nvidia Corporation Multiuse input/output connector arrangement for graphics accelerator integrated circuit
US6181352B1 (en) 1999-03-22 2001-01-30 Nvidia Corporation Graphics pipeline selectively providing multiple pixels or multiple textures
US6333744B1 (en) 1999-03-22 2001-12-25 Nvidia Corporation Graphics pipeline including combiner stages
US6577320B1 (en) 1999-03-22 2003-06-10 Nvidia Corporation Method and apparatus for processing multiple types of pixel component representations including processes of premultiplication, postmultiplication, and colorkeying/chromakeying
DE19917092A1 (de) 1999-04-15 2000-10-26 Sp3D Chip Design Gmbh Verfahren zur Rasterisierung eines Graphikgrundelements
US6990076B1 (en) * 1999-05-18 2006-01-24 Mcnamara Timothy G Synchronous bi-directional data transfer having increased bandwidth and scan test features
US6424320B1 (en) 1999-06-15 2002-07-23 Ati International Srl Method and apparatus for rendering video
US6469703B1 (en) 1999-07-02 2002-10-22 Ati International Srl System of accessing data in a graphics system and method thereof
US6442656B1 (en) 1999-08-18 2002-08-27 Ati Technologies Srl Method and apparatus for interfacing memory with a bus
US6578068B1 (en) 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US6352479B1 (en) 1999-08-31 2002-03-05 Nvidia U.S. Investment Company Interactive gaming server and online community forum
US6657635B1 (en) 1999-09-03 2003-12-02 Nvidia Corporation Binning flush in graphics data processing
US6417851B1 (en) 1999-12-06 2002-07-09 Nvidia Corporation Method and apparatus for lighting module in a graphics processor
US6573900B1 (en) 1999-12-06 2003-06-03 Nvidia Corporation Method, apparatus and article of manufacture for a sequencer in a transform/lighting module capable of processing multiple independent execution threads
US7050055B2 (en) 1999-12-06 2006-05-23 Nvidia Corporation Single semiconductor graphics platform with blending and fog capabilities
US6870540B1 (en) 1999-12-06 2005-03-22 Nvidia Corporation System, method and computer program product for a programmable pixel processing model with instruction set
US6452595B1 (en) 1999-12-06 2002-09-17 Nvidia Corporation Integrated graphics processing unit with antialiasing
US6198488B1 (en) 1999-12-06 2001-03-06 Nvidia Transform, lighting and rasterization system embodied on a single semiconductor platform
US6353439B1 (en) 1999-12-06 2002-03-05 Nvidia Corporation System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline
US6844880B1 (en) 1999-12-06 2005-01-18 Nvidia Corporation System, method and computer program product for an improved programmable vertex processing model with instruction set
US6473086B1 (en) 1999-12-09 2002-10-29 Ati International Srl Method and apparatus for graphics processing using parallel graphics processors
US6557065B1 (en) 1999-12-20 2003-04-29 Intel Corporation CPU expandability bus
US6760031B1 (en) 1999-12-31 2004-07-06 Intel Corporation Upgrading an integrated graphics subsystem
EP1186881A4 (en) 2000-03-16 2006-04-19 Fuji Photo Film Co Ltd MEASURING METHOD AND INSTRUMENT USING ATTENUATION OF TOTAL REFLECTION
US6975319B1 (en) 2000-03-24 2005-12-13 Nvidia Corporation System, method and article of manufacture for calculating a level of detail (LOD) during computer graphics processing
US6831652B1 (en) 2000-03-24 2004-12-14 Ati International, Srl Method and system for storing graphics data
US6747654B1 (en) 2000-04-20 2004-06-08 Ati International Srl Multiple device frame synchronization method and apparatus
US6741243B2 (en) 2000-05-01 2004-05-25 Broadcom Corporation Method and system for reducing overflows in a computer graphics system
US6725457B1 (en) 2000-05-17 2004-04-20 Nvidia Corporation Semaphore enhancement to improve system performance
US6662257B1 (en) 2000-05-26 2003-12-09 Ati International Srl Multiple device bridge apparatus and method thereof
US6633296B1 (en) 2000-05-26 2003-10-14 Ati International Srl Apparatus for providing data to a plurality of graphics processors and method thereof
US6670958B1 (en) 2000-05-26 2003-12-30 Ati International, Srl Method and apparatus for routing data to multiple graphics devices
US6789154B1 (en) 2000-05-26 2004-09-07 Ati International, Srl Apparatus and method for transmitting data
US6728820B1 (en) 2000-05-26 2004-04-27 Ati International Srl Method of configuring, controlling, and accessing a bridge and apparatus therefor
US6690372B2 (en) 2000-05-31 2004-02-10 Nvidia Corporation System, method and article of manufacture for shadow mapping
US6724394B1 (en) 2000-05-31 2004-04-20 Nvidia Corporation Programmable pixel shading architecture
US6532013B1 (en) 2000-05-31 2003-03-11 Nvidia Corporation System, method and article of manufacture for pixel shaders for programmable shading
US6593923B1 (en) 2000-05-31 2003-07-15 Nvidia Corporation System, method and article of manufacture for shadow mapping
US6664963B1 (en) 2000-05-31 2003-12-16 Nvidia Corporation System, method and computer program product for programmable shading using pixel shaders
US6801202B2 (en) 2000-06-29 2004-10-05 Sun Microsystems, Inc. Graphics system configured to parallel-process graphics data using multiple pipelines
US7405734B2 (en) 2000-07-18 2008-07-29 Silicon Graphics, Inc. Method and system for presenting three-dimensional computer graphics images using multiple graphics processing units
US6959110B1 (en) 2000-08-17 2005-10-25 Nvidia Corporation Multi-mode texture compression algorithm
US7116331B1 (en) 2000-08-23 2006-10-03 Intel Corporation Memory controller hub interface
US6842180B1 (en) 2000-09-20 2005-01-11 Intel Corporation Opportunistic sharing of graphics resources to enhance CPU performance in an integrated microprocessor
US6532525B1 (en) 2000-09-29 2003-03-11 Ati Technologies, Inc. Method and apparatus for accessing memory
US6502173B1 (en) 2000-09-29 2002-12-31 Ati Technologies, Inc. System for accessing memory and method therefore
US6731298B1 (en) 2000-10-02 2004-05-04 Nvidia Corporation System, method and article of manufacture for z-texture mapping
US6828980B1 (en) 2000-10-02 2004-12-07 Nvidia Corporation System, method and computer program product for z-texture mapping
JP3580789B2 (ja) 2000-10-10 2004-10-27 株式会社ソニー・コンピュータエンタテインメント データ通信システム及び方法、コンピュータプログラム、記録媒体
US6961057B1 (en) 2000-10-12 2005-11-01 Nvidia Corporation Method and apparatus for managing and accessing depth data in a computer graphics system
US6362997B1 (en) 2000-10-16 2002-03-26 Nvidia Memory system for use on a circuit board in which the number of loads are minimized
US6636212B1 (en) 2000-11-14 2003-10-21 Nvidia Corporation Method and apparatus for determining visibility of groups of pixels
US6778181B1 (en) 2000-12-07 2004-08-17 Nvidia Corporation Graphics processing system having a virtual texturing array
US7027972B1 (en) 2001-01-24 2006-04-11 Ati Technologies, Inc. System for collecting and analyzing graphics data and method thereof
US7358974B2 (en) 2001-01-29 2008-04-15 Silicon Graphics, Inc. Method and system for minimizing an amount of data needed to test data against subarea boundaries in spatially composited digital video
US6888580B2 (en) 2001-02-27 2005-05-03 Ati Technologies Inc. Integrated single and dual television tuner having improved fine tuning
US7130316B2 (en) 2001-04-11 2006-10-31 Ati Technologies, Inc. System for frame based audio synchronization and method thereof
US6542971B1 (en) 2001-04-23 2003-04-01 Nvidia Corporation Memory access system and method employing an auxiliary buffer
US6664960B2 (en) 2001-05-10 2003-12-16 Ati Technologies Inc. Apparatus for processing non-planar video graphics primitives and associated method of operation
US6700583B2 (en) 2001-05-14 2004-03-02 Ati Technologies, Inc. Configurable buffer for multipass applications
US6894687B1 (en) 2001-06-08 2005-05-17 Nvidia Corporation System, method and computer program product for vertex attribute aliasing in a graphics pipeline
US6697064B1 (en) 2001-06-08 2004-02-24 Nvidia Corporation System, method and computer program product for matrix tracking during vertex processing in a graphics pipeline
WO2002101497A2 (en) 2001-06-08 2002-12-19 Nvidia Corporation System, method and computer program product for programmable fragment processing in a graphics pipeline
US6731282B2 (en) 2001-06-19 2004-05-04 Intel Corporation System and method for parallel rendering of images
JP2003030641A (ja) 2001-07-19 2003-01-31 Nec System Technologies Ltd 描画装置とその並列描画方法、及び並列描画プログラム
US7253818B2 (en) 2001-08-07 2007-08-07 Ati Technologies, Inc. System for testing multiple devices on a single system and method thereof
US6828987B2 (en) 2001-08-07 2004-12-07 Ati Technologies, Inc. Method and apparatus for processing video and graphics data
US6778189B1 (en) 2001-08-24 2004-08-17 Nvidia Corporation Two-sided stencil testing system and method
US6744433B1 (en) 2001-08-31 2004-06-01 Nvidia Corporation System and method for using and collecting information from a plurality of depth layers
US6704025B1 (en) 2001-08-31 2004-03-09 Nvidia Corporation System and method for dual-depth shadow-mapping
US6989840B1 (en) 2001-08-31 2006-01-24 Nvidia Corporation Order-independent transparency rendering system and method
US6947047B1 (en) 2001-09-20 2005-09-20 Nvidia Corporation Method and system for programmable pipelined graphics processing with branching instructions
US6938176B1 (en) 2001-10-05 2005-08-30 Nvidia Corporation Method and apparatus for power management of graphics processors and subsystems that allow the subsystems to respond to accesses when subsystems are idle
US7091971B2 (en) 2001-10-29 2006-08-15 Ati Technologies, Inc. System, method, and apparatus for multi-level hierarchical Z buffering
US6999076B2 (en) 2001-10-29 2006-02-14 Ati Technologies, Inc. System, method, and apparatus for early culling
US6677953B1 (en) 2001-11-08 2004-01-13 Nvidia Corporation Hardware viewport system and method for use in a graphics pipeline
US20030117971A1 (en) 2001-12-21 2003-06-26 Celoxica Ltd. System, method, and article of manufacture for profiling an executable hardware model using calls to profiling functions
US6683614B2 (en) 2001-12-21 2004-01-27 Hewlett-Packard Development Company, L.P. System and method for automatically configuring graphics pipelines by tracking a region of interest in a computer graphical display system
US7269125B2 (en) 2001-12-26 2007-09-11 Xm Satellite Radio, Inc. Method and apparatus for timing recovery in an OFDM system
US7012610B2 (en) 2002-01-04 2006-03-14 Ati Technologies, Inc. Portable device for providing dual display and method thereof
US6774895B1 (en) 2002-02-01 2004-08-10 Nvidia Corporation System and method for depth clamping in a hardware graphics pipeline
US6829689B1 (en) 2002-02-12 2004-12-07 Nvidia Corporation Method and system for memory access arbitration for minimizing read/write turnaround penalties
US6947865B1 (en) 2002-02-15 2005-09-20 Nvidia Corporation Method and system for dynamic power supply voltage adjustment for a semiconductor integrated circuit device
US6933943B2 (en) 2002-02-27 2005-08-23 Hewlett-Packard Development Company, L.P. Distributed resource architecture and system
US6700580B2 (en) * 2002-03-01 2004-03-02 Hewlett-Packard Development Company, L.P. System and method utilizing multiple pipelines to render graphical data
US20030171907A1 (en) 2002-03-06 2003-09-11 Shay Gal-On Methods and Apparatus for Optimizing Applications on Configurable Processors
US6919896B2 (en) * 2002-03-11 2005-07-19 Sony Computer Entertainment Inc. System and method of optimizing graphics processing
US7009605B2 (en) 2002-03-20 2006-03-07 Nvidia Corporation System, method and computer program product for generating a shader program
WO2003083680A1 (en) * 2002-03-22 2003-10-09 Deering Michael F Scalable high performance 3d graphics
US20030212735A1 (en) 2002-05-13 2003-11-13 Nvidia Corporation Method and apparatus for providing an integrated network of processors
US20040153778A1 (en) 2002-06-12 2004-08-05 Ati Technologies, Inc. Method, system and software for configuring a graphics processing communication mode
US6980209B1 (en) 2002-06-14 2005-12-27 Nvidia Corporation Method and system for scalable, dataflow-based, programmable processing of graphics data
US6812927B1 (en) 2002-06-18 2004-11-02 Nvidia Corporation System and method for avoiding depth clears using a stencil buffer
US6876362B1 (en) 2002-07-10 2005-04-05 Nvidia Corporation Omnidirectional shadow texture mapping
US6797998B2 (en) 2002-07-16 2004-09-28 Nvidia Corporation Multi-configuration GPU interface device
US6954204B2 (en) 2002-07-18 2005-10-11 Nvidia Corporation Programmable graphics system and method using flexible, high-precision data formats
US6825843B2 (en) 2002-07-18 2004-11-30 Nvidia Corporation Method and apparatus for loop and branch instructions in a programmable graphics pipeline
US6864893B2 (en) 2002-07-19 2005-03-08 Nvidia Corporation Method and apparatus for modifying depth values using pixel programs
US6952206B1 (en) 2002-08-12 2005-10-04 Nvidia Corporation Graphics application program interface system and method for accelerating graphics processing
US7112884B2 (en) 2002-08-23 2006-09-26 Ati Technologies, Inc. Integrated circuit having memory disposed thereon and method of making thereof
US6779069B1 (en) 2002-09-04 2004-08-17 Nvidia Corporation Computer system with source-synchronous digital link
US7324547B1 (en) 2002-12-13 2008-01-29 Nvidia Corporation Internet protocol (IP) router residing in a processor chipset
US6885376B2 (en) 2002-12-30 2005-04-26 Silicon Graphics, Inc. System, method, and computer program product for near-real time load balancing across multiple rendering pipelines
CN1926579A (zh) 2003-01-28 2007-03-07 鲁西德信息技术有限公司 使用关联决策机制合成三维图形图像的方法和系统
US7062272B2 (en) * 2003-02-18 2006-06-13 Qualcomm Incorporated Method and apparatus to track count of broadcast content recipients in a wireless telephone network
US7145565B2 (en) 2003-02-27 2006-12-05 Nvidia Corporation Depth bounds testing
US6911983B2 (en) 2003-03-12 2005-06-28 Nvidia Corporation Double-buffering of pixel data using copy-on-write semantics
US7129909B1 (en) 2003-04-09 2006-10-31 Nvidia Corporation Method and system using compressed display mode list
US6900810B1 (en) 2003-04-10 2005-05-31 Nvidia Corporation User programmable geometry engine
US6940515B1 (en) 2003-04-10 2005-09-06 Nvidia Corporation User programmable primitive engine
US7068278B1 (en) 2003-04-17 2006-06-27 Nvidia Corporation Synchronized graphics processing units
US7483031B2 (en) 2003-04-17 2009-01-27 Nvidia Corporation Method for synchronizing graphics processing units
US7120816B2 (en) 2003-04-17 2006-10-10 Nvidia Corporation Method for testing synchronization and connection status of a graphics processing unit module
US7038678B2 (en) 2003-05-21 2006-05-02 Nvidia Corporation Dependent texture shadow antialiasing
US7038685B1 (en) 2003-06-30 2006-05-02 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US7119808B2 (en) 2003-07-15 2006-10-10 Alienware Labs Corp. Multiple parallel processor computer graphics system
US6995767B1 (en) 2003-07-31 2006-02-07 Nvidia Corporation Trilinear optimization for texture filtering
US7015915B1 (en) 2003-08-12 2006-03-21 Nvidia Corporation Programming multiple chips from a command buffer
US7525547B1 (en) 2003-08-12 2009-04-28 Nvidia Corporation Programming multiple chips from a command buffer to process multiple images
US6956579B1 (en) 2003-08-18 2005-10-18 Nvidia Corporation Private addressing in a multi-processor graphics processing system
US7075541B2 (en) 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
US7388581B1 (en) 2003-08-28 2008-06-17 Nvidia Corporation Asynchronous conditional graphics rendering
US8250412B2 (en) 2003-09-26 2012-08-21 Ati Technologies Ulc Method and apparatus for monitoring and resetting a co-processor
US7782325B2 (en) * 2003-10-22 2010-08-24 Alienware Labs Corporation Motherboard for supporting multiple graphics cards
US8274517B2 (en) 2003-11-14 2012-09-25 Microsoft Corporation Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques
US20080079737A1 (en) 2003-11-19 2008-04-03 Reuven Bakalash Multi-mode parallel graphics rendering and display system supporting real-time detection of mode control commands (MCCS) programmed within pre-profiled scenes of the graphics-based application
US8085273B2 (en) 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
US7961194B2 (en) 2003-11-19 2011-06-14 Lucid Information Technology, Ltd. Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system
WO2005050557A2 (en) 2003-11-19 2005-06-02 Lucid Information Technology Ltd. Method and system for multiple 3-d graphic pipeline over a pc bus
US7015914B1 (en) 2003-12-10 2006-03-21 Nvidia Corporation Multiple data buffers for processing graphics data
US7053901B2 (en) 2003-12-11 2006-05-30 Nvidia Corporation System and method for accelerating a special purpose processor
US7248261B1 (en) 2003-12-15 2007-07-24 Nvidia Corporation Method and apparatus to accelerate rendering of shadow effects for computer-generated images
JP3879002B2 (ja) 2003-12-26 2007-02-07 国立大学法人宇都宮大学 自己最適化演算装置
US6975325B2 (en) 2004-01-23 2005-12-13 Ati Technologies Inc. Method and apparatus for graphics processing using state and shader management
US7259606B2 (en) 2004-01-27 2007-08-21 Nvidia Corporation Data sampling clock edge placement training for high speed GPU-memory interface
US7483034B2 (en) 2004-02-25 2009-01-27 Siemens Medical Solutions Usa, Inc. System and method for GPU-based 3D nonrigid registration
US7027062B2 (en) 2004-02-27 2006-04-11 Nvidia Corporation Register based queuing for texture requests
US7289125B2 (en) 2004-02-27 2007-10-30 Nvidia Corporation Graphics device clustering with PCI-express
US20050275760A1 (en) 2004-03-02 2005-12-15 Nvidia Corporation Modifying a rasterized surface, such as by trimming
US7978194B2 (en) 2004-03-02 2011-07-12 Ati Technologies Ulc Method and apparatus for hierarchical Z buffering and stenciling
US20050195186A1 (en) 2004-03-02 2005-09-08 Ati Technologies Inc. Method and apparatus for object based visibility culling
US7315912B2 (en) 2004-04-01 2008-01-01 Nvidia Corporation Deadlock avoidance in a bus fabric
US7336284B2 (en) 2004-04-08 2008-02-26 Ati Technologies Inc. Two level cache memory architecture
US7265759B2 (en) 2004-04-09 2007-09-04 Nvidia Corporation Field changeable rendering system for a computing device
US6985152B2 (en) 2004-04-23 2006-01-10 Nvidia Corporation Point-to-point bus bridging without a bridge controller
US20050237329A1 (en) 2004-04-27 2005-10-27 Nvidia Corporation GPU rendering to system memory
US7738045B2 (en) 2004-05-03 2010-06-15 Broadcom Corporation Film-mode (3:2/2:2 Pulldown) detector, method and video device
US7079156B1 (en) 2004-05-14 2006-07-18 Nvidia Corporation Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline
US7426724B2 (en) 2004-07-02 2008-09-16 Nvidia Corporation Optimized chaining of vertex and fragment programs
US7218291B2 (en) 2004-09-13 2007-05-15 Nvidia Corporation Increased scalability in the fragment shading pipeline
JP4450853B2 (ja) 2004-09-16 2010-04-14 エヌヴィディア コーポレイション 負荷分散
US7721118B1 (en) 2004-09-27 2010-05-18 Nvidia Corporation Optimizing power and performance for multi-processor graphics processing
US7571296B2 (en) 2004-11-11 2009-08-04 Nvidia Corporation Memory controller-adaptive 1T/2T timing control
US7477256B1 (en) 2004-11-17 2009-01-13 Nvidia Corporation Connecting graphics adapters for scalable performance
US7598958B1 (en) 2004-11-17 2009-10-06 Nvidia Corporation Multi-chip graphics processing unit apparatus, system, and method
US8066515B2 (en) 2004-11-17 2011-11-29 Nvidia Corporation Multiple graphics adapter connection systems
US7451259B2 (en) 2004-12-06 2008-11-11 Nvidia Corporation Method and apparatus for providing peer-to-peer data transfer within a computing environment
US7275123B2 (en) 2004-12-06 2007-09-25 Nvidia Corporation Method and apparatus for providing peer-to-peer data transfer within a computing environment
US7545380B1 (en) 2004-12-16 2009-06-09 Nvidia Corporation Sequencing of displayed images for alternate frame rendering in a multi-processor graphics system
US7372465B1 (en) 2004-12-17 2008-05-13 Nvidia Corporation Scalable graphics processing for remote display
US20060156399A1 (en) 2004-12-30 2006-07-13 Parmar Pankaj N System and method for implementing network security using a sequestered partition
CN101849227A (zh) 2005-01-25 2010-09-29 透明信息技术有限公司 在单片构造的硅芯片上采用多个图形核心的图形处理和显示系统
US7924281B2 (en) 2005-03-09 2011-04-12 Ati Technologies Ulc System and method for determining illumination of a pixel by shadow planes
US7796095B2 (en) 2005-03-18 2010-09-14 Ati Technologies Ulc Display specific image processing in an integrated circuit
US7568056B2 (en) 2005-03-28 2009-07-28 Nvidia Corporation Host bus adapter that interfaces with host computer bus to multiple types of storage devices
US7681187B2 (en) 2005-03-31 2010-03-16 Nvidia Corporation Method and apparatus for register allocation in presence of hardware constraints
US7616207B1 (en) 2005-04-25 2009-11-10 Nvidia Corporation Graphics processing system including at least three bus devices
US7545101B2 (en) * 2005-05-05 2009-06-09 Leviton Manufacturing Co., Inc. Multi-zone closed loop daylight harvesting having at least one light sensor
US20080143731A1 (en) 2005-05-24 2008-06-19 Jeffrey Cheng Video rendering across a high speed peripheral interconnect bus
US7817155B2 (en) 2005-05-24 2010-10-19 Ati Technologies Inc. Master/slave graphics adapter arrangement
US7613346B2 (en) 2005-05-27 2009-11-03 Ati Technologies, Inc. Compositing in multiple video processing unit (VPU) systems
US20060282604A1 (en) 2005-05-27 2006-12-14 Ati Technologies, Inc. Methods and apparatus for processing graphics data using multiple processing circuits
US7539801B2 (en) 2005-05-27 2009-05-26 Ati Technologies Ulc Computing device with flexibly configurable expansion slots, and method of operation
US7325086B2 (en) 2005-12-15 2008-01-29 Via Technologies, Inc. Method and system for multiple GPU support
US7728841B1 (en) 2005-12-19 2010-06-01 Nvidia Corporation Coherent shader output for multiple targets
US7768517B2 (en) 2006-02-21 2010-08-03 Nvidia Corporation Asymmetric multi-GPU processing
US8284204B2 (en) 2006-06-30 2012-10-09 Nokia Corporation Apparatus, method and a computer program product for providing a unified graphics pipeline for stereoscopic rendering

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02176980A (ja) * 1988-12-28 1990-07-10 Agency Of Ind Science & Technol 並列画像表示処理方法
US20030164832A1 (en) * 2002-03-04 2003-09-04 Alcorn Byron A. Graphical display system and method

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013506898A (ja) * 2009-11-13 2013-02-28 ブル・エス・アー・エス 複数の入力/出力コントローラと補助演算ユニットとを備えるマルチプロセッサアーキテクチャにおけるソフトウェアアプリケーションの実行を最適化するための方法および装置
US8966483B2 (en) 2009-11-13 2015-02-24 Bull Sas Method and device for optimizing execution of software applications in a multiprocessor architecture comprising several input/output controllers and secondary computing units
US8751658B2 (en) 2011-03-31 2014-06-10 Fujitsu Limited Allocating method, allocating apparatus, and computer product
JP2013025823A (ja) * 2011-07-18 2013-02-04 Apple Inc 仮想gpu
JP2015506036A (ja) * 2011-12-15 2015-02-26 クゥアルコム・インコーポレイテッドQualcomm Incorporated コマンドプロセッサを備えるグラフィックス処理ユニット
JP2015507804A (ja) * 2012-01-06 2015-03-12 アセルサン・エレクトロニク・サナイ・ヴェ・ティジャレット・アノニム・シルケティAselsan Elektronik Sanayi veTicaret Anonim Sirketi 分散型画像生成システム
US9965822B2 (en) 2014-02-21 2018-05-08 Samsung Electronics Co., Ltd. Electronic device and method for processing a plurality of image pieces
JP2018092607A (ja) * 2016-09-30 2018-06-14 ダッソー システムズDassault Systemes 並列に動作する演算リソースの集合を用いて3dシーンをシミュレートするための方法、プログラム、及びシステム
JP7071810B2 (ja) 2016-09-30 2022-05-19 ダッソー システムズ 並列に動作する演算リソースの集合を用いて3dシーンをシミュレートするための方法、プログラム、及びシステム

Also Published As

Publication number Publication date
US7800611B2 (en) 2010-09-21
US20140125682A1 (en) 2014-05-08
US20080136825A1 (en) 2008-06-12
US20080165197A1 (en) 2008-07-10
US8629877B2 (en) 2014-01-14
US20080165198A1 (en) 2008-07-10
US7796130B2 (en) 2010-09-14
EP1687732A4 (en) 2008-11-19
CA2546427A1 (en) 2005-06-02
US20080238917A1 (en) 2008-10-02
US9405586B2 (en) 2016-08-02
WO2005050557A3 (en) 2005-09-01
US7800619B2 (en) 2010-09-21
WO2005050557A2 (en) 2005-06-02
US20070279411A1 (en) 2007-12-06
US20080165184A1 (en) 2008-07-10
US20110279462A1 (en) 2011-11-17
CN1890660A (zh) 2007-01-03
US7796129B2 (en) 2010-09-14
US7808499B2 (en) 2010-10-05
US20080165196A1 (en) 2008-07-10
EP1687732A2 (en) 2006-08-09
US7800610B2 (en) 2010-09-21

Similar Documents

Publication Publication Date Title
US9405586B2 (en) Method of dynamic load-balancing within a PC-based computing system employing a multiple GPU-based graphics pipeline architecture supporting multiple modes of GPU parallelization
TWI616846B (zh) 利用以空間及/或時間方式改變取樣圖案之增強型消鋸齒的一種圖形子系統、電腦實施方法及電腦裝置
US7812845B2 (en) PC-based computing system employing a silicon chip implementing parallelized GPU-driven pipelines cores supporting multiple modes of parallelization dynamically controlled while running a graphics application
US8497865B2 (en) Parallel graphics system employing multiple graphics processing pipelines with multiple graphics processing units (GPUS) and supporting an object division mode of parallel graphics processing using programmable pixel or vertex processing resources provided with the GPUS
CN101548277B (zh) 多并行处理器的计算机图形系统
US8773449B2 (en) Rendering of stereoscopic images with multithreaded rendering software pipeline
US20120001905A1 (en) Seamless Integration of Multi-GPU Rendering
US8675002B1 (en) Efficient approach for a unified command buffer
Abraham et al. A load-balancing strategy for sort-first distributed rendering
US6943804B2 (en) System and method for performing BLTs
Williams et al. Sort-middle multi-projector immediate-mode rendering in chromium
Niski et al. Tile-based level of detail for the parallel age
Makhinya Performance challenges in distributed rendering systems
del Pino et al. Interactive Flow-Field Evaluation on a Distributed-Memory Architecture
Sun Parallel Rendering–Fast Graphics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110318

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110328

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110420

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110427

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110809