Skip to content

Commit 3dfb27f

Browse files
authored
[auto-merge] bot-auto-merge-release/26.08 to main [skip ci] [bot] (#4941)
auto-merge triggered by github actions on `bot-auto-merge-release/26.08` to create a PR keeping `main` up-to-date. If this PR is unable to be merged due to conflicts, it will remain open until manually fix.
2 parents 781d7d4 + eb883c0 commit 3dfb27f

5 files changed

Lines changed: 23 additions & 20 deletions

File tree

build/env.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@
1616
#
1717

1818
set -ex
19-
export sclCMD=${sclCMD:-"scl enable gcc-toolset-13"}
19+
export sclCMD=${sclCMD:-"scl enable gcc-toolset-14"}

ci/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ ARG CMAKE_ARCH=x86_64
4242

4343
### Install basic requirements
4444
# pin urllib3<2.0 for https://github.com/psf/requests/issues/6432
45-
RUN dnf --enablerepo=powertools install -y scl-utils gcc-toolset-13 gcc-toolset-${TOOLSET_VERSION} python39 \
45+
RUN dnf --enablerepo=powertools install -y scl-utils gcc-toolset-14 gcc-toolset-${TOOLSET_VERSION} python39 \
4646
zlib-devel maven tar wget patch ninja-build git zip && \
4747
alternatives --set python /usr/bin/python3 && \
4848
python -m pip install requests 'urllib3<2.0'

src/main/cpp/src/shuffle_split.cu

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -794,11 +794,10 @@ shuffle_split_metadata compute_metadata(cudf::table_view const& input,
794794
/**
795795
* @copydoc spark_rapids_jni::shuffle_split
796796
*/
797-
std::pair<shuffle_split_result, shuffle_split_metadata> shuffle_split(
798-
cudf::table_view const& input,
799-
std::vector<size_type> const& splits,
800-
rmm::cuda_stream_view stream,
801-
rmm::device_async_resource_ref mr)
797+
shuffle_split_output shuffle_split(cudf::table_view const& input,
798+
std::vector<size_type> const& splits,
799+
rmm::cuda_stream_view stream,
800+
rmm::device_async_resource_ref mr)
802801
{
803802
SRJ_FUNC_RANGE();
804803

src/main/cpp/src/shuffle_split.hpp

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,13 @@ struct shuffle_split_result {
106106
rmm::device_uvector<size_t> offsets{0, cudf::get_default_stream()};
107107
};
108108

109+
struct shuffle_split_output {
110+
// Keep this as an aggregate instead of std::pair. CUDA 12.9 cudafe++ crashes when GCC 14's
111+
// concepts-based std::pair constructor constraints are instantiated for these result types.
112+
shuffle_split_result result;
113+
shuffle_split_metadata metadata;
114+
};
115+
109116
/**
110117
* @brief Performs a split operation on a cudf table, returning a buffer of data containing
111118
* all of the sub-tables as a contiguous buffer of anonymous bytes.
@@ -133,11 +140,10 @@ struct shuffle_split_result {
133140
* partition, and a shuffle_split_metadata struct which contains the metadata needed to reconstruct
134141
* a table using shuffle_assemble.
135142
*/
136-
std::pair<shuffle_split_result, shuffle_split_metadata> shuffle_split(
137-
cudf::table_view const& input,
138-
std::vector<cudf::size_type> const& splits,
139-
rmm::cuda_stream_view stream,
140-
rmm::device_async_resource_ref mr);
143+
shuffle_split_output shuffle_split(cudf::table_view const& input,
144+
std::vector<cudf::size_type> const& splits,
145+
rmm::cuda_stream_view stream,
146+
rmm::device_async_resource_ref mr);
141147

142148
/**
143149
* @brief Buffer slice representing a portion of the shared allocated buffer

src/main/cpp/tests/shuffle_split.cu

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2025, NVIDIA CORPORATION.
2+
* Copyright (c) 2025-2026, NVIDIA CORPORATION.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -867,26 +867,24 @@ TEST_F(ShuffleSplitTests, MixedValidity)
867867
cudf::table_view expected_t{{static_cast<cudf::column_view>(*expected)}};
868868

869869
// make the concatenated shuffle_split partitions
870-
std::vector<
871-
std::pair<spark_rapids_jni::shuffle_split_result, spark_rapids_jni::shuffle_split_metadata>>
872-
shuf;
870+
std::vector<spark_rapids_jni::shuffle_split_output> shuf;
873871
size_t total_size = 0;
874872
for (size_t idx = 0; idx < partition_views.size(); idx++) {
875873
shuf.push_back(spark_rapids_jni::shuffle_split(
876874
cudf::table_view{{partition_views[idx]}}, {}, stream, mr));
877-
total_size += shuf.back().first.partitions->size();
875+
total_size += shuf.back().result.partitions->size();
878876
}
879877
rmm::device_uvector<uint8_t> full{total_size, stream, mr};
880878
rmm::device_uvector<size_t> full_offsets{partition_views.size() + 1, stream, mr};
881879
std::vector<size_t> h_full_offsets(partition_views.size() + 1);
882880
size_t pos = 0;
883881
for (size_t idx = 0; idx < partition_views.size(); idx++) {
884882
cudaMemcpy(static_cast<uint8_t*>(full.data()) + pos,
885-
shuf[idx].first.partitions->data(),
886-
shuf[idx].first.partitions->size(),
883+
shuf[idx].result.partitions->data(),
884+
shuf[idx].result.partitions->size(),
887885
cudaMemcpyDeviceToDevice);
888886
h_full_offsets[idx] = pos;
889-
pos += shuf[idx].first.partitions->size();
887+
pos += shuf[idx].result.partitions->size();
890888
}
891889
h_full_offsets[partition_views.size()] = pos;
892890
cudaMemcpy(full_offsets.data(),

0 commit comments

Comments
 (0)