Introduce GMX_USE_SIMD_KERNELS cmake option
authorMark Abraham <mark.j.abraham@gmail.com>
Thu, 16 Apr 2020 15:36:33 +0000 (15:36 +0000)
committerPaul Bauer <paul.bauer.q@gmail.com>
Thu, 16 Apr 2020 15:36:33 +0000 (15:36 +0000)
commitf5be681aeb9db9b9350e174a746f6c1da8606ad7
treee6be85a9f9e0f5c47cb117e8b0a2bd48f8882318
parent1ced5fb7a39a90ec1866f7ee9302438f1e2db8f3
Introduce GMX_USE_SIMD_KERNELS cmake option

Most GROMACS development does not need to recompile the SIMD nbnxm
(and fep) kernels whenever their dependencies change. These
dependencies are large in number, and include frequently changed
files, including config.h and various utility and nbnxm module
headers. This flag permits people to efficiently recompile while
working on code that doesn't directly target changes to the SIMD
kernels.

It also means that CI builds not aimed at efficient mdrun execution
times can instead minimize compilation times and ccache db sizes. This
will also have the side effect of testing more of the reference NBNXM
kernels.

There's other SIMD code (particularly PME, bonded, LINCS, update)
which still compiles and runs in the usual way. Currently these are
less costly to compile and harder to disable. That could change in
future.
src/config.h.cmakein
src/gromacs/CMakeLists.txt
src/gromacs/gmxlib/nonbonded/nb_free_energy.cpp
src/gromacs/mdlib/forcerec.cpp
src/gromacs/nbnxm/CMakeLists.txt
src/gromacs/nbnxm/kernels_simd_2xmm/CMakeLists.txt [new file with mode: 0644]
src/gromacs/nbnxm/kernels_simd_4xm/CMakeLists.txt [new file with mode: 0644]
src/gromacs/nbnxm/nbnxm_simd.h
src/gromacs/nbnxm/prunekerneldispatch.cpp