cub/benchmarks/bench/radix_sort/policy_selector.h refers to CUB internals that were moved into detail namespaces, so every radix sort tuning variant target fails to compile. The base targets build fine (the affected code is only reached in variant builds), and CI never builds tuning variants, so this is invisible upstream but breaks any tuning campaign for DeviceRadixSort (both keys.cu and pairs.cu include this header).
Observed at aeaa386.
Reproduction
cmake .. -DCUB_ENABLE_BENCHMARKS=YES -DCUB_ENABLE_TUNING=YES -DCCCL_ENABLE_THRUST=OFF \
-DCCCL_ENABLE_LIBCUDACXX=OFF -DCCCL_ENABLE_CUB=ON -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CUDA_ARCHITECTURES=native
# emulate what the tuning harness generates:
cat > cub.bench.radix_sort.keys.variant.h << 'EOF'
#pragma once
#define TUNE_ITEMS_PER_THREAD 7
#define TUNE_THREADS_PER_BLOCK 128
#define TUNE_T int32_t
#define TUNE_OffsetT int32_t
EOF
cmake --build . --target cub.bench.radix_sort.keys.variant
related @bernhardmgruber
cub/benchmarks/bench/radix_sort/policy_selector.hrefers to CUB internals that were moved intodetailnamespaces, so every radix sort tuning variant target fails to compile. The base targets build fine (the affected code is only reached in variant builds), and CI never builds tuning variants, so this is invisible upstream but breaks any tuning campaign forDeviceRadixSort(bothkeys.cuandpairs.cuinclude this header).Observed at aeaa386.
Reproduction
cmake .. -DCUB_ENABLE_BENCHMARKS=YES -DCUB_ENABLE_TUNING=YES -DCCCL_ENABLE_THRUST=OFF \ -DCCCL_ENABLE_LIBCUDACXX=OFF -DCCCL_ENABLE_CUB=ON -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CUDA_ARCHITECTURES=native # emulate what the tuning harness generates: cat > cub.bench.radix_sort.keys.variant.h << 'EOF' #pragma once #define TUNE_ITEMS_PER_THREAD 7 #define TUNE_THREADS_PER_BLOCK 128 #define TUNE_T int32_t #define TUNE_OffsetT int32_t EOF cmake --build . --target cub.bench.radix_sort.keys.variantrelated @bernhardmgruber