JP6542483B2 - グラフィックス処理ユニットのためのシェーダにおける一様な述語 - Google Patents
グラフィックス処理ユニットのためのシェーダにおける一様な述語 Download PDFInfo
- Publication number
- JP6542483B2 JP6542483B2 JP2018543250A JP2018543250A JP6542483B2 JP 6542483 B2 JP6542483 B2 JP 6542483B2 JP 2018543250 A JP2018543250 A JP 2018543250A JP 2018543250 A JP2018543250 A JP 2018543250A JP 6542483 B2 JP6542483 B2 JP 6542483B2
- Authority
- JP
- Japan
- Prior art keywords
- instructions
- instruction
- warp
- predicate bits
- gpu
- 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 280
- 238000000034 method Methods 0.000 claims description 82
- 238000004891 communication Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 description 31
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 12
- 239000012634 fragment Substances 0.000 description 12
- 239000013598 vector Substances 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000009849 deactivation Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- 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
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/90—Dynamic range modification of images or parts thereof
- G06T5/94—Dynamic range modification of images or parts thereof based on local image properties, e.g. for local contrast enhancement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
- Image Generation (AREA)
- Executing Machine-Instructions (AREA)
Description
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
データを処理するための方法であって、前記方法は、
グラフィックス処理ユニット(GPU)におけるワープのすべてのスレッドが命令の第1のセット中の同じ分岐を実行すべきであるという指示を受信することと、
1つまたは複数の述語ビットを述語ビットの単一のセットとしてメモリに記憶することと、ここにおいて、述語ビットの前記単一のセットが前記ワープ中の前記スレッドのすべてに適用される、
述語ビットの前記単一のセットに従って命令の前記第1のセットの一部分を実行することと
を備える、方法。
[C2]
述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきであるように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、C1に記載の方法。
[C3]
述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきでないように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、C1に記載の方法。
[C4]
命令の前記第1のセットの前記一部分を実行することが、
単一命令複数データ(SIMD)処理コアを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行すること
を備える、C1に記載の方法。
[C5]
命令の前記第1のセットの前記一部分を実行することが、
スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行すること
を備える、C1に記載の方法。
[C6]
前記スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットを実行することと並行して、単一命令複数データ(SIMD)処理コアを使用して、命令の第2のセットを実行すること
をさらに備える、C5に記載の方法。
[C7]
前記GPUにおける前記ワープのすべてのスレッドが命令の前記第1のセットの前記同じ分岐を実行すべきであると決定することと、
前記決定に応答して、前記指示を送ることと
をさらに備える、C1に記載の方法。
[C8]
命令の前記第1のセットのためのワープ全体が定数の同じセットを使用すると決定することによって、または、命令の前記第1のセットのための前記ワープ全体が、前記ワープのすべてのスレッドに適用される一様汎用レジスタ(uGPR)からのデータを使用すると決定することによって、前記GPUにおける前記ワープのすべてのスレッドが命令の前記第1のセットの前記同じ分岐を実行すべきであると決定すること
をさらに備える、C7に記載の方法。
[C9]
データを処理するための装置であって、前記装置は、
命令の第1のセットを記憶するように構成されたメモリと、
第1のプロセッサとを備え、前記第1のプロセッサは、
前記第1のプロセッサにおけるワープのすべてのスレッドが命令の第1のセット中の同じ分岐を実行すべきであるという指示を受信することと、
1つまたは複数の述語ビットを述語ビットの単一のセットとしてレジスタに記憶することと、ここにおいて、述語ビットの前記単一のセットが前記ワープ中の前記スレッドのすべてに適用される、
述語ビットの前記単一のセットに従って命令の前記第1のセットの一部分を実行することと
を行うように構成された、
装置。
[C10]
前記第1のプロセッサがグラフィックス処理ユニット(GPU)である、C9に記載の装置。
[C11]
前記第1のプロセッサが、複数の処理要素を含む単一命令複数データ(SIMD)処理コアをさらに含み、前記装置が、
前記レジスタをさらに備え、ここにおいて、前記レジスタが、前記SIMDコアの前記複数の処理要素の各々によってアクセス可能である、
C9に記載の装置。
[C12]
述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきであるように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、C9に記載の装置。
[C13]
述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきでないように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、C9に記載の装置。
[C14]
前記第1のプロセッサが、前記SIMD処理コアを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行するようにさらに構成された、C9に記載の装置。
[C15]
前記第1のプロセッサがスカラー処理ユニットをさらに含み、ここにおいて、前記第1のプロセッサが、前記スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行するようにさらに構成された、C9に記載の装置。
[C16]
前記第1のプロセッサが、複数の処理要素を含む単一命令複数データ(SIMD)処理コアをさらに含み、ここにおいて、前記第1のプロセッサが、前記スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットを実行することと並行して、前記SIMD処理コアを使用して、命令の第2のセットを実行するようにさらに構成された、C15に記載の装置。
[C17]
前記第1のプロセッサと通信している第2のプロセッサをさらに備え、前記第2のプロセッサは、
前記第1のプロセッサにおける前記ワープのすべてのスレッドが命令の前記第1のセットの前記同じ分岐を実行すべきであると決定することと、
前記決定に応答して、前記指示を前記第1のプロセッサに送ることと
を行うように構成された、
C9に記載の装置。
[C18]
前記第2のプロセッサが中央処理ユニット(CPU)である、C17に記載の装置。
[C19]
前記第2のプロセッサは、命令の前記第1のセットのためのワープ全体が定数の同じセットを使用すると決定することによって、または、命令の前記第1のセットのための前記ワープ全体が、前記ワープのすべてのスレッドに適用される一様汎用レジスタ(uGPR)からのデータを使用すると決定することによって、前記第1のプロセッサにおける前記ワープのすべてのスレッドが命令の前記第1のセットの前記同じ分岐を実行すべきであると決定するようにさらに構成された、C17に記載の装置。
[C20]
前記装置がワイヤレス通信デバイスである、C9に記載の装置。
[C21]
データを処理するための装置であって、前記装置は、
グラフィックス処理ユニット(GPU)におけるワープのすべてのスレッドが命令の第1のセット中の同じ分岐を実行すべきであるという指示を受信するための手段と、
1つまたは複数の述語ビットを述語ビットの単一のセットとしてメモリに記憶するための手段と、ここにおいて、述語ビットの前記単一のセットが前記ワープ中の前記スレッドのすべてに適用される、
述語ビットの前記単一のセットに従って命令の前記第1のセットの一部分を実行するための手段と
を備える、装置。
[C22]
述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきでないように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、C21に記載の装置。
[C23]
命令の前記第1のセットの前記一部分を実行するための前記手段が、
単一命令複数データ(SIMD)処理コアを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行するための手段
を備える、C21に記載の装置。
[C24]
命令の前記第1のセットの前記一部分を実行するための前記手段が、
スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行するための手段
を備える、C21に記載の装置。
[C25]
前記スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットを実行することと並行して、単一命令複数データ(SIMD)処理コアを使用して、命令の第2のセットを実行するための手段
をさらに備える、C24に記載の装置。
[C26]
実行されたとき、1つまたは複数のプロセッサに、
グラフィックス処理ユニット(GPU)におけるワープのすべてのスレッドが命令の第1のセット中の同じ分岐を実行すべきであるという指示を受信することと、
1つまたは複数の述語ビットを述語ビットの単一のセットとしてメモリに記憶することと、ここにおいて、述語ビットの前記単一のセットが前記ワープ中の前記スレッドのすべてに適用される、
述語ビットの前記単一のセットに従って命令の前記第1のセットの一部分を実行することと
を行わせる命令を記憶するコンピュータ可読記憶媒体。
[C27]
述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきでないように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、C26に記載のコンピュータ可読記憶媒体。
[C28]
前記命令が、前記1つまたは複数のプロセッサに、
単一命令複数データ(SIMD)処理コアを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行すること
をさらに行わせる、C26に記載のコンピュータ可読記憶媒体。
[C29]
前記命令が、前記1つまたは複数のプロセッサに、
スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行すること
をさらに行わせる、C26に記載のコンピュータ可読記憶媒体。
[C30]
前記スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットを実行することと並行して、単一命令複数データ(SIMD)処理コアを使用して、命令の第2のセットを実行すること
をさらに備える、C29に記載のコンピュータ可読記憶媒体。
Claims (26)
- データを処理するための方法であって、前記方法は、
命令の第1のセットのためのワープ全体が定数の同じセットを使用する場合、または、命令の前記第1のセットのための前記ワープ全体が、ワープのすべてのスレッドに適用される一様汎用レジスタ(uGPR)からのデータを使用する場合、グラフィックス処理ユニット(GPU)における前記ワープのすべてのスレッドが命令の前記第1のセットの同じ分岐を実行すべきであると決定することと、
前記決定に応答して、前記GPUにおける前記ワープのすべてのスレッドが命令の第1のセット中の同じ分岐を実行すべきであるという指示を前記GPUに送ることと、
前記GPUによって、前記指示を受信することと、
前記指示に応答して、1つまたは複数の述語ビットを述語ビットの単一のセットとしてメモリに記憶することと、ここにおいて、述語ビットの前記単一のセットが前記ワープ中の前記スレッドのすべてに適用される、
述語ビットの前記単一のセットに従って命令の前記第1のセットの一部分を実行することと
を備える、方法。 - 述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきであるように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、請求項1に記載の方法。
- 述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきでないように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、請求項1に記載の方法。
- 命令の前記第1のセットの前記一部分を実行することが、
単一命令複数データ(SIMD)処理コアを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行すること
を備える、請求項1に記載の方法。 - 命令の前記第1のセットの前記一部分を実行することが、
スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行すること
を備える、請求項1に記載の方法。 - 前記スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットを実行することと並行して、単一命令複数データ(SIMD)処理コアを使用して、命令の第2のセットを実行すること
をさらに備える、請求項5に記載の方法。 - データを処理するための装置であって、前記装置は、
命令の第1のセットを記憶するように構成されたメモリと、
命令の第1のセットのためのワープ全体が定数の同じセットを使用する場合、または、命令の前記第1のセットのための前記ワープ全体が、ワープのすべてのスレッドに適用される一様汎用レジスタ(uGPR)からのデータを使用する場合、第2のプロセッサにおける前記ワープのすべてのスレッドが命令の前記第1のセットの同じ分岐を実行すべきであると決定することと、
前記決定に応答して、前記第2のプロセッサにおける前記ワープのすべてのスレッドが命令の第1のセット中の同じ分岐を実行すべきであるという指示を前記第2のプロセッサに送ることと
を行うように構成された第1のプロセッサと、
前記第1のプロセッサと通信している第2のプロセッサと
を備え、前記第2のプロセッサは、
前記指示を受信することと、
前記指示に応答して、1つまたは複数の述語ビットを述語ビットの単一のセットとしてレジスタに記憶することと、ここにおいて、述語ビットの前記単一のセットが前記ワープ中の前記スレッドのすべてに適用される、
述語ビットの前記単一のセットに従って命令の前記第1のセットの一部分を実行することと
を行うように構成された、
装置。 - 前記第2のプロセッサがグラフィックス処理ユニット(GPU)である、請求項7に記載の装置。
- 前記第2のプロセッサが、複数の処理要素を含む単一命令複数データ(SIMD)処理コアをさらに含み、前記装置が、
前記レジスタをさらに備え、ここにおいて、前記レジスタが、前記SIMD処理コアの前記複数の処理要素の各々によってアクセス可能である、
請求項7に記載の装置。 - 述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきであるように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、請求項7に記載の装置。
- 述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきでないように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、請求項7に記載の装置。
- 前記第2のプロセッサが、単一命令複数データ(SIMD)処理コアを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行するようにさらに構成された、請求項7に記載の装置。
- 前記第2のプロセッサがスカラー処理ユニットをさらに含み、ここにおいて、前記第2のプロセッサが、前記スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行するようにさらに構成された、請求項7に記載の装置。
- 前記第2のプロセッサが、複数の処理要素を含む単一命令複数データ(SIMD)処理コアをさらに含み、ここにおいて、前記第2のプロセッサが、前記スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットを実行することと並行して、前記SIMD処理コアを使用して、命令の第2のセットを実行するようにさらに構成された、請求項13に記載の装置。
- 前記第1のプロセッサが中央処理ユニット(CPU)である、請求項7に記載の装置。
- 前記装置がワイヤレス通信デバイスである、請求項7に記載の装置。
- データを処理するための装置であって、前記装置は、
命令の第1のセットのためのワープ全体が定数の同じセットを使用する場合、または、命令の前記第1のセットのための前記ワープ全体が、ワープのすべてのスレッドに適用される一様汎用レジスタ(uGPR)からのデータを使用する場合、グラフィックス処理ユニット(GPU)における前記ワープのすべてのスレッドが命令の前記第1のセットの同じ分岐を実行すべきであると決定するための手段と、
前記決定に応答して、前記GPUにおける前記ワープのすべてのスレッドが命令の第1のセット中の同じ分岐を実行すべきであるという指示を前記GPUに送るための手段と、
前記指示を受信するための手段と、
前記指示に応答して、1つまたは複数の述語ビットを述語ビットの単一のセットとしてメモリに記憶するための手段と、ここにおいて、述語ビットの前記単一のセットが前記ワープ中の前記スレッドのすべてに適用される、
述語ビットの前記単一のセットに従って命令の前記第1のセットの一部分を実行するための手段と
を備える、装置。 - 述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきでないように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、請求項17に記載の装置。
- 命令の前記第1のセットの前記一部分を実行するための前記手段が、
単一命令複数データ(SIMD)処理コアを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行するための手段
を備える、請求項17に記載の装置。 - 命令の前記第1のセットの前記一部分を実行するための前記手段が、
スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行するための手段
を備える、請求項17に記載の装置。 - 前記スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットを実行することと並行して、単一命令複数データ(SIMD)処理コアを使用して、命令の第2のセットを実行するための手段
をさらに備える、請求項20に記載の装置。 - 実行されたとき、1つまたは複数のプロセッサに、
命令の第1のセットのためのワープ全体が定数の同じセットを使用する場合、または、命令の前記第1のセットのための前記ワープ全体が、ワープのすべてのスレッドに適用される一様汎用レジスタ(uGPR)からのデータを使用する場合、グラフィックス処理ユニット(GPU)における前記ワープのすべてのスレッドが命令の前記第1のセットの同じ分岐を実行すべきであると決定することと、
前記決定に応答して、前記GPUにおける前記ワープのすべてのスレッドが命令の第1のセット中の同じ分岐を実行すべきであるという指示を前記GPUに送ることと、
前記GPUによって、前記指示を受信することと、
前記指示に応答して、1つまたは複数の述語ビットを述語ビットの単一のセットとしてメモリに記憶することと、ここにおいて、述語ビットの前記単一のセットが前記ワープ中の前記スレッドのすべてに適用される、
述語ビットの前記単一のセットに従って命令の前記第1のセットの一部分を実行することと
を行わせる命令を記憶するコンピュータ可読記憶媒体。 - 述語ビットの前記単一のセットは、命令の前記第1のセットの前記一部分を、前記ワープの各スレッドによって実施されるべきでないように示し、命令の前記セットの前記一部分が、命令の前記第1のセット中の前記同じ分岐に関係する、請求項22に記載のコンピュータ可読記憶媒体。
- 前記命令が、前記1つまたは複数のプロセッサに、
単一命令複数データ(SIMD)処理コアを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行すること
をさらに行わせる、請求項22に記載のコンピュータ可読記憶媒体。 - 前記命令が、前記1つまたは複数のプロセッサに、
スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットの前記一部分を実行すること
をさらに行わせる、請求項22に記載のコンピュータ可読記憶媒体。 - 前記スカラー処理ユニットを使用して、述語ビットの前記単一のセットに従って命令の前記第1のセットを実行することと並行して、単一命令複数データ(SIMD)処理コアを使用して、命令の第2のセットを実行すること
をさらに備える、請求項25に記載のコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/048,599 US10115175B2 (en) | 2016-02-19 | 2016-02-19 | Uniform predicates in shaders for graphics processing units |
US15/048,599 | 2016-02-19 | ||
PCT/US2017/012748 WO2017142642A1 (en) | 2016-02-19 | 2017-01-09 | Uniform predicates in shaders for graphics processing units |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019109683A Division JP2019169193A (ja) | 2016-02-19 | 2019-06-12 | グラフィックス処理ユニットのためのシェーダにおける一様な述語 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019507432A JP2019507432A (ja) | 2019-03-14 |
JP6542483B2 true JP6542483B2 (ja) | 2019-07-10 |
Family
ID=57906996
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018543250A Active JP6542483B2 (ja) | 2016-02-19 | 2017-01-09 | グラフィックス処理ユニットのためのシェーダにおける一様な述語 |
JP2019109683A Ceased JP2019169193A (ja) | 2016-02-19 | 2019-06-12 | グラフィックス処理ユニットのためのシェーダにおける一様な述語 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019109683A Ceased JP2019169193A (ja) | 2016-02-19 | 2019-06-12 | グラフィックス処理ユニットのためのシェーダにおける一様な述語 |
Country Status (10)
Country | Link |
---|---|
US (2) | US10115175B2 (ja) |
EP (1) | EP3417369B1 (ja) |
JP (2) | JP6542483B2 (ja) |
KR (1) | KR101941832B1 (ja) |
CN (1) | CN108701022B (ja) |
BR (1) | BR112018016913A2 (ja) |
CA (1) | CA3012446A1 (ja) |
ES (1) | ES2777827T3 (ja) |
HU (1) | HUE048694T2 (ja) |
WO (1) | WO2017142642A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10115175B2 (en) | 2016-02-19 | 2018-10-30 | Qualcomm Incorporated | Uniform predicates in shaders for graphics processing units |
US10503507B2 (en) * | 2017-08-31 | 2019-12-10 | Nvidia Corporation | Inline data inspection for workload simplification |
KR102161635B1 (ko) * | 2019-02-11 | 2020-10-06 | 서경대학교 산학협력단 | 범용 그래픽 처리장치 및 이의 스케쥴링 방법 |
CN112214243B (zh) * | 2020-10-21 | 2022-05-27 | 上海壁仞智能科技有限公司 | 配置向量运算系统中的协作线程束的装置和方法 |
CN114489791B (zh) * | 2021-01-27 | 2023-03-24 | 沐曦集成电路(上海)有限公司 | 处理器装置及其指令执行方法、计算设备 |
US20240046543A1 (en) * | 2022-08-05 | 2024-02-08 | Qualcomm Incorporated | Runtime mechanism to optimize shader execution flow |
US20240086162A1 (en) * | 2022-09-09 | 2024-03-14 | Microsoft Technology Licensing, Llc | Interleaved machine instruction placement in memory |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7239322B2 (en) * | 2003-09-29 | 2007-07-03 | Ati Technologies Inc | Multi-thread graphic processing system |
US8736623B1 (en) * | 2004-11-15 | 2014-05-27 | Nvidia Corporation | Programmable DMA engine for implementing memory transfers and video processing for a video processor |
US8082423B2 (en) * | 2005-08-11 | 2011-12-20 | International Business Machines Corporation | Generating a flush vector from a first execution unit directly to every other execution unit of a plurality of execution units in order to block all register updates |
US8321849B2 (en) * | 2007-01-26 | 2012-11-27 | Nvidia Corporation | Virtual architecture and instruction set for parallel thread computing |
US8615770B1 (en) | 2008-08-29 | 2013-12-24 | Nvidia Corporation | System and method for dynamically spawning thread blocks within multi-threaded processing systems |
US8677106B2 (en) * | 2009-09-24 | 2014-03-18 | Nvidia Corporation | Unanimous branch instructions in a parallel thread processor |
US20120084539A1 (en) * | 2010-09-29 | 2012-04-05 | Nyland Lars S | Method and sytem for predicate-controlled multi-function instructions |
GB2484489A (en) * | 2010-10-12 | 2012-04-18 | Advanced Risc Mach Ltd | Instruction decoder using an instruction set identifier to determine the decode rules to use. |
US9557993B2 (en) | 2012-10-23 | 2017-01-31 | Analog Devices Global | Processor architecture and method for simplifying programming single instruction, multiple data within a register |
US9424038B2 (en) | 2012-12-10 | 2016-08-23 | Nvidia Corporation | Compiler-controlled region scheduling for SIMD execution of threads |
US9015656B2 (en) | 2013-02-28 | 2015-04-21 | Cray Inc. | Mapping vector representations onto a predicated scalar multi-threaded system |
US10318293B2 (en) | 2013-07-09 | 2019-06-11 | Texas Instruments Incorporated | Predication methods for vector processors |
US9633409B2 (en) | 2013-08-26 | 2017-04-25 | Apple Inc. | GPU predication |
US9652284B2 (en) | 2013-10-01 | 2017-05-16 | Qualcomm Incorporated | GPU divergence barrier |
US9612811B2 (en) * | 2014-01-21 | 2017-04-04 | Nvidia Corporation | Confluence analysis and loop fast-forwarding for improving SIMD execution efficiency |
US10115175B2 (en) | 2016-02-19 | 2018-10-30 | Qualcomm Incorporated | Uniform predicates in shaders for graphics processing units |
TWI591579B (zh) * | 2016-05-13 | 2017-07-11 | 國立臺灣大學 | 減少流程控制發散度之分析系統與方法 |
US20200065098A1 (en) * | 2018-08-21 | 2020-02-27 | Qualcomm Incorporated | Providing efficient handling of branch divergence in vectorizable loops by vector-processor-based devices |
-
2016
- 2016-02-19 US US15/048,599 patent/US10115175B2/en active Active
-
2017
- 2017-01-09 WO PCT/US2017/012748 patent/WO2017142642A1/en active Application Filing
- 2017-01-09 BR BR112018016913A patent/BR112018016913A2/pt unknown
- 2017-01-09 CN CN201780011164.6A patent/CN108701022B/zh active Active
- 2017-01-09 CA CA3012446A patent/CA3012446A1/en not_active Abandoned
- 2017-01-09 EP EP17701772.0A patent/EP3417369B1/en active Active
- 2017-01-09 KR KR1020187023402A patent/KR101941832B1/ko active IP Right Grant
- 2017-01-09 HU HUE17701772A patent/HUE048694T2/hu unknown
- 2017-01-09 ES ES17701772T patent/ES2777827T3/es active Active
- 2017-01-09 JP JP2018543250A patent/JP6542483B2/ja active Active
-
2018
- 2018-08-14 US US16/103,336 patent/US10706494B2/en active Active
-
2019
- 2019-06-12 JP JP2019109683A patent/JP2019169193A/ja not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
CN108701022B (zh) | 2020-05-08 |
US10115175B2 (en) | 2018-10-30 |
US20170243320A1 (en) | 2017-08-24 |
ES2777827T3 (es) | 2020-08-06 |
US20190050958A1 (en) | 2019-02-14 |
KR101941832B1 (ko) | 2019-01-23 |
CN108701022A (zh) | 2018-10-23 |
JP2019507432A (ja) | 2019-03-14 |
BR112018016913A2 (pt) | 2018-12-26 |
WO2017142642A1 (en) | 2017-08-24 |
KR20180114046A (ko) | 2018-10-17 |
US10706494B2 (en) | 2020-07-07 |
CA3012446A1 (en) | 2017-04-24 |
EP3417369A1 (en) | 2018-12-26 |
EP3417369B1 (en) | 2019-12-11 |
JP2019169193A (ja) | 2019-10-03 |
HUE048694T2 (hu) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6542483B2 (ja) | グラフィックス処理ユニットのためのシェーダにおける一様な述語 | |
US9799094B1 (en) | Per-instance preamble for graphics processing | |
US10430912B2 (en) | Dynamic shader instruction nullification for graphics processing | |
KR101590734B1 (ko) | 그래픽 프로세싱 유닛에서의 메모리 공유 | |
JP6848028B2 (ja) | グラフィック処理のためのパーシェーダープリアンブル | |
JP7253507B2 (ja) | 仮想化アクセラレーテッド処理デバイスの早期仮想化コンテキストスイッチ | |
EP3161817B1 (en) | Load scheme for shared register in gpu | |
US9880851B2 (en) | System, method, and computer program product for implementing large integer operations on a graphics processing unit | |
JP2017515228A (ja) | Simd処理システムにおける直列実行のための技法 | |
US9632783B2 (en) | Operand conflict resolution for reduced port general purpose register |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20190301 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190312 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190415 |
|
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: 20190514 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190612 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6542483 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 |