From 63fde975ece503b853ae472bd1988682a4285b40 Mon Sep 17 00:00:00 2001 From: Saiyang Zhang Date: Tue, 16 Dec 2025 10:01:19 +0000 Subject: [PATCH 01/11] rocPRIM safely removed deprecated functions --- .../include/rocprim/iterator/zip_iterator.hpp | 9 -------- .../include/rocprim/type_traits_functions.hpp | 21 ------------------- 2 files changed, 30 deletions(-) diff --git a/projects/rocprim/rocprim/include/rocprim/iterator/zip_iterator.hpp b/projects/rocprim/rocprim/include/rocprim/iterator/zip_iterator.hpp index 2aed418b2c12..8205ef08451a 100644 --- a/projects/rocprim/rocprim/include/rocprim/iterator/zip_iterator.hpp +++ b/projects/rocprim/rocprim/include/rocprim/iterator/zip_iterator.hpp @@ -195,15 +195,6 @@ class zip_iterator return detail::dereference_iterator_tuple(iterator_tuple_); } - [[deprecated("This operator is no longer supported and will be removed in the next major " - "release.")]] - ROCPRIM_HOST_DEVICE - inline pointer - operator->() const - { - return &(*(*this)); - } - ROCPRIM_HOST_DEVICE inline reference operator[](difference_type distance) const diff --git a/projects/rocprim/rocprim/include/rocprim/type_traits_functions.hpp b/projects/rocprim/rocprim/include/rocprim/type_traits_functions.hpp index a9e4d03dd26a..524ed1b18dd7 100644 --- a/projects/rocprim/rocprim/include/rocprim/type_traits_functions.hpp +++ b/projects/rocprim/rocprim/include/rocprim/type_traits_functions.hpp @@ -388,27 +388,6 @@ using invoke_result = invoke_result_r; template using invoke_result_t = typename invoke_result::type; -/// \brief Utility wrapper around ``invoke_result`` for binary operators. -/// -/// \tparam T Input type to the binary operator. -/// \tparam F Type of the binary operator. -template -struct [[deprecated("To deduce the type of accumulator, use 'rocprim::accumulator_t' " - "instead.")]] invoke_result_binary_op -{ - /// \brief The result type of the binary operator. - using type = typename invoke_result::type; -}; - -/// \brief Helper type. It is an alias for ``invoke_result_binary_op::type``. -/// -/// \tparam T Input type to the binary operator. -/// \tparam F Type of the binary operator. -template -using invoke_result_binary_op_t - [[deprecated("To deduce the type of accumulator, use 'rocprim::accumulator_t' instead.")]] - = typename invoke_result_binary_op::type; - /// \brief The type of intermediate accumulator (according to CCCL) template using accumulator_t = ::std::decay_t>; From 6b95671cce8ad475663447f880d5d844167300aa Mon Sep 17 00:00:00 2001 From: Saiyang Zhang Date: Tue, 16 Dec 2025 10:49:14 +0000 Subject: [PATCH 02/11] hipCUB safely remove deprecated structs in util_types.hpp --- .../hipcub/backend/rocprim/util_type.hpp | 24 ------------------- 1 file changed, 24 deletions(-) diff --git a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/util_type.hpp b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/util_type.hpp index 52ae8a3b3dfc..340538bfbd6f 100644 --- a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/util_type.hpp +++ b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/util_type.hpp @@ -57,30 +57,6 @@ using NullType = ::rocprim::empty_type; #define HIPCUB_IS_INT128_ENABLED 1 #endif // !defined(HIPCUB_IS_INT128_ENABLED) -template struct -[[deprecated("[Since 1.16] If is deprecated use std::conditional instead.")]] If -{ - using Type = typename std::conditional::type; -}; - -template struct -[[deprecated("[Since 1.16] IsPointer is deprecated use std::is_pointer instead.")]] IsPointer -{ - static constexpr bool VALUE = std::is_pointer::value; -}; - -template struct -[[deprecated("[Since 1.16] IsVolatile is deprecated use std::is_volatile instead.")]] IsVolatile -{ - static constexpr bool VALUE = std::is_volatile::value; -}; - -template struct -[[deprecated("[Since 1.16] RemoveQualifiers is deprecated use std::remove_cv instead.")]] RemoveQualifiers -{ - using Type = typename std::remove_cv::type; -}; - template struct PowerOfTwo { From 9f68883139265b6af0cf9c6baa17f79cd48cc0dc Mon Sep 17 00:00:00 2001 From: Saiyang Zhang Date: Tue, 16 Dec 2025 12:20:33 +0000 Subject: [PATCH 03/11] hipCUB safely removed deprecated functions iterator_wrapper thread_reduce --- .../rocprim/iterator/iterator_wrapper.hpp | 8 ---- .../backend/rocprim/thread/thread_reduce.hpp | 40 ------------------- 2 files changed, 48 deletions(-) diff --git a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/iterator/iterator_wrapper.hpp b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/iterator/iterator_wrapper.hpp index a7cceb0fbdb0..0234c86c157f 100644 --- a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/iterator/iterator_wrapper.hpp +++ b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/iterator/iterator_wrapper.hpp @@ -186,14 +186,6 @@ class IteratorWrapper { return iterator_ >= other.iterator_; } - - [[deprecated]] - friend std::ostream& - operator<<(std::ostream& os, const DerivedIterator& iter) - { - os << iter.iterator_; - return os; - } }; } // namespace detail diff --git a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/thread/thread_reduce.hpp b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/thread/thread_reduce.hpp index 7547974fc008..6e5c10cfa8b9 100644 --- a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/thread/thread_reduce.hpp +++ b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/thread/thread_reduce.hpp @@ -68,46 +68,6 @@ AccumType ThreadReduceSequential(const InputType& input, ReductionOp reduction_o return retval; } -// This function is not used, it is just here for compatibility -template -[[nodiscard]] [[deprecated("This function is an internal API, using it directly is not " - "recommended.")]] -__device__ __forceinline__ -AccumType ThreadReduceBinaryTree(const InputType& input, ReductionOp reduction_op) -{ - constexpr auto length = ::hipcub::detail::static_size_v(); -#pragma unroll - for(int i = 1; i < length; i *= 2) - { -#pragma unroll - for(int j = 0; j + i < length; j += i * 2) - { - input[j] = reduction_op(input[j], input[j + i]); - } - } - return input[0]; -} - -template -[[nodiscard]] [[deprecated("This function is an internal API, using it directly is not " - "recommended.")]] -__device__ __forceinline__ -AccumType ThreadReduceTernaryTree(const InputType& input, ReductionOp reduction_op) -{ - constexpr auto length = ::hipcub::detail::static_size_v(); -#pragma unroll - for(int i = 1; i < length; i *= 3) - { -#pragma unroll - for(int j = 0; j + i < length; j += i * 3) - { - auto value = reduction_op(input[j], input[j + i]); - input[j] = (j + i * 2 < length) ? reduction_op(value, input[j + i * 2]) : value; - } - } - return input[0]; -} - // TODO: we should also implement ThreadReduceSimd after simd intrinsics are available. } // namespace internal From f640c63b591aef9b2a5b8a803ad1e26bae33aa65 Mon Sep 17 00:00:00 2001 From: Saiyang Zhang Date: Tue, 16 Dec 2025 13:18:56 +0000 Subject: [PATCH 04/11] rocThrust safely removed deprecated variable --- projects/rocthrust/testing/docs/doxybook_test.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/projects/rocthrust/testing/docs/doxybook_test.h b/projects/rocthrust/testing/docs/doxybook_test.h index cec55dc0ac07..5065a4122985 100644 --- a/projects/rocthrust/testing/docs/doxybook_test.h +++ b/projects/rocthrust/testing/docs/doxybook_test.h @@ -60,8 +60,6 @@ class test_class int test_member_variable = 0; ///< A test member variable. - [[deprecated]] static constexpr int test_member_constant = 42; ///< A test member constant. - template using test_type_alias = test_class; From 7426d2c87a5561ce0cf81426da4eef9b89b6978b Mon Sep 17 00:00:00 2001 From: Saiyang Zhang Date: Tue, 16 Dec 2025 14:00:23 +0000 Subject: [PATCH 05/11] rocRAND put 'deprecated' variables in detail namespace --- .../rocrand/rocrand_scrambled_sobol32_constants.h | 7 ++++++- .../rocrand/rocrand_scrambled_sobol32_precomputed.h | 9 +++++++-- .../rocrand/rocrand_scrambled_sobol64_constants.h | 7 ++++++- .../rocrand/rocrand_scrambled_sobol64_precomputed.h | 9 +++++++-- .../include/rocrand/rocrand_sobol32_precomputed.h | 9 +++++++-- .../include/rocrand/rocrand_sobol64_precomputed.h | 9 +++++++-- projects/rocrand/library/src/rng/sobol.hpp | 12 ++++++------ projects/rocrand/library/src/rocrand.cpp | 12 ++++++------ .../src/rocrand_scrambled_sobol32_precomputed.cpp | 6 ++++++ .../src/rocrand_scrambled_sobol64_precomputed.cpp | 6 ++++++ .../library/src/rocrand_sobol32_precomputed.cpp | 6 ++++++ .../library/src/rocrand_sobol64_precomputed.cpp | 6 ++++++ 12 files changed, 76 insertions(+), 22 deletions(-) diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h index ce919162e626..13be4de2d770 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h @@ -28,8 +28,10 @@ #define SCRAMBLED_SOBOL_DIM 20000 #endif +namespace rocrand_device { +namespace detail { + // clang-format off -[[deprecated("Use 'rocrand_get_scramble_constants32(...)' instead.")]] static const unsigned int h_scrambled_sobol32_constants[SCRAMBLED_SOBOL_DIM] = { 0xd091bb5c, 0x22ae9ef6, 0xe7e1faee, 0xd5c31f79, 0x2082352c, 0xf807b7df, 0xe9d30005, 0x3895afe1, 0xa1e24bba, 0x4ee4092b, 0x18f86863, 0x8c16a625, 0x474ba8c4, 0x3039cd1a, 0x8c006d5f, 0xfe2d7810, @@ -2535,4 +2537,7 @@ static const unsigned int h_scrambled_sobol32_constants[SCRAMBLED_SOBOL_DIM] = { }; // clang-format on +} // end namespace detail +} // end namespace rocrand_device + #endif // ROCRAND_SCRAMBLED_SOBOL32_CONSTANTS_H_ diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h index 7b161eab8637..b81995737aab 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h @@ -26,13 +26,18 @@ #include "rocrand/rocrandapi.h" +namespace rocrand_device { +namespace detail { + #ifndef SCRAMBLED_SOBOL_DIM #define SCRAMBLED_SOBOL_DIM 20000 #endif // SCRAMBLED_SOBOL_DIM #define SCRAMBLED_SOBOL32_N 640000 -extern "C" [[deprecated( - "Use 'rocrand_get_direction_vectors32(...)' instead.")]] ROCRANDAPI const unsigned int +extern "C" ROCRANDAPI const unsigned int rocrand_h_scrambled_sobol32_direction_vectors[SCRAMBLED_SOBOL32_N]; +} // end namespace detail +} // end namespace rocrand_device + #endif // ROCRAND_SCRAMBLED_SOBOL32_PRECOMPUTED_H_ diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h index ac7f337777b1..bf5cab56b289 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h @@ -28,8 +28,10 @@ #define SCRAMBLED_SOBOL_DIM 20000 #endif +namespace rocrand_device { +namespace detail { + // clang-format off -[[deprecated("Use 'rocrand_get_scramble_constants64(...)' instead.")]] static const unsigned long long int h_scrambled_sobol64_constants[SCRAMBLED_SOBOL_DIM] = { 0xd091bb5c22ae9ef6, 0xe7e1faeed5c31f79, 0x2082352cf807b7df, 0xe9d300053895afe1, 0xa1e24bba4ee4092b, 0x18f868638c16a625, 0x474ba8c43039cd1a, 0x8c006d5ffe2d7810, @@ -5035,4 +5037,7 @@ static const unsigned long long int h_scrambled_sobol64_constants[SCRAMBLED_SOBO }; // clang-format on +} // end namespace detail +} // end namespace rocrand_device + #endif // ROCRAND_SCRAMBLED_SOBOL64_CONSTANTS_H_ diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h index 359788dd0e0f..00d1e9a93880 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h @@ -31,8 +31,13 @@ #endif // SCRAMBLED_SOBOL_DIM #define SCRAMBLED_SOBOL64_N 1280000 -extern "C" [[deprecated( - "Use 'rocrand_get_direction_vectors64(...)' instead.")]] ROCRANDAPI const unsigned long long +namespace rocrand_device { +namespace detail { + +extern "C" ROCRANDAPI const unsigned long long rocrand_h_scrambled_sobol64_direction_vectors[SCRAMBLED_SOBOL64_N]; +} // end namespace detail +} // end namespace rocrand_device + #endif // ROCRAND_SCRAMBLED_SOBOL64_PRECOMPUTED_H_ diff --git a/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h index 8740c58f2a6f..bfe38aac8239 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h @@ -31,8 +31,13 @@ #endif // SOBOL_DIM #define SOBOL32_N 640000 -extern "C" [[deprecated( - "Use 'rocrand_get_direction_vectors32(...)' instead.")]] ROCRANDAPI const unsigned int +namespace rocrand_device { +namespace detail { + +extern "C" ROCRANDAPI const unsigned int rocrand_h_sobol32_direction_vectors[SOBOL32_N]; +} // end namespace detail +} // end namespace rocrand_device + #endif // ROCRAND_SOBOL32_PRECOMPUTED_H_ diff --git a/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h index 462b2a968552..61011b683418 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h @@ -31,8 +31,13 @@ #endif // SOBOL_DIM #define SOBOL64_N 1280000 -extern "C" [[deprecated( - "Use 'rocrand_get_direction_vectors64(...)' instead.")]] ROCRANDAPI const unsigned long long +namespace rocrand_device { +namespace detail { + +extern "C" ROCRANDAPI const unsigned long long rocrand_h_sobol64_direction_vectors[SOBOL64_N]; +} // end namespace detail +} // end namespace rocrand_device + #endif // ROCRAND_SOBOL64_PRECOMPUTED_H_ diff --git a/projects/rocrand/library/src/rng/sobol.hpp b/projects/rocrand/library/src/rng/sobol.hpp index 38e5a4e38baf..85989efb09b2 100644 --- a/projects/rocrand/library/src/rng/sobol.hpp +++ b/projects/rocrand/library/src/rng/sobol.hpp @@ -372,22 +372,22 @@ class sobol_constant_accessor { if constexpr(Scrambled) { - return rocrand_h_scrambled_sobol64_direction_vectors; + return rocrand_device::detail::rocrand_h_scrambled_sobol64_direction_vectors; } else { - return rocrand_h_sobol64_direction_vectors; + return rocrand_device::detail::rocrand_h_sobol64_direction_vectors; } } else { if constexpr(Scrambled) { - return rocrand_h_scrambled_sobol32_direction_vectors; + return rocrand_device::detail::rocrand_h_scrambled_sobol32_direction_vectors; } else { - return rocrand_h_sobol32_direction_vectors; + return rocrand_device::detail::rocrand_h_sobol32_direction_vectors; } } #pragma clang diagnostic pop @@ -433,11 +433,11 @@ class sobol_constant_accessor #pragma clang diagnostic ignored "-Wdeprecated-declarations" if constexpr(Is64) { - return h_scrambled_sobol64_constants; + return rocrand_device::detail::h_scrambled_sobol64_constants; } else { - return h_scrambled_sobol32_constants; + return rocrand_device::detail::h_scrambled_sobol32_constants; } #pragma clang diagnostic pop } diff --git a/projects/rocrand/library/src/rocrand.cpp b/projects/rocrand/library/src/rocrand.cpp index 698b2f0fc71f..fe98f70507ee 100644 --- a/projects/rocrand/library/src/rocrand.cpp +++ b/projects/rocrand/library/src/rocrand.cpp @@ -595,10 +595,10 @@ rocrand_status ROCRANDAPI rocrand_get_direction_vectors32(const unsigned int** switch(set) { case ROCRAND_DIRECTION_VECTORS_32_JOEKUO6: - *vectors = rocrand_h_sobol32_direction_vectors; + *vectors = rocrand_device::detail::rocrand_h_sobol32_direction_vectors; return ROCRAND_STATUS_SUCCESS; case ROCRAND_SCRAMBLED_DIRECTION_VECTORS_32_JOEKUO6: - *vectors = rocrand_h_scrambled_sobol32_direction_vectors; + *vectors = rocrand_device::detail::rocrand_h_scrambled_sobol32_direction_vectors; return ROCRAND_STATUS_SUCCESS; default: return ROCRAND_STATUS_OUT_OF_RANGE; } @@ -613,10 +613,10 @@ rocrand_status ROCRANDAPI rocrand_get_direction_vectors64(const unsigned long lo switch(set) { case ROCRAND_DIRECTION_VECTORS_64_JOEKUO6: - *vectors = rocrand_h_sobol64_direction_vectors; + *vectors = rocrand_device::detail::rocrand_h_sobol64_direction_vectors; return ROCRAND_STATUS_SUCCESS; case ROCRAND_SCRAMBLED_DIRECTION_VECTORS_64_JOEKUO6: - *vectors = rocrand_h_scrambled_sobol64_direction_vectors; + *vectors = rocrand_device::detail::rocrand_h_scrambled_sobol64_direction_vectors; return ROCRAND_STATUS_SUCCESS; default: return ROCRAND_STATUS_OUT_OF_RANGE; } @@ -627,7 +627,7 @@ rocrand_status ROCRANDAPI rocrand_get_scramble_constants32(const unsigned int** { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" - *constants = h_scrambled_sobol32_constants; + *constants = rocrand_device::detail::h_scrambled_sobol32_constants; return ROCRAND_STATUS_SUCCESS; #pragma clang diagnostic pop } @@ -636,7 +636,7 @@ rocrand_status ROCRANDAPI rocrand_get_scramble_constants64(const unsigned long l { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" - *constants = h_scrambled_sobol64_constants; + *constants = rocrand_device::detail::h_scrambled_sobol64_constants; return ROCRAND_STATUS_SUCCESS; #pragma clang diagnostic pop } diff --git a/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp b/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp index cf07809e1352..13f6316382bb 100644 --- a/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp @@ -23,6 +23,9 @@ #include "rocrand/rocrandapi.h" +namespace rocrand_device { +namespace detail { + // clang-format off extern "C" ROCRANDAPI const unsigned int rocrand_h_scrambled_sobol32_direction_vectors[640000] = { @@ -20027,3 +20030,6 @@ extern "C" ROCRANDAPI const unsigned int rocrand_h_scrambled_sobol32_direction_v 0x8009c400, 0x4009c400, 0xe009c400, 0x9009c400, 0xb809c400, 0x2c09c400, 0x3209c400, 0x7309c400, 0xc489c400, 0x2649c400, 0x9ea9c400, 0x3679c400, 0x2961c400, 0x1d95c400, 0x5acfc400, 0x0c28c400, 0x9bec4400, 0x26ea8400, 0xf6522400, 0x847b7400, 0x5ece2c00, 0xa7418000, 0xa9251e00, 0x8fbf0100, 0x4ff57780, 0x813f0a40, 0xa127e6e0, 0xd2dcce30, 0x3e0e45f8, 0xbb59b794, 0xed9ca09a, 0x981724bd, 0x8009c400, 0xc009c400, 0x2009c400, 0xf009c400, 0xd809c400, 0x9409c400, 0x7e09c400, 0xfd09c400, 0x0089c400, 0xd5c9c400, 0xce69c400, 0xc279c400, 0xd131c400, 0x1c8dc400, 0xb033c400, 0xfac6c400, 0x23df4400, 0xf7860400, 0xbc11a400, 0x97f65400, 0x638dbc00, 0x3a505800, 0x9c88be00, 0x2a3cff00, 0x2b1c7a80, 0x6f76a2c0, 0xf25bca60, 0x5dcaf0d0, 0x57cd58a8, 0x038124a4, 0xa5531ce6, 0x705039d3, }; + +} // end namespace detail +} // end namespace rocrand_device diff --git a/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp b/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp index 9d4a3063d737..d8520e7bb21d 100644 --- a/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp @@ -23,6 +23,9 @@ #include "rocrand/rocrandapi.h" +namespace rocrand_device { +namespace detail { + // clang-format off extern "C" ROCRANDAPI const unsigned long long rocrand_h_scrambled_sobol64_direction_vectors[1280000] = { @@ -20027,3 +20030,6 @@ extern "C" ROCRANDAPI const unsigned long long rocrand_h_scrambled_sobol64_direc 0x8000000000138800, 0x4000000000138800, 0xe000000000138800, 0x9000000000138800, 0xb800000000138800, 0x2c00000000138800, 0x3200000000138800, 0x7300000000138800, 0xc480000000138800, 0x2640000000138800, 0x9ea0000000138800, 0x3670000000138800, 0x2958000000138800, 0x1d8c000000138800, 0x5ac6000000138800, 0x0c1f000000138800, 0x9be2800000138800, 0x26e0c00000138800, 0xf648600000138800, 0x8471b00000138800, 0x5ec4680000138800, 0xa737bc0000138800, 0xa91b5a0000138800, 0x8fb53d0000138800, 0x4febb38000138800, 0x8135464000138800, 0xa11e22e000138800, 0xd2d30a3000138800, 0x3e0481f800138800, 0xbb4ff39400138800, 0xed92dc9a00138800, 0x980d60bd00138800, 0xd002115e80138800, 0x229d288840138800, 0x483fac2060138800, 0xe2ff7b3710138800, 0x41871e66e8138800, 0x638eaa1b54138800, 0x9976ef2486138800, 0x70bf42054d138800, 0xf1273c86e5938800, 0xdcfea02b5bd38800, 0x03aeeedc80b38800, 0x29f3719142038800, 0x7e01001ce17b8800, 0xfdb1b0965c678800, 0x16a4778206358800, 0x47a7951907d68800, 0x41937e3c86730800, 0xae913aa14ca34800, 0xdd398864e1056800, 0x3380484251d0b800, 0x7375b2780eebd000, 0x9e2675d4030c8400, 0xf97a9e7a061ab600, 0x000cda8d00a95f00, 0x889e78a68d622880, 0x46a6a71c436618c0, 0x7aa2caba6789e320, 0x2575568a16226c10, 0xc4be34b861037098, 0xc42308d31e1e74b4, 0x071cb3e4ed6abf96, 0xed63c20253579b07, 0x8000000000138800, 0xc000000000138800, 0x2000000000138800, 0xf000000000138800, 0xd800000000138800, 0x9400000000138800, 0x7e00000000138800, 0xfd00000000138800, 0x0080000000138800, 0xd5c0000000138800, 0xce60000000138800, 0xc270000000138800, 0xd128000000138800, 0x1c84000000138800, 0xb02a000000138800, 0xfabd000000138800, 0x23d5800000138800, 0xf77c400000138800, 0xbc07e00000138800, 0x97ec900000138800, 0x6383f80000138800, 0x3a46940000138800, 0x9c7efa0000138800, 0x2a333b0000138800, 0x2b12b68000138800, 0x6f6cdec000138800, 0xf252066000138800, 0x5dc12cd000138800, 0x57c394a800138800, 0x037760a400138800, 0xa54958e600138800, 0x704675d300138800, 0x2c62e94780138800, 0xdad50e37c0138800, 0x62f1b3c720138800, 0xf2467f1af0138800, 0x0362c848a8138800, 0x1d553d593c138800, 0x1cb1b7c18a138800, 0x58665734c3138800, 0x3032ce28af938800, 0x96ad118936538800, 0x208da36982738800, 0x32d07790caa38800, 0xaca9f6cea5fb8800, 0xef7bb45a3d9f8800, 0xadeb522e09818800, 0x6d6f7da7044e8800, 0xff45470984280800, 0x1af86440cd52c800, 0x06add6e6ababa800, 0xeb91a53e3a931800, 0x5bb640280a4d8000, 0x960ac1640f3e9c00, 0x00f10a0606fb2e00, 0x2e4bb8c305b0d500, 0x16634f0f87b06980, 0xb77b7383c029f840, 0xfaf7556927439020, 0xc609737df07c66f0, 0x0ae645a123cfa2c8, 0xe2f2d009f3f06f5c, 0xd34d256f2f8af48e, 0x76bdb0bef0f1fa61, }; + +} // end namespace detail +} // end namespace rocrand_device diff --git a/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp b/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp index d858d0f7b241..05fe4c749b1d 100644 --- a/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp @@ -23,6 +23,9 @@ #include "rocrand/rocrandapi.h" +namespace rocrand_device { +namespace detail { + // clang-format off extern "C" ROCRANDAPI const unsigned int rocrand_h_sobol32_direction_vectors[640000] = { @@ -20027,3 +20030,6 @@ extern "C" ROCRANDAPI const unsigned int rocrand_h_sobol32_direction_vectors[640 0x80000000, 0x40000000, 0xe0000000, 0x90000000, 0xb8000000, 0x2c000000, 0x32000000, 0x73000000, 0xc4800000, 0x26400000, 0x9ea00000, 0x36700000, 0x29580000, 0x1d8c0000, 0x5ac60000, 0x0c1f0000, 0x9be28000, 0x26e0c000, 0xf6486000, 0x8471b000, 0x5ec46800, 0xa737bc00, 0xa91b5a00, 0x8fb53d00, 0x4febb380, 0x81354640, 0xa11e22e0, 0xd2d30a30, 0x3e0481f8, 0xbb4ff394, 0xed92dc9a, 0x980d60bd, 0x80000000, 0xc0000000, 0x20000000, 0xf0000000, 0xd8000000, 0x94000000, 0x7e000000, 0xfd000000, 0x00800000, 0xd5c00000, 0xce600000, 0xc2700000, 0xd1280000, 0x1c840000, 0xb02a0000, 0xfabd0000, 0x23d58000, 0xf77c4000, 0xbc07e000, 0x97ec9000, 0x6383f800, 0x3a469400, 0x9c7efa00, 0x2a333b00, 0x2b12b680, 0x6f6cdec0, 0xf2520660, 0x5dc12cd0, 0x57c394a8, 0x037760a4, 0xa54958e6, 0x704675d3, }; + +} // end namespace detail +} // end namespace rocrand_device diff --git a/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp b/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp index 644b95fb865f..d85e381356f1 100644 --- a/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp @@ -23,6 +23,9 @@ #include "rocrand/rocrandapi.h" +namespace rocrand_device { +namespace detail { + // clang-format off extern "C" ROCRANDAPI const unsigned long long rocrand_h_sobol64_direction_vectors[1280000] = { @@ -20027,3 +20030,6 @@ extern "C" ROCRANDAPI const unsigned long long rocrand_h_sobol64_direction_vecto 0x8000000000000000, 0x4000000000000000, 0xe000000000000000, 0x9000000000000000, 0xb800000000000000, 0x2c00000000000000, 0x3200000000000000, 0x7300000000000000, 0xc480000000000000, 0x2640000000000000, 0x9ea0000000000000, 0x3670000000000000, 0x2958000000000000, 0x1d8c000000000000, 0x5ac6000000000000, 0x0c1f000000000000, 0x9be2800000000000, 0x26e0c00000000000, 0xf648600000000000, 0x8471b00000000000, 0x5ec4680000000000, 0xa737bc0000000000, 0xa91b5a0000000000, 0x8fb53d0000000000, 0x4febb38000000000, 0x8135464000000000, 0xa11e22e000000000, 0xd2d30a3000000000, 0x3e0481f800000000, 0xbb4ff39400000000, 0xed92dc9a00000000, 0x980d60bd00000000, 0xd002115e80000000, 0x229d288840000000, 0x483fac2060000000, 0xe2ff7b3710000000, 0x41871e66e8000000, 0x638eaa1b54000000, 0x9976ef2486000000, 0x70bf42054d000000, 0xf1273c86e5800000, 0xdcfea02b5bc00000, 0x03aeeedc80a00000, 0x29f3719141f00000, 0x7e01001ce1680000, 0xfdb1b0965c540000, 0x16a4778206220000, 0x47a7951907c30000, 0x41937e3c865f8000, 0xae913aa14c8fc000, 0xdd398864e0f1e000, 0x3380484251bd3000, 0x7375b2780ed84800, 0x9e2675d402f8fc00, 0xf97a9e7a06072e00, 0x000cda8d0095d700, 0x889e78a68d4ea080, 0x46a6a71c435290c0, 0x7aa2caba67765b20, 0x2575568a160ee410, 0xc4be34b860efe898, 0xc42308d31e0aecb4, 0x071cb3e4ed573796, 0xed63c20253441307, 0x8000000000000000, 0xc000000000000000, 0x2000000000000000, 0xf000000000000000, 0xd800000000000000, 0x9400000000000000, 0x7e00000000000000, 0xfd00000000000000, 0x0080000000000000, 0xd5c0000000000000, 0xce60000000000000, 0xc270000000000000, 0xd128000000000000, 0x1c84000000000000, 0xb02a000000000000, 0xfabd000000000000, 0x23d5800000000000, 0xf77c400000000000, 0xbc07e00000000000, 0x97ec900000000000, 0x6383f80000000000, 0x3a46940000000000, 0x9c7efa0000000000, 0x2a333b0000000000, 0x2b12b68000000000, 0x6f6cdec000000000, 0xf252066000000000, 0x5dc12cd000000000, 0x57c394a800000000, 0x037760a400000000, 0xa54958e600000000, 0x704675d300000000, 0x2c62e94780000000, 0xdad50e37c0000000, 0x62f1b3c720000000, 0xf2467f1af0000000, 0x0362c848a8000000, 0x1d553d593c000000, 0x1cb1b7c18a000000, 0x58665734c3000000, 0x3032ce28af800000, 0x96ad118936400000, 0x208da36982600000, 0x32d07790ca900000, 0xaca9f6cea5e80000, 0xef7bb45a3d8c0000, 0xadeb522e096e0000, 0x6d6f7da7043b0000, 0xff45470984148000, 0x1af86440cd3f4000, 0x06add6e6ab982000, 0xeb91a53e3a7f9000, 0x5bb640280a39f800, 0x960ac1640f2b1400, 0x00f10a0606e7a600, 0x2e4bb8c3059d4d00, 0x16634f0f879ce180, 0xb77b7383c0167040, 0xfaf7556927300820, 0xc609737df068def0, 0x0ae645a123bc1ac8, 0xe2f2d009f3dce75c, 0xd34d256f2f776c8e, 0x76bdb0bef0de7261, }; + +} // end namespace detail +} // end namespace rocrand_device From 3b79c8c33d7419fc805a84fae98b18770b172626 Mon Sep 17 00:00:00 2001 From: Saiyang Zhang Date: Tue, 16 Dec 2025 14:27:07 +0000 Subject: [PATCH 06/11] Formatting --- .../rocrand/rocrand_scrambled_sobol32_constants.h | 6 ++++-- .../rocrand/rocrand_scrambled_sobol32_precomputed.h | 6 ++++-- .../rocrand/rocrand_scrambled_sobol64_constants.h | 6 ++++-- .../rocrand/rocrand_scrambled_sobol64_precomputed.h | 6 ++++-- .../include/rocrand/rocrand_sobol32_precomputed.h | 9 +++++---- .../include/rocrand/rocrand_sobol64_precomputed.h | 9 +++++---- .../src/rocrand_scrambled_sobol32_precomputed.cpp | 6 ++++-- .../src/rocrand_scrambled_sobol64_precomputed.cpp | 6 ++++-- .../rocrand/library/src/rocrand_sobol32_precomputed.cpp | 6 ++++-- .../rocrand/library/src/rocrand_sobol64_precomputed.cpp | 6 ++++-- 10 files changed, 42 insertions(+), 24 deletions(-) diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h index 13be4de2d770..14ce4c47bdf2 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h @@ -28,8 +28,10 @@ #define SCRAMBLED_SOBOL_DIM 20000 #endif -namespace rocrand_device { -namespace detail { +namespace rocrand_device +{ +namespace detail +{ // clang-format off static const unsigned int h_scrambled_sobol32_constants[SCRAMBLED_SOBOL_DIM] = { diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h index b81995737aab..6a15f2388463 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h @@ -26,8 +26,10 @@ #include "rocrand/rocrandapi.h" -namespace rocrand_device { -namespace detail { +namespace rocrand_device +{ +namespace detail +{ #ifndef SCRAMBLED_SOBOL_DIM #define SCRAMBLED_SOBOL_DIM 20000 diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h index bf5cab56b289..8f59a62aa0d9 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h @@ -28,8 +28,10 @@ #define SCRAMBLED_SOBOL_DIM 20000 #endif -namespace rocrand_device { -namespace detail { +namespace rocrand_device +{ +namespace detail +{ // clang-format off static const unsigned long long int h_scrambled_sobol64_constants[SCRAMBLED_SOBOL_DIM] = { diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h index 00d1e9a93880..8f50f0b4d7cf 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h @@ -31,8 +31,10 @@ #endif // SCRAMBLED_SOBOL_DIM #define SCRAMBLED_SOBOL64_N 1280000 -namespace rocrand_device { -namespace detail { +namespace rocrand_device +{ +namespace detail +{ extern "C" ROCRANDAPI const unsigned long long rocrand_h_scrambled_sobol64_direction_vectors[SCRAMBLED_SOBOL64_N]; diff --git a/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h index bfe38aac8239..2cd04aabde2c 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h @@ -31,11 +31,12 @@ #endif // SOBOL_DIM #define SOBOL32_N 640000 -namespace rocrand_device { -namespace detail { +namespace rocrand_device +{ +namespace detail +{ -extern "C" ROCRANDAPI const unsigned int - rocrand_h_sobol32_direction_vectors[SOBOL32_N]; +extern "C" ROCRANDAPI const unsigned int rocrand_h_sobol32_direction_vectors[SOBOL32_N]; } // end namespace detail } // end namespace rocrand_device diff --git a/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h index 61011b683418..af4647ca4412 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h @@ -31,11 +31,12 @@ #endif // SOBOL_DIM #define SOBOL64_N 1280000 -namespace rocrand_device { -namespace detail { +namespace rocrand_device +{ +namespace detail +{ -extern "C" ROCRANDAPI const unsigned long long - rocrand_h_sobol64_direction_vectors[SOBOL64_N]; +extern "C" ROCRANDAPI const unsigned long long rocrand_h_sobol64_direction_vectors[SOBOL64_N]; } // end namespace detail } // end namespace rocrand_device diff --git a/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp b/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp index 13f6316382bb..a5327e4c8166 100644 --- a/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp @@ -23,8 +23,10 @@ #include "rocrand/rocrandapi.h" -namespace rocrand_device { -namespace detail { +namespace rocrand_device +{ +namespace detail +{ // clang-format off extern "C" ROCRANDAPI const unsigned int rocrand_h_scrambled_sobol32_direction_vectors[640000] = diff --git a/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp b/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp index d8520e7bb21d..ab4d4b536319 100644 --- a/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp @@ -23,8 +23,10 @@ #include "rocrand/rocrandapi.h" -namespace rocrand_device { -namespace detail { +namespace rocrand_device +{ +namespace detail +{ // clang-format off extern "C" ROCRANDAPI const unsigned long long rocrand_h_scrambled_sobol64_direction_vectors[1280000] = diff --git a/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp b/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp index 05fe4c749b1d..7bffb9edf991 100644 --- a/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp @@ -23,8 +23,10 @@ #include "rocrand/rocrandapi.h" -namespace rocrand_device { -namespace detail { +namespace rocrand_device +{ +namespace detail +{ // clang-format off extern "C" ROCRANDAPI const unsigned int rocrand_h_sobol32_direction_vectors[640000] = diff --git a/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp b/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp index d85e381356f1..b08e86d56541 100644 --- a/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp @@ -23,8 +23,10 @@ #include "rocrand/rocrandapi.h" -namespace rocrand_device { -namespace detail { +namespace rocrand_device +{ +namespace detail +{ // clang-format off extern "C" ROCRANDAPI const unsigned long long rocrand_h_sobol64_direction_vectors[1280000] = From 16a48a2acae6e88cc371cde84b5872a44e0cc043 Mon Sep 17 00:00:00 2001 From: Saiyang Zhang Date: Tue, 16 Dec 2025 15:06:09 +0000 Subject: [PATCH 07/11] Changelog --- projects/hipcub/CHANGELOG.md | 2 ++ projects/rocprim/CHANGELOG.md | 9 +++++---- projects/rocrand/CHANGELOG.md | 1 + projects/rocthrust/CHANGELOG.md | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/projects/hipcub/CHANGELOG.md b/projects/hipcub/CHANGELOG.md index 30b45edaf426..4eaf14f9d59e 100644 --- a/projects/hipcub/CHANGELOG.md +++ b/projects/hipcub/CHANGELOG.md @@ -36,6 +36,8 @@ Full documentation for hipCUB is available at [https://rocm.docs.amd.com/project * Removed the `GenerateResourceSpec.cmake` script - it is replaced by the added `generate_resource_spec.cpp` code mentioned above. +* Removed deprecated `IteratorWrapper::operator<<`, `ThreadReduceTernaryTree`, `If`, `IsPointer`, `IsVolatile`, `RemoveQualifiers`, `ThreadReduceBinaryTree`, `ThreadReduceTernaryTree`. + ## hipCUB-4.2.0 for ROCm 7.2 ### Resolved issues diff --git a/projects/rocprim/CHANGELOG.md b/projects/rocprim/CHANGELOG.md index efb0c1057648..008222cfce17 100644 --- a/projects/rocprim/CHANGELOG.md +++ b/projects/rocprim/CHANGELOG.md @@ -53,10 +53,6 @@ Full documentation for rocPRIM is available at [https://rocm.docs.amd.com/projec * Updated config system to pick better fallback configs for untuned GPUs. -### Upcoming changes - -* Deprecated the `ROCPRIM_PRINT_ERROR_ONCE` macro. - ### Changed * Changed various APIs with undefined behaviors to abort with a trap instead of printing a runtime error with `ROCPRIM_PRINT_ERROR_ONCE` @@ -71,9 +67,14 @@ Full documentation for rocPRIM is available at [https://rocm.docs.amd.com/projec ### Removed +* Removed deprecated `zip_iterator::operator->`, `invoke_result_binary_op_t`. * Removed unused `equality`, `inequality`, `sum`, `max`, `min` from thread_operator.hpp. * Removed duplicate `inequality_operator` from binary_op_warpper.hpp +### Upcoming changes + +* Deprecated the `ROCPRIM_PRINT_ERROR_ONCE` macro. + ## rocPRIM 4.2.0 for ROCm 7.2 ### Added diff --git a/projects/rocrand/CHANGELOG.md b/projects/rocrand/CHANGELOG.md index c4b63c130122..0bac7600ab7b 100644 --- a/projects/rocrand/CHANGELOG.md +++ b/projects/rocrand/CHANGELOG.md @@ -29,6 +29,7 @@ Documentation for rocRAND is available at ### Changed * Optimized `xorwow` generator performance for `gfx908` and `gfx942` architectures. +* Changed `h_scrambled_sobol(32|64)_constants`, `rocrand_h_scrambled_sobol(32|64)_direction_vectors`, `rocrand_h_sobol(32|64)_direction_vectors` to private namespace.\ ## rocRAND 4.2.0 for ROCm 7.2 diff --git a/projects/rocthrust/CHANGELOG.md b/projects/rocthrust/CHANGELOG.md index 5976e8c0ae0b..a762cc2fcc85 100644 --- a/projects/rocthrust/CHANGELOG.md +++ b/projects/rocthrust/CHANGELOG.md @@ -40,6 +40,7 @@ Documentation for rocThrust available at ### Removed * Removed the `GenerateResourceSpec.cmake` script - it is replaced by the added `generate_resource_spec.cpp` code above. +* Removed deprecated variable `test_member_constant`. ## rocThrust 4.2.0 for ROCm 7.2 From 17ce1523ee131c03d8a8be6c52b87735eb6e90c8 Mon Sep 17 00:00:00 2001 From: Saiyang Zhang Date: Fri, 19 Dec 2025 10:28:01 +0000 Subject: [PATCH 08/11] Restore things that should be there --- projects/hipcub/CHANGELOG.md | 2 +- .../backend/rocprim/thread/thread_reduce.hpp | 40 +++++++++++++++++++ .../rocthrust/testing/docs/doxybook_test.h | 2 + 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/projects/hipcub/CHANGELOG.md b/projects/hipcub/CHANGELOG.md index 4eaf14f9d59e..3fa1b40f7e97 100644 --- a/projects/hipcub/CHANGELOG.md +++ b/projects/hipcub/CHANGELOG.md @@ -36,7 +36,7 @@ Full documentation for hipCUB is available at [https://rocm.docs.amd.com/project * Removed the `GenerateResourceSpec.cmake` script - it is replaced by the added `generate_resource_spec.cpp` code mentioned above. -* Removed deprecated `IteratorWrapper::operator<<`, `ThreadReduceTernaryTree`, `If`, `IsPointer`, `IsVolatile`, `RemoveQualifiers`, `ThreadReduceBinaryTree`, `ThreadReduceTernaryTree`. +* Removed deprecated `IteratorWrapper::operator<<`, `If`, `IsPointer`, `IsVolatile`, `RemoveQualifiers`. ## hipCUB-4.2.0 for ROCm 7.2 diff --git a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/thread/thread_reduce.hpp b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/thread/thread_reduce.hpp index 6e5c10cfa8b9..7547974fc008 100644 --- a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/thread/thread_reduce.hpp +++ b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/thread/thread_reduce.hpp @@ -68,6 +68,46 @@ AccumType ThreadReduceSequential(const InputType& input, ReductionOp reduction_o return retval; } +// This function is not used, it is just here for compatibility +template +[[nodiscard]] [[deprecated("This function is an internal API, using it directly is not " + "recommended.")]] +__device__ __forceinline__ +AccumType ThreadReduceBinaryTree(const InputType& input, ReductionOp reduction_op) +{ + constexpr auto length = ::hipcub::detail::static_size_v(); +#pragma unroll + for(int i = 1; i < length; i *= 2) + { +#pragma unroll + for(int j = 0; j + i < length; j += i * 2) + { + input[j] = reduction_op(input[j], input[j + i]); + } + } + return input[0]; +} + +template +[[nodiscard]] [[deprecated("This function is an internal API, using it directly is not " + "recommended.")]] +__device__ __forceinline__ +AccumType ThreadReduceTernaryTree(const InputType& input, ReductionOp reduction_op) +{ + constexpr auto length = ::hipcub::detail::static_size_v(); +#pragma unroll + for(int i = 1; i < length; i *= 3) + { +#pragma unroll + for(int j = 0; j + i < length; j += i * 3) + { + auto value = reduction_op(input[j], input[j + i]); + input[j] = (j + i * 2 < length) ? reduction_op(value, input[j + i * 2]) : value; + } + } + return input[0]; +} + // TODO: we should also implement ThreadReduceSimd after simd intrinsics are available. } // namespace internal diff --git a/projects/rocthrust/testing/docs/doxybook_test.h b/projects/rocthrust/testing/docs/doxybook_test.h index 5065a4122985..cec55dc0ac07 100644 --- a/projects/rocthrust/testing/docs/doxybook_test.h +++ b/projects/rocthrust/testing/docs/doxybook_test.h @@ -60,6 +60,8 @@ class test_class int test_member_variable = 0; ///< A test member variable. + [[deprecated]] static constexpr int test_member_constant = 42; ///< A test member constant. + template using test_type_alias = test_class; From 81f2652def42d7912ba28a6df67b130fa61890e5 Mon Sep 17 00:00:00 2001 From: Saiyang Zhang Date: Mon, 5 Jan 2026 14:46:42 +0000 Subject: [PATCH 09/11] Formatting --- projects/rocrand/CHANGELOG.md | 2 +- projects/rocrand/library/src/rng/sobol.hpp | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/projects/rocrand/CHANGELOG.md b/projects/rocrand/CHANGELOG.md index 0bac7600ab7b..8463242f4473 100644 --- a/projects/rocrand/CHANGELOG.md +++ b/projects/rocrand/CHANGELOG.md @@ -132,7 +132,7 @@ Documentation for rocRAND is available at * Added host generator for MT19937 * Support for `rocrand_generate_poisson` in hipGraphs * Added engine, distribution, mode, throughput_gigabytes_per_second, and lambda columns for the csv format in - `benchmark_rocrand_host_api` and `benchmark_rocrand_device_api`. To see these new columns, set `--benchmark_format=csv` + `benchmark_rocrand_host_api` and `benchmark_rocrand_device_api`. To see these new columns, set `--benchmark_format=csv` or `--benchmark_out_format=csv --benchmark_out="outName.csv"`. ### Changed diff --git a/projects/rocrand/library/src/rng/sobol.hpp b/projects/rocrand/library/src/rng/sobol.hpp index 85989efb09b2..230690eeb26a 100644 --- a/projects/rocrand/library/src/rng/sobol.hpp +++ b/projects/rocrand/library/src/rng/sobol.hpp @@ -166,12 +166,13 @@ struct generate_sobol_host // On AMD GPUs we must use a constexpr size shared array for performance. // But this code won't compile with NVCC, because we are in a __host__ __device__ // function. - __shared__ Constant shared_vectors[vector_size]; + __shared__ + Constant shared_vectors[vector_size]; #else - // NVCC won't accept extern __shared__ Constant shared_bytes[]; - // Thereby we must resort to aliasing. - extern __shared__ unsigned char shared_bytes[]; - auto* shared_vectors = reinterpret_cast(&shared_bytes[0]); + // NVCC won't accept extern __shared__ Constant shared_bytes[]; + // Thereby we must resort to aliasing. + extern __shared__ unsigned char shared_bytes[]; + auto* shared_vectors = reinterpret_cast(&shared_bytes[0]); #endif if(thread_idx.x < vector_size) { From 0ea86b0862f1710a13c9f6f834dfdc1bd75129b8 Mon Sep 17 00:00:00 2001 From: Saiyang Zhang Date: Thu, 8 Jan 2026 07:20:00 +0000 Subject: [PATCH 10/11] Formatting --- projects/rocrand/CHANGELOG.md | 2 +- projects/rocrand/library/src/rng/sobol.hpp | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/projects/rocrand/CHANGELOG.md b/projects/rocrand/CHANGELOG.md index 8463242f4473..0bac7600ab7b 100644 --- a/projects/rocrand/CHANGELOG.md +++ b/projects/rocrand/CHANGELOG.md @@ -132,7 +132,7 @@ Documentation for rocRAND is available at * Added host generator for MT19937 * Support for `rocrand_generate_poisson` in hipGraphs * Added engine, distribution, mode, throughput_gigabytes_per_second, and lambda columns for the csv format in - `benchmark_rocrand_host_api` and `benchmark_rocrand_device_api`. To see these new columns, set `--benchmark_format=csv` + `benchmark_rocrand_host_api` and `benchmark_rocrand_device_api`. To see these new columns, set `--benchmark_format=csv` or `--benchmark_out_format=csv --benchmark_out="outName.csv"`. ### Changed diff --git a/projects/rocrand/library/src/rng/sobol.hpp b/projects/rocrand/library/src/rng/sobol.hpp index 230690eeb26a..6e36606bcac6 100644 --- a/projects/rocrand/library/src/rng/sobol.hpp +++ b/projects/rocrand/library/src/rng/sobol.hpp @@ -169,10 +169,11 @@ struct generate_sobol_host __shared__ Constant shared_vectors[vector_size]; #else - // NVCC won't accept extern __shared__ Constant shared_bytes[]; - // Thereby we must resort to aliasing. - extern __shared__ unsigned char shared_bytes[]; - auto* shared_vectors = reinterpret_cast(&shared_bytes[0]); + // NVCC won't accept extern __shared__ Constant shared_bytes[]; + // Thereby we must resort to aliasing. + extern __shared__ + unsigned char shared_bytes[]; + auto* shared_vectors = reinterpret_cast(&shared_bytes[0]); #endif if(thread_idx.x < vector_size) { From dda42fb8a30f645e10294c83b4f4ee4575995ece Mon Sep 17 00:00:00 2001 From: Saiyang Zhang Date: Fri, 9 Jan 2026 09:48:23 +0000 Subject: [PATCH 11/11] copyright-date --- .../backend/rocprim/iterator/iterator_wrapper.hpp | 2 +- .../include/hipcub/backend/rocprim/util_type.hpp | 2 +- .../include/rocprim/iterator/zip_iterator.hpp | 2 +- .../rocrand/rocrand_scrambled_sobol32_constants.h | 2 +- .../rocrand/rocrand_scrambled_sobol32_precomputed.h | 2 +- .../rocrand/rocrand_scrambled_sobol64_constants.h | 2 +- .../rocrand/rocrand_scrambled_sobol64_precomputed.h | 2 +- .../include/rocrand/rocrand_sobol32_precomputed.h | 2 +- .../include/rocrand/rocrand_sobol64_precomputed.h | 2 +- projects/rocrand/library/src/rng/sobol.hpp | 12 ++++++------ projects/rocrand/library/src/rocrand.cpp | 2 +- .../src/rocrand_scrambled_sobol32_precomputed.cpp | 2 +- .../src/rocrand_scrambled_sobol64_precomputed.cpp | 2 +- .../library/src/rocrand_sobol32_precomputed.cpp | 2 +- .../library/src/rocrand_sobol64_precomputed.cpp | 2 +- projects/rocthrust/CHANGELOG.md | 1 - 16 files changed, 20 insertions(+), 21 deletions(-) diff --git a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/iterator/iterator_wrapper.hpp b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/iterator/iterator_wrapper.hpp index 0234c86c157f..83e4ad8ba1fe 100644 --- a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/iterator/iterator_wrapper.hpp +++ b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/iterator/iterator_wrapper.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2024-2025 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2024-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/util_type.hpp b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/util_type.hpp index 340538bfbd6f..49b756327234 100644 --- a/projects/hipcub/hipcub/include/hipcub/backend/rocprim/util_type.hpp +++ b/projects/hipcub/hipcub/include/hipcub/backend/rocprim/util_type.hpp @@ -1,7 +1,7 @@ /****************************************************************************** * Copyright (c) 2010-2011, Duane Merrill. All rights reserved. * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. - * Modifications Copyright (c) 2021-2025, Advanced Micro Devices, Inc. All rights reserved. + * Modifications Copyright (c) 2021-2026, Advanced Micro Devices, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/projects/rocprim/rocprim/include/rocprim/iterator/zip_iterator.hpp b/projects/rocprim/rocprim/include/rocprim/iterator/zip_iterator.hpp index 8205ef08451a..5d7442747bb6 100644 --- a/projects/rocprim/rocprim/include/rocprim/iterator/zip_iterator.hpp +++ b/projects/rocprim/rocprim/include/rocprim/iterator/zip_iterator.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2025 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h index 14ce4c47bdf2..a4b6b26f5ae4 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_constants.h @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2025 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2022-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h index 6a15f2388463..424d47dd1484 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol32_precomputed.h @@ -1,4 +1,4 @@ -// Copyright (c) 2023-2025 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2023-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h index 8f59a62aa0d9..4bee73755e73 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_constants.h @@ -1,4 +1,4 @@ -// Copyright (c) 2022-2025 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2022-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h index 8f50f0b4d7cf..b2f9073e9976 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_scrambled_sobol64_precomputed.h @@ -1,4 +1,4 @@ -// Copyright (c) 2023-2025 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2023-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h index 2cd04aabde2c..f68465a84a95 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_sobol32_precomputed.h @@ -1,4 +1,4 @@ -// Copyright (c) 2023-2025 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2023-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h b/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h index af4647ca4412..4476a98708a1 100644 --- a/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h +++ b/projects/rocrand/library/include/rocrand/rocrand_sobol64_precomputed.h @@ -1,4 +1,4 @@ -// Copyright (c) 2023-2025 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2023-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocrand/library/src/rng/sobol.hpp b/projects/rocrand/library/src/rng/sobol.hpp index 6e36606bcac6..70fb3410a784 100644 --- a/projects/rocrand/library/src/rng/sobol.hpp +++ b/projects/rocrand/library/src/rng/sobol.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2023-2025 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2023-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -169,11 +169,11 @@ struct generate_sobol_host __shared__ Constant shared_vectors[vector_size]; #else - // NVCC won't accept extern __shared__ Constant shared_bytes[]; - // Thereby we must resort to aliasing. - extern __shared__ - unsigned char shared_bytes[]; - auto* shared_vectors = reinterpret_cast(&shared_bytes[0]); + // NVCC won't accept extern __shared__ Constant shared_bytes[]; + // Thereby we must resort to aliasing. + extern __shared__ + unsigned char shared_bytes[]; + auto* shared_vectors = reinterpret_cast(&shared_bytes[0]); #endif if(thread_idx.x < vector_size) { diff --git a/projects/rocrand/library/src/rocrand.cpp b/projects/rocrand/library/src/rocrand.cpp index fe98f70507ee..ba2751c9f5df 100644 --- a/projects/rocrand/library/src/rocrand.cpp +++ b/projects/rocrand/library/src/rocrand.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2025 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp b/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp index a5327e4c8166..83a8f9e1d9ac 100644 --- a/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_scrambled_sobol32_precomputed.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2023-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp b/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp index ab4d4b536319..b2df12f9ddf3 100644 --- a/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_scrambled_sobol64_precomputed.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2023-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp b/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp index 7bffb9edf991..e0a65409197a 100644 --- a/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_sobol32_precomputed.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2023-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp b/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp index b08e86d56541..05289eff337f 100644 --- a/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp +++ b/projects/rocrand/library/src/rocrand_sobol64_precomputed.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2023-2026 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/projects/rocthrust/CHANGELOG.md b/projects/rocthrust/CHANGELOG.md index a762cc2fcc85..5976e8c0ae0b 100644 --- a/projects/rocthrust/CHANGELOG.md +++ b/projects/rocthrust/CHANGELOG.md @@ -40,7 +40,6 @@ Documentation for rocThrust available at ### Removed * Removed the `GenerateResourceSpec.cmake` script - it is replaced by the added `generate_resource_spec.cpp` code above. -* Removed deprecated variable `test_member_constant`. ## rocThrust 4.2.0 for ROCm 7.2