CMake Keywords#
Important
With version 3.0 all Kokkos CMake keywords are prefixed with Kokkos_ which is case-sensitive.
Recall that to set a keyword in CMake you used the syntax -Dkeyword_name.
This page is organized in four sections:
Device Backends#
Description/info |
Default |
|
|---|---|---|
|
To build CUDA backend |
|
|
To build OpenMP backend |
|
|
To build C++ Threads backend |
|
|
To build serial backend |
|
|
To build HIP backend |
|
|
[Experimental] To build the OpenMP target backend |
|
|
[Experimental] To build SYCL backend |
|
|
[Experimental] To build HPX backend |
|
Enable Options#
Description/info |
Default |
|
|---|---|---|
|
Aggressively vectorize loops |
|
|
Print all compiler warnings |
|
|
Activate experimental relaxed constexpr functions |
|
|
Activate experimental lambda features |
|
|
Use CUDA LDG intrinsics |
|
|
Enable relocatable device code (RDC) for CUDA |
|
|
Use unified memory (UM) by default for CUDA |
|
|
Activate extra debug features - may increase compile times |
|
|
Use bounds checking - will increase runtime |
|
|
Debug check on dual views |
|
|
Enable deprecated code |
|
|
Enable building examples |
|
|
Instantiate multiple kernels at compile time - improve performance but increase compile time |
|
|
Enable relocatable device code (RDC) for HIP |
|
|
Whether HPX supports asynchronous dispatch |
|
|
Perform extra large memory tests |
|
|
Create bindings for profiling tools |
|
|
Print information about which profiling tools got loaded |
|
|
Build tests |
|
Other Options#
Description/info |
Default |
|
|---|---|---|
|
The C++ standard for Kokkos to use: c++14, c++17, or c++20. This should be given in CMake style as 14, 17, or 20. |
STRING Default: 14 |
Third-party Libraries (TPLs)#
The following options control enabling TPLs:
Description/info |
Default |
|
|---|---|---|
|
Whether to enable the HPX library |
|
|
Whether to enable the HWLOC library |
|
|
Whether to enable the LIBNUMA library |
|
|
Whether to enable the MEMKIND library |
|
|
Whether to enable the LIBDL library |
|
|
Whether to enable the LIBRT library |
|
The following options control finding and configuring non-CMake TPLs:
Description/info |
Default |
|
|---|---|---|
|
Location of CUDA install prefix for libraries |
PATH Default: |
|
Location of HWLOC install prefix |
PATH Default: |
|
Location of LIBNUMA install prefix |
PATH Default: |
|
Location of MEMKIND install prefix |
PATH Default: |
|
Location of LIBDL install prefix |
PATH Default: |
|
Location of LIBRT install prefix |
PATH Default: |
The following options control find_package paths for CMake-based TPLs:
Description/info |
Default |
|
|---|---|---|
|
Location of HPX prefix (ROOT) or CMake config file (DIR) |
PATH Default: |
Architecture Keywords#
Description/info |
Default |
|
|---|---|---|
|
Optimize for the local CPU architecture |
|
|
Optimize for ARMv8.2 with SVE Support |
|
|
Optimize for the NVIDIA Ampere generation CC 8.0 |
|
|
Optimize for the NVIDIA Ampere generation CC 8.6 |
|
|
Optimize for AMDAVX architecture |
|
|
Optimize for ARMV80 architecture |
|
|
Optimize for ARMV81 architecture |
|
|
Optimize for ARMV8_THUNDERX architecture |
|
|
Optimize for the ARMV8_TX2 architecture |
|
|
Optimize for ARMV8_TX2 architecture |
|
|
Optimize for BDW architecture |
|
|
Optimize for BGQ architecture |
|
|
Optimize for the NVIDIA Hopper generation CC 9.0 <sup>since Kokkos 4.0</sup> |
|
|
Optimize for HSW architecture |
|
|
Optimize for Intel GPUs Gen9+ |
|
|
Optimize for KEPLER30 architecture |
|
|
Optimize for KEPLER32 architecture |
|
|
Optimize for KEPLER35 architecture |
|
|
Optimize for KEPLER37 architecture |
|
|
Optimize for KNC architecture |
|
|
Optimize for KNL architecture |
|
|
Optimize for MAXWELL50 architecture |
|
|
Optimize for MAXWELL52 architecture |
|
|
Optimize for MAXWELL53 architecture |
|
|
Optimize for PASCAL60 architecture |
|
|
Optimize for PASCAL61 architecture |
|
|
Optimize for POWER7 architecture |
|
|
Optimize for POWER8 architecture |
|
|
Optimize for POWER9 architecture |
|
|
Optimize for SKX architecture |
|
|
Optimize for SNB architecture |
|
|
Optimize for TURING75 architecture |
|
|
Optimize for AMD GPU MI25 GFX900 |
|
|
Optimize for AMD GPU MI50/MI60 GFX906 |
|
|
Optimize for AMD GPU MI100 GFX908 |
|
|
Optimize for AMD GPU MI200 series GFX90A |
|
|
Optimize for VOLTA70 architecture |
|
|
Optimize for VOLTA72 architecture |
|
|
Optimize for WSM architecture |
|
|
Optimize for Zen architecture |
|
|
Optimize for Zen2 architecture |
|
|
Optimize for Zen3 architecture |
|