@@ -1062,7 +1062,7 @@ class open_addressing_ref_impl {
10621062 * @param output_probe Beginning of the sequence of keys corresponding to matching elements in
10631063 * `output_match`
10641064 * @param output_match Beginning of the sequence of matching elements
1065- * @param atomic_counter Pointer to an atomic object of integral type that is used to count the
1065+ * @param atomic_counter Atomic object of integral type that is used to count the
10661066 * number of output elements
10671067 */
10681068 template <int32_t BlockSize,
@@ -1075,7 +1075,7 @@ class open_addressing_ref_impl {
10751075 InputProbeIt input_probe_end,
10761076 OutputProbeIt output_probe,
10771077 OutputMatchIt output_match,
1078- AtomicCounter* atomic_counter) const
1078+ AtomicCounter& atomic_counter) const
10791079 {
10801080 auto constexpr is_outer = false ;
10811081 auto const n = cuco::detail::distance (input_probe_begin, input_probe_end); // TODO include
@@ -1111,7 +1111,7 @@ class open_addressing_ref_impl {
11111111 * @param output_probe Beginning of the sequence of keys corresponding to matching elements in
11121112 * `output_match`
11131113 * @param output_match Beginning of the sequence of matching elements
1114- * @param atomic_counter Pointer to an atomic object of integral type that is used to count the
1114+ * @param atomic_counter Atomic object of integral type that is used to count the
11151115 * number of output elements
11161116 */
11171117 template <int32_t BlockSize,
@@ -1124,7 +1124,7 @@ class open_addressing_ref_impl {
11241124 InputProbeIt input_probe_end,
11251125 OutputProbeIt output_probe,
11261126 OutputMatchIt output_match,
1127- AtomicCounter* atomic_counter) const
1127+ AtomicCounter& atomic_counter) const
11281128 {
11291129 auto constexpr is_outer = true ;
11301130 auto const n = cuco::detail::distance (input_probe_begin, input_probe_end); // TODO include
@@ -1161,7 +1161,7 @@ class open_addressing_ref_impl {
11611161 * @param output_probe Beginning of the sequence of keys corresponding to matching elements in
11621162 * `output_match`
11631163 * @param output_match Beginning of the sequence of matching elements
1164- * @param atomic_counter Pointer to an atomic object of integral type that is used to count the
1164+ * @param atomic_counter Atomic object of integral type that is used to count the
11651165 * number of output elements
11661166 */
11671167 template <bool IsOuter,
@@ -1175,7 +1175,7 @@ class open_addressing_ref_impl {
11751175 cuco::detail::index_type n,
11761176 OutputProbeIt output_probe,
11771177 OutputMatchIt output_match,
1178- AtomicCounter* atomic_counter) const
1178+ AtomicCounter& atomic_counter) const
11791179 {
11801180 namespace cg = cooperative_groups;
11811181
@@ -1212,7 +1212,7 @@ class open_addressing_ref_impl {
12121212 size_type offset = 0 ;
12131213 auto const count = counters[flushing_tile_id];
12141214 auto const rank = tile.thread_rank ();
1215- if (rank == 0 ) { offset = atomic_counter-> fetch_add (count, cuda::memory_order_relaxed); }
1215+ if (rank == 0 ) { offset = atomic_counter. fetch_add (count, cuda::memory_order_relaxed); }
12161216 offset = tile.shfl (offset, 0 );
12171217
12181218 // flush_buffers
0 commit comments