Architecture flags#

CCCL builds device code for the SM architectures named in CMAKE_CUDA_ARCHITECTURES, a semicolon-separated list of SM numbers, each optionally tagged -real (embed SASS) or -virtual (embed PTX for JIT on newer GPUs). CMake also accepts native, all, and all-major. The CUDA_ARCHITECTURES property documents the standard syntax and values.

CCCL adds two values, expanded at configure time by cccl_check_cuda_architectures() against the toolkit found at configure time:

  • all-cccl — every architecture the current nvcc supports at or above CCCL’s minimum.

  • all-major-cccl — one entry per major architecture at or above the minimum, carrying forward PTX on the highest.

Both resolve against the installed toolkit rather than a fixed table. The minimum supported architecture and the full expansion logic live in cmake/CCCLCheckCudaArchitectures.cmake. Expansion runs only for a top-level CCCL build; downstream consumers pass a concrete list or native.