Skip to content

Commit 5927fae

Browse files
authored
Drop thrust::reverse_iterator in favor of cuda::std::reverse_iterator (rapidsai#21455)
Authors: - Michael Schellenberger Costa (https://github.com/miscco) Approvers: - Bradley Dice (https://github.com/bdice) - David Wendt (https://github.com/davidwendt) - Nghia Truong (https://github.com/ttnghia) URL: rapidsai#21455
1 parent 93fa04b commit 5927fae

11 files changed

Lines changed: 36 additions & 37 deletions

File tree

cpp/src/groupby/sort/group_rank_scan.cu

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
#include <rmm/exec_policy.hpp>
2020

2121
#include <cuda/std/functional>
22+
#include <cuda/std/iterator>
2223
#include <cuda/std/limits>
2324
#include <cuda/std/utility>
2425
#include <thrust/functional.h>
25-
#include <thrust/iterator/reverse_iterator.h>
2626
#include <thrust/scan.h>
2727
#include <thrust/tabulate.h>
2828
#include <thrust/transform.h>

cpp/src/groupby/sort/group_replace_nulls.cu

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
#include <rmm/device_uvector.hpp>
1414

1515
#include <cuda/std/functional>
16+
#include <cuda/std/iterator>
1617
#include <cuda/std/tuple>
1718
#include <thrust/functional.h>
1819
#include <thrust/iterator/counting_iterator.h>
1920
#include <thrust/iterator/discard_iterator.h>
20-
#include <thrust/iterator/reverse_iterator.h>
2121
#include <thrust/iterator/zip_iterator.h>
2222
#include <thrust/scan.h>
2323

@@ -55,9 +55,9 @@ std::unique_ptr<column> group_replace_nulls(cudf::column_view const& grouped_val
5555
eq,
5656
func);
5757
} else {
58-
auto gl_rbegin = thrust::make_reverse_iterator(group_labels.begin() + size);
59-
auto in_rbegin = thrust::make_reverse_iterator(in_begin + size);
60-
auto gm_rbegin = thrust::make_reverse_iterator(gm_begin + size);
58+
auto gl_rbegin = cuda::std::make_reverse_iterator(group_labels.begin() + size);
59+
auto in_rbegin = cuda::std::make_reverse_iterator(in_begin + size);
60+
auto gm_rbegin = cuda::std::make_reverse_iterator(gm_begin + size);
6161
thrust::inclusive_scan_by_key(
6262
rmm::exec_policy_nosync(stream), gl_rbegin, gl_rbegin + size, in_rbegin, gm_rbegin, eq, func);
6363
}

cpp/src/io/json/nested_json_gpu.cu

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include <rmm/device_uvector.hpp>
2828
#include <rmm/exec_policy.hpp>
2929

30+
#include <cuda/std/iterator>
3031
#include <cuda/std/tuple>
3132
#include <thrust/iterator/discard_iterator.h>
3233
#include <thrust/iterator/transform_iterator.h>
@@ -1528,10 +1529,10 @@ std::pair<rmm::device_uvector<PdaTokenT>, rmm::device_uvector<SymbolOffsetT>> pr
15281529
// StructBegin, StructEnd. Also, all LineEnd are removed as well, as these are not relevant after
15291530
// this stage anymore
15301531
filter_fst.Transduce(
1531-
thrust::make_reverse_iterator(thrust::make_zip_iterator(tokens.data(), token_indices.data()) +
1532-
tokens.size()),
1532+
cuda::std::make_reverse_iterator(
1533+
thrust::make_zip_iterator(tokens.data(), token_indices.data()) + tokens.size()),
15331534
static_cast<SymbolOffsetT>(tokens.size()),
1534-
thrust::make_reverse_iterator(
1535+
cuda::std::make_reverse_iterator(
15351536
thrust::make_zip_iterator(filtered_tokens_out.data(), filtered_token_indices_out.data()) +
15361537
tokens.size()),
15371538
thrust::make_discard_iterator(),

cpp/src/io/json/read_json.cu

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,8 +337,8 @@ get_record_range_raw_input(host_span<std::unique_ptr<datasource>> sources,
337337
device_span<char const> bufsubspan =
338338
bufspan.subspan(first_delim_pos + shift_for_nonzero_offset,
339339
requested_size - first_delim_pos - shift_for_nonzero_offset);
340-
auto rev_it_begin = thrust::make_reverse_iterator(bufsubspan.end());
341-
auto rev_it_end = thrust::make_reverse_iterator(bufsubspan.begin());
340+
auto rev_it_begin = cuda::std::make_reverse_iterator(bufsubspan.end());
341+
auto rev_it_end = cuda::std::make_reverse_iterator(bufsubspan.begin());
342342
auto const second_last_delimiter_it =
343343
thrust::find(rmm::exec_policy_nosync(stream), rev_it_begin, rev_it_end, delimiter);
344344
CUDF_EXPECTS(second_last_delimiter_it != rev_it_end,

cpp/src/io/orc/writer_impl.cu

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include <cooperative_groups.h>
3838
#include <cooperative_groups/memcpy_async.h>
3939
#include <cuda/std/climits>
40+
#include <cuda/std/iterator>
4041
#include <cuda/std/limits>
4142
#include <cuda/std/optional>
4243
#include <cuda/std/utility>
@@ -46,7 +47,6 @@
4647
#include <thrust/functional.h>
4748
#include <thrust/host_vector.h>
4849
#include <thrust/iterator/counting_iterator.h>
49-
#include <thrust/iterator/reverse_iterator.h>
5050
#include <thrust/iterator/transform_iterator.h>
5151
#include <thrust/reduce.h>
5252
#include <thrust/scan.h>
@@ -1879,8 +1879,8 @@ orc_table_view make_orc_table_view(table_view const& table,
18791879

18801880
thrust::for_each(
18811881
thrust::seq,
1882-
thrust::make_reverse_iterator(d_table.end()),
1883-
thrust::make_reverse_iterator(d_table.begin()),
1882+
cuda::std::make_reverse_iterator(d_table.end()),
1883+
cuda::std::make_reverse_iterator(d_table.begin()),
18841884
[&stack](column_device_view const& c) { stack.push({&c, cuda::std::nullopt}); });
18851885

18861886
uint32_t idx = 0;
@@ -1897,8 +1897,8 @@ orc_table_view make_orc_table_view(table_view const& table,
18971897
stack.push({&col->children()[lists_column_view::child_column_index], idx});
18981898
} else if (col->type().id() == type_id::STRUCT) {
18991899
thrust::for_each(thrust::seq,
1900-
thrust::make_reverse_iterator(col->children().end()),
1901-
thrust::make_reverse_iterator(col->children().begin()),
1900+
cuda::std::make_reverse_iterator(col->children().end()),
1901+
cuda::std::make_reverse_iterator(col->children().begin()),
19021902
[&stack, idx](column_device_view const& c) { stack.push({&c, idx}); });
19031903
}
19041904
++idx;

cpp/src/io/parquet/page_enc.cu

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
#include <thrust/binary_search.h>
3333
#include <thrust/gather.h>
3434
#include <thrust/iterator/discard_iterator.h>
35-
#include <thrust/iterator/reverse_iterator.h>
3635
#include <thrust/iterator/transform_iterator.h>
3736
#include <thrust/iterator/zip_iterator.h>
3837
#include <thrust/merge.h>
@@ -1837,8 +1836,8 @@ CUDF_KERNEL void __launch_bounds__(block_size, 8)
18371836
}
18381837
} else {
18391838
thrust::copy(thrust::seq,
1840-
thrust::make_reverse_iterator(v_char_ptr + sizeof(v)),
1841-
thrust::make_reverse_iterator(v_char_ptr),
1839+
cuda::std::make_reverse_iterator(v_char_ptr + sizeof(v)),
1840+
cuda::std::make_reverse_iterator(v_char_ptr),
18421841
dst + pos);
18431842
}
18441843
} else {
@@ -2784,8 +2783,8 @@ __device__ void byte_reverse128(__int128_t v, void* dst)
27842783
auto const v_char_ptr = reinterpret_cast<unsigned char const*>(&v);
27852784
auto const d_char_ptr = static_cast<unsigned char*>(dst);
27862785
thrust::copy(thrust::seq,
2787-
thrust::make_reverse_iterator(v_char_ptr + sizeof(v)),
2788-
thrust::make_reverse_iterator(v_char_ptr),
2786+
cuda::std::make_reverse_iterator(v_char_ptr + sizeof(v)),
2787+
cuda::std::make_reverse_iterator(v_char_ptr),
27892788
d_char_ptr);
27902789
}
27912790

cpp/src/io/utilities/parsing_utils.cuh

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
#include <cuda/std/type_traits>
2727
#include <cuda/std/utility>
2828
#include <thrust/execution_policy.h>
29-
#include <thrust/iterator/reverse_iterator.h>
3029
#include <thrust/mismatch.h>
3130

3231
using cudf::device_span;
@@ -370,8 +369,8 @@ __inline__ __device__ cuda::std::pair<char const*, char const*> trim_whitespaces
370369

371370
auto const trim_begin = thrust::find_if(thrust::seq, begin, end, not_whitespace);
372371
auto const trim_end = thrust::find_if(thrust::seq,
373-
thrust::make_reverse_iterator(end),
374-
thrust::make_reverse_iterator(trim_begin),
372+
cuda::std::make_reverse_iterator(end),
373+
cuda::std::make_reverse_iterator(trim_begin),
375374
not_whitespace);
376375

377376
return {skip_character(trim_begin, quotechar), skip_character(trim_end, quotechar).base()};
@@ -392,8 +391,8 @@ __inline__ __device__ cuda::std::pair<char const*, char const*> trim_whitespaces
392391

393392
auto const trim_begin = thrust::find_if(thrust::seq, begin, end, not_whitespace);
394393
auto const trim_end = thrust::find_if(thrust::seq,
395-
thrust::make_reverse_iterator(end),
396-
thrust::make_reverse_iterator(trim_begin),
394+
cuda::std::make_reverse_iterator(end),
395+
cuda::std::make_reverse_iterator(trim_begin),
397396
not_whitespace);
398397

399398
return {trim_begin, trim_end.base()};

cpp/src/join/sort_merge_join.cu

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include <cub/device/device_select.cuh>
3838
#include <cub/device/device_transform.cuh>
3939
#include <cuda/functional>
40+
#include <cuda/std/iterator>
4041
#include <cuda/std/tuple>
4142
#include <thrust/binary_search.h>
4243
#include <thrust/for_each.h>
@@ -554,12 +555,12 @@ void sort_merge_join::preprocessed_table::populate_nonnull_filter(rmm::cuda_stre
554555
rmm::device_uvector<int32_t> child_positions(offsets.size(), stream, temp_mr);
555556
auto unique_end = thrust::unique_by_key_copy(
556557
rmm::exec_policy_nosync(stream),
557-
thrust::reverse_iterator(lcv.offsets_end()),
558-
thrust::reverse_iterator(lcv.offsets_end()) + offsets.size(),
559-
thrust::reverse_iterator(thrust::counting_iterator(offsets.size())),
560-
thrust::reverse_iterator(offsets_subset.end()),
561-
thrust::reverse_iterator(child_positions.end()));
562-
auto subset_size = cuda::std::distance(thrust::reverse_iterator(offsets_subset.end()),
558+
cuda::std::reverse_iterator(lcv.offsets_end()),
559+
cuda::std::reverse_iterator(lcv.offsets_end()) + offsets.size(),
560+
cuda::std::reverse_iterator(thrust::counting_iterator(offsets.size())),
561+
cuda::std::reverse_iterator(offsets_subset.end()),
562+
cuda::std::reverse_iterator(child_positions.end()));
563+
auto subset_size = cuda::std::distance(cuda::std::reverse_iterator(offsets_subset.end()),
563564
cuda::std::get<0>(unique_end));
564565
auto subset_offset = offsets.size() - subset_size;
565566

cpp/src/lists/contains.cu

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
#include <thrust/execution_policy.h>
3030
#include <thrust/find.h>
3131
#include <thrust/iterator/counting_iterator.h>
32-
#include <thrust/iterator/reverse_iterator.h>
3332
#include <thrust/logical.h>
3433
#include <thrust/tabulate.h>
3534
#include <thrust/transform.h>

cpp/src/replace/nulls.cu

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@
3535
#include <rmm/cuda_stream_view.hpp>
3636
#include <rmm/device_uvector.hpp>
3737

38+
#include <cuda/std/iterator>
3839
#include <cuda/std/tuple>
3940
#include <thrust/functional.h>
4041
#include <thrust/iterator/counting_iterator.h>
4142
#include <thrust/iterator/discard_iterator.h>
42-
#include <thrust/iterator/reverse_iterator.h>
4343
#include <thrust/iterator/zip_iterator.h>
4444
#include <thrust/scan.h>
4545
#include <thrust/transform.h>
@@ -285,8 +285,8 @@ std::unique_ptr<cudf::column> replace_nulls_policy_impl(cudf::column_view const&
285285
thrust::inclusive_scan(
286286
rmm::exec_policy_nosync(stream), in_begin, in_begin + input.size(), gm_begin, func);
287287
} else {
288-
auto in_rbegin = thrust::make_reverse_iterator(in_begin + input.size());
289-
auto gm_rbegin = thrust::make_reverse_iterator(gm_begin + gather_map.size());
288+
auto in_rbegin = cuda::std::make_reverse_iterator(in_begin + input.size());
289+
auto gm_rbegin = cuda::std::make_reverse_iterator(gm_begin + gather_map.size());
290290
thrust::inclusive_scan(
291291
rmm::exec_policy_nosync(stream), in_rbegin, in_rbegin + input.size(), gm_rbegin, func);
292292
}

0 commit comments

Comments
 (0)