Adding error message for large patches on nbond kernels 82/4782/2
authorJulio Maia <jmaia@ks.uiuc.edu>
Wed, 7 Nov 2018 17:29:14 +0000 (11:29 -0600)
committerJulio Maia <jmaia@ks.uiuc.edu>
Wed, 7 Nov 2018 19:39:43 +0000 (13:39 -0600)
commit0483fd793601b98efccfda5a7491eb83e8beb605
treebf643079c322731e0a6e2490d6b06ba8dadf6b25
parentdc1e20c8d759a9f6df2965cdf193f1eafac110b8
Adding error message for large patches on nbond kernels

We had an 'invalid argument' error when large patches (>11k atoms) were
accounted for on CudaTileList::buildTileLists. This happened because
the amount of shMem allocated inside the tilelist kernels
is dependant on the number of atoms in the largest patch.

I've added a query to get the maximum shared memory available per block.
We can compare that against the necessary shared memory to launch the
tilelist kernels, and if those launches are about to go wrong, NAMD prints
a nice message to warn the user about the patches sizes.

Change-Id: Ie35b40d83f87b06ec33cd60b0a1936cec18b6114
src/CudaComputeNonbonded.C
src/CudaComputeNonbonded.h
src/CudaTileListKernel.cu
src/CudaTileListKernel.h