Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parallelize child column construction in scatter() for lists columns #6791

Closed
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
- PR #6638 Add support for `pipe` API
- PR #6675 Add DecimalDtype to cuDF
- PR #6739 Add Java bindings for is_timestamp
- PR #6768 Add support for scatter() on list columns

## Improvements

Expand Down
15 changes: 15 additions & 0 deletions cpp/include/cudf/detail/scatter.cuh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <cudf/dictionary/detail/update_keys.hpp>
#include <cudf/dictionary/dictionary_column_view.hpp>
#include <cudf/dictionary/dictionary_factories.hpp>
#include <cudf/lists/detail/scatter.cuh>
#include <cudf/strings/detail/scatter.cuh>
#include <cudf/strings/string_view.cuh>
#include <cudf/utilities/traits.hpp>
Expand Down Expand Up @@ -118,6 +119,20 @@ struct column_scatterer_impl<string_view, MapIterator> {
}
};

template <typename MapIterator>
struct column_scatterer_impl<list_view, MapIterator> {
std::unique_ptr<column> operator()(column_view const& source,
MapIterator scatter_map_begin,
MapIterator scatter_map_end,
column_view const& target,
rmm::mr::device_memory_resource* mr,
cudaStream_t stream) const
{
return cudf::lists::detail::scatter(
source, scatter_map_begin, scatter_map_end, target, stream, mr);
}
};

template <typename MapIterator>
struct column_scatterer {
template <typename Element>
Expand Down
Loading