Synchronization of threads in a cooperative thread array
AssigneeNVIDIA Corporation
InventorsJohn R. Nickolls, Stephen D. Lew, Brett W. Coon, Peter C. Mills
Life of this patent
Estimating the term…
Loading patent…
AssigneeNVIDIA Corporation
InventorsJohn R. Nickolls, Stephen D. Lew, Brett W. Coon, Peter C. Mills
Estimating the term…
A “cooperative thread array,” or “CTA,” is a group of multiple threads that concurrently execute the same program on an input data set to produce an output data set. Each thread in a CTA has a unique thread identifier assigned at thread launch time that controls various aspects of the thread's processing behavior such as the portion of the input data set to be processed by each thread, the portion of an output data set to be produced by each thread, and/or sharing of intermediate results among threads. Different threads of the CTA are advantageously synchronized at appropriate points during CTA execution using a barrier synchronization technique in which barrier instructions in the CTA program are detected and used to suspend execution of some threads until a specified number of other threads also reaches the barrier point.
A method of synchronizing a cooperative thread array comprising a plurality of threads concurrently executing a same program on different input data, the method performed in a processor having a plurality of processing engines configured to execute the cooperative thread array in a plurality of single-instruction, multiple-data (SIMD) groups, wherein different threads in a same one of the SIMD groups are assigned to different ones of the processing engines for execution in parallel, and a central instruction unit configured to issue a same instruction for all of the threads of one of the SIMD groups in parallel to each of the plurality of processing engines, the method comprising, in the central instruction unit:
A processor configured to execute a cooperative thread array comprising a plurality of threads concurrently executing a same program on different input data, wherein each of the plurality of threads of the cooperative thread array has a sequence of program instructions associated therewith, the cooperative thread array including a plurality of single-instruction, multiple-data (SIMD) groups, the processor comprising:
A processor configured to execute a cooperative thread array comprising a plurality of threads concurrently executing a same program on different input data, wherein each of the plurality of threads of the cooperative thread array has a sequence of program instructions associated therewith, the cooperative thread array including a plurality of single-instruction, multiple-data (SIMD) groups, the processor comprising:
Dependencies are inferred from the claim text.