CMake optionsΒΆ
Verified in CMakeLists.txt:
CMake option |
Effect |
Default |
|---|---|---|
|
Only on-node backend, required (CPU Serial/OpenMP + GPU Cuda/HIP). Configuring with |
|
|
Distributed comm seam ( |
|
|
Python |
|
The Kokkos sub-backend (Serial / OpenMP / Cuda) is not an adc_cpp option: it is
chosen at the moment Kokkos is installed (Kokkos_ENABLE_SERIAL, Kokkos_ENABLE_OPENMP,
Kokkos_ENABLE_CUDA + Kokkos_ARCH_HOPPER90), then pointed at by -DKokkos_ROOT=.... That is what
distinguishes configurations 1/2/5 below.
Notes:
Kokkos is the only on-node backend and it is required: configuring without it (
-DPOPS_USE_KOKKOS=OFF) is a fatal CMake error, and thefor_each.hppseam does not compile withoutPOPS_HAS_KOKKOS(#error).Kokkos does not need to be pre-installed: CMake does
find_package(Kokkos)then, as a fallback, fetches + builds it via FetchContent (versionPOPS_KOKKOS_FETCH_VERSION, default 4.4.01, tarball verified by SHA256). The-DKokkos_ROOT=...commands below reuse an install (faster); without them, Kokkos is fetched.The C++ standard is C++20 (nvcc CUDA 12.x does not offer
-std=c++23).