Add CUDA bonded kernels
commitb9e713b61cd1389b9b32f1d4677f252b90cd0379
authorJonathan Vincent <jvincent@nvidia.com>
Mon, 1 Oct 2018 09:59:40 +0000 (1 02:59 -0700)
committerMark Abraham <mark.j.abraham@gmail.com>
Wed, 31 Oct 2018 16:47:43 +0000 (31 17:47 +0100)
tree1cfc4c0a4e09f6c2414d08a89a408037800a8b58
parent631a25cf0f7fc1f61ed49c3f444416480e4c132d
Add CUDA bonded kernels

CUDA bonded kernels are added for the most common bonded and LJ-14
interactions.
The default auto settings of mdrun offloads these interactions
to the GPU when possible.
Currently these interactions are computed in the local or non-local
nbnxn non-bonded streams. We should consider using a separate stream.
This change uses synchronous transfers. A child change will change
these to asynchronous.

Updated release notes and performance guide.

Fixes #2678
Refs #2675

Change-Id: Ifc6d97854cc7afa8526602942ec3b1712ba45bac
24 files changed:
docs/release-notes/2019/major/performance.rst
docs/user-guide/mdrun-performance.rst
src/gromacs/gpu_utils/gpu_vec.cuh [new file with mode: 0644]
src/gromacs/listed-forces/CMakeLists.txt
src/gromacs/listed-forces/bonded.cpp
src/gromacs/listed-forces/bonded.cu [new file with mode: 0644]
src/gromacs/listed-forces/bonded.h
src/gromacs/listed-forces/listed-forces.cpp
src/gromacs/listed-forces/listed-forces.h
src/gromacs/listed-forces/manage-threading.cpp
src/gromacs/listed-forces/manage-threading.h
src/gromacs/listed-forces/tests/bonded.cpp
src/gromacs/listed-forces/utilities.h [new file with mode: 0644]
src/gromacs/mdlib/forcerec.cpp
src/gromacs/mdlib/forcerec.h
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda.cu
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_data_mgmt.cu
src/gromacs/mdlib/nbnxn_gpu.h
src/gromacs/mdlib/nbnxn_gpu_common.h
src/gromacs/mdlib/nbnxn_gpu_data_mgmt.h
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl.cpp
src/gromacs/mdlib/sim_util.cpp
src/gromacs/pbcutil/gpu_pbc.cuh [new file with mode: 0644]
src/gromacs/taskassignment/reportgpuusage.cpp