diff --git a/cpp/include/cudf/detail/indexalator.cuh b/cpp/include/cudf/detail/indexalator.cuh index b5d57da6cd5..2f55aa32cc4 100644 --- a/cpp/include/cudf/detail/indexalator.cuh +++ b/cpp/include/cudf/detail/indexalator.cuh @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -221,6 +222,9 @@ struct indexalator_factory { template ())> input_indexalator operator()(column_view const& indices) { + cudf::experimental::prefetch::detail::prefetch("indexalator_factor::input_indexalator_fn", + indices.head(), + indices.size() * size_of(indices.type())); return input_indexalator(indices.data(), indices.type()); } template ())> diff --git a/cpp/include/cudf/detail/offsets_iterator_factory.cuh b/cpp/include/cudf/detail/offsets_iterator_factory.cuh index e234f9ec627..1933c09f0a0 100644 --- a/cpp/include/cudf/detail/offsets_iterator_factory.cuh +++ b/cpp/include/cudf/detail/offsets_iterator_factory.cuh @@ -18,6 +18,7 @@ #include #include +#include namespace cudf { namespace detail { @@ -34,7 +35,16 @@ struct offsetalator_factory { */ static input_offsetalator make_input_iterator(column_view const& offsets, size_type offset = 0) { - return input_offsetalator(offsets.head(), offsets.type(), offset); + if (offsets.type().id() == type_id::INT32) { + cudf::experimental::prefetch::detail::prefetch("offsetalator_factory::make_input_iterator", + offsets.head(), + offsets.size() * sizeof(int32_t)); + } else if (offsets.type().id() == type_id::INT64) { + cudf::experimental::prefetch::detail::prefetch("offsetalator_factory::make_input_iterator", + offsets.head(), + offsets.size() * sizeof(int64_t)); + } + return {offsets.head(), offsets.type(), offset}; } /**