|
Download dependencies/libcudacxx/docs/extended_api/thread_groups.md from camenduru/thrust: direct link, hf CLI and curl.
- Browser
- Download file 1.6 kB
-
https://huggingface.co/camenduru/thrust/resolve/main/dependencies/libcudacxx/docs/extended_api/thread_groups.md
- Command line
-
hf download hf://camenduru/thrust/dependencies/libcudacxx/docs/extended_api/thread_groups.md
-
curl -L -o thread_groups.md https://huggingface.co/camenduru/thrust/resolve/main/dependencies/libcudacxx/docs/extended_api/thread_groups.md
1.6 kB
| parent: Extended API | |
| nav_order: 1 | |
| # Thread Groups | |
| ```cuda | |
| struct ThreadGroup { | |
| static constexpr cuda::thread_scope thread_scope; | |
| Integral size() const; | |
| Integral thread_rank() const; | |
| void sync() const; | |
| }; | |
| ``` | |
| The _ThreadGroup concept_ defines the requirements of a type that represents a | |
| group of cooperating threads. | |
| The [CUDA Cooperative Groups Library] provides a number of types that satisfy | |
| this concept. | |
| ## Data Members | |
| | `thread_scope` | The scope at which `ThreadGroup::sync()` synchronizes memory operations and thread execution. | | |
| ## Member Functions | |
| | `size` | Returns the number of participating threads. | | |
| | `thread_rank` | Returns a unique value for each participating thread (`0 <= ThreadGroup::thread_rank() < ThreadGroup::size()`). | | |
| | `sync` | Synchronizes the participating threads. | | |
| ## Notes | |
| This concept is defined for documentation purposes but is not materialized in | |
| the library. | |
| ## Example | |
| ```cuda | |
| #include <cuda/atomic> | |
| #include <cuda/std/cstddef> | |
| struct single_thread_group { | |
| static constexpr cuda::thread_scope thread_scope = cuda::thread_scope::thread_scope_thread; | |
| cuda::std::size_t size() const { return 1; } | |
| cuda::std::size_t thread_rank() const { return 0; } | |
| void sync() const {} | |
| }; | |
| ``` | |
| [See it on Godbolt](https://godbolt.org/z/6c16KxqY7){: .btn } | |
| [CUDA Cooperative Groups Library]: https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#group-types-cg | |