JP5996554B2 - 汎用グラフィクス処理装置における計算リソースパイプライン化 - Google Patents
汎用グラフィクス処理装置における計算リソースパイプライン化 Download PDFInfo
- Publication number
- JP5996554B2 JP5996554B2 JP2013549593A JP2013549593A JP5996554B2 JP 5996554 B2 JP5996554 B2 JP 5996554B2 JP 2013549593 A JP2013549593 A JP 2013549593A JP 2013549593 A JP2013549593 A JP 2013549593A JP 5996554 B2 JP5996554 B2 JP 5996554B2
- Authority
- JP
- Japan
- Prior art keywords
- local memory
- data
- parallel processing
- memory buffers
- gpgpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
- Image Input (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
以下に本件出願当初の特許請求の範囲を付記する。
[C1]
汎用グラフィック処理装置(GPGPU)であって、
処理パイプラインのステージとして選択的に動作するように構成された2以上の並行処理装置と、
前記並行処理装置間の移送のためにデータを保持するように構成された1以上のローカルメモリバッファであって、前記バッファの各々が前記並行処理装置のうち少なくとも2つの間で接続される、1以上のローカルメモリバッファと、
を備えるGPGPU。
[C2]
前記1以上のローカルメモリバッファの各々は、前記処理パイプラインにおいて前記並行処理装置のうち前記少なくとも2つの間で直接接続される、[C1]に記載のGPGPU。
[C3]
前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、[C1]に記載のGPGPU。
[C4]
前記1以上のローカルメモリバッファは、ハードウェアベースの先入れ先出しバッファ(FIFO)、後入れ先出しバッファ(LIFOS)またはインデクス付けされたバッファのうちの少なくとも1つを備える、[C1]に記載のGPGPU。
[C5]
前記1以上のローカルメモリバッファにデータを送信するように前記並行処理装置のうち1以上を構成し、前記1以上のローカルメモリバッファからデータを受信するように前記並行処理装置のうち1以上を構成するように構成された制御装置、
をさらに備える[C1]に記載のGPGPU。
[C6]
前記制御ユニットは、前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行するように構成される、[C5]に記載のGPGPU。
[C7]
前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定するように、前記決定された幅を有するように前記ローカルメモリバッファの各々を構成するように、構成された制御装置、
をさらに備える[C1]に記載のGPGPU。
[C8]
前記制御装置は、1以上のアプリケーションプログラミングインタフェース(API)を実行して、前記ローカルメモリバッファの各々についての前記幅を決定し、前記決定された幅によって前記ローカルメモリバッファの各々を構成し、前記ローカルメモリバッファの各々の深さを決定するように構成される、[C7]に記載のGPGPU。
[C9]
前記ローカルメモリバッファの各々は深さを幅とトレードすることが構成可能である、[C7]に記載のGPGPU。
[C10]
前記処理パイプライン内でデータシーケンスをプリザーブする制御装置、をさらに備える[C1]に記載のGPGPU。
[C11]
前記制御装置は、
前記データセットのデータスレッドのシーケンスを記録するために前記並行処理装置のうちの少なくとも1つにデータセットが入るときにシーケンス決定カウンタを実行するように、
前記シーケンス決定カウンタによって記録されるのと同じシーケンスで前記並行処理装置から前記データセットの前記データスレッドをリリースするために前記並行処理装置のうちの前記少なくとも1つから前記データセットが出るときにシーケンスエンフォーシングバリアを実行するように、
構成される、[C10]に記載のGPGPU。
[C12]
前記並行処理装置のうちの1つは、前記処理パイプラインの第1ステージとして動作し、デバイスメモリからオリジナルデータセットを取り出すように構成される、[C1]に記載のGPGPU。
[C13]
前記並行処理装置のうちの1つは、前記処理パイプラインの最終ステージとして動作し、デバイスメモリにパイプライン処理されたデータセットを格納するように構成される、[C1]に記載のGPGPU。
[C14]
前記並行処理装置のうちの少なくとも1つは、前記処理パイプラインの中間ステージとして動作し、前記ローカルメモリバッファのうち一方を介して前記処理パイプラインにおいて前記並行処理装置のうちの前のものからデータセットを受信し、前記ローカルメモリバッファのうち他方を介して前記処理パイプラインにおいて前記並行処理装置のうち後続のものに前記データセットを送信するように構成される、[C1]に記載のGPGPU。
[C15]
前記並行処理装置のうちの前記少なくとも1つは、前記データセットを処理するために、デバイスメモリから補助データを取り出すように構成される、[C14]に記載のGPGPU。
[C16]
汎用グラフィック処理装置(GPGPU)によってデータを処理する方法であって、前記方法は、
処理パイプラインのステージとして選択的に動作するように2以上の並行処理装置を構成することと;
前記並行処理装置間の移送のためのデータを保持するように1以上のローカルメモリバッファを構成することと、なお、前記バッファの各々は、前記並行処理装置のうち少なくとも2つの間で接続される;
を備える、方法。
[C17]
前記ローカルメモリバッファの各々は、前記処理パイプラインにおいて前記並行処理装置のうち前記少なくとも2つの間で直接接続される、[C16]に記載の方法。
[C18]
前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、[C16]に記載の方法。
[C19]
前記1以上のローカルメモリバッファは、ハードウェアベースの先入れ先出しバッファ(FIFO)、後入れ先出しバッファ(LIFOS)またはインデクス付けされたバッファのうちの少なくとも1つを備える、[C16]に記載の方法。
[C20]
前記1以上のローカルメモリバッファにデータを送信するように前記並行処理装置の1以上を構成することと、
前記1以上のローカルメモリバッファからデータを受信するように前記並行処理装置の1以上を構成することと、
をさらに備える[C16]に記載の方法。
[C21]
前記1以上の並行処理装置を構成することは、前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行することを備える、[C20]に記載の方法。
[C22]
前記1以上のローカルメモリバッファを構成することは、
前記前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定することと、
前記決定された幅を有するように前記ローカルメモリバッファの各々を構成することと、
を備える、[C16]に記載の方法。
[C23]
前記1以上のローカルメモリバッファを構成することは、1以上のアプリケーションプログラミングインタフェース(API)を実行して、前記ローカルメモリバッファの各々についての前記幅を決定し、前記決定された幅によって前記ローカルメモリバッファの各々を構成し、前記ローカルメモリバッファの各々の深さを決定することを備える、[C22]に記載の方法。
[C24]
前記ローカルメモリバッファの各々は深さを幅とトレードすることが構成可能である、[C22]に記載の方法。
[C25]
前記処理パイプライン内でデータシーケンスをプリザーブすること、
をさらに備える[C16]に記載の方法。
[C26]
前記データシーケンスをプリザーブすることは、
前記データセットのデータスレッドのシーケンスを記録するために前記並行処理装置のうちの少なくとも1つにデータセットが入るときにシーケンス決定カウンタを実行することと、
前記シーケンス決定カウンタによって記録されるのと同じシーケンスで前記並行処理装置から前記データセットの前記データスレッドをリリースするために前記並行処理装置のうちの前記少なくとも1つから前記データセットが出るときにシーケンスエンフォーシングバリアを実行することと、
をさらに備える、[C25]に記載の方法。
[C27]
前記2以上の並行処理装置を構成することは、前記並行処理装置のうちの1つを、前記処理パイプラインの第1ステージとして動作し、デバイスメモリからオリジナルデータセットを取り出すように構成することを備える、[C16]に記載の方法。
[C28]
前記2以上の並行処理装置を構成することは、前記並行処理装置のうちの1つを、前記処理パイプラインの最終ステージとして動作し、デバイスメモリにパイプライン処理されたデータセットを格納するように構成することを備える、[C16]に記載の方法。
[C29]
前記2以上の並行処理装置を構成することは、前記並行処理装置のうちの少なくとも1つを、前記処理パイプラインの中間ステージとして動作し、前記ローカルメモリバッファのうち一方を介して前記処理パイプラインにおいて前記並行処理装置のうちの前のものからデータセットを受信し、前記ローカルメモリバッファのうち他方を介して前記処理パイプラインにおいて前記並行処理装置のうち後続のものに前記データセットを送信するように構成することを備える、[C16]に記載の方法。
[C30]
前記並行処理装置のうちの少なくとも1つを構成することは、前記データセットを処理するために、デバイスメモリから補助データを取り出すように前記並行処理装置のうちの前記少なくとも1つを構成することを備える、[C29]に記載の方法。
[C31]
汎用グラフィック処理装置(GPGPU)であって、
処理パイプラインのステージとして選択的に動作するように2以上の並行処理装置を構成するための手段と;
前記並行処理装置間の移送のためのデータを保持するように1以上のローカルメモリバッファを構成するための手段と、なお、前記バッファの各々は、前記並行処理装置のうち少なくとも2つの間で接続される;
を備えるGPGPU。
[C32]
前記ローカルメモリバッファの各々は、前記処理パイプラインにおいて前記並行処理装置のうち前記少なくとも2つの間で直接接続される、[C31]に記載のGPGPU。
[C33]
前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、[C31]に記載のGPGPU。
[C34]
前記1以上のローカルメモリバッファにデータを送信するように前記並行処理装置の1以上を構成するための手段と、
前記1以上のローカルメモリバッファからデータを受信するように前記並行処理装置の1以上を構成するための手段と、
をさらに備える[C31]に記載のGPGPU。
[C35]
前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行するための手段、をさらに備える[C34]に記載のGPGPU。
[C36]
前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定するための手段と、
前記決定された幅を有するように前記ローカルメモリバッファの各々を構成するための手段と、
をさらに備える[C31]に記載のGPGPU。
[C37]
1以上のアプリケーションプログラミングインタフェース(API)を実行して、前記ローカルメモリバッファの各々についての前記幅を決定し、前記決定された幅によって前記ローカルメモリバッファの各々を構成し、前記ローカルメモリバッファの各々の深さを決定すること、をさらに備える[C36]に記載のGPGPU。
[C38]
前記ローカルメモリバッファの各々は深さを幅とトレードすることが構成可能である、[C36]に記載のGPGPU。
[C39]
前記処理パイプライン内でデータシーケンスをプリザーブするための手段、をさらに備える[C31]に記載のGPGPU。
[C40]
前記データセットのデータスレッドのシーケンスを記録するために前記並行処理装置のうちの少なくとも1つにデータセットが入るときにシーケンス決定カウンタを実行するための手段と、
前記シーケンス決定カウンタによって記録されるのと同じシーケンスで前記並行処理装置から前記データセットの前記データスレッドをリリースするために前記並行処理装置のうちの前記少なくとも1つから前記データセットが出るときにシーケンスエンフォーシングバリアを実行するための手段と、
をさらに備える[C39]に記載のGPGPU。
[C41]
汎用グラフィクス処理装置(GPGPU)によってデータを処理するための命令を備えるコンピュータ可読媒体であって、実行時に、プログラム可能なプロセッサに、
処理パイプラインのステージとして選択的に動作するように2以上の並行処理装置を構成させる;
前記並行処理装置間の移送のためにデータを保持するように1以上のローカルメモリバッファを構成させる、なお、前記バッファの各々は、前記並行処理装置のうち少なくとも2つの間で接続される;
コンピュータ可読媒体。
[C42]
前記ローカルメモリバッファの各々は、前記処理パイプラインにおいて前記並行処理装置のうち前記少なくとも2つの間で直接接続される、[C41]に記載のコンピュータ可読媒体。
[C43]
前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、[C41]に記載のコンピュータ可読媒体。
[C44]
前記プログラム可能なプロセッサに、
前記1以上のローカルメモリバッファにデータを送信するように前記並行処理装置の1以上を構成させる命令と、
前記1以上のローカルメモリバッファからデータを受信するように前記並行処理装置の1以上を構成させる命令と、
をさらに備える[C41]に記載のコンピュータ可読媒体。
[C45]
前記プログラム可能なプロセッサに、前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行させる命令、をさらに備える[C44]に記載のコンピュータ可読媒体。
[C46]
前記プログラム可能なプロセッサに、
前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定させる命令と、
前記決定された幅を有するように前記ローカルメモリバッファの各々を構成させる命令と、
をさらに備える[C41]に記載のコンピュータ可読媒体。
[C47]
前記プログラム可能なプロセッサに、1以上のアプリケーションプログラミングインタフェース(API)を実行して、前記ローカルメモリバッファの各々についての前記幅を決定し、前記決定された幅によって前記ローカルメモリバッファの各々を構成し、前記ローカルメモリバッファの各々の深さを決定させる命令、をさらに備える[C46]に記載のコンピュータ可読媒体。
[C48]
前記ローカルメモリバッファの各々は深さを幅とトレードすることが構成可能である、[C46]に記載のコンピュータ可読媒体。
[C49]
前記プログラム可能なプロセッサに前記処理パイプライン内でデータシーケンスをプリザーブさせる命令、をさらに備える[C41]に記載のコンピュータ可読媒体。
[C50]
前記プログラム可能なプロセッサに、
前記データセットのデータスレッドのシーケンスを記録するために前記並行処理装置のうちの少なくとも1つにデータセットが入るときにシーケンス決定カウンタを実行させる命令と、
前記シーケンス決定カウンタによって記録されるのと同じシーケンスで前記並行処理装置から前記データセットの前記データスレッドをリリースするために前記並行処理装置のうちの前記少なくとも1つから前記データセットが出るときにシーケンスエンフォーシングバリアを実行させる命令と、
をさらに備える[C49]に記載のコンピュータ可読媒体。
Claims (38)
- 汎用グラフィクス処理装置(GPGPU)であって、
処理パイプラインのステージとして選択的に動作するように構成された前記GPGPUの2以上のプログラム可能な並行処理装置と、
前記並行処理装置間の移送のためにデータを保持するように構成された前記GPGPUの1以上のローカルメモリバッファであって、前記ローカルメモリバッファの各々が前記処理パイプラインにおける前記並行処理装置のうち少なくとも2つの間で直接接続される、1以上のローカルメモリバッファと、
ここにおいて、前記データは、前記ローカルメモリバッファを介して、前記並行処理装置の一方から前記並行処理装置の他方へと直接受け渡される、
前記処理パイプライン内のデータシーケンスを保持するように構成された制御装置であって、データセットのデータスレッドのシーケンスを記録するために前記並行処理装置のうちの少なくとも1つに前記データセットが入るときにシーケンス決定カウンタを実行し、前記シーケンス決定カウンタによって記録されるのと同じシーケンスで前記並行処理装置から前記データセットの前記データスレッドをリリースするために前記並行処理装置のうちの前記少なくとも1つから前記データセットが出るときにシーケンスエンフォーシングバリアを実行するように構成された制御装置と
を備えるGPGPU。 - 前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、請求項1に記載のGPGPU。
- 前記1以上のローカルメモリバッファは、ハードウェアベースの先入れ先出しバッファ(FIFO)、後入れ先出しバッファ(LIFOS)またはインデクス付けされたバッファのうちの少なくとも1つを備える、請求項1に記載のGPGPU。
- 前記1以上のローカルメモリバッファにデータを送信するように前記並行処理装置のうち1以上を構成し、前記1以上のローカルメモリバッファからデータを受信するように前記並行処理装置のうち1以上を構成するように構成された制御装置、
をさらに備える請求項1に記載のGPGPU。 - 前記制御装置は、前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行するように構成される、請求項4に記載のGPGPU。
- 前記制御装置は、前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定し、前記決定された幅を有するように前記ローカルメモリバッファの各々を構成するようにさらに構成された請求項1に記載のGPGPU。
- 前記制御装置は、1以上のアプリケーションプログラミングインタフェース(API)を実行して、前記ローカルメモリバッファの各々についての前記幅を決定し、前記決定された幅によって前記ローカルメモリバッファの各々を構成し、前記ローカルメモリバッファの各々の深さを決定するように構成される、請求項6に記載のGPGPU。
- 前記制御装置は、前記ローカルメモリバッファの各々の深さを決定するようにさらに構成され、前記ローカルメモリバッファの各々は前記深さを前記幅とトレードすることが構成可能である、請求項6に記載のGPGPU。
- 前記並行処理装置のうちの1つは、前記処理パイプラインの第1ステージとして動作し、デバイスメモリからオリジナルデータセットを取り出すように構成される、請求項1に記載のGPGPU。
- 前記並行処理装置のうちの1つは、前記処理パイプラインの最終ステージとして動作し、デバイスメモリにパイプライン処理されたデータセットを格納するように構成される、請求項1に記載のGPGPU。
- 前記並行処理装置のうちの少なくとも1つは、前記処理パイプラインの中間ステージとして動作し、前記ローカルメモリバッファのうち一方を介して前記処理パイプラインにおいて前記並行処理装置のうちの前のものからデータセットを受信し、前記ローカルメモリバッファのうち他方を介して前記処理パイプラインにおいて前記並行処理装置のうち後続のものに前記データセットを送信するように構成される、請求項1に記載のGPGPU。
- 前記並行処理装置のうちの前記少なくとも1つは、前記データセットを処理するために、デバイスメモリから補助データを取り出すように構成される、請求項11に記載のGPGPU。
- 汎用グラフィクス処理装置(GPGPU)によってデータを処理する方法であって、前記方法は、
処理パイプラインのステージとして選択的に動作するように前記GPGPUの2以上のプログラム可能な並行処理装置を構成することと、
前記並行処理装置間の移送のためのデータを保持するように前記GPGPUの1以上のローカルメモリバッファを構成することであって、なお、前記ローカルメモリバッファの各々は、前記処理パイプラインにおける前記並行処理装置のうち少なくとも2つの間で直接接続され、ここにおいて、前記データは、前記ローカルメモリバッファを介して、前記並行処理装置の一方から前記並行処理装置の他方へと直接受け渡される、構成することと、
前記処理パイプライン内のデータシーケンスを保持することであって、データセットのデータスレッドのシーケンスを記録するために前記並行処理装置のうちの少なくとも1つに前記データセットが入るときにシーケンス決定カウンタを実行することと、前記シーケンス決定カウンタによって記録されるのと同じシーケンスで前記並行処理装置から前記データセットの前記データスレッドをリリースするために前記並行処理装置のうちの前記少なくとも1つから前記データセットが出るときにシーケンスエンフォーシングバリアを実行することとを備える、前記データシーケンスを保持することと、
を備える、方法。 - 前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、請求項13に記載の方法。
- 前記1以上のローカルメモリバッファは、ハードウェアベースの先入れ先出しバッファ(FIFO)、後入れ先出しバッファ(LIFOS)またはインデクス付けされたバッファのうちの少なくとも1つを備える、請求項13に記載の方法。
- 前記1以上のローカルメモリバッファにデータを送信するように前記並行処理装置の1以上を構成することと、
前記1以上のローカルメモリバッファからデータを受信するように前記並行処理装置の1以上を構成することと、
をさらに備える請求項13に記載の方法。 - 前記1以上の並行処理装置を構成することは、前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行することを備える、請求項16に記載の方法。
- 前記1以上のローカルメモリバッファを構成することは、
前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定することと、
前記決定された幅を有するように前記ローカルメモリバッファの各々を構成することと、
を備える、請求項13に記載の方法。 - 前記1以上のローカルメモリバッファを構成することは、1以上のアプリケーションプログラミングインタフェース(API)を実行して、前記ローカルメモリバッファの各々についての前記幅を決定し、前記決定された幅によって前記ローカルメモリバッファの各々を構成し、前記ローカルメモリバッファの各々の深さを決定することを備える、請求項18に記載の方法。
- 前記1以上のローカルメモリバッファを構成することは、前記ローカルメモリバッファの各々の深さを決定することをさらに備え、前記ローカルメモリバッファの各々は前記深さを前記幅とトレードすることが構成可能である、請求項18に記載の方法。
- 前記2以上の並行処理装置を構成することは、前記並行処理装置のうちの1つを、前記処理パイプラインの第1ステージとして動作し、デバイスメモリからオリジナルデータセットを取り出すように構成することを備える、請求項13に記載の方法。
- 前記2以上の並行処理装置を構成することは、前記並行処理装置のうちの1つを、前記処理パイプラインの最終ステージとして動作し、デバイスメモリにパイプライン処理されたデータセットを格納するように構成することを備える、請求項13に記載の方法。
- 前記2以上の並行処理装置を構成することは、前記並行処理装置のうちの少なくとも1つを、前記処理パイプラインの中間ステージとして動作し、前記ローカルメモリバッファのうち一方を介して前記処理パイプラインにおいて前記並行処理装置のうちの前のものからデータセットを受信し、前記ローカルメモリバッファのうち他方を介して前記処理パイプラインにおいて前記並行処理装置のうち後続のものに前記データセットを送信するように構成することを備える、請求項13に記載の方法。
- 前記並行処理装置のうちの少なくとも1つを構成することは、前記データセットを処理するために、デバイスメモリから補助データを取り出すように前記並行処理装置のうちの前記少なくとも1つを構成することを備える、請求項23に記載の方法。
- 汎用グラフィクス処理装置(GPGPU)であって、
処理パイプラインのステージとして選択的に動作するように前記GPGPUの2以上のプログラム可能な並行処理装置を構成するための手段と、
前記並行処理装置間の移送のためのデータを保持するように前記GPGPUの1以上のローカルメモリバッファを構成するための手段と、なお、前記ローカルメモリバッファの各々は、前記処理パイプラインにおける前記並行処理装置のうち少なくとも2つの間で直接接続され、ここにおいて、前記データは、前記ローカルメモリバッファを介して、前記並行処理装置の一方から前記並行処理装置の他方へと直接受け渡される、構成するための手段と、
前記処理パイプライン内のデータシーケンスを保持するための手段であって、データセットのデータスレッドのシーケンスを記録するために前記並行処理装置のうちの少なくとも1つに前記データセットが入るときにシーケンス決定カウンタを実行するための手段と、前記シーケンス決定カウンタによって記録されるのと同じシーケンスで前記並行処理装置から前記データセットの前記データスレッドをリリースするために前記並行処理装置のうちの前記少なくとも1つから前記データセットが出るときにシーケンスエンフォーシングバリアを実行するための手段とを備える、前記データシーケンスを保持するための手段、
を備えるGPGPU。 - 前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、請求項25に記載のGPGPU。
- 前記1以上のローカルメモリバッファにデータを送信するように前記並行処理装置の1以上を構成するための手段と、
前記1以上のローカルメモリバッファからデータを受信するように前記並行処理装置の1以上を構成するための手段と、
をさらに備える請求項25に記載のGPGPU。 - 前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行するための手段、をさらに備える請求項27に記載のGPGPU。
- 前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定するための手段と、
前記決定された幅を有するように前記ローカルメモリバッファの各々を構成するための手段と、
をさらに備える請求項25に記載のGPGPU。 - 1以上のアプリケーションプログラミングインタフェース(API)を実行して、前記ローカルメモリバッファの各々についての前記幅を決定し、前記決定された幅によって前記ローカルメモリバッファの各々を構成し、前記ローカルメモリバッファの各々の深さを決定するための手段をさらに備える請求項29に記載のGPGPU。
- 前記ローカルメモリバッファの各々の深さを決定するための手段をさらに備え、前記ローカルメモリバッファの各々は前記深さを前記幅とトレードすることが構成可能である、請求項29に記載のGPGPU。
- 汎用グラフィクス処理装置(GPGPU)によってデータを処理するための命令を備えるコンピュータ可読媒体であって、前記命令は、実行時に、プログラム可能なプロセッサに、
処理パイプラインのステージとして選択的に動作するように前記GPGPUの2以上のプログラム可能な並行処理装置を構成することと、
前記並行処理装置間の移送のためにデータを保持するように前記GPGPUの1以上のローカルメモリバッファを構成することであって、なお、前記ローカルメモリバッファの各々は、前記処理パイプラインにおける前記並行処理装置のうち少なくとも2つの間で直接接続され、ここにおいて、前記データは、前記ローカルメモリバッファを介して、前記並行処理装置の一方から前記並行処理装置の他方へと直接受け渡される、と、
前記処理パイプライン内のデータシーケンスを保持することと、
を行わせ、前記命令は、前記プログラム可能なプロセッサに、データセットのデータスレッドのシーケンスを記録するために前記並行処理装置のうちの少なくとも1つに前記データセットが入るときにシーケンス決定カウンタを実行することと、前記シーケンス決定カウンタによって記録されるのと同じシーケンスで前記並行処理装置から前記データセットの前記データスレッドをリリースするために前記並行処理装置のうちの前記少なくとも1つから前記データセットが出るときにシーケンスエンフォーシングバリアを実行することとを行わせる、コンピュータ可読媒体。 - 前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、請求項32に記載のコンピュータ可読媒体。
- 前記プログラム可能なプロセッサに、
前記1以上のローカルメモリバッファにデータを送信するように前記並行処理装置の1以上を構成させる命令と、
前記1以上のローカルメモリバッファからデータを受信するように前記並行処理装置の1以上を構成させる命令と、
をさらに備える請求項32に記載のコンピュータ可読媒体。 - 前記プログラム可能なプロセッサに、前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行させる命令、をさらに備える請求項34に記載のコンピュータ可読媒体。
- 前記プログラム可能なプロセッサに、
前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定させる命令と、
前記決定された幅を有するように前記ローカルメモリバッファの各々を構成させる命令と、
をさらに備える請求項32に記載のコンピュータ可読媒体。 - 前記プログラム可能なプロセッサに、1以上のアプリケーションプログラミングインタフェース(API)を実行して、前記ローカルメモリバッファの各々についての前記幅を決定し、前記決定された幅によって前記ローカルメモリバッファの各々を構成し、前記ローカルメモリバッファの各々の深さを決定させる命令、をさらに備える請求項36に記載のコンピュータ可読媒体。
- 前記プログラム可能なプロセッサに、前記ローカルメモリバッファの各々の深さを決定させる命令をさらに備え、前記ローカルメモリバッファの各々は前記深さを前記幅とトレードすることが構成可能である、請求項36に記載のコンピュータ可読媒体。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/007,333 | 2011-01-14 | ||
| US13/007,333 US9804995B2 (en) | 2011-01-14 | 2011-01-14 | Computational resource pipelining in general purpose graphics processing unit |
| PCT/US2012/021344 WO2012097316A1 (en) | 2011-01-14 | 2012-01-13 | Computational resource pipelining in general purpose graphics processing unit |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015145991A Division JP6062506B2 (ja) | 2011-01-14 | 2015-07-23 | 汎用グラフィクス処理装置における計算リソースパイプライン化 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2014505946A JP2014505946A (ja) | 2014-03-06 |
| JP5996554B2 true JP5996554B2 (ja) | 2016-09-21 |
Family
ID=45615047
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2013549593A Active JP5996554B2 (ja) | 2011-01-14 | 2012-01-13 | 汎用グラフィクス処理装置における計算リソースパイプライン化 |
| JP2015145991A Active JP6062506B2 (ja) | 2011-01-14 | 2015-07-23 | 汎用グラフィクス処理装置における計算リソースパイプライン化 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015145991A Active JP6062506B2 (ja) | 2011-01-14 | 2015-07-23 | 汎用グラフィクス処理装置における計算リソースパイプライン化 |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US9804995B2 (ja) |
| EP (2) | EP3557434B1 (ja) |
| JP (2) | JP5996554B2 (ja) |
| KR (1) | KR101558069B1 (ja) |
| CN (1) | CN103348320B (ja) |
| ES (2) | ES2873896T3 (ja) |
| HU (1) | HUE045952T2 (ja) |
| WO (1) | WO2012097316A1 (ja) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9336557B2 (en) * | 2012-05-02 | 2016-05-10 | Apple Inc. | Apparatus and methods for processing of media signals |
| CN103064657B (zh) * | 2012-12-26 | 2016-09-28 | 深圳中微电科技有限公司 | 单个处理器上实现多应用并行处理的方法及装置 |
| US20140232733A1 (en) * | 2013-02-19 | 2014-08-21 | Jason Caulkins | Graphics Processing Unit Pre-Caching |
| DE102013224702A1 (de) * | 2013-12-03 | 2015-06-03 | Robert Bosch Gmbh | Steuergerät für ein Kraftfahrzeug |
| CN103888771A (zh) * | 2013-12-30 | 2014-06-25 | 中山大学深圳研究院 | 基于gpgpu技术的并行视频图像处理方法 |
| US9928564B2 (en) * | 2014-06-26 | 2018-03-27 | Intel Corporation | Efficient hardware mechanism to ensure shared resource data coherency across draw calls |
| KR102222752B1 (ko) | 2014-08-01 | 2021-03-04 | 삼성전자주식회사 | 프로세서의 동적 전압 주파수 스케일링 방법 |
| US9697580B2 (en) * | 2014-11-10 | 2017-07-04 | Qualcomm Incorporated | Dynamic pipeline for graphics processing |
| EP3065051A1 (en) | 2015-03-05 | 2016-09-07 | Ingo Josopait | Flow control for language-embedded programming in general-purpose computing on graphics processing units |
| CN105653243B (zh) * | 2015-12-23 | 2018-03-30 | 北京大学 | 一种通用图形处理器多任务并发执行的任务派发方法 |
| CN108563519B (zh) * | 2018-04-17 | 2023-06-09 | 长沙景美集成电路设计有限公司 | 基于gpgpu中的2d桌面块拷贝填充操作的实现 |
| CN111881078B (zh) * | 2020-07-17 | 2022-04-19 | 上海芷锐电子科技有限公司 | 基于gpgpu芯片的多用户通用计算处理方法和系统 |
| EP4050479B1 (en) * | 2021-02-25 | 2025-06-25 | Imagination Technologies Limited | Task repacking in a graphic pipeline |
| US20220334899A1 (en) * | 2021-04-14 | 2022-10-20 | Nvidia Corporation | Application programming interface to monitor resource usage |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4751671A (en) * | 1983-02-14 | 1988-06-14 | Prime Computer, Inc. | Size configurable data storage system |
| US4807183A (en) * | 1985-09-27 | 1989-02-21 | Carnegie-Mellon University | Programmable interconnection chip for computer system functional modules |
| WO1991017507A1 (fr) * | 1990-05-07 | 1991-11-14 | Mitsubishi Denki Kabushiki Kaisha | Systeme processeur de donnees en parallele |
| JPH0683578A (ja) | 1992-03-13 | 1994-03-25 | Internatl Business Mach Corp <Ibm> | 処理システム、及びデータスループット制御方法 |
| JPH06282447A (ja) | 1993-03-29 | 1994-10-07 | Mitsubishi Electric Corp | 待ち行列管理方式 |
| JPH11328100A (ja) | 1998-05-13 | 1999-11-30 | Sony Corp | ディジタル信号処理装置 |
| WO2002046917A1 (en) | 2000-12-07 | 2002-06-13 | Koninklijke Philips Electronics N.V. | Digital signal processing apparatus |
| EP1271782B1 (en) * | 2001-06-29 | 2005-05-18 | STMicroelectronics Pvt. Ltd | FPGA with at least two different and independently configurable memory structures |
| US6919736B1 (en) * | 2002-07-12 | 2005-07-19 | Lattice Semiconductor Corporation | Field programmable gate array having embedded memory with configurable depth and width |
| US7389006B2 (en) | 2004-05-14 | 2008-06-17 | Nvidia Corporation | Auto software configurable register address space for low power programmable processor |
| US7369078B2 (en) * | 2004-08-16 | 2008-05-06 | National Instruments Corporation | Flexible converter interface for use in analog-to-digital and digital-to-analog systems |
| US7555607B2 (en) * | 2005-11-10 | 2009-06-30 | Hewlett-Packard Development Company, L.P. | Program thread syncronization for instruction cachelines |
| JP4795138B2 (ja) | 2006-06-29 | 2011-10-19 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
| US7725688B1 (en) | 2006-09-05 | 2010-05-25 | Nvidia Corporation | System and method for storing states used to configure a processing pipeline in a graphics processing unit |
| US20080109795A1 (en) * | 2006-11-02 | 2008-05-08 | Nvidia Corporation | C/c++ language extensions for general-purpose graphics processing unit |
| US20100079454A1 (en) | 2008-09-29 | 2010-04-01 | Legakis Justin S | Single Pass Tessellation |
| JP2010244096A (ja) | 2009-04-01 | 2010-10-28 | Seiko Epson Corp | データ処理装置、印刷システムおよびプログラム |
| JP2010287110A (ja) | 2009-06-12 | 2010-12-24 | Nec Personal Products Co Ltd | 情報処理装置、情報処理方法、プログラム及び記録媒体 |
| US8817031B2 (en) * | 2009-10-02 | 2014-08-26 | Nvidia Corporation | Distributed stream output in a parallel processing unit |
-
2011
- 2011-01-14 US US13/007,333 patent/US9804995B2/en active Active
-
2012
- 2012-01-13 WO PCT/US2012/021344 patent/WO2012097316A1/en not_active Ceased
- 2012-01-13 KR KR1020137021380A patent/KR101558069B1/ko active Active
- 2012-01-13 ES ES19178559T patent/ES2873896T3/es active Active
- 2012-01-13 JP JP2013549593A patent/JP5996554B2/ja active Active
- 2012-01-13 EP EP19178559.1A patent/EP3557434B1/en active Active
- 2012-01-13 ES ES12704456T patent/ES2749883T3/es active Active
- 2012-01-13 CN CN201280007990.0A patent/CN103348320B/zh active Active
- 2012-01-13 HU HUE12704456A patent/HUE045952T2/hu unknown
- 2012-01-13 EP EP12704456.8A patent/EP2663921B1/en active Active
-
2015
- 2015-07-23 JP JP2015145991A patent/JP6062506B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2014505946A (ja) | 2014-03-06 |
| JP6062506B2 (ja) | 2017-01-18 |
| EP3557434A1 (en) | 2019-10-23 |
| KR101558069B1 (ko) | 2015-10-06 |
| US9804995B2 (en) | 2017-10-31 |
| ES2873896T3 (es) | 2021-11-04 |
| ES2749883T3 (es) | 2020-03-24 |
| WO2012097316A1 (en) | 2012-07-19 |
| CN103348320A (zh) | 2013-10-09 |
| HUE045952T2 (hu) | 2020-02-28 |
| US20120185671A1 (en) | 2012-07-19 |
| EP3557434B1 (en) | 2021-02-17 |
| CN103348320B (zh) | 2017-06-23 |
| EP2663921B1 (en) | 2019-07-24 |
| KR20130122657A (ko) | 2013-11-07 |
| EP2663921A1 (en) | 2013-11-20 |
| JP2016006657A (ja) | 2016-01-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6062506B2 (ja) | 汎用グラフィクス処理装置における計算リソースパイプライン化 | |
| US9430807B2 (en) | Execution model for heterogeneous computing | |
| KR101707289B1 (ko) | 그래픽 병렬 처리 유닛에 대한 버퍼 관리 | |
| JP6271768B2 (ja) | 共有されるデータチャネルを用いるシェーダパイプライン | |
| US9442780B2 (en) | Synchronization of shader operation | |
| US8619087B2 (en) | Inter-shader attribute buffer optimization | |
| JP6374038B2 (ja) | ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム | |
| WO2022089592A1 (zh) | 一种图形渲染方法及其相关设备 | |
| CN103999128A (zh) | 具有命令处理器的图形处理单元 | |
| CN111080761B (zh) | 一种渲染任务的调度方法、装置及计算机存储介质 | |
| US20140176569A1 (en) | Graphics processing unit employing a standard processing unit and a method of constructing a graphics processing unit | |
| KR20150112771A (ko) | 우선순위 기반의 컨텍스트 선점 | |
| JP2018503919A (ja) | ベイヤーマッピングを備えたグラフィックス処理ユニット | |
| US20150100749A1 (en) | Short loop atomic access | |
| US9703614B2 (en) | Managing a free list of resources to decrease control complexity and reduce power consumption | |
| TWI507978B (zh) | 圖形管線之外部驗證技術 | |
| CN117616446A (zh) | 基于图块的架构中的深度和阴影通道渲染的优化 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141031 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141111 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150212 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150324 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150723 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20150803 |
|
| A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20150918 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160824 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5996554 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |