Add missing synchronization calls in CUDA version of LINCS
authorArtem Zhmurov <zhmurov@gmail.com>
Tue, 5 Oct 2021 15:24:29 +0000 (18:24 +0300)
committerMark Abraham <mark.j.abraham@gmail.com>
Wed, 6 Oct 2021 09:58:16 +0000 (09:58 +0000)
commit7ca97ff90154335724729778337fceb772c62a9f
tree2e46e6cc1b87b58c69b2d0a17a7452667c4cebd3
parentccd5bef5f2afb57b15efcdacd9b2b3fedbd5edef
Add missing synchronization calls in CUDA version of LINCS

In CUDA, the same shared memory buffer is used to store different
intermediate values. To avoid overwriting these values prematurely,
extra blocking synchronizations are needed in the GPU kernel.

This bug was not exposed neither by regression tests nor by unit tests
because it was affecting values rarely and the deviation were within
tolerances.
src/gromacs/mdlib/lincs_gpu_internal.cu