Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
2e4b7c2
Add clang build matrix
PointKernel Jul 17, 2025
262cd4c
Update
PointKernel Jul 17, 2025
b72b26e
Fix Clang build warnings
PointKernel Jul 17, 2025
4c1de4c
Fix an example warning
PointKernel Jul 18, 2025
2df04f7
Disable benchmark build for clang CI
PointKernel Jul 18, 2025
f27cfc9
Update copyright years
PointKernel Jul 18, 2025
ad63e43
Update GPU archs
PointKernel Jul 18, 2025
042659b
Remove clang test CI
PointKernel Jul 18, 2025
17aeb10
Update
PointKernel Jul 18, 2025
e646932
Updates
PointKernel Jul 21, 2025
f838329
Fix CI success job: add doxygen-check dependency and restore skipped …
PointKernel Jul 23, 2025
9c26e48
Fix CI issues: remove skipped condition from ci-success and add missi…
PointKernel Jul 23, 2025
754620a
Enhance Clang devcontainer following CCCL patterns
PointKernel Jul 23, 2025
cc6b57c
Fix devcontainer files formatting
PointKernel Jul 23, 2025
e905154
Add CI debug output to identify failing jobs
PointKernel Jul 23, 2025
f713010
Enhance CI debug to show matrix job details
PointKernel Jul 23, 2025
ab6a023
Add compute-matrix debugging to identify empty strategy
PointKernel Jul 23, 2025
b8aad27
Fix key generator init
PointKernel Jul 23, 2025
a12d6ea
Remove unused devcontainer
PointKernel Jul 23, 2025
d62a6c3
Revert debugging info
PointKernel Jul 24, 2025
f471095
Cleanups
PointKernel Jul 24, 2025
6c1bc39
Rework
PointKernel Jul 24, 2025
8cf44da
Treat warnings as errors
PointKernel Jul 24, 2025
391c7bf
Debug
PointKernel Jul 24, 2025
73fe74f
Update copyright years
PointKernel Jul 24, 2025
477b965
Revert changes
PointKernel Jul 24, 2025
ef719e2
testing
PointKernel Jul 24, 2025
f56f6ba
Add clang CI back
PointKernel Jul 24, 2025
b148261
Update matrix to avoid empty entry
PointKernel Jul 24, 2025
21ca40b
Remove debug output
PointKernel Jul 24, 2025
e9e6a4f
Updat oldest llvm version
PointKernel Jul 24, 2025
3e6e64c
Add special handling for 12.0 with clang
PointKernel Jul 24, 2025
9b22ccd
Updates
PointKernel Jul 24, 2025
c07375d
Updates
PointKernel Jul 24, 2025
093b646
Update CI matrix infp
PointKernel Jul 24, 2025
4b633c2
Updates
PointKernel Jul 24, 2025
c074eda
Updates
PointKernel Jul 24, 2025
3514076
Clean up CI matrix
PointKernel Jul 24, 2025
961b0ab
Clean up devcontainer
PointKernel Jul 24, 2025
7e00bab
Minor updates
PointKernel Jul 24, 2025
317b874
Update os version for the llvm14 container
PointKernel Jul 24, 2025
d2d2360
Updates
PointKernel Jul 24, 2025
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
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"shutdownAction": "stopContainer",
"image": "rapidsai/devcontainers:25.08-cpp-gcc12-cuda12.8-ubuntu22.04",
"image": "rapidsai/devcontainers:25.10-cpp-gcc11-cuda12.0-ubuntu22.04",
"hostRequirements": {
"gpu": true
},
Expand All @@ -14,10 +14,10 @@
"SCCACHE_BUCKET": "rapids-sccache-devs",
"AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs",
"HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history",
"DEVCONTAINER_NAME": "cuda12.8-gcc12",
"CUCO_CUDA_VERSION": "12.8",
"DEVCONTAINER_NAME": "cuda12.0-gcc11",
"CUCO_CUDA_VERSION": "12.0",
"CUCO_HOST_COMPILER": "gcc",
"CUCO_HOST_COMPILER_VERSION": "12"
"CUCO_HOST_COMPILER_VERSION": "11"
},
"workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent",
Expand All @@ -38,5 +38,5 @@
}
}
},
"name": "cuda12.8-gcc12"
"name": "cuda12.0-gcc11"
}
42 changes: 42 additions & 0 deletions .devcontainer/cuda12.0-llvm14/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"shutdownAction": "stopContainer",
"image": "rapidsai/devcontainers:25.10-cpp-llvm14-cuda12.0-ubuntu20.04",
"hostRequirements": {
"gpu": true
},
"initializeCommand": [
"/bin/bash",
"-c",
"mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}"
],
"containerEnv": {
"SCCACHE_REGION": "us-east-2",
"SCCACHE_BUCKET": "rapids-sccache-devs",
"AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs",
"HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history",
"DEVCONTAINER_NAME": "cuda12.0-llvm14",
"CUCO_CUDA_VERSION": "12.0",
"CUCO_HOST_COMPILER": "llvm",
"CUCO_HOST_COMPILER_VERSION": "14"
},
"workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent",
"mounts": [
"source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent"
],
"customizations": {
"vscode": {
"extensions": [
"llvm-vs-code-extensions.vscode-clangd"
],
"settings": {
"clangd.arguments": [
"--compile-commands-dir=${workspaceFolder}/build/latest"
]
}
}
},
"name": "cuda12.0-llvm14"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"shutdownAction": "stopContainer",
"image": "rapidsai/devcontainers:25.08-cpp-gcc13-cuda12.8-ubuntu22.04",
"image": "rapidsai/devcontainers:25.10-cpp-gcc13-cuda12.9-ubuntu22.04",
"hostRequirements": {
"gpu": true
},
Expand All @@ -14,8 +14,8 @@
"SCCACHE_BUCKET": "rapids-sccache-devs",
"AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs",
"HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history",
"DEVCONTAINER_NAME": "cuda12.8-gcc13",
"CUCO_CUDA_VERSION": "12.8",
"DEVCONTAINER_NAME": "cuda12.9-gcc13",
"CUCO_CUDA_VERSION": "12.9",
"CUCO_HOST_COMPILER": "gcc",
"CUCO_HOST_COMPILER_VERSION": "13"
},
Expand All @@ -38,5 +38,5 @@
}
}
},
"name": "cuda12.8-gcc13"
"name": "cuda12.9-gcc13"
}
42 changes: 42 additions & 0 deletions .devcontainer/cuda12.9-llvm18/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"shutdownAction": "stopContainer",
"image": "rapidsai/devcontainers:25.10-cpp-llvm18-cuda12.9-ubuntu22.04",
"hostRequirements": {
"gpu": true
},
"initializeCommand": [
"/bin/bash",
"-c",
"mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}"
],
"containerEnv": {
"SCCACHE_REGION": "us-east-2",
"SCCACHE_BUCKET": "rapids-sccache-devs",
"AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs",
"HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history",
"DEVCONTAINER_NAME": "cuda12.9-llvm18",
"CUCO_CUDA_VERSION": "12.9",
"CUCO_HOST_COMPILER": "llvm",
"CUCO_HOST_COMPILER_VERSION": "18"
},
"workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent",
"mounts": [
"source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent",
"source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent"
],
"customizations": {
"vscode": {
"extensions": [
"llvm-vs-code-extensions.vscode-clangd"
],
"settings": {
"clangd.arguments": [
"--compile-commands-dir=${workspaceFolder}/build/latest"
]
}
}
},
"name": "cuda12.9-llvm18"
}
8 changes: 4 additions & 4 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"shutdownAction": "stopContainer",
"image": "rapidsai/devcontainers:25.08-cpp-gcc13-cuda12.8-ubuntu22.04",
"image": "rapidsai/devcontainers:25.10-cpp-gcc13-cuda12.9-ubuntu22.04",
"hostRequirements": {
"gpu": true
},
Expand All @@ -14,8 +14,8 @@
"SCCACHE_BUCKET": "rapids-sccache-devs",
"AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs",
"HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history",
"DEVCONTAINER_NAME": "cuda12.8-gcc13",
"CUCO_CUDA_VERSION": "12.8",
"DEVCONTAINER_NAME": "cuda12.9-gcc13",
"CUCO_CUDA_VERSION": "12.9",
"CUCO_HOST_COMPILER": "gcc",
"CUCO_HOST_COMPILER_VERSION": "13"
},
Expand All @@ -38,5 +38,5 @@
}
}
},
"name": "cuda12.8-gcc13"
"name": "cuda12.9-gcc13"
}
5 changes: 2 additions & 3 deletions .github/workflows/dispatch-build-and-test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -23,8 +23,7 @@ on:

jobs:
# Using a matrix to dispatch to the build-and-test reusable workflow for each build configuration
# ensures that the build/test steps can overlap across different configurations. For example,
# the build step for CUDA 12.1 + gcc 9.3 can run at the same time as the test step for CUDA 11.0 + clang 11.
# ensures that the build/test steps can overlap across different configurations.
build_and_test:
name: ${{matrix.cpu}}
uses: ./.github/workflows/build-and-test.yml
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#=============================================================================
cmake_minimum_required(VERSION 3.23.1 FATAL_ERROR)

set(rapids-cmake-version 25.08)
set(rapids-cmake-version 25.10)
if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/CUCO_RAPIDS.cmake)
file(DOWNLOAD
https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-${rapids-cmake-version}/RAPIDS.cmake
Expand Down
4 changes: 2 additions & 2 deletions README.md

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion benchmarks/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@ function(ConfigureBench BENCH_NAME)
target_include_directories(${BENCH_NAME} PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}")
target_compile_options(${BENCH_NAME} PRIVATE --compiler-options=-Wall --compiler-options=-Wextra
-Wno-deprecated-gpu-targets --expt-extended-lambda -Xcompiler -Wno-subobject-linkage -lineinfo)
--compiler-options=-Werror -Wno-deprecated-gpu-targets --expt-extended-lambda)
# Add GCC-specific warning suppression only for GCC
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_compile_options(${BENCH_NAME} PRIVATE -Xcompiler -Wno-subobject-linkage)
endif()
target_link_libraries(${BENCH_NAME} PRIVATE
nvbench::main
pthread
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/dynamic_map/contains_bench.cu
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023-2024, NVIDIA CORPORATION.
* Copyright (c) 2023-2025, NVIDIA CORPORATION.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -43,7 +43,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> dynamic_map_contains(

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/dynamic_map/erase_bench.cu
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023-2024, NVIDIA CORPORATION.
* Copyright (c) 2023-2025, NVIDIA CORPORATION.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -43,7 +43,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> dynamic_map_erase(

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/dynamic_map/find_bench.cu
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023-2024, NVIDIA CORPORATION.
* Copyright (c) 2023-2025, NVIDIA CORPORATION.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -43,7 +43,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> dynamic_map_find(

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/dynamic_map/insert_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> dynamic_map_insert(

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/dynamic_map/retrieve_all_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> dynamic_map_retrieve_all(

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
8 changes: 4 additions & 4 deletions benchmarks/hyperloglog/hyperloglog_bench.cu
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2024, NVIDIA CORPORATION.
* Copyright (c) 2024-2025, NVIDIA CORPORATION.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -58,7 +58,7 @@ template <class Estimator, class Dist>

thrust::device_vector<T> items(num_items);

key_generator gen;
key_generator gen{};
Estimator estimator{cuco::sketch_size_kb(sketch_size_kb)};
double error_sum = 0;
for (std::size_t i = 0; i < num_samples; ++i) {
Expand Down Expand Up @@ -97,7 +97,7 @@ void hyperloglog_e2e(nvbench::state& state, nvbench::type_list<T, Dist>)

thrust::device_vector<T> items(num_items);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), items.begin(), items.end());

estimator_type estimator{cuco::sketch_size_kb(sketch_size_kb)};
Expand Down Expand Up @@ -126,7 +126,7 @@ void hyperloglog_add(nvbench::state& state, nvbench::type_list<T, Dist>)

thrust::device_vector<T> items(num_items);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), items.begin(), items.end());

state.add_element_count(num_items);
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/static_map/contains_bench.cu
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2024, NVIDIA CORPORATION.
* Copyright (c) 2021-2025, NVIDIA CORPORATION.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -45,7 +45,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> static_map_contains(

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/static_map/erase_bench.cu
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2024, NVIDIA CORPORATION.
* Copyright (c) 2021-2025, NVIDIA CORPORATION.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -45,7 +45,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> static_map_erase(

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/static_map/find_bench.cu
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021-2024, NVIDIA CORPORATION.
* Copyright (c) 2021-2025, NVIDIA CORPORATION.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -45,7 +45,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> static_map_find(

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/static_map/insert_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> static_map_insert(

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/static_map/insert_or_apply_bench.cu
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023-2024, NVIDIA CORPORATION.
* Copyright (c) 2023-2025, NVIDIA CORPORATION.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -46,7 +46,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> static_map_insert_or_appl

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/static_multimap/count_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> static_multimap_count(

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/static_multimap/insert_bench.cu
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ std::enable_if_t<(sizeof(Key) == sizeof(Value)), void> static_multimap_insert(

thrust::device_vector<Key> keys(num_keys);

key_generator gen;
key_generator gen{};
gen.generate(dist_from_state<Dist>(state), keys.begin(), keys.end());

thrust::device_vector<pair_type> pairs(num_keys);
Expand Down
Loading
Loading