## Synchronization Primitives ### Atomics | [`cuda::atomic`] | System-wide [`cuda::std::atomic`] objects and operations. `(class template)`

1.0.0 / CUDA 10.2 | ### Latches | [`cuda::latch`] | System-wide [`cuda::std::latch`] single-phase asynchronous thread coordination mechanism. `(class template)`

1.1.0 / CUDA 11.0 | ### Barriers | [`cuda::barrier`] | System-wide [`cuda::std::barrier`] multi-phase asynchronous thread coordination mechanism. `(class template)`

1.1.0 / CUDA 11.0 | ### Semaphores | [`cuda::counting_semaphore`] | System-wide [`cuda::std::counting_semaphore`] primitive for constraining concurrent access. `(class template)`

1.1.0 / CUDA 11.0 | | [`cuda::binary_semaphore`] | System-wide [`cuda::std::binary_semaphore`] primitive for mutual exclusion. `(class template)`

1.1.0 / CUDA 11.0 | ### Pipelines The pipeline library is included in the CUDA Toolkit, but is not part of the open source libcu++ distribution. | [`cuda::pipeline`] | Coordination mechanism for sequencing asynchronous operations. `(class template)`

CUDA 11.1 | | [`cuda::pipeline_shared_state`] | [`cuda::pipeline`] shared state object. `(class template)`

CUDA 11.1 | | [`cuda::pipeline_role`] | Defines producer/consumer role for a thread participating in a _pipeline_. `(enum)`

CUDA 11.1 | | [`cuda::make_pipeline`] | Creates a [`cuda::pipeline`]. `(function template)`

CUDA 11.1 | | [`cuda::pipeline_consumer_wait_prior`] | Blocks the current thread until all operations committed up to a prior _pipeline stage_ complete. `(function template)`

CUDA 11.1 | | [`cuda::pipeline_producer_commit`] | Binds operations previously issued by the current thread to a [`cuda::barrier`]. `(function template)`

CUDA 11.1 | [`cuda::std::atomic`]: https://en.cppreference.com/w/cpp/atomic/atomic [`cuda::std::barrier`]: https://en.cppreference.com/w/cpp/thread/barrier [`cuda::std::latch`]: https://en.cppreference.com/w/cpp/thread/latch [`cuda::std::counting_semaphore`]: https://en.cppreference.com/w/cpp/thread/counting_semaphore [`cuda::std::binary_semaphore`]: https://en.cppreference.com/w/cpp/thread/binary_semaphore [asynchronous operations]: {{ "extended_api/asynchronous_operations.html" | relative_url }} [`cuda::memcpy_async`]: {{ "extended_api/asynchronous_operations/memcpy_async.html" | relative_url }} [`cuda::atomic`]: {{ "extended_api/synchronization_primitives/atomic.html" | relative_url }} [`cuda::barrier`]: {{ "extended_api/synchronization_primitives/barrier.html" | relative_url }} [`cuda::latch`]: {{ "extended_api/synchronization_primitives/latch.html" | relative_url }} [`cuda::counting_semaphore`]: {{ "extended_api/synchronization_primitives/counting_semaphore.html" | relative_url }} [`cuda::binary_semaphore`]: {{ "extended_api/synchronization_primitives/binary_semaphore.html" | relative_url }} [`cuda::pipeline`]: {{ "extended_api/synchronization_primitives/pipeline.html" | relative_url }} [`cuda::pipeline_shared_state`]: {{ "extended_api/synchronization_primitives/pipeline_shared_state.html" | relative_url }} [`cuda::pipeline_role`]: {{ "extended_api/synchronization_primitives/pipeline_role.html" | relative_url }} [`cuda::make_pipeline`]: {{ "extended_api/synchronization_primitives/make_pipeline.html" | relative_url }} [`cuda::pipeline_consumer_wait_prior`]: {{ "extended_api/synchronization_primitives/pipeline_consumer_wait_prior.html" | relative_url }} [`cuda::pipeline_producer_commit`]: {{ "extended_api/synchronization_primitives/pipeline_producer_commit.html" | relative_url }}