PME/PP GPU Pimpl Class and GPU->CPU Communication for force buffer
authorAlan Gray <alang@nvidia.com>
Sun, 25 Aug 2019 19:42:47 +0000 (12:42 -0700)
committerArtem Zhmurov <zhmurov@gmail.com>
Tue, 15 Oct 2019 22:04:44 +0000 (00:04 +0200)
commitec0aa35644fad7bd82f2cc4b284e045705c24e42
tree046a62f260ce4b755abf379b1da9207c1759b3c7
parent8734c61850b1ecf7873b24d30ba0a40c5db527f3
PME/PP GPU Pimpl Class and GPU->CPU Communication for force buffer

Activate with GMX_GPU_PME_PP_COMMS env variable

Implements new pimpl class for PME-PP GPU communications. Performs
scatter of force buffer data from PME task GPU buffer to PP task CPU
buffers directly using CUDA memory copies. Requires thread MPI to be
in use.

Implements part of #2891

Change-Id: I0181ff67065c75f20cddc361f695df9bf888cd88
18 files changed:
src/gromacs/ewald/CMakeLists.txt
src/gromacs/ewald/pme.h
src/gromacs/ewald/pme_force_sender_gpu.h [new file with mode: 0644]
src/gromacs/ewald/pme_force_sender_gpu_impl.cpp [new file with mode: 0755]
src/gromacs/ewald/pme_force_sender_gpu_impl.cu [new file with mode: 0644]
src/gromacs/ewald/pme_force_sender_gpu_impl.h [new file with mode: 0644]
src/gromacs/ewald/pme_only.cpp
src/gromacs/ewald/pme_pp.cpp
src/gromacs/ewald/pme_pp_comm_gpu.h [new file with mode: 0644]
src/gromacs/ewald/pme_pp_comm_gpu_impl.cpp [new file with mode: 0755]
src/gromacs/ewald/pme_pp_comm_gpu_impl.cu [new file with mode: 0644]
src/gromacs/ewald/pme_pp_comm_gpu_impl.h [new file with mode: 0644]
src/gromacs/ewald/pme_pp_communication.h
src/gromacs/mdlib/forcerec.cpp
src/gromacs/mdlib/forcerec.h
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdrun/runner.cpp
src/gromacs/mdtypes/forcerec.h