diff --git a/cpp/src/groupby/streaming_groupby/aggregate.cu b/cpp/src/groupby/streaming_groupby/aggregate.cu index 96699895d603..c024565720d1 100644 --- a/cpp/src/groupby/streaming_groupby/aggregate.cu +++ b/cpp/src/groupby/streaming_groupby/aggregate.cu @@ -60,7 +60,7 @@ void streaming_groupby::impl::do_aggregate(table_view const& data, cuda::stream_ cuda::counting_iterator(0), static_cast(batch_size) * num_agg_cols, detail::hash::compute_single_pass_aggs_dense_output_fn{ - result.target_indices.begin(), _d_agg_kinds.data(), *d_values, *_d_agg_results}); + result.target_indices.begin(), _d_agg_kinds->data(), *d_values, *_d_agg_results}); } } // namespace cudf::groupby diff --git a/cpp/src/groupby/streaming_groupby/common.cuh b/cpp/src/groupby/streaming_groupby/common.cuh index 973dddde2c91..100837863792 100644 --- a/cpp/src/groupby/streaming_groupby/common.cuh +++ b/cpp/src/groupby/streaming_groupby/common.cuh @@ -296,7 +296,7 @@ struct streaming_groupby::impl { */ std::unique_ptr _d_agg_results; std::vector _value_col_indices; - rmm::device_uvector _d_agg_kinds; + std::unique_ptr> _d_agg_kinds; std::unique_ptr _key_set; diff --git a/cpp/src/groupby/streaming_groupby/impl.cu b/cpp/src/groupby/streaming_groupby/impl.cu index 7ea4569a5f06..de8ddcbb3254 100644 --- a/cpp/src/groupby/streaming_groupby/impl.cu +++ b/cpp/src/groupby/streaming_groupby/impl.cu @@ -89,7 +89,6 @@ streaming_groupby::impl::impl(host_span key_indices, : _max_distinct_keys{max_distinct_keys}, _null_handling{null_handling}, _mr{std::move(mr)}, - _d_agg_kinds{0, cuda::stream_ref{cudaStreamLegacy}, cudf::get_current_device_resource_ref()}, _d_agg_results{nullptr, +[](mutable_table_device_view*) {}} { CUDF_EXPECTS(max_distinct_keys > 0, "max_distinct_keys must be positive.", std::invalid_argument); @@ -170,7 +169,8 @@ void streaming_groupby::impl::initialize(table_view const& data, cuda::stream_re decltype(_d_agg_results){raii.release(), +[](mutable_table_device_view* t) { t->destroy(); }}; } - _d_agg_kinds = cudf::detail::make_device_uvector_async(_agg_kinds, stream, mr); + _d_agg_kinds = std::make_unique>( + cudf::detail::make_device_uvector_async(_agg_kinds, stream, mr)); // Map each column in `values_view` back to its index in `data`. _value_col_indices.reserve(values_view.num_columns()); diff --git a/cpp/src/groupby/streaming_groupby/merge.cu b/cpp/src/groupby/streaming_groupby/merge.cu index a4fcab2576ac..6d79fdd7c18b 100644 --- a/cpp/src/groupby/streaming_groupby/merge.cu +++ b/cpp/src/groupby/streaming_groupby/merge.cu @@ -138,7 +138,7 @@ void streaming_groupby::impl::do_merge(impl const& other, cuda::stream_ref strea cuda::counting_iterator(0), static_cast(other_distinct_keys) * num_agg_cols, merge_single_pass_aggs_fn{ - result.target_indices.begin(), _d_agg_kinds.data(), *d_source, *_d_agg_results}); + result.target_indices.begin(), _d_agg_kinds->data(), *d_source, *_d_agg_results}); } } // namespace cudf::groupby