prepareGpuKernelArguments() and launchGpuKernel() are added
authorAleksei Iupinov <a.yupinov@gmail.com>
Mon, 19 Feb 2018 18:25:34 +0000 (19:25 +0100)
committerMark Abraham <mark.j.abraham@gmail.com>
Fri, 18 May 2018 09:44:14 +0000 (11:44 +0200)
commit58ec6661f1e59ce55c0e525400a0aa2aa8888106
treea9c0f837a1c7d6265b651c80c98a8122a770d808
parentc5522b4d57ad836dc2aa7b46608f8dc2ff909e1e
prepareGpuKernelArguments() and launchGpuKernel() are added

Template functions are added for preparing/packing GPU kernel
arguments and launching GPU kernels. This allows to hide
CUDA/OpenCL boilerplate. launchGpuKernel() throws InternalError
on failure. GPU kernels scheduling details are unified into
a KernelLaunchConfig struct. The new functions are applied
in NB as well as PME (facilitating PME OpenCL porting).

Change-Id: I90205cf1cda93c377a342b7f1c46a8caf239ba65
12 files changed:
src/gromacs/ewald/pme-gather.cu
src/gromacs/ewald/pme-solve.cu
src/gromacs/ewald/pme-spread.cu
src/gromacs/ewald/pme-timings.cu
src/gromacs/ewald/pme-timings.cuh
src/gromacs/gpu_utils/cudautils.cuh
src/gromacs/gpu_utils/gpu_utils.cu
src/gromacs/gpu_utils/gputraits.cuh
src/gromacs/gpu_utils/gputraits_ocl.h
src/gromacs/gpu_utils/oclutils.h
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda.cu
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl.cpp