Skip to content

Commit d6db665

Browse files
committed
Add documentation
1 parent 1817aa6 commit d6db665

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

docs/libcudacxx/standard_api/algorithms_library.rst

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ Algorithms Library
1313
* - `\<cuda/std/algorithm\> <https://en.cppreference.com/w/cpp/header/algorithm>`_
1414
- Fundamental library algorithms
1515
- CCCL 3.2.0 / CUDA 13.2
16+
* - `\<cuda/std/execution\> <https://en.cppreference.com/w/cpp/header/execution>`_
17+
- Standard parallel algorithms
18+
- CCCL 3.4.0 / CUDA 13.4
1619

1720
Extensions
1821
----------
@@ -31,3 +34,57 @@ Restrictions
3134
* ``sort``
3235
* ``stable_partiin``
3336
* ``stable_sort``
37+
38+
Parallel standard algorithms
39+
----------------------------
40+
41+
CCCL provides an implementation for the standard `parallel algorithms library <http://www.eel.is/c++draft/algorithms.parallel>`_
42+
43+
Currently the CUDA backend is the only supported backend. It can be selected by passing the `cuda::execution::gpu`
44+
execution policy to one of the supported algorithms. The CUDA backend requires the passed in sequences to reside in
45+
device accessible memory and the iterators into those sequences to be at least random access iterators. The CUDA backend
46+
is enabled if the program im compiled with a CUDA compile in CUDA mode.
47+
48+
The use of any other execution policy is currently not supported and results in a compile time error.
49+
50+
The following algorithms are supported:
51+
52+
* ``adjacent_difference``
53+
* ``adjacent_find``
54+
* ``all_of``
55+
* ``any_of``
56+
* ``copy``
57+
* ``copy_if``
58+
* ``copy_n``
59+
* ``count``
60+
* ``count_if``
61+
* ``equal``
62+
* ``exclusive_scan``
63+
* ``fill``
64+
* ``fill_n``
65+
* ``find``
66+
* ``find_if``
67+
* ``find_if_not``
68+
* ``for_each``
69+
* ``for_each_n``
70+
* ``generate``
71+
* ``generate_n``
72+
* ``inclusive_scan``
73+
* ``merge``
74+
* ``mismatch``
75+
* ``none_of``
76+
* ``reduce``
77+
* ``remove``
78+
* ``remove_copy``
79+
* ``remove_copy_if``
80+
* ``remove_if``
81+
* ``replace``
82+
* ``replace_copy``
83+
* ``replace_copy_if``
84+
* ``replace_if``
85+
* ``reverse``
86+
* ``reverse_copy``
87+
* ``transform``
88+
* ``transform_reduce``
89+
* ``unique``
90+
* ``unique_copy``

0 commit comments

Comments
 (0)