Position buffer ops in CUDA
authorAlan Gray <alang@nvidia.com>
Thu, 24 Jan 2019 15:31:21 +0000 (07:31 -0800)
committerSzilárd Páll <pall.szilard@gmail.com>
Fri, 10 May 2019 23:40:03 +0000 (01:40 +0200)
commit42b343b999371f7e659d7fc7208b6c7f2fcc2268
tree127950941953fb6a8554c2cacbd58e1e7334fd06
parent70ce6d254e2af70664347d7d2d7ddd56ddbdc221
Position buffer ops in CUDA

On all but search steps the buffer ops transform can now be done on a
CUDA GPU. If PME runs on the same GPU the already uploaded coordinates
will be used as input.

Activate with GMX_USE_GPU_BUFFER_OPS env variable.

Note:
-  waits for X copy on the PME stream to finish, need to implement sync
   point between PME and NB streams (in follow-up).

Implements part of #2817

Change-Id: Ib87dabd74a02727898681249691ac9786b8ac65c
16 files changed:
src/gromacs/ewald/pme.h
src/gromacs/ewald/pme_gpu.cpp
src/gromacs/ewald/pme_gpu_internal.cpp
src/gromacs/ewald/pme_gpu_internal.h
src/gromacs/mdlib/sim_util.cpp
src/gromacs/nbnxm/atomdata.cpp
src/gromacs/nbnxm/atomdata.h
src/gromacs/nbnxm/cuda/nbnxm_buffer_ops_kernels.cuh [new file with mode: 0644]
src/gromacs/nbnxm/cuda/nbnxm_cuda.cu
src/gromacs/nbnxm/cuda/nbnxm_cuda_data_mgmt.cu
src/gromacs/nbnxm/cuda/nbnxm_cuda_types.h
src/gromacs/nbnxm/gpu_types.h
src/gromacs/nbnxm/grid.h
src/gromacs/nbnxm/nbnxm.cpp
src/gromacs/nbnxm/nbnxm.h
src/gromacs/nbnxm/nbnxm_gpu.h