GPU halo exchange
authorAlan Gray <alang@nvidia.com>
Tue, 26 Feb 2019 12:43:22 +0000 (04:43 -0800)
committerMark Abraham <mark.j.abraham@gmail.com>
Mon, 16 Sep 2019 13:12:49 +0000 (15:12 +0200)
commit44f607d71afaea9e51bb9d1cc2bc132f34482f32
tree84dad4648f165107c5320e65e8965d8e60ffac48
parentb766e6ebfa539173b4b3580ca5356533a27a8caa
GPU halo exchange

Activate with GMX_GPU_DD_COMMS and GMX_USE_GPU_BUFFER_OPS environment
variable.

Class to initialize and apply coordinate buffer halo exchange
functionality directly on GPU memory space.

Currently only supports direct cuda memcpy, and relies on thread MPI
being in use.

Updated gpucomm testing matrices to cover non-GPU case.

Limitation: still only supports thread MPI, 1D data decomposition and
only coordinate halo exchange

Implements part of #2890
Associated with #2915

Change-Id: I8e6473481ad4d943df78d7019681bfa821bd5798
16 files changed:
admin/builds/gpucomm-matrix.txt
src/gromacs/domdec/CMakeLists.txt
src/gromacs/domdec/domdec.cpp
src/gromacs/domdec/domdec_struct.h
src/gromacs/domdec/gpuhaloexchange.h [new file with mode: 0644]
src/gromacs/domdec/gpuhaloexchange_impl.cpp [new file with mode: 0755]
src/gromacs/domdec/gpuhaloexchange_impl.cu [new file with mode: 0644]
src/gromacs/domdec/gpuhaloexchange_impl.cuh [new file with mode: 0644]
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdrun/runner.cpp
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/nbnxm.cpp
src/gromacs/nbnxm/nbnxm.h
src/gromacs/nbnxm/nbnxm_gpu.h