PME GPU/CUDA data framework.
commit379b2954fd3efbd1b2c724964932c2ef03078939
authorAleksei Iupinov <a.yupinov@gmail.com>
Mon, 26 Sep 2016 10:53:29 +0000 (26 12:53 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Mon, 9 Oct 2017 08:12:20 +0000 (9 10:12 +0200)
tree4d480dda286efae63d702c9a00a482cb234f395f
parent0ccfa6aa79bb4b59b5cdae4f133a737cbff57eae
PME GPU/CUDA data framework.

This patch adds most of the PME GPU data handling routines
(pme.h and pme-gpu.cpp / pme.cu(h) / pme-gpu-internal.h/cpp),
data structures used on host and on device
(pme-gpu-types.h / pme.cuh).
The PME GPU kernels and their host code will live in separate files.
There is also cuFFT code (pme-3dfft.cu(h)) and
optional CUDA timing events (pme-timings.cu(h)) included.
Currently this is a dead code, PME GPU is not actually getting initialized
as the corresponding enum is always set for CPU path, which is asserted.

Change-Id: I9b03f54a2412885e25ea27f17bf2dca1b01f9f78
39 files changed:
src/gromacs/CMakeLists.txt
src/gromacs/ewald/CMakeLists.txt
src/gromacs/ewald/pme-3dfft.cu [new file with mode: 0644]
src/gromacs/ewald/pme-3dfft.cuh [copied from src/gromacs/timing/wallcyclereporting.h with 58% similarity]
src/gromacs/ewald/pme-gpu-internal.cpp [new file with mode: 0644]
src/gromacs/ewald/pme-gpu-internal.h [new file with mode: 0644]
src/gromacs/ewald/pme-gpu-types.h [new file with mode: 0644]
src/gromacs/ewald/pme-gpu.cpp [new file with mode: 0644]
src/gromacs/ewald/pme-grid.cpp
src/gromacs/ewald/pme-grid.h
src/gromacs/ewald/pme-internal.h
src/gromacs/ewald/pme-load-balancing.cpp
src/gromacs/ewald/pme-only.cpp
src/gromacs/ewald/pme-pp.cpp
src/gromacs/ewald/pme-timings.cu [new file with mode: 0644]
src/gromacs/ewald/pme-timings.cuh [copied from src/gromacs/timing/wallcyclereporting.h with 58% similarity]
src/gromacs/ewald/pme.cpp
src/gromacs/ewald/pme.cu [new file with mode: 0644]
src/gromacs/ewald/pme.cuh [new file with mode: 0644]
src/gromacs/ewald/pme.h
src/gromacs/ewald/tests/pmetestcommon.cpp
src/gromacs/gpu_utils/gpuregiontimer.h
src/gromacs/gpu_utils/gpuregiontimer_ocl.h
src/gromacs/mdlib/mdsetup.cpp
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda.cu
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_data_mgmt.cu
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_types.h
src/gromacs/mdlib/nbnxn_gpu_data_mgmt.h
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl.cpp
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl_data_mgmt.cpp
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl_types.h
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdlib/sim_util.h
src/gromacs/timing/gpu_timing.h
src/gromacs/timing/wallcycle.cpp
src/gromacs/timing/wallcycle.h
src/gromacs/timing/wallcyclereporting.h
src/programs/mdrun/md.cpp
src/programs/mdrun/runner.cpp