JP6062506B2 - 汎用グラフィクス処理装置における計算リソースパイプライン化 - Google Patents
汎用グラフィクス処理装置における計算リソースパイプライン化 Download PDFInfo
- Publication number
- JP6062506B2 JP6062506B2 JP2015145991A JP2015145991A JP6062506B2 JP 6062506 B2 JP6062506 B2 JP 6062506B2 JP 2015145991 A JP2015145991 A JP 2015145991A JP 2015145991 A JP2015145991 A JP 2015145991A JP 6062506 B2 JP6062506 B2 JP 6062506B2
- Authority
- JP
- Japan
- Prior art keywords
- local memory
- parallel processing
- data
- 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
- 238000012545 processing Methods 0.000 title claims description 475
- 239000000872 buffer Substances 0.000 claims description 294
- 238000000034 method Methods 0.000 claims description 57
- 230000007246 mechanism Effects 0.000 claims description 21
- 239000012634 fragment Substances 0.000 description 23
- 230000004888 barrier function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 238000012163 sequencing technique Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (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 (26)
- 汎用グラフィック処理装置(GPGPU)であって、
処理パイプラインのステージとして選択的に動作するように構成された前記GPGPUの2以上のプログラム可能な並行処理装置と、
前記パイプライン内に含まれ、前記並行処理装置間の移送のためにデータを保持するように構成された前記GPGPUの1以上のローカルメモリバッファであって、前記ローカルメモリバッファの各々は、前記処理パイプラインにおいて前記並行処理装置のうち少なくとも2つの間で直接接続され、前記データは、前記ローカルメモリバッファを介して前記並列処理装置のうちの一方から前記並列処理装置のうちの他方に直接受け渡される、1以上のローカルメモリバッファと、
前記並列処理装置のうちの前記一方が直接接属される前記ローカルメモリバッファのうちのそれぞれにデータを送信するように前記並列処理装置のうちの前記一方を構成することと、前記並列処理装置のうちの前記他方が直接接続される前記ローカルメモリバッファのうちの前記それぞれからデータを受信するように前記並列処理装置のうちの前記他方を構成することとを行うように構成された制御装置と
を備えるGPGPU。 - 前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、請求項1に記載のGPGPU。
- 前記1以上のローカルメモリバッファは、ハードウェアベースの先入れ先出しバッファ(FIFO)、後入れ先出しバッファ(LIFO)またはインデクス付けされたバッファのうちの少なくとも1つを備える、請求項1に記載のGPGPU。
- 前記制御装置は、前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行するように構成される、請求項1に記載のGPGPU。
- 前記制御装置は、前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定するように、前記決定された幅を有するように前記ローカルメモリバッファの各々を構成するようにさらに構成された請求項1に記載のGPGPU。
- 前記制御装置は、1以上のアプリケーションプログラミングインタフェース(API)を実行して、前記ローカルメモリバッファの各々についての前記幅を決定し、前記決定された幅によって前記ローカルメモリバッファの各々を構成し、前記ローカルメモリバッファの各々の深さを決定するように構成される、請求項5に記載のGPGPU。
- 前記制御装置は、前記ローカルメモリバッファの各々の深さを決定するようにさらに構成され、前記ローカルメモリバッファの各々は前記深さを前記幅とトレードすることが構成可能である、請求項5に記載のGPGPU。
- 汎用グラフィック処理装置(GPGPU)によってデータを処理する方法であって、前記方法は、
処理パイプラインのステージとして選択的に動作するように前記GPGPUの2以上のプログラム可能な並行処理装置を構成することと、
前記パイプライン内に含まれ、前記並行処理装置間の移送のためのデータを保持するように前記GPGPUの1以上のローカルメモリバッファを構成することであって、前記ローカルメモリバッファの各々は、前記処理パイプラインにおいて前記並行処理装置のうち少なくとも2つの間で直接接続され、前記データは、前記ローカルメモリバッファを介して前記並列処理装置のうちの一方から前記並列処理装置のうちの他方に直接受け渡される、構成することと、
前記並列処理装置のうちの前記一方が直接接属される前記ローカルメモリバッファのうちのそれぞれにデータを送信するように前記並列処理装置のうちの前記一方を構成することと、
前記並列処理装置のうちの前記他方が直接接続される前記ローカルメモリバッファのうちの前記それぞれからデータを受信するように前記並列処理装置のうちの前記他方を構成することと
を備える、方法。 - 前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、請求項8に記載の方法。
- 前記1以上のローカルメモリバッファは、ハードウェアベースの先入れ先出しバッファ(FIFO)、後入れ先出しバッファ(LIFO)またはインデクス付けされたバッファのうちの少なくとも1つを備える、請求項8に記載の方法。
- 前記1以上の並行処理装置を構成することは、前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行することを備える、請求項8に記載の方法。
- 前記1以上のローカルメモリバッファを構成することは、
前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定することと、
前記決定された幅を有するように前記ローカルメモリバッファの各々を構成することと、
を備える、請求項8に記載の方法。 - 前記1以上のローカルメモリバッファを構成することは、1以上のアプリケーションプログラミングインタフェース(API)を実行して、前記ローカルメモリバッファの各々についての前記幅を決定し、前記決定された幅によって前記ローカルメモリバッファの各々を構成し、前記ローカルメモリバッファの各々の深さを決定することを備える、請求項12に記載の方法。
- 前記1以上のローカルメモリバッファを構成することは、前記ローカルメモリバッファの各々の深さを決定するようにさらに構成され、前記ローカルメモリバッファの各々は前記深さを前記幅とトレードすることが構成可能である、請求項12に記載の方法。
- 汎用グラフィック処理装置(GPGPU)であって、
処理パイプラインのステージとして選択的に動作するように前記GPGPUの2以上のプログラム可能な並行処理装置を構成するための手段と、
前記パイプライン内に含まれ、前記並行処理装置間の移送のためのデータを保持するように前記GPGPUの1以上のローカルメモリバッファを構成するための手段であって、前記ローカルメモリバッファの各々は、前記処理パイプラインにおいて前記並行処理装置のうち少なくとも2つの間で直接接続され、前記データは、前記ローカルメモリバッファを介して前記並列処理装置のうちの一方から前記並列処理装置のうちの他方に直接受け渡される、構成するための手段と、
前記並列処理装置のうちの前記一方が直接接属される前記ローカルメモリバッファのうちのそれぞれにデータを送信するように前記並列処理装置のうちの前記一方を構成するための手段と、
前記並列処理装置のうちの前記他方が直接接続される前記ローカルメモリバッファのうちの前記それぞれからデータを受信するように前記並列処理装置のうちの前記他方を構成するための手段と、
を備えるGPGPU。 - 前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、請求項15に記載のGPGPU。
- 前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行するための手段、をさらに備える請求項15に記載のGPGPU。
- 前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定するための手段と、
前記決定された幅を有するように前記ローカルメモリバッファの各々を構成するための手段と、
をさらに備える請求項15に記載のGPGPU。 - 1以上のアプリケーションプログラミングインタフェース(API)を実行して、前記ローカルメモリバッファの各々についての前記幅を決定し、前記決定された幅によって前記ローカルメモリバッファの各々を構成し、前記ローカルメモリバッファの各々の深さを決定するための手段、をさらに備える請求項18に記載のGPGPU。
- 前記ローカルメモリバッファの各々の深さを決定するための手段をさらに備え、前記ローカルメモリバッファの各々は前記深さを前記幅とトレードすることが構成可能である、請求項18に記載のGPGPU。
- 汎用グラフィクス処理装置(GPGPU)によってデータを処理するための命令を備えるコンピュータ可読媒体であって、実行時に、プログラム可能なプロセッサに、
処理パイプラインのステージとして選択的に動作するように前記GPGPUの2以上のプログラム可能な並行処理装置を構成させ、
前記パイプライン内に含まれ、前記並行処理装置間の移送のためにデータを保持するように前記GPGPUの1以上のローカルメモリバッファを構成させることであって、前記ローカルメモリバッファの各々は、前記処理パイプラインにおいて前記並行処理装置のうち少なくとも2つの間で直接接続され、前記データは、前記ローカルメモリバッファを介して前記並列処理装置のうちの一方から前記並列処理装置のうちの他方に直接受け渡される、構成させ、
前記並列処理装置のうちの前記一方が直接接属される前記ローカルメモリバッファのうちのそれぞれにデータを送信するように前記並列処理装置のうちの前記一方を構成させ、
前記並列処理装置のうちの前記他方が直接接続される前記ローカルメモリバッファのうちの前記それぞれからデータを受信するように前記並列処理装置のうちの前記他方を構成させる、
コンピュータ可読媒体。 - 前記1以上のローカルメモリバッファは、前記並行処理装置間の前記データの移送を可能にするハードウェアベースのデータフロー制御メカニズムを含む、請求項21に記載のコンピュータ可読媒体。
- 前記プログラム可能なプロセッサに、前記ローカルメモリバッファにデータを送信し前記ローカルメモリバッファからデータを受信するように前記並行処理装置を構成するために1以上のアプリケーションプログラミングインタフェース(API)を実行させる命令、をさらに備える請求項21に記載のコンピュータ可読媒体。
- 前記プログラム可能なプロセッサに、
前記処理パイプラインにおいて前の処理装置からのデータ出力を保持するために前記ローカルメモリバッファの各々についての必要な幅を決定させる命令と、
前記決定された幅を有するように前記ローカルメモリバッファの各々を構成させる命令と、
をさらに備える請求項21に記載のコンピュータ可読媒体。 - 前記プログラム可能なプロセッサに、1以上のアプリケーションプログラミングインタフェース(API)を実行させ、前記ローカルメモリバッファの各々についての前記幅を決定させ、前記決定された幅によって前記ローカルメモリバッファの各々を構成させ、前記ローカルメモリバッファの各々の深さを決定させる命令、をさらに備える請求項24に記載のコンピュータ可読媒体。
- 前記プログラム可能なプロセッサに、前記ローカルメモリバッファの各々の深さを決定させる命令をさらに備え、前記ローカルメモリバッファの各々は前記深さを前記幅とトレードすることが構成可能である、請求項24に記載のコンピュータ可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/007,333 US9804995B2 (en) | 2011-01-14 | 2011-01-14 | Computational resource pipelining in general purpose graphics processing unit |
US13/007,333 | 2011-01-14 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013549593A Division JP5996554B2 (ja) | 2011-01-14 | 2012-01-13 | 汎用グラフィクス処理装置における計算リソースパイプライン化 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016006657A JP2016006657A (ja) | 2016-01-14 |
JP6062506B2 true JP6062506B2 (ja) | 2017-01-18 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013549593A Active JP5996554B2 (ja) | 2011-01-14 | 2012-01-13 | 汎用グラフィクス処理装置における計算リソースパイプライン化 |
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 (13)
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芯片的多用户通用计算处理方法和系统 |
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 (en) * | 1990-05-07 | 1991-11-14 | Mitsubishi Denki Kabushiki Kaisha | Parallel data processing system |
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 EP EP19178559.1A patent/EP3557434B1/en active Active
- 2012-01-13 ES ES19178559T patent/ES2873896T3/es active Active
- 2012-01-13 HU HUE12704456A patent/HUE045952T2/hu unknown
- 2012-01-13 JP JP2013549593A patent/JP5996554B2/ja active Active
- 2012-01-13 WO PCT/US2012/021344 patent/WO2012097316A1/en active Application Filing
- 2012-01-13 CN CN201280007990.0A patent/CN103348320B/zh active Active
- 2012-01-13 EP EP12704456.8A patent/EP2663921B1/en active Active
- 2012-01-13 KR KR1020137021380A patent/KR101558069B1/ko active IP Right Grant
- 2012-01-13 ES ES12704456T patent/ES2749883T3/es active Active
-
2015
- 2015-07-23 JP JP2015145991A patent/JP6062506B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
KR20130122657A (ko) | 2013-11-07 |
CN103348320B (zh) | 2017-06-23 |
JP2014505946A (ja) | 2014-03-06 |
ES2873896T3 (es) | 2021-11-04 |
US20120185671A1 (en) | 2012-07-19 |
KR101558069B1 (ko) | 2015-10-06 |
CN103348320A (zh) | 2013-10-09 |
EP3557434A1 (en) | 2019-10-23 |
HUE045952T2 (hu) | 2020-02-28 |
JP2016006657A (ja) | 2016-01-14 |
US9804995B2 (en) | 2017-10-31 |
EP2663921A1 (en) | 2013-11-20 |
EP2663921B1 (en) | 2019-07-24 |
WO2012097316A1 (en) | 2012-07-19 |
ES2749883T3 (es) | 2020-03-24 |
EP3557434B1 (en) | 2021-02-17 |
JP5996554B2 (ja) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6062506B2 (ja) | 汎用グラフィクス処理装置における計算リソースパイプライン化 | |
KR101707289B1 (ko) | 그래픽 병렬 처리 유닛에 대한 버퍼 관리 | |
US9430807B2 (en) | Execution model for heterogeneous computing | |
US9442780B2 (en) | Synchronization of shader operation | |
KR101666416B1 (ko) | 우선순위 기반의 컨텍스트 선점 | |
JP6374038B2 (ja) | ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム | |
KR102006584B1 (ko) | 레이트 심도 테스팅과 컨서버티브 심도 테스팅 간의 동적 스위칭 | |
JP2017509092A (ja) | 共有されるデータチャネルを用いるシェーダパイプライン | |
WO2022089592A1 (zh) | 一种图形渲染方法及其相关设备 | |
JP5908957B2 (ja) | ショートループアトミックアクセス | |
JP2018503919A (ja) | ベイヤーマッピングを備えたグラフィックス処理ユニット | |
US9881352B2 (en) | Facilitating efficient graphics commands processing for bundled states at computing devices | |
TWI507978B (zh) | 圖形管線之外部驗證技術 | |
KR101863483B1 (ko) | 중간 스토리지로서 파이프라인 레지스터들의 활용 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160620 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160628 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160927 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161214 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6062506 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 |