Skip to content

CCCL 2.x ‐ CCCL 3.0 migration guide

Bernhard Manfred Gruber edited this page Mar 4, 2025 · 19 revisions

The CCCL team plans breaking changes carefully and only conducts them at major releases. The CCCL 2.8 release came with many deprecations to prepare for the breaking changes conducted in CCCL 3.0. This page summarizes the changes and helps migrating from CCCL 2.x to CCCL 3.0.

See also the list of all deprecated APIs in CCCL 2.8 and the list of breaking changes in CCCL 3.0.

Removals

  • thrust::optional<T>: Use cuda::std::optional<T> instead.
  • CUB_MAX(a, b): Use the cuda::std::max(a, b) function instead
  • CUB_MIN(a, b): Use the cuda::std::min(a, b) function instead
  • CUB_QUOTIENT_FLOOR(a, b): Use plain integer division a / b instead
  • CUB_QUOTIENT_CEILING(a, b): Use cuda::ceil_div(a, b) instead
  • CUB_ROUND_UP_NEAREST(a, b): Use cuda::round_up(a, b) instead
  • CUB_ROUND_DOWN_NEAREST(a, b): Use cuda::round_down(a, b) instead
  • THRUST_STATIC_ASSERT(expr): Use static_assert(expr) instead
  • THRUST_HOST_BACKEND: Use THRUST_HOST_SYSTEM instead
  • THRUST_TUNING_ARCH: No direct replacement. Use compiler-specific __CUDA_ARCH__ (nvcc) or __NVCOMPILER_CUDA_ARCH__ (nvc++) instead
  • CUDA_CUB_RET_IF_FAIL: No replacement

https://github.com/NVIDIA/cccl/pull/3971

https://github.com/NVIDIA/cccl/pull/3936

https://github.com/NVIDIA/cccl/pull/3935

https://github.com/NVIDIA/cccl/pull/3934

https://github.com/NVIDIA/cccl/pull/3918

https://github.com/NVIDIA/cccl/pull/3905

https://github.com/NVIDIA/cccl/issues/3595

https://github.com/NVIDIA/cccl/pull/3836

https://github.com/NVIDIA/cccl/pull/3831

Drop/Internalize cub::PolicyWrapper, cub::KernelConfig, triple_chevron, thrust logical meta functions, thrust macros from type_deduction.h, thrust::cuda_cub::terminate, thrust::numeric_limits, cub::IterateThreadStore,cub::Swap https://github.com/NVIDIA/cccl/pull/3748

https://github.com/NVIDIA/cccl/pull/3745

https://github.com/NVIDIA/cccl/pull/3746

https://github.com/NVIDIA/cccl/pull/3730

https://github.com/NVIDIA/cccl/pull/3747

CUB CUB_IS_INT128_ENABLED, Int2Type, BinaryOpHasIdxParam::HAS_PARAM, FpLimits: https://github.com/NVIDIA/cccl/pull/3743

https://github.com/NVIDIA/cccl/issues/3467

https://github.com/NVIDIA/cccl/pull/3692

https://github.com/NVIDIA/cccl/issues/3665

https://github.com/NVIDIA/cccl/issues/3375

https://github.com/NVIDIA/cccl/issues/3284

https://github.com/NVIDIA/cccl/issues/3552

https://github.com/NVIDIA/cccl/issues/3070

https://github.com/NVIDIA/cccl/pull/3505

https://github.com/NVIDIA/cccl/issues/3431

https://github.com/NVIDIA/cccl/pull/3508

https://github.com/NVIDIA/cccl/issues/3407

https://github.com/NVIDIA/cccl/pull/3474

Require C++17 for compiling libcu++

https://github.com/NVIDIA/cccl/issues/3430

https://github.com/NVIDIA/cccl/issues/3341

https://github.com/NVIDIA/cccl/issues/3271

https://github.com/NVIDIA/cccl/pull/3347

https://github.com/NVIDIA/cccl/pull/3362

https://github.com/NVIDIA/cccl/pull/3346

https://github.com/NVIDIA/cccl/issues/3329

https://github.com/NVIDIA/cccl/issues/3249

https://github.com/NVIDIA/cccl/issues/3184

https://github.com/NVIDIA/cccl/issues/3252

https://github.com/NVIDIA/cccl/pull/3301

https://github.com/NVIDIA/cccl/pull/3302

https://github.com/NVIDIA/cccl/pull/3340

https://github.com/NVIDIA/cccl/pull/3305

https://github.com/NVIDIA/cccl/pull/3300

https://github.com/NVIDIA/cccl/pull/3298

https://github.com/NVIDIA/cccl/issues/3278

https://github.com/NVIDIA/cccl/issues/3286

https://github.com/NVIDIA/cccl/issues/3256

https://github.com/NVIDIA/cccl/issues/3250

https://github.com/NVIDIA/cccl/issues/3276

https://github.com/NVIDIA/cccl/issues/3273

https://github.com/NVIDIA/cccl/issues/3259

https://github.com/NVIDIA/cccl/issues/3263

https://github.com/NVIDIA/cccl/issues/3267

https://github.com/NVIDIA/cccl/pull/3450

Remove cub::max

Clone this wiki locally