CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
94 lines
4.0 KiB
ReStructuredText
94 lines
4.0 KiB
ReStructuredText
.. _libcudacxx-extended-api-synchronization:
|
|
|
|
Synchronization Primitives
|
|
===========================
|
|
|
|
.. toctree::
|
|
:hidden:
|
|
:maxdepth: 1
|
|
|
|
synchronization_primitives/atomic
|
|
synchronization_primitives/atomic_ref
|
|
synchronization_primitives/latch
|
|
synchronization_primitives/barrier
|
|
synchronization_primitives/counting_semaphore
|
|
synchronization_primitives/binary_semaphore
|
|
synchronization_primitives/pipeline
|
|
|
|
.. rubric:: Atomics
|
|
|
|
.. list-table::
|
|
:widths: 25 45 30
|
|
:header-rows: 0
|
|
|
|
* - :ref:`cuda::atomic <libcudacxx-extended-api-synchronization-atomic>`
|
|
- System-wide `std::atomic <https://en.cppreference.com/w/cpp/atomic/atomic>`_ objects and operations
|
|
- libcu++ 1.0.0 / CCCL 2.0.0 / CUDA 10.2
|
|
* - :ref:`cuda::atomic_ref <libcudacxx-extended-api-synchronization-atomic-ref>`
|
|
- System-wide `std::atomic_ref <https://en.cppreference.com/w/cpp/atomic/atomic_ref>`_ objects and operations
|
|
- libcu++ 1.7.0 / CCCL 2.0.0 / CUDA 11.6
|
|
|
|
.. rubric:: Latches
|
|
|
|
.. list-table::
|
|
:widths: 25 45 30
|
|
:header-rows: 0
|
|
|
|
* - :ref:`cuda::latch <libcudacxx-extended-api-synchronization-latch>`
|
|
- System-wide `std::latch <https://en.cppreference.com/w/cpp/thread/latch>`_ single-phase asynchronous
|
|
thread coordination mechanism
|
|
- libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0
|
|
|
|
.. rubric:: Barriers
|
|
|
|
.. list-table::
|
|
:widths: 25 45 30
|
|
:header-rows: 0
|
|
|
|
* - :ref:`cuda::barrier <libcudacxx-extended-api-synchronization-barrier>`
|
|
- System wide `std::barrier <https://en.cppreference.com/w/cpp/thread/barrier>`_ multi-phase asynchronous
|
|
thread coordination mechanism
|
|
- libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0
|
|
|
|
.. rubric:: Semaphores
|
|
|
|
.. list-table::
|
|
:widths: 25 45 30
|
|
:header-rows: 0
|
|
|
|
* - :ref:`cuda::counting_semaphore <libcudacxx-extended-api-synchronization-counting-semaphore>`
|
|
- System wide `std::counting_semaphore <https://en.cppreference.com/w/cpp/thread/counting_semaphore>`_
|
|
primitive for constraining concurrent access
|
|
- libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0
|
|
* - :ref:`cuda::binary_semaphore <libcudacxx-extended-api-synchronization-counting-semaphore>`
|
|
- System wide `std::binary_semaphore <https://en.cppreference.com/w/cpp/thread/counting_semaphore>`_
|
|
primitive for mutual exclusion
|
|
- libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0
|
|
|
|
.. rubric:: Pipelines
|
|
|
|
The pipeline library is included in the CUDA Toolkit, but is not part of the open source libcu++ distribution.
|
|
|
|
.. list-table::
|
|
:widths: 25 45 30
|
|
:header-rows: 0
|
|
|
|
* - :ref:`cuda::pipeline <libcudacxx-extended-api-synchronization-pipeline>`
|
|
- Coordination mechanism for sequencing asynchronous operations
|
|
- libcu++ 1.2.0 / CCCL 2.0.0 / CUDA 11.1
|
|
* - :ref:`cuda::pipeline_shared_state <libcudacxx-extended-api-synchronization-pipeline-pipeline-shared-state>`
|
|
- :ref:`cuda::pipeline <libcudacxx-extended-api-synchronization-pipeline>` shared state object
|
|
- libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0
|
|
* - :ref:`cuda::pipeline_role <libcudacxx-extended-api-synchronization-pipeline-pipeline-role>`
|
|
- Defines producer/consumer role for a thread participating in a *pipeline*
|
|
- libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0
|
|
* - :ref:`cuda::make_pipeline <libcudacxx-extended-api-synchronization-pipeline-pipeline-role>`
|
|
- Creates a :ref:`cuda::pipeline <libcudacxx-extended-api-synchronization-pipeline>`
|
|
- libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0
|
|
* - :ref:`cuda::pipeline_consumer_wait_prior <libcudacxx-extended-api-synchronization-pipeline-pipeline-consumer-wait-prior>`
|
|
- 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
|
|
* - :ref:`cuda::pipeline_producer_commit <libcudacxx-extended-api-synchronization-pipeline-pipeline-producer-commit>`
|
|
- Binds operations previously issued by the current thread to a :ref:`cuda::barrier <libcudacxx-extended-api-synchronization-barrier>`
|
|
- libcu++ 1.1.0 / CCCL 2.0.0 / CUDA 11.0
|