Skip to content

Latest commit

 

History

History
172 lines (124 loc) · 3.2 KB

requirements.rst

File metadata and controls

172 lines (124 loc) · 3.2 KB

Requirements

Compiler Versions

Generally, Kokkos should work with all compiler versions newer than the minimum. We also recommend using updated compilers where possible to benefit from improvements. However, in complex code, we have to work around compiler bugs. So compiler versions we don't test may have issues we are unaware of.

Furthermore, compilers not listed here may work too.

Kokkos 4.x

Compiler Minimum version Primary tested versions
GCC 8.2.0 8.4.0, latest
Clang (CPU) 8.0.0 8.0.0, latest
Clang (CUDA) 10.0.0 12.0.0, 14.0.0
AppleClang 8.0 latest
Intel Classic (not recommended) 19.0.5 2021.8.0
IntelLLVM (CPU) 2021.1.1 2023.0.0
IntelLLVM (SYCL) (experimental) 2022.0.0 2023.0.0
NVCC 11.0 11.0, 11.6, 11.7
NVC++ 22.3 22.9
ROCM 5.2.0 5.2.0
MSVC 19.29 Latest
ARM/Clang 20.1 20.1

Kokkos 3.x

Compiler Minimum version Primary tested versions
GCC 5.3.0 5.3.0, 6.1.0, 7.3.0, 8.3, 9.2, 10.0
Clang 4.0.0 8.0.0, 9.0.0, 10.0.0, 12.0.0
Intel 17.0.1 17.4, 18.1, 19.5
NVCC 9.2.88 9.2.88, 10.1, 11.0
NVC++ 21.5 NA
ROCM 4.5 4.5.0
MSVC 19.29 19.29
IBM XL 16.1.1 16.1.1
Fujitsu 4.5.0 NA
ARM/Clang 20.1 20.1

Build system:

  • CMake >= 3.16: required
  • CMake >= 3.18: Fortran linkage. This does not affect most mixed Fortran/Kokkos builds. See known build issues.
  • CMake >= 3.21.1 for NVC++

Primary tested compiler are passing in release mode with warnings as errors. They also are tested with a comprehensive set of backend combinations (i.e. OpenMP, Pthreads, Serial, OpenMP+Serial, ...). We are using the following set of flags:

  • GCC:
-Wall -Wunused-parameter -Wshadow -pedantic
-Werror -Wsign-compare -Wtype-limits
-Wignored-qualifiers -Wempty-body
-Wclobbered -Wuninitialized
  • Intel:
-Wall -Wunused-parameter -Wshadow -pedantic
-Werror -Wsign-compare -Wtype-limits
-Wuninitialized
  • Clang:
-Wall -Wunused-parameter -Wshadow -pedantic
-Werror -Wsign-compare -Wtype-limits
-Wuninitialized
  • NVCC:
-Wall -Wunused-parameter -Wshadow -pedantic
-Werror -Wsign-compare -Wtype-limits
-Wuninitialized

Note

Other compilers are tested occasionally, in particular when pushing from develop to master branch. These are tested less rigorously without -Werror and only for a select set of backends.