Synchronization Primitives
Atomics
System-wide std::atomic objects and operations |
libcu++ 1.0.0 / CCCL 2.0.0 / CUDA 10.2 |
|
System-wide std::atomic_ref objects and operations |
libcu++ 1.7.0 / CCCL 2.0.0 / CUDA 11.6 |
Latches
System-wide std::latch single-phase asynchronous thread coordination mechanism |
libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0 |
Barriers
System wide std::barrier multi-phase asynchronous thread coordination mechanism |
libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0 |
Semaphores
System wide std::counting_semaphore primitive for constraining concurrent access |
libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0 |
|
System wide std::binary_semaphore primitive for mutual exclusion |
libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0 |
Pipelines
The pipeline library is included in the CUDA Toolkit, but is not part of the open source libcu++ distribution.
Coordination mechanism for sequencing asynchronous operations |
libcu++ 1.2.0 / CCCL 2.0.0 / CUDA 11.1 |
|
cuda::pipeline shared state object |
libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0 |
|
Defines producer/consumer role for a thread participating in a pipeline |
libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0 |
|
Creates a cuda::pipeline |
libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0 |
|
Blocks the current thread until all operations committed up to a prior pipeline stage complete |
libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0 |
|
Binds operations previously issued by the current thread to a cuda::barrier |
libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0 |