fix: CUB_NS_QUALIFIER for wrapped namespace + drop _CCCL_COMPILER_GCC

CoreX clang++ 不是 GCC,-D_CCCL_COMPILER_GCC=1 和 CCCL 自己的
compiler detection 冲突。

CUB_WRAPPED_NAMESPACE=cccl_preload 使得命名空间变成 cccl_preload::cub,
用 CUB_NS_QUALIFIER 宏自动解析正确的命名空间。
This commit is contained in:
dylanyunlon
2026-08-13 09:31:45 +00:00
parent 8d6f9eaeb0
commit 0ac118911d
2 changed files with 5 additions and 4 deletions

View File

@@ -72,8 +72,7 @@ COMMON_FLAGS=(
# Suppress CCCL warnings that don't affect correctness
-Wno-unused-function
-Wno-unknown-pragmas
# CUB needs these for non-NVCC compilers
-D_CCCL_COMPILER_GCC=1
# Non-NVCC: disable arch magic, wrap namespace to avoid ODR conflicts
-D__CUDA_ARCH_LIST__=700
-DCUB_DISABLE_NAMESPACE_MAGIC
-DCUB_WRAPPED_NAMESPACE=cccl_preload

View File

@@ -41,8 +41,10 @@ static constexpr unsigned int ALLOC_MAX_BIN = 32; /* 4 GB */
static constexpr size_t ALLOC_MAX_CACHED = (size_t)8 * 1024 * 1024 * 1024; /* 8GB */
/* ---- Global allocator singleton ---- */
static cub::CachingDeviceAllocator& get_allocator() {
static cub::CachingDeviceAllocator instance(
using CubAllocator = CUB_NS_QUALIFIER::CachingDeviceAllocator;
static CubAllocator& get_allocator() {
static CubAllocator instance(
ALLOC_BIN_GROWTH,
ALLOC_MIN_BIN,
ALLOC_MAX_BIN,