Fix bad CUDA forces with with oversized periodic cell 29/4629/1
authorJim Phillips <jim@ks.uiuc.edu>
Fri, 28 Sep 2018 17:14:33 +0000 (12:14 -0500)
committerJim Phillips <jim@ks.uiuc.edu>
Fri, 28 Sep 2018 17:14:33 +0000 (12:14 -0500)
commit34b347b0c314715bcaa40528601a4ec3e92862dd
treef12cad5fa4df933292c1342aaf86e0b00fc78d17
parent6f1abde7d91c6ad756f4913d9a09bb41ccb3eef1
Fix bad CUDA forces with with oversized periodic cell

The newer tile-based streaming nonbonded kernel (useCuda2 yes)
skips copying forces to the host for patches that have no
interacting tile pairs.  This can leave stale or uninitialized
force data on the host that is copied to the patch forces.
Fix is to initialize host force data to zero for such patches.

Symptom is eventual instability in the simulation, although
pressure in a deterministic run diverges after first cycle.
This has only been observed on a large parallel run with many
nearly empty patches due to an oversized periodic cell,
such that a patch could have only atoms that are outside the
tile pairlist distance for any interactions on the same GPU.
Workarounds include +nostreaming flag or useCuda2 no option.

Change-Id: Ie4a26905acf65d74332e2f2779ec1428f763a70a
src/CudaComputeNonbonded.C