Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
e411404
Fix GB300 and GH200
KyleFromNVIDIA Aug 3, 2026
8431f9b
Merge branch 'main' into fix-gb300
KyleFromNVIDIA Aug 3, 2026
975cb20
Merge branch 'main' into fix-gb300
davidwendt Aug 5, 2026
bf19e35
-DCUDF_BUILD_STREAMS_TEST_UTIL=OFF
davidwendt Aug 5, 2026
0fea12e
Test on GB300
KyleFromNVIDIA Aug 5, 2026
5baac5f
add stream.synchronize() before host vectors go out of scope
davidwendt Aug 5, 2026
dd91286
Merge branch 'fix-gb300' of github.com:KyleFromNVIDIA/cudf into fix-g…
davidwendt Aug 5, 2026
d907c1e
fix build_column_from_host_data helper
davidwendt Aug 5, 2026
59cb338
reorder sanitizer callback names
davidwendt Aug 5, 2026
91f6bb1
Merge branch 'main' into fix-gb300
davidwendt Aug 5, 2026
af69ded
Merge branch 'main' into fix-gb300
davidwendt Aug 6, 2026
7cc57e1
Fix test matrices for GB300
KyleFromNVIDIA Aug 6, 2026
9adaf52
Correctly synchronise device_buffer construction from host data
wence- Aug 6, 2026
920879c
Re-run CI
KyleFromNVIDIA Aug 6, 2026
c517f9d
Merge branch 'fix-gb300' of github.com:KyleFromNVIDIA/cudf into fix-g…
davidwendt Aug 6, 2026
6b1ca42
stream.sync for hybridscan
davidwendt Aug 6, 2026
9b5affb
hybrid_scan_common.cpp device-buffer H2D sync
davidwendt Aug 6, 2026
4de79ff
Merge branch 'main' into fix-gb300
davidwendt Aug 10, 2026
72d5787
Merge branch 'main' into fix-gb300
davidwendt Aug 12, 2026
80b5bce
add syncs for hybrid-scan code paths
davidwendt Aug 12, 2026
86855a0
add sync to contiguous-split
davidwendt Aug 12, 2026
5dc1952
fix merge conflict
davidwendt Aug 12, 2026
a4ae586
move the page_index_filter.cu sync call
davidwendt Aug 12, 2026
06f4422
Merge branch 'main' into fix-gb300
davidwendt Aug 13, 2026
51aecc1
sync variadic_ptrs in interop
davidwendt Aug 13, 2026
6d9568b
serialize stream-checking pylibcudf pytests
davidwendt Aug 13, 2026
60f105b
Merge branch 'main' into fix-gb300
davidwendt Aug 13, 2026
b4726d0
change a synchronize() to a sync()
davidwendt Aug 13, 2026
151a91c
Merge branch 'main' into fix-gb300
davidwendt Aug 14, 2026
d55ea1d
merge conflict
davidwendt Aug 19, 2026
fff5de4
merge conflict
davidwendt Aug 19, 2026
23868ea
fix style violation
davidwendt Aug 19, 2026
098bb04
fix sync() call
davidwendt Aug 19, 2026
f8ee1f8
Merge branch 'main' into fix-gb300
bdice Aug 20, 2026
75e242a
Merge branch 'main' into fix-gb300
davidwendt Aug 21, 2026
3a2e644
keep source bytes from being garbage collected
Matt711 Aug 21, 2026
b6cbf65
merge conflict
Matt711 Aug 21, 2026
b26334a
move sync up
Matt711 Aug 21, 2026
1f962a5
Merge branch 'main' into fix-gb300
Matt711 Aug 21, 2026
be47180
set_element_async with stack var
davidwendt Aug 21, 2026
9003f7a
Merge branch 'fix-gb300' of github.com:KyleFromNVIDIA/cudf into fix-g…
davidwendt Aug 21, 2026
3223778
merge conflict
Matt711 Aug 22, 2026
6bd135e
Merge branch 'main' into fix-gb300
Matt711 Aug 24, 2026
bf8adaf
fix merge conflict--compile error
davidwendt Aug 24, 2026
0637642
keep python reference to source bytes alive
Matt711 Aug 24, 2026
b800d95
keep the sources alive darnit
Matt711 Aug 24, 2026
5f41f4b
Merge branch 'main' into fix-gb300
Matt711 Aug 25, 2026
24b0181
Merge branch 'main' into fix-gb300
Matt711 Aug 25, 2026
3eafd22
Merge branch 'main' into fix-gb300
Matt711 Aug 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 37 additions & 48 deletions .github/workflows/pr.yaml

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1520,6 +1520,7 @@ if(CUDF_BUILD_TESTUTIL)
endif()

# * build cudf_identify_stream_usage --------------------------------------------------------------
message(STATUS "CUDF: Build with stream testing enabled: ${CUDF_BUILD_STREAMS_TEST_UTIL}")
if(CUDF_BUILD_STREAMS_TEST_UTIL)
# Libraries for stream-related testing. We build the library twice, one with STREAM_MODE_TESTING
# on and one with it set to off. Each test will then be configured to use the appropriate library
Expand Down
2 changes: 2 additions & 0 deletions cpp/include/cudf_test/column_wrapper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -850,6 +850,7 @@ class strings_column_wrapper : public detail::column_wrapper {
cudf::detail::make_device_uvector(offsets, stream, mr.get_output_mr()),
rmm::device_buffer{},
0);
cudf::test::get_default_stream().synchronize();
wrapped =
cudf::make_strings_column(num_strings, std::move(d_offsets), d_chars.release(), 0, {});
}
Expand Down Expand Up @@ -1890,6 +1891,7 @@ class lists_column_wrapper : public detail::column_wrapper {
// construct the list column
wrapped = make_lists_column(
cols.size(), std::move(offsets), std::move(data), null_count, std::move(null_mask));
cudf::test::get_default_stream().synchronize();
}

/**
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/interop/from_arrow_device.cu
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ dispatch_tuple_t dispatch_from_arrow_device::operator()<cudf::string_view>(
// gather strings into output column
auto out_col = cudf::make_strings_column(d_indices, stream, mr);
owned.emplace_back(std::move(out_col));
cudf::detail::sync_stream(stream);
cudf::detail::sync_stream(stream); // variadic_ptrs goes out of scope
Comment thread
Matt711 marked this conversation as resolved.
return std::make_tuple<column_view, owned_columns_t>(owned.front()->view(), std::move(owned));
}

Expand Down
2 changes: 1 addition & 1 deletion cpp/src/interop/from_arrow_host_strings.cu
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ std::unique_ptr<column> from_arrow_stringview(ArrowSchemaView const* schema,
return {data, size};
});

cudf::detail::sync_stream(stream);
cudf::detail::sync_stream(stream); // variadic_ptrs goes out of scope
return cudf::make_strings_column(d_indices, stream, mr);
}

Expand Down
5 changes: 3 additions & 2 deletions cpp/src/io/json/column_tree_construction.cu
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <cuda/iterator>
#include <cuda/std/tuple>
#include <cuda/stream>
#include <thrust/fill.h>
#include <thrust/for_each.h>
#include <thrust/scan.h>
#include <thrust/sort.h>
Expand Down Expand Up @@ -221,8 +222,8 @@ std::tuple<compressed_sparse_row, column_tree_properties> reduce_to_column_tree(
}),
cuda::std::plus<NodeIndexT>{});
} else {
auto single_node = 1;
row_idx.set_element_async(1, single_node, stream);
auto exec_policy = rmm::exec_policy_nosync(stream, cudf::get_current_device_resource_ref());
thrust::fill(exec_policy, row_idx.begin() + 1, row_idx.end(), NodeIndexT{1});
}

#ifdef CSR_DEBUG_PRINT
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/io/orc/stripe_enc.cu
Original file line number Diff line number Diff line change
Expand Up @@ -1425,7 +1425,7 @@ void decimal_sizes_to_offsets(device_2dspan<rowgroup_rows const> rg_bounds,
auto const num_blocks = elem_sizes.size() * rg_bounds.size().first;
decimal_sizes_to_offsets_kernel<block_size>
<<<num_blocks, block_size, 0, stream.get()>>>(rg_bounds, d_sizes);
stream.sync();
stream.sync(); // h_sizes goes out of scope
}

} // namespace cudf::io::orc::detail
6 changes: 3 additions & 3 deletions cpp/src/io/orc/writer_impl.cu
Original file line number Diff line number Diff line change
Expand Up @@ -1513,7 +1513,7 @@ encoded_footer_statistics finish_statistic_blobs(Footer const& footer,
file_blobs[i].assign(stat_begin, stat_end);
}

stream.sync();
stream.sync(); // h_stat_chunks goes out of scope
return {{}, std::move(file_blobs)};
}

Expand Down Expand Up @@ -1596,7 +1596,7 @@ encoded_footer_statistics finish_statistic_blobs(Footer const& footer,
file_blobs[i].assign(stat_begin, stat_end);
}

stream.sync();
stream.sync(); // h_srcs, h_dsts, h_lens go out of scope
return {std::move(stripe_blobs), std::move(file_blobs)};
}

Expand Down Expand Up @@ -2042,7 +2042,7 @@ orc_table_view make_orc_table_view(table_view const& table,
},
stream);

stream.sync();
stream.sync(); // type_kinds goes out of scope
return {std::move(orc_columns),
std::move(d_orc_columns),
str_col_indexes,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ std::unique_ptr<cudf::column> compute_row_index_column(
row_indices_iter,
row_indices_iter);

stream.sync();
stream.sync(); // row_group_span_offsets goes out of scope
return std::make_unique<cudf::column>(cudf::data_type{cudf::type_id::UINT64},
num_rows,
std::move(row_indices),
Expand Down
46 changes: 25 additions & 21 deletions cpp/src/row_operator/row_operators.cu
Original file line number Diff line number Diff line change
Expand Up @@ -707,13 +707,15 @@ std::shared_ptr<preprocessed_table> preprocessed_table::create(
}();

auto const has_ranked_children = !transformed_columns.empty();
return create(transformed_input,
std::move(verticalized_col_depths),
std::move(transformed_columns),
new_column_order,
new_null_precedence,
has_ranked_children,
stream);
auto result = create(transformed_input,
std::move(verticalized_col_depths),
std::move(transformed_columns),
new_column_order,
new_null_precedence,
has_ranked_children,
stream);
cudf::detail::sync_stream(stream); // new_column_order and new_null_precedence go out of scope
return result;
}

std::pair<std::shared_ptr<preprocessed_table>, std::shared_ptr<preprocessed_table>>
Expand Down Expand Up @@ -777,20 +779,22 @@ preprocessed_table::create(table_view const& lhs,
auto const has_ranked_children_lhs = !transformed_columns_lhs.empty();
auto const has_ranked_children_rhs = !transformed_columns_rhs.empty();

return {create(transformed_lhs,
std::move(verticalized_col_depths_lhs),
std::move(transformed_columns_lhs),
new_column_order_lhs,
new_null_precedence_lhs,
has_ranked_children_lhs,
stream),
create(transformed_rhs,
std::move(verticalized_col_depths_rhs),
std::move(transformed_columns_rhs),
new_column_order_lhs,
new_null_precedence_lhs,
has_ranked_children_rhs,
stream)};
auto result = std::pair{create(transformed_lhs,
std::move(verticalized_col_depths_lhs),
std::move(transformed_columns_lhs),
new_column_order_lhs,
new_null_precedence_lhs,
has_ranked_children_lhs,
stream),
create(transformed_rhs,
std::move(verticalized_col_depths_rhs),
std::move(transformed_columns_rhs),
new_column_order_lhs,
new_null_precedence_lhs,
has_ranked_children_rhs,
stream)};
cudf::detail::sync_stream(stream); // new_column_order_* and new_null_prec_* go out of scope
return result;
}

preprocessed_table::preprocessed_table(
Expand Down
Loading