CUDA 9/Volta support for the nonbonded module
commit97f9f399c1a82e1bf63d96642855b434ce020dcd
authorJiri Kraus <jkraus@nvidia.com>
Wed, 19 Jul 2017 15:51:45 +0000 (19 08:51 -0700)
committerMark Abraham <mark.j.abraham@gmail.com>
Tue, 15 Aug 2017 14:38:00 +0000 (15 16:38 +0200)
treeb2f440b44d16dda8c51e4255f050ca7997edc2e7
parentf05b81c67309e71fbdb29aee94397fd72b731eb2
CUDA 9/Volta support for the nonbonded module

The Volta architecture introduces independent thread scheduling. This
new architectural feature breaks implicit warp synchronous programming
and requires new intrinsics for warp wide operations like shfl.

This change implements the necessary sync point for the Volta
architecture and replaces the deprecated warp-intrinsics with their
_sycn version.

Note that the current implementation is conservative and aims for Volta
compatibility only and the implementation is likely not optimal (for
details see nbnxn_cuda_kernel.cuh).

Change-Id: I38dd572992cf14ce5a7158d0bbc3086b54f18676
cmake/gmxManageNvccConfig.cmake
src/gromacs/gpu_utils/cuda_arch_utils.cuh
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_kernel.cuh
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_kernel_utils.cuh