Simplified uniform GPU selection in CMake
authorErik Lindahl <erik.lindahl@gmail.com>
Tue, 4 Aug 2020 19:27:21 +0000 (19:27 +0000)
committerMark Abraham <mark.j.abraham@gmail.com>
Tue, 4 Aug 2020 19:27:21 +0000 (19:27 +0000)
commit75c17a76b69c1ade1f29fdce9fe2f6dd78221c1d
tree5fb5a8d35170404972ee07fe95c8dc30c9590552
parente1c98a13f5584c430c9d93deea47d84858ca7ee4
Simplified uniform GPU selection in CMake

GPU selection is now done by setting GMX_GPU to either CUDA
or OpenCL, with no other variables required. As part of the
overall CMake simplification, the CMake automatic detection
of hardware and "auto" settings for GPU acceleration have
been removed. This will require the user to explicitly enable
GPU support (which is a drawback), but it leads to much
simplier and shorter CMake code, similar support for CUDA and
OpenCL, and it will make it easier to handle multiple different
APIs targeting e.g. NVIDIA GPU hardware in the near future.
76 files changed:
CMakeLists.txt
admin/gitlab-ci/documentation.gitlab-ci.yml
admin/gitlab-ci/gromacs.gitlab-ci.yml
cmake/gmxManageCuda.cmake
cmake/gmxManageOpenCL.cmake
src/CMakeLists.txt
src/api/cpp/tests/CMakeLists.txt
src/config.h.cmakein
src/gromacs/CMakeLists.txt
src/gromacs/domdec/CMakeLists.txt
src/gromacs/domdec/gpuhaloexchange_impl.cpp
src/gromacs/ewald/CMakeLists.txt
src/gromacs/ewald/pme.cpp
src/gromacs/ewald/pme_coordinate_receiver_gpu_impl.cpp
src/gromacs/ewald/pme_force_sender_gpu_impl.cpp
src/gromacs/ewald/pme_gpu.cpp
src/gromacs/ewald/pme_gpu_3dfft.h
src/gromacs/ewald/pme_gpu_constants.h
src/gromacs/ewald/pme_gpu_internal.cpp
src/gromacs/ewald/pme_gpu_program_impl.h
src/gromacs/ewald/pme_gpu_types_host.h
src/gromacs/ewald/pme_gpu_types_host_impl.h
src/gromacs/ewald/pme_only.cpp
src/gromacs/ewald/pme_pp_comm_gpu_impl.cpp
src/gromacs/fft/fft5d.cpp
src/gromacs/gpu_utils/CMakeLists.txt
src/gromacs/gpu_utils/clfftinitializer.cpp
src/gromacs/gpu_utils/device_context.h
src/gromacs/gpu_utils/device_context_ocl.cpp
src/gromacs/gpu_utils/device_context_ocl.h
src/gromacs/gpu_utils/device_stream.h
src/gromacs/gpu_utils/devicebuffer.h
src/gromacs/gpu_utils/devicebuffer_datatype.h
src/gromacs/gpu_utils/gpu_macros.h
src/gromacs/gpu_utils/gpu_utils.cpp
src/gromacs/gpu_utils/gputraits.h
src/gromacs/gpu_utils/tests/device_stream_manager.cpp
src/gromacs/gpu_utils/tests/hostallocator.cpp
src/gromacs/gpu_utils/tests/typecasts_runner.cpp
src/gromacs/gpu_utils/tests/typecasts_runner.cu
src/gromacs/hardware/detecthardware.cpp
src/gromacs/hardware/printhardware.cpp
src/gromacs/listed_forces/CMakeLists.txt
src/gromacs/listed_forces/gpubonded_impl.cpp
src/gromacs/mdlib/CMakeLists.txt
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdlib/tests/constr.cpp
src/gromacs/mdlib/tests/constrtestrunners.cpp
src/gromacs/mdlib/tests/leapfrog.cpp
src/gromacs/mdlib/tests/leapfrogtestrunners.cpp
src/gromacs/mdlib/tests/settle.cpp
src/gromacs/mdlib/tests/settletestrunners.cpp
src/gromacs/mdlib/tests/settletestrunners.cu
src/gromacs/mdlib/update_constrain_gpu_impl.cpp
src/gromacs/mdlib/vsite.cpp
src/gromacs/mdrun/runner.cpp
src/gromacs/mdtypes/CMakeLists.txt
src/gromacs/mdtypes/state_propagator_data_gpu_impl.cpp
src/gromacs/mdtypes/state_propagator_data_gpu_impl.h
src/gromacs/mdtypes/state_propagator_data_gpu_impl_gpu.cpp
src/gromacs/nbnxm/CMakeLists.txt
src/gromacs/nbnxm/cuda/CMakeLists.txt
src/gromacs/nbnxm/gpu_common.h
src/gromacs/nbnxm/gpu_common_utils.h
src/gromacs/nbnxm/gpu_types_common.h
src/gromacs/nbnxm/nbnxm_gpu_data_mgmt.cpp
src/gromacs/nbnxm/opencl/CMakeLists.txt
src/gromacs/nbnxm/pairlistparams.h
src/gromacs/taskassignment/decidegpuusage.cpp
src/gromacs/utility/CMakeLists.txt
src/gromacs/utility/binaryinformation.cpp
src/programs/mdrun/tests/exactcontinuation.cpp
src/programs/mdrun/tests/periodicactions.cpp
src/programs/mdrun/tests/rerun.cpp
src/programs/mdrun/tests/simulator.cpp
src/testutils/TestMacros.cmake