thrust / dependencies /libcudacxx /docs /extended_api /synchronization_primitives.md
camenduru's picture
thanks to nvidia ❤
8ae5fc5
## Synchronization Primitives
### Atomics
| [`cuda::atomic`] | System-wide [`cuda::std::atomic`] objects and operations. `(class template)` <br/><br/> 1.0.0 / CUDA 10.2 |
### Latches
| [`cuda::latch`] | System-wide [`cuda::std::latch`] single-phase asynchronous thread coordination mechanism. `(class template)` <br/><br/> 1.1.0 / CUDA 11.0 |
### Barriers
| [`cuda::barrier`] | System-wide [`cuda::std::barrier`] multi-phase asynchronous thread coordination mechanism. `(class template)` <br/><br/> 1.1.0 / CUDA 11.0 |
### Semaphores
| [`cuda::counting_semaphore`] | System-wide [`cuda::std::counting_semaphore`] primitive for constraining concurrent access. `(class template)` <br/><br/> 1.1.0 / CUDA 11.0 |
| [`cuda::binary_semaphore`] | System-wide [`cuda::std::binary_semaphore`] primitive for mutual exclusion. `(class template)` <br/><br/> 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)` <br/><br/> CUDA 11.1 |
| [`cuda::pipeline_shared_state`] | [`cuda::pipeline`] shared state object. `(class template)` <br/><br/> CUDA 11.1 |
| [`cuda::pipeline_role`] | Defines producer/consumer role for a thread participating in a _pipeline_. `(enum)` <br/><br/> CUDA 11.1 |
| [`cuda::make_pipeline`] | Creates a [`cuda::pipeline`]. `(function template)` <br/><br/> 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)` <br/><br/> CUDA 11.1 |
| [`cuda::pipeline_producer_commit`] | Binds operations previously issued by the current thread to a [`cuda::barrier`]. `(function template)` <br/><br/> 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 }}