Skip to content
Open
Show file tree
Hide file tree
Changes from 108 commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
6334abe
Bump main to 2.9.0.
matyas-streamhpc Oct 9, 2025
1b29c61
Bump main to 3.0.0.
matyas-streamhpc Oct 9, 2025
6e278ad
Require C++17 for compiling hipCUB
matyas-streamhpc Oct 9, 2025
8f719d8
Drop `BinaryFlip` operator
matyas-streamhpc Oct 9, 2025
04b66a2
Deprecate `hipcub::Swap`
matyas-streamhpc Oct 13, 2025
bc64f0b
Drop hipCUB APIs with a debug_synchronous parameter
matyas-streamhpc Oct 15, 2025
9e10195
Update deprecated warning for hipcub::DivideAndRoundUp
matyas-streamhpc Oct 27, 2025
ff14e19
Add `hip::std` support
matyas-streamhpc Nov 24, 2025
a1e67e3
Adds support for large number of items and large number of segments t…
matyas-streamhpc Oct 27, 2025
bdbfba7
Deprecate hipcub::min and hipcub:max and replace internal uses of std…
matyas-streamhpc Dec 5, 2025
b48d6c9
Remove deprecated hipcub::min and hipcub::max
matyas-streamhpc Dec 5, 2025
c86f6a0
Replace rocprim counting iterator to thrust for nvcc compatibility
matyas-streamhpc Oct 30, 2025
712a64b
Deprecate and replace `HIPCUB_IS_INT128_ENABLED`
matyas-streamhpc Nov 3, 2025
8d5cf87
Adds support for large num items to ``DeviceMerge``
matyas-streamhpc Nov 3, 2025
ec5d13f
Remove ``DeviceSpmv``
matyas-streamhpc Nov 3, 2025
f84d66f
Adds support for large number of segments to DeviceSegmentedReduce
matyas-streamhpc Dec 4, 2025
dfaaa89
Remove ``LEGACY_PTX_ARCH``
matyas-streamhpc Nov 3, 2025
ff9736e
Fix hipCUB trait deprecations
matyas-streamhpc Nov 14, 2025
7e435cf
Drop deprecated entities from util_type
matyas-streamhpc Nov 13, 2025
86074bb
Drop ``GridBarrier``
matyas-streamhpc Nov 13, 2025
fe0b4f0
Replace pre-c++17 traits with modern ones
matyas-streamhpc Nov 13, 2025
0a9561b
Replace ``HIPCUB_IF_CONSTEXPR``
matyas-streamhpc Nov 13, 2025
221328e
Drop small deprecated entites
matyas-streamhpc Nov 13, 2025
a66efa1
Remove deprecated iterators
matyas-streamhpc Nov 13, 2025
6355a79
Add `__int128`, `__half` and `hip_bfloat16` overloads to `to_bits` in…
matyas-streamhpc Nov 17, 2025
9a91f43
Fix add implicit conversion for read access for `conditional_discard_…
matyas-streamhpc Nov 24, 2025
ce90eaf
Drop deprecated features from util_ptx.cuh
matyas-streamhpc Dec 1, 2025
2e40dd8
Fix typo in TEST_UTILS_INCLUDE_GUARD
matyas-streamhpc Dec 2, 2025
0e6c33e
Use hip::std limits
matyas-streamhpc Dec 1, 2025
330befa
Move iterator traits to hip::std::iterator_traits
matyas-streamhpc Dec 9, 2025
c6c72bf
Avoid int overflow during multiplication
matyas-streamhpc Dec 3, 2025
5533866
Remove `HIPCUB_MIN` and `HIPCUB_MAX`
matyas-streamhpc Dec 3, 2025
b061442
Minimize usage of `hipcub::Traits`
matyas-streamhpc Dec 8, 2025
d4afe09
Drop deprecated CUB macros
matyas-streamhpc Dec 3, 2025
e7d2dc1
Update mdspan support
matyas-streamhpc Dec 3, 2025
20e875f
Replace util_arch.cuh macros with inline constexpr variables
matyas-streamhpc Dec 3, 2025
2d76d93
Use `_CCCL_PRAGMA_UNROLL_FULL()` and `_CCCL_PRAGMA_NOUNROLL()`
matyas-streamhpc Dec 3, 2025
7b185a8
Allow rapids to avoid unrolling some loops in sort
matyas-streamhpc Dec 3, 2025
a679a27
Adds support for large num items to DeviceMerge
matyas-streamhpc Dec 3, 2025
53749bd
Adds support for large number of buffers to `DeviceCpy::Batched` and …
matyas-streamhpc Dec 3, 2025
269fcbf
Fix hip std namespace
matyas-streamhpc Dec 3, 2025
e084472
Increase test coverage for hipCUB batched device copy and add fix for…
matyas-streamhpc Dec 10, 2025
5fe566b
fix(hipcub): fix broken bitwise representation derivation for extende…
Naraenda Dec 16, 2025
ae865bd
Resolve "Fix is_floating_point value in hipCUB/rocPRIM"
cenxuantian Dec 18, 2025
b5c514a
Update copyright year
matyas-streamhpc Jan 5, 2026
c575d71
Update CHANGELOG
matyas-streamhpc Jan 26, 2026
3929408
Fix clang format
matyas-streamhpc Jan 26, 2026
58ae8ca
Update counting, discard and transform iterator CUB backend for tests
matyas-streamhpc Oct 30, 2025
0e8e87f
Fix assert_near
matyas-streamhpc Jan 14, 2026
67aa414
Fix is_floating_point_v error for half/bfloat16 with CUDA
matyas-streamhpc Jan 7, 2026
045f692
Replace util_arch.cuh macros with inline constexpr variables
matyas-streamhpc Jan 7, 2026
67fda6a
Add cuda headers
matyas-streamhpc Jan 7, 2026
80f7801
Fix device histogram
matyas-streamhpc Jan 7, 2026
87a1424
Fix to_bits
matyas-streamhpc Jan 8, 2026
1f0ccd5
Fix ForEachInExtentsAPI test
matyas-streamhpc Jan 8, 2026
b617dfa
Fix device_test_enabled_for_warp_size_v for CUDA
matyas-streamhpc Jan 8, 2026
5304a56
Fix device_reduce CUB backend
matyas-streamhpc Jan 9, 2026
ee2f24e
Fix cub util_type include
matyas-streamhpc Jan 14, 2026
7380c48
Update WarpExchange rocPRIM backend for CUB compatibility
matyas-streamhpc Jan 15, 2026
3fcd617
Fix for ArgMax/Min
matyas-streamhpc Jan 9, 2026
27b56d2
Fix type in test
matyas-streamhpc Jan 20, 2026
c65b9ff
Fix device select UniqueByKey
matyas-streamhpc Jan 20, 2026
c51d76f
Fix clang format
matyas-streamhpc Jan 20, 2026
ae5c051
Fix type in benchmark segmented sort
matyas-streamhpc Jan 20, 2026
3172f47
Fix types in segmented sort
matyas-streamhpc Jan 20, 2026
491a62d
Device segmented sort - support large indices
matyas-streamhpc Jan 20, 2026
edffcb5
Patch thread operators - add missing headers
matyas-streamhpc Jan 7, 2026
f5a456c
Patch thread operators - add cub backend
matyas-streamhpc Jan 7, 2026
114d47a
Patch thread operators - fix
matyas-streamhpc Jan 22, 2026
9b1e23b
Fix types and formatting in generate resource spec
matyas-streamhpc Jan 26, 2026
6e4b449
Remove internal `hipcub::Division` usage
matyas-streamhpc Jan 28, 2026
18170f8
Internal removal of `hipcub::Inequality`
matyas-streamhpc Jan 28, 2026
27b09d2
Fix sort keys over 4GB
matyas-streamhpc Jan 28, 2026
e185eb8
Fix device radix sort large sizes test
matyas-streamhpc Jan 28, 2026
42688d4
Fix device reduce ArgMin/Max CUB backend
matyas-streamhpc Feb 11, 2026
696d9fb
Fix block merge sort default value management for CUB backend compati…
matyas-streamhpc Feb 17, 2026
dd0380f
Fix block radix rank test for CUB backend
matyas-streamhpc Feb 19, 2026
085a90b
Fix static linking for Windows
matyas-streamhpc Feb 19, 2026
21e5537
Fix Windows build by forcing static MSVC runtime to match vcpkg stati…
matyas-streamhpc Feb 20, 2026
41dc251
Fix Windows HIP cannot support allocations over 4 GiB
matyas-streamhpc Feb 23, 2026
7666541
Remove internal ``hipcub::Difference`` usage
matyas-streamhpc Feb 26, 2026
f67e0a5
Remove internal ``hipcub::InequalityWrapper`` usage
matyas-streamhpc Feb 26, 2026
e38fb41
Remove internal ``hipcub::Equality`` usage
matyas-streamhpc Feb 26, 2026
4a9dd08
Remove internal ``hipcub::Max`` usage
matyas-streamhpc Feb 26, 2026
6ca32ed
Remove internal usage of ``hipcub::Sum``
matyas-streamhpc Mar 2, 2026
41b261a
Remove headers that include internally used thread operators
matyas-streamhpc Mar 5, 2026
433c2e3
Deprecate thread operators
matyas-streamhpc Mar 6, 2026
ca164b7
Remove tests of deprecated thread operators
matyas-streamhpc Mar 9, 2026
f529d58
Deprecate and replace `hipcub::BFE`
matyas-streamhpc Mar 9, 2026
7a62537
Fix libhipcxx version check
matyas-streamhpc Mar 9, 2026
8c8dd1f
Add sort_last for custom test type
matyas-streamhpc Apr 7, 2026
4ce2f2d
Update device reduce test cases
matyas-streamhpc Apr 8, 2026
f548a7f
Add numeric_limits support for custom test types
matyas-streamhpc Apr 8, 2026
19939ba
Skip unsupported bfloat16/half histogram tests
matyas-streamhpc Apr 16, 2026
a1236e6
feat(hipcub): add infrastructure to expose the compatible cccl version
Naraenda May 20, 2026
92a0d72
fix(hipcub): Fix address sanitizer test header for CUDA
matyas-streamhpc Jul 9, 2026
c86f56c
feat(hipcub): use primbench in benchmark_device_batch_copy.cpp
MyNameIsTrez Jul 9, 2026
e5f3a4c
feat(hipcub): Google Benchmark is no longer a dependency
MyNameIsTrez Jul 9, 2026
c7fddcb
feat(hipcub): use primbench in 6 block algorithms
MyNameIsTrez Jul 9, 2026
4f2f28f
feat(hipcub): use primbench in 5 block algorithms
MyNameIsTrez Jul 9, 2026
05aa139
feat(hipcub): use primbench in 5 device algorithms
MyNameIsTrez Jul 9, 2026
59644ed
feat(hipcub): use primbench in 5 device algorithms
MyNameIsTrez Jul 9, 2026
d4f0dcb
feat(hipcub): use primbench in 7 device algorithms
MyNameIsTrez Jul 9, 2026
ee2ae71
feat(hipcub): use primbench in 6 warp algorithms
MyNameIsTrez Jul 9, 2026
2088805
chore(hipcub): remove misleading comments
MyNameIsTrez Jul 13, 2026
95c300b
fix(hipcub): hipMalloc allocated the wrong size
MyNameIsTrez Jul 13, 2026
bc41ee2
Merge branch 'develop' into users/Nemi26/use-primbench-in-hipcub
Naraenda Jul 14, 2026
e965109
fix(hipcub): use int64_t instead of long long
MyNameIsTrez Jul 16, 2026
0427ff4
feat(hipcub): add run_benchmarks.py
MyNameIsTrez Jul 16, 2026
08b0136
fix(hipcub): replace usage of uint64_t with unsigned long long
MyNameIsTrez Jul 22, 2026
d07f10f
fix(hipcub): remove includes that break portability
MyNameIsTrez Jul 22, 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
6 changes: 6 additions & 0 deletions projects/hipcub/.clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -167,4 +167,10 @@ Macros:
- HIPCUB_DETAIL_DEPRECATED_DEBUG_SYNCHRONOUS=[[DETAIL_DEPRECATED_DEBUG_SYNCHRONOUS___]]
BreakAfterAttributes: Always

WhitespaceSensitiveMacros: [
'HIPCUB_HAS_INCLUDE',
'_HIPCUB_LIBCXX_INCLUDE',
'_HIPCUB_STD_INCLUDE'
]

---
29 changes: 29 additions & 0 deletions projects/hipcub/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,35 @@

Full documentation for hipCUB is available at [https://rocm.docs.amd.com/projects/hipCUB/en/latest/](https://rocm.docs.amd.com/projects/hipCUB/en/latest/).

## hipCUB-5.0.0 for ROCm 10.0

### Added

* Added `::hip::std` support.

### Changed

* Changed `CCCL_MINIMUM_VERSION` to `3.0.0` to align with CUB.
* Add support for large num_items `DeviceMerge` and `DeviceSegmentedSort`.
* Replace `#pragma unroll` by `_CCCL_PRAGMA_UNROLL_FULL()` and `_CCCL_PRAGMA_NOUNROLL()` by `_CCCL_PRAGMA_NOUNROLL()`.
* Add `_CCCL_SORT_MAYBE_UNROLL()` in block merge sort and thread sort.
* Update `WarpExchange` template parameters for CUB compatibility.
* Benchmarking now uses primbench for its benchmarks instead of Google Benchmark.
* See `shared/primbench/README.md` for its documentation.

### Removed

* Removed `hipcub::BaseTraits::CATEGORY`, `hipcub::BaseTraits::nullptr_TYPE` and `hipcub::BaseTraits::PRIMITIVE`.
* Removed `ConstantInputIterator`, `CountingInputIterator`, `DiscardOutputIterator` and `TransformInputIterator` which were deprecated in hipCUB-4.1.0.
* Removed `DeviceSpmv`, which was removed from CUB after CCCL's 2.8.0 release. Use `hipSPARSE` or `rocSPARSE` libraries instead.
* Removed `GridBarrier`.
* Removed `HIPCUB_MIN`, `HIPCUB_MAX`, `HIPCUB_QUOTIENT_FLOOR`, `HIPCUB_QUOTIENT_CEILING`, `HIPCUB_ROUND_UP_NEAREST` and `HIPCUB_ROUND_DOWN_NEAREST` which were deprecated in hipCUB-4.1.0.
* Removed `LEGACY_PTX_ARCH`.
* Removed `hipcub:max` and `hipcub:min`, which were deprecated. Use `hip::std::max` and `hip::std::min` instead.
* Deprecated `hipcub::Swap`, use `rocprim::swap` instead.
* Deprecated `HIPCUB_IS_INT128_ENABLED`, use `_CCCL_HAS_INT128()` instead.
* Deprecated `hipcub::Equality`, `hipcub::Inequality`, `hipcub::InequalityWrapper`, `hipcub::Sum`, `hipcub::Difference`, `hipcub::Division`, `hipcub::Max` and `hipcub::Min` operators. Use `hip::std::equal_to`, `hip::std::not_equal_to`, `hip::std::plus`, `hip::std::minus`, `hip::std::divides`, `hip::maximum` and `hip:minimum` operators instead.

## hipCUB 4.5.0 for ROCm 7.14

### Added
Expand Down
16 changes: 7 additions & 9 deletions projects/hipcub/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# MIT License
#
# 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
Expand Down Expand Up @@ -35,11 +35,11 @@ endif()
# Update these variables at release time
#
# Set the library version
set(VERSION_STRING "4.5.0")
set(VERSION_STRING "5.0.0")
# Set the CCCL-compatible version.
set(HIPCUB_CCCL_VERSION_MAJOR 2)
set(HIPCUB_CCCL_VERSION_MINOR 8)
set(HIPCUB_CCCL_VERSION_PATCH 2)
set(HIPCUB_CCCL_VERSION_MAJOR 3)
set(HIPCUB_CCCL_VERSION_MINOR 0)
set(HIPCUB_CCCL_VERSION_PATCH 3)
# Set the minimum required rocPRIM version
set(MIN_ROCPRIM_PACKAGE_VERSION "4.1.0" CACHE STRING "Minimum version of rocPRIM to search for when ROCPRIM_FETCH_METHOD is set to PACKAGE.")
# Set download branch for dependency rocPRIM
Expand All @@ -59,10 +59,8 @@ endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

if (CMAKE_CXX_STANDARD EQUAL 14)
message(WARNING "C++14 will be deprecated in the next major release")
elseif(NOT CMAKE_CXX_STANDARD EQUAL 17)
message(FATAL_ERROR "Only C++14 and C++17 are supported")
if(NOT CMAKE_CXX_STANDARD EQUAL 17)
message(FATAL_ERROR "Only C++17 are supported")
endif()

# Set HIP flags
Expand Down
22 changes: 9 additions & 13 deletions projects/hipcub/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ environment, hipCUB uses the rocPRIM library as the backend.
Optional:

* [GoogleTest](https://github.com/google/googletest)
* [Google Benchmark](https://github.com/google/benchmark)

GoogleTest and Google Benchmark are automatically downloaded and built by the CMake script.
* This is automatically downloaded and built by the CMake script
* [AMD SMI](https://github.com/ROCm/amdsmi)
* Required only for benchmarks. Building benchmarks is off by default.

## Build and install

Expand Down Expand Up @@ -69,7 +69,7 @@ mkdir build; cd build
# BUILD_TEST - OFF by default,
# BUILD_BENCHMARK - OFF by default.
# ROCPRIM_FETCH_METHOD - One of PACKAGE (default), DOWNLOAD, and MONOREPO. See below for a description of each.
# EXTERNAL_DEPS_FORCE_DOWNLOAD - OFF by default, forces download for non-ROCm dependencies (eg. Google Test / Benchmark).
# EXTERNAL_DEPS_FORCE_DOWNLOAD - OFF by default, forces download for non-ROCm dependencies (e.g., Google Test).
# DOWNLOAD_CUB - OFF by default, (Nvidia CUB backend only) forces download of CUB instead of searching for an installed package.
# BUILD_OFFLOAD_COMPRESS - ON by default, compresses device code to reduce the size of the generated binary.
# BUILD_EXAMPLE - OFF by default, builds examples.
Expand Down Expand Up @@ -253,24 +253,20 @@ ctest --resource-spec-file <path-to-your-resources.json> --parallel <number-of-j

## Running benchmarks

hipCUB uses [primbench](https://github.com/ROCm/rocm-libraries/tree/develop/shared/primbench) for benchmarking; see its [command-line options](https://github.com/ROCm/rocm-libraries/tree/develop/shared/primbench#command-line-options) for advanced usage.

```shell
# Go to hipCUB build directory
cd projects/hipcub; cd build

# To run benchmark for warp functions:
# Further option can be found using --help
# [] Fields are optional
./benchmark/benchmark_warp_<function_name> [--size <size>] [--trials <trials>]
./benchmark/benchmark_warp_<function_name>

# To run benchmark for block functions:
# Further option can be found using --help
# [] Fields are optional
./benchmark/benchmark_block_<function_name> [--size <size>] [--trials <trials>]
./benchmark/benchmark_block_<function_name>

# To run benchmark for device functions:
# Further option can be found using --help
# [] Fields are optional
./benchmark/benchmark_device_<function_name> [--size <size>] [--trials <trials>]
./benchmark/benchmark_device_<function_name>
```

## Building the documentation locally
Expand Down
92 changes: 59 additions & 33 deletions projects/hipcub/benchmark/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# MIT License
#
# Copyright (c) 2020-2025 Advanced Micro Devices, Inc. All rights reserved.
# Copyright (c) 2020-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
Expand All @@ -20,52 +20,79 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

# Force CMake to find Git immediately so ${GIT_EXECUTABLE} is populated
find_package(Git REQUIRED)

# Get the current branch, or fall back to DETACHED
execute_process(
COMMAND ${GIT_EXECUTABLE} symbolic-ref -q --short HEAD
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
OUTPUT_VARIABLE BRANCH_NAME
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(BRANCH_NAME STREQUAL "")
set(BRANCH_NAME "DETACHED")
endif()

# Get the short commit hash
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
OUTPUT_VARIABLE COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)

function(add_hipcub_benchmark BENCHMARK_SOURCE)
get_filename_component(BENCHMARK_TARGET ${BENCHMARK_SOURCE} NAME_WE)

if(USE_HIPCXX)
set_source_files_properties(${BENCHMARK_SOURCE} PROPERTIES LANGUAGE HIP)
endif()

add_executable(${BENCHMARK_TARGET} ${BENCHMARK_SOURCE})
target_include_directories(${BENCHMARK_TARGET} SYSTEM BEFORE
PUBLIC
"$<BUILD_INTERFACE:${GOOGLEBENCHMARK_ROOT}/include>"
)
target_link_libraries(${BENCHMARK_TARGET}
PRIVATE
benchmark::benchmark
hipcub
)
if((HIP_COMPILER STREQUAL "nvcc"))
target_link_libraries(${BENCHMARK_TARGET} PRIVATE hipcub)

target_compile_definitions(${BENCHMARK_TARGET} PUBLIC BRANCH_NAME="${BRANCH_NAME}")
target_compile_definitions(${BENCHMARK_TARGET} PUBLIC COMMIT_HASH="${COMMIT_HASH}")

target_include_directories(${BENCHMARK_TARGET} PRIVATE ../../../shared/primbench)

if(WIN32)
target_compile_definitions(${BENCHMARK_TARGET} PRIVATE PRIMBENCH_NO_MONITORING)
elseif((HIP_COMPILER STREQUAL "nvcc"))
set_property(TARGET ${BENCHMARK_TARGET} PROPERTY CUDA_STANDARD 17)
set_source_files_properties(${BENCHMARK_SOURCE} PROPERTIES LANGUAGE CUDA)
target_compile_options(${BENCHMARK_TARGET}
PRIVATE
$<$<COMPILE_LANGUAGE:CUDA>:--expt-extended-lambda>
)
target_link_libraries(${BENCHMARK_TARGET}
PRIVATE
hipcub_cub
$<$<COMPILE_LANGUAGE:CUDA>:--expt-extended-lambda>
)
target_link_libraries(${BENCHMARK_TARGET} PRIVATE hipcub_cub nvidia-ml)
else()
target_link_libraries(${BENCHMARK_TARGET} PRIVATE amd_smi)
endif()

set_target_properties(${BENCHMARK_TARGET}
PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/benchmark"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/benchmark"
)
rocm_install(TARGETS ${BENCHMARK_TARGET} COMPONENT benchmarks)
if (WIN32 AND NOT DEFINED DLLS_COPIED)

if(WIN32 AND NOT DEFINED DLLS_COPIED)
set(DLLS_COPIED "YES")
set(DLLS_COPIED ${DLLS_COPIED} PARENT_SCOPE)

# for now adding in all .dll as dependency chain is not cmake based on win32
file( GLOB third_party_dlls
LIST_DIRECTORIES ON
CONFIGURE_DEPENDS
${HIP_DIR}/bin/*.dll
${CMAKE_SOURCE_DIR}/rtest.*
file(GLOB third_party_dlls
LIST_DIRECTORIES ON
CONFIGURE_DEPENDS
${HIP_DIR}/bin/*.dll
${CMAKE_SOURCE_DIR}/rtest.*
)
foreach( file_i ${third_party_dlls})
add_custom_command( TARGET ${BENCHMARK_TARGET} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${file_i} ${PROJECT_BINARY_DIR}/benchmark )
endforeach( file_i )
endif()

foreach(file_i ${third_party_dlls})
add_custom_command(TARGET ${BENCHMARK_TARGET} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${file_i} ${PROJECT_BINARY_DIR}/benchmark)
endforeach(file_i)
endif()
endfunction()

# ****************************************************************************
Expand All @@ -76,34 +103,33 @@ add_hipcub_benchmark(benchmark_block_discontinuity.cpp)
add_hipcub_benchmark(benchmark_block_exchange.cpp)
add_hipcub_benchmark(benchmark_block_histogram.cpp)
add_hipcub_benchmark(benchmark_block_merge_sort.cpp)
add_hipcub_benchmark(benchmark_block_radix_sort.cpp)
add_hipcub_benchmark(benchmark_block_radix_rank.cpp)
add_hipcub_benchmark(benchmark_block_radix_sort.cpp)
add_hipcub_benchmark(benchmark_block_reduce.cpp)
add_hipcub_benchmark(benchmark_block_run_length_decode.cpp)
add_hipcub_benchmark(benchmark_block_scan.cpp)
add_hipcub_benchmark(benchmark_block_shuffle.cpp)
add_hipcub_benchmark(benchmark_device_adjacent_difference.cpp)
add_hipcub_benchmark(benchmark_device_batch_copy.cpp)
add_hipcub_benchmark(benchmark_device_batch_memcpy.cpp)
add_hipcub_benchmark(benchmark_device_for.cpp)
add_hipcub_benchmark(benchmark_device_for_each.cpp)
add_hipcub_benchmark(benchmark_device_histogram.cpp)
add_hipcub_benchmark(benchmark_device_memory.cpp)
add_hipcub_benchmark(benchmark_device_merge.cpp)
add_hipcub_benchmark(benchmark_device_merge_sort.cpp)
add_hipcub_benchmark(benchmark_device_merge.cpp)
add_hipcub_benchmark(benchmark_device_partition.cpp)
add_hipcub_benchmark(benchmark_device_radix_sort.cpp)
add_hipcub_benchmark(benchmark_device_reduce_by_key.cpp)
add_hipcub_benchmark(benchmark_device_reduce.cpp)
add_hipcub_benchmark(benchmark_device_run_length_encode.cpp)
add_hipcub_benchmark(benchmark_device_scan.cpp)
add_hipcub_benchmark(benchmark_device_segmented_sort.cpp)
add_hipcub_benchmark(benchmark_device_segmented_radix_sort.cpp)
add_hipcub_benchmark(benchmark_device_segmented_reduce.cpp)
add_hipcub_benchmark(benchmark_device_segmented_sort.cpp)
add_hipcub_benchmark(benchmark_device_select.cpp)
add_hipcub_benchmark(benchmark_device_spmv.cpp)
add_hipcub_benchmark(benchmark_warp_exchange.cpp)
add_hipcub_benchmark(benchmark_warp_load.cpp)
add_hipcub_benchmark(benchmark_warp_merge_sort.cpp)
add_hipcub_benchmark(benchmark_warp_reduce.cpp)
add_hipcub_benchmark(benchmark_warp_scan.cpp)
add_hipcub_benchmark(benchmark_warp_store.cpp)
add_hipcub_benchmark(benchmark_warp_merge_sort.cpp)
Loading
Loading