Enable StatePropagatorGpuData for force transfers
authorSzilárd Páll <pall.szilard@gmail.com>
Thu, 10 Oct 2019 20:20:40 +0000 (22:20 +0200)
committerArtem Zhmurov <zhmurov@gmail.com>
Sun, 13 Oct 2019 11:27:40 +0000 (13:27 +0200)
commit8a0d4d971981a7c9a36e71873284cf8d2cb05129
treefe7a849f474cdbe6f3d38a0257bd47290487317e
parentcc9fb74665a218bdf78dc286ab02f2eff0152e0b
Enable StatePropagatorGpuData for force transfers

Force transfers have been switched to use StatePropagatorGpuData already
before. This change updates the synchronization mechanisms as:
- replaces the previous stream sync after GPU buffer/ops reduction with
  a waitForcesReadyOnHost call;
- removes the barriers in copyForces[From|To]Gpu() as dependencies
  are now satisfied: most dependencies are intra-stream and therefore
  implicit, the exception being the halo exchange that uses its own
  mechanism to sync H2D in the local stream with the nonlocal stream
  (which is yet to be replaces Refs #3093).

Refs. #3126.

Change-Id: I8bfd39f79c87f20492c4ae287d6f19261724f806
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdtypes/state_propagator_data_gpu_impl_gpu.cpp
src/gromacs/nbnxm/cuda/nbnxm_cuda.cu
src/gromacs/nbnxm/nbnxm.cpp
src/gromacs/nbnxm/nbnxm.h
src/gromacs/nbnxm/nbnxm_gpu.h