#include "gromacs/nbnxm/pairlist.h"
#include "gromacs/utility/gmxassert.h"
+#include "pairlistsets.h"
#include "kernels_reference/kernel_ref_prune.h"
#include "kernels_simd_2xmm/kernel_prune.h"
#include "kernels_simd_4xm/kernel_prune.h"
void
-nonbonded_verlet_t::PairlistSets::dispatchPruneKernel(const Nbnxm::InteractionLocality iLocality,
- const nbnxn_atomdata_t *nbat,
- const rvec *shift_vec,
- const Nbnxm::KernelType kernelType)
+PairlistSets::dispatchPruneKernel(const Nbnxm::InteractionLocality iLocality,
+ const nbnxn_atomdata_t *nbat,
+ const rvec *shift_vec,
+ const Nbnxm::KernelType kernelType)
{
pairlistSet(iLocality).dispatchPruneKernel(nbat, shift_vec, kernelType);
}
{
pairlistSets_->dispatchPruneKernel(iLocality, nbat.get(), shift_vec, kernelSetup_.kernelType);
}
+
+void nonbonded_verlet_t::dispatchPruneKernelGpu(int64_t step)
+{
+ const bool stepIsEven = (pairlistSets().numStepsWithPairlist(step) % 2 == 0);
+
+ Nbnxm::gpu_launch_kernel_pruneonly(gpu_nbv,
+ stepIsEven ? Nbnxm::InteractionLocality::Local : Nbnxm::InteractionLocality::NonLocal,
+ pairlistSets().params().numRollingPruningParts);
+}