-
Notifications
You must be signed in to change notification settings - Fork 60
Build Dependencies
Cabana has a minimal number of required dependencies:
| Dependency | Version | Required | Details |
|---|---|---|---|
| CMake | 3.16+ | Yes | Build system |
| Kokkos | 3.6+ | Yes | Portable on-node parallelism |
Please note that you should compile both Kokkos and Cabana with the same compiler (both family and version), as the Cabana build system inherits compile flags from Kokkos.
Cabana uses Cabana_ENABLE_* CMake variables for sub-packages and general options (e.g. Cabana_ENABLE_TESTS). Using Cabana_REQUIRE_* CMake variables will cause the configuration to fail if a given Kokkos backend was not enabled (e.g. Cabana_REQUIRE_SERIAL). Cabana builds with all enabled Kokkos backends.
| Cabana Version | Kokkos Versions |
|---|---|
| master | 3.6+ |
| 0.5 | 3.4+ |
| 0.4 | 3.2+ |
| 0.3 | 3.1+ |
| 0.2 | 2.7-2.9 |
| 0.1 | 2.7-2.9 |
Other version combinations may work.
Moving forward, support is planned for 2 Kokkos releases per version
| Dependency | Version | Required | Details | Available since |
|---|---|---|---|---|
| MPI | GPU Aware if CUDA/HIP/SYCL Enabled | No | Message Passing Interface | 0.1 |
| ArborX | master | No | (Experimental) Performance portable geometric search | 0.3 |
| heFFTe | 2.1.0 | No | (Experimental) Performance portable fast Fourier transforms | 0.4 |
| hypre | 2.22.1 | No | Preconditioners and solvers | 0.4 |
| HDF5 | develop | No | Particle I/O | master |
| Silo | main | No | (Experimental) Particle I/O | 0.5 |
| ALL | master | No | (Experimental) Load balancing | 0.5 |
| CUDA | 9+ | No | Programming model for NVIDIA GPUs | 0.1 |
| HIP | 3.5+ | No | Programming model for AMD GPUs | 0.4 |
| SYCL | nightly | No | Programming model for Intel GPUs | 0.4 |
| GoogleTest | 1.10+ | No | Unit test framework | 0.1 |
Cabana automatically builds with optional third-party libraries if found. Using Cabana_REQUIRE_* CMake variables will cause the configuration to fail if the library is not found (e.g. Cabana_REQUIRE_MPI). Note these options always use upper case.
The HDF5 library is an exception because of the C interface requirements. Cabana_REQUIRE_HDF5=ON is necessary to use HDF5 output with Cabana; this will be changed in a future release to build automatically if found to match all other optional dependencies.
Cabana - A Co-Designed Library for Exascale Particle Simulations