Add OpenCL pruning kernels and launch/timing logic
commit72a0e13408d527c2b93a66e88f23c2100d22ee43
authorSzilárd Páll <pall.szilard@gmail.com>
Wed, 29 Mar 2017 01:26:11 +0000 (29 03:26 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Mon, 21 Aug 2017 12:27:29 +0000 (21 14:27 +0200)
tree4d7d38cef6a306df1f8f9a5510feef52e95211bf
parent25b6c3a473c93f32299f228fc7e52d234c73caae
Add OpenCL pruning kernels and launch/timing logic

The kernels have been tested for correction on NVIDIA >=CC 3.5 and AMD
GCN devices. Tuning for AMD has been done on the old fglrx stack which
has limitations on the intra-workgroup parallelism, so choice of the
j4 concurrency parameter should be revisited at some later stage (using
the latest AMDGPU-PRO and hopefully ROCm).

A number of possible improvements have been also identified and noted as
comments in nbnxn_ocl.cpp.

Change-Id: I7129ec247706d33317df1256846943ee8b0d540c
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_jit_support.cpp
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl_kernel_amd.clh
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl_kernel_nowarp.clh
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl_kernel_nvidia.clh
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl_kernel_pruneonly.clh [new file with mode: 0644]
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl_kernel_utils.clh
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl_kernels.cl
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl_types.h