Pass list of EventSynchronizers to GPU reduction
authorSzilárd Páll <pall.szilard@gmail.com>
Tue, 8 Oct 2019 01:47:46 +0000 (03:47 +0200)
committerArtem Zhmurov <zhmurov@gmail.com>
Thu, 10 Oct 2019 18:24:02 +0000 (20:24 +0200)
commit62b8797f78762ac66ac72e31dcb0f6b511537bb1
tree1f52384a574b3e720ef69a039fe227cbf2adcd13
parent2a921e947c98feb93d57fc5296bf0ccb68a7f99a
Pass list of EventSynchronizers to GPU reduction

Instead of passing events one-by-one or doing implicit synchronization
hidden in a force tasks' internals, a list of synchronizer objects that
signal the availability of forces from the source tasks is assembled and
passed to the GPU buffer ops/reduction.

The new dependency added here is the H2D transfer for CPU-side force
contribution, PME-related event is kept, halo exchange dependency needs
to be added.

Change-Id: I5ca5ef919b49508790e813e0469aaeef4f6484c0
src/gromacs/mdlib/sim_util.cpp
src/gromacs/nbnxm/atomdata.cpp
src/gromacs/nbnxm/atomdata.h
src/gromacs/nbnxm/cuda/nbnxm_cuda.cu
src/gromacs/nbnxm/nbnxm.cpp
src/gromacs/nbnxm/nbnxm.h
src/gromacs/nbnxm/nbnxm_gpu.h