diff --git a/ci/run_cudf_memcheck_ctests.sh b/ci/run_cudf_memcheck_ctests.sh index cfd12cb92b4..aacd93e3b96 100755 --- a/ci/run_cudf_memcheck_ctests.sh +++ b/ci/run_cudf_memcheck_ctests.sh @@ -10,6 +10,8 @@ trap "EXITCODE=1" ERR cd "${INSTALL_PREFIX:-${CONDA_PREFIX:-/usr}}/bin/gtests/libcudf/"; export GTEST_CUDF_RMM_MODE=cuda +# compute-sanitizer bug 4553815 +export LIBCUDF_MEMCHECK_ENABLED=1 for gt in ./*_TEST ; do test_name=$(basename ${gt}) # Run gtests with compute-sanitizer @@ -20,5 +22,6 @@ for gt in ./*_TEST ; do compute-sanitizer --tool memcheck ${gt} "$@" done unset GTEST_CUDF_RMM_MODE +unset LIBCUDF_MEMCHECK_ENABLED exit ${EXITCODE} diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 47e9eb99733..5ccc2e76101 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -779,7 +779,7 @@ add_dependencies(cudf jitify_preprocess_run) target_link_libraries( cudf PUBLIC ${ARROW_LIBRARIES} CCCL::CCCL rmm::rmm - PRIVATE nvtx3-cpp cuco::cuco ZLIB::ZLIB nvcomp::nvcomp kvikio::kvikio + PRIVATE $ cuco::cuco ZLIB::ZLIB nvcomp::nvcomp kvikio::kvikio $ ) diff --git a/cpp/tests/iterator/value_iterator_test_numeric.cu b/cpp/tests/iterator/value_iterator_test_numeric.cu index 39e05ff6832..d3d1c12bdc7 100644 --- a/cpp/tests/iterator/value_iterator_test_numeric.cu +++ b/cpp/tests/iterator/value_iterator_test_numeric.cu @@ -23,5 +23,17 @@ template struct NumericValueIteratorTest : public IteratorTest {}; TYPED_TEST_SUITE(NumericValueIteratorTest, TestingTypes); -TYPED_TEST(NumericValueIteratorTest, non_null_iterator) { non_null_iterator(*this); } -TYPED_TEST(NumericValueIteratorTest, null_iterator) { null_iterator(*this); } +TYPED_TEST(NumericValueIteratorTest, non_null_iterator) +{ + if constexpr (std::is_same_v || std::is_same_v) { + if (getenv("LIBCUDF_MEMCHECK_ENABLED")) { return; } + } + non_null_iterator(*this); +} +TYPED_TEST(NumericValueIteratorTest, null_iterator) +{ + if constexpr (std::is_same_v || std::is_same_v) { + if (getenv("LIBCUDF_MEMCHECK_ENABLED")) { return; } + } + null_iterator(*this); +} diff --git a/cpp/tests/reductions/reduction_tests.cpp b/cpp/tests/reductions/reduction_tests.cpp index 905cd67bc95..c41594e6933 100644 --- a/cpp/tests/reductions/reduction_tests.cpp +++ b/cpp/tests/reductions/reduction_tests.cpp @@ -124,7 +124,7 @@ struct ReductionTest : public cudf::test::BaseFixture { template struct MinMaxReductionTest : public ReductionTest {}; -using MinMaxTypes = cudf::test::Types; +using MinMaxTypes = cudf::test::Types; TYPED_TEST_SUITE(MinMaxReductionTest, MinMaxTypes); // ------------------------------------------------------------------------ @@ -299,6 +299,10 @@ TYPED_TEST_SUITE(ReductionTest, cudf::test::NumericTypes); TYPED_TEST(ReductionTest, Product) { using T = TypeParam; + if constexpr (std::is_same_v || std::is_same_v) { + if (getenv("LIBCUDF_MEMCHECK_ENABLED")) { return; } + } + std::vector int_values({5, -1, 1, 0, 3, 2, 4}); std::vector host_bools({1, 1, 0, 0, 1, 1, 1}); std::vector v = convert_values(int_values); @@ -2272,7 +2276,7 @@ TEST_P(DictionaryStringReductionTest, MinMax) template struct DictionaryAnyAllTest : public ReductionTest {}; -using DictionaryAnyAllTypes = cudf::test::Types; +using DictionaryAnyAllTypes = cudf::test::Types; TYPED_TEST_SUITE(DictionaryAnyAllTest, cudf::test::NumericTypes); TYPED_TEST(DictionaryAnyAllTest, AnyAll) { @@ -2328,7 +2332,7 @@ TYPED_TEST(DictionaryAnyAllTest, AnyAll) template struct DictionaryReductionTest : public ReductionTest {}; -using DictionaryTypes = cudf::test::Types; +using DictionaryTypes = cudf::test::Types; TYPED_TEST_SUITE(DictionaryReductionTest, DictionaryTypes); TYPED_TEST(DictionaryReductionTest, Sum) { diff --git a/cpp/tests/reductions/segmented_reduction_tests.cpp b/cpp/tests/reductions/segmented_reduction_tests.cpp index fde587f4e4c..21a5c0c176c 100644 --- a/cpp/tests/reductions/segmented_reduction_tests.cpp +++ b/cpp/tests/reductions/segmented_reduction_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023, NVIDIA CORPORATION. + * Copyright (c) 2022-2024, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -87,6 +87,10 @@ TYPED_TEST(SegmentedReductionTest, SumExcludeNulls) TYPED_TEST(SegmentedReductionTest, ProductExcludeNulls) { + if constexpr (std::is_same_v || std::is_same_v) { + if (getenv("LIBCUDF_MEMCHECK_ENABLED")) { return; } + } + // [1, 3, 5], [null, 3, 5], [1], [null], [null, null], [] // values: {1, 3, 5, XXX, 3, 5, 1, XXX, XXX, XXX} // offsets: {0, 3, 6, 7, 8, 10, 10} @@ -137,6 +141,10 @@ TYPED_TEST(SegmentedReductionTest, ProductExcludeNulls) TYPED_TEST(SegmentedReductionTest, MaxExcludeNulls) { + if constexpr (std::is_same_v || std::is_same_v) { + if (getenv("LIBCUDF_MEMCHECK_ENABLED")) { return; } + } + // [1, 2, 3], [1, null, 3], [1], [null], [null, null], [] // values: {1, 2, 3, 1, XXX, 3, 1, XXX, XXX, XXX} // offsets: {0, 3, 6, 7, 8, 10, 10} @@ -185,6 +193,10 @@ TYPED_TEST(SegmentedReductionTest, MaxExcludeNulls) TYPED_TEST(SegmentedReductionTest, MinExcludeNulls) { + if constexpr (std::is_same_v || std::is_same_v) { + if (getenv("LIBCUDF_MEMCHECK_ENABLED")) { return; } + } + // [1, 2, 3], [1, null, 3], [1], [null], [null, null], [] // values: {1, 2, 3, 1, XXX, 3, 1, XXX, XXX, XXX} // offsets: {0, 3, 6, 7, 8, 10, 10} @@ -376,6 +388,10 @@ TYPED_TEST(SegmentedReductionTest, SumIncludeNulls) TYPED_TEST(SegmentedReductionTest, ProductIncludeNulls) { + if constexpr (std::is_same_v || std::is_same_v) { + if (getenv("LIBCUDF_MEMCHECK_ENABLED")) { return; } + } + // [1, 3, 5], [null, 3, 5], [1], [null], [null, null], [] // values: {1, 3, 5, XXX, 3, 5, 1, XXX, XXX, XXX} // offsets: {0, 3, 6, 7, 8, 10, 10} @@ -429,6 +445,10 @@ TYPED_TEST(SegmentedReductionTest, ProductIncludeNulls) TYPED_TEST(SegmentedReductionTest, MaxIncludeNulls) { + if constexpr (std::is_same_v || std::is_same_v) { + if (getenv("LIBCUDF_MEMCHECK_ENABLED")) { return; } + } + // [1, 2, 3], [1, null, 3], [1], [null], [null, null], [] // values: {1, 2, 3, 1, XXX, 3, 1, XXX, XXX, XXX} // offsets: {0, 3, 6, 7, 8, 10, 10} @@ -480,6 +500,10 @@ TYPED_TEST(SegmentedReductionTest, MaxIncludeNulls) TYPED_TEST(SegmentedReductionTest, MinIncludeNulls) { + if constexpr (std::is_same_v || std::is_same_v) { + if (getenv("LIBCUDF_MEMCHECK_ENABLED")) { return; } + } + // [1, 2, 3], [1, null, 3], [1], [null], [null, null], [] // values: {1, 2, 3, 1, XXX, 3, 1, XXX, XXX} // offsets: {0, 3, 6, 7, 8, 10, 10}