Commit 625f6440 authored by Peter Eastman's avatar Peter Eastman
Browse files

Disable CPU PME when using dispersion PME on OpenCL

parent 09d22418
...@@ -663,7 +663,6 @@ private: ...@@ -663,7 +663,6 @@ private:
OpenCLFFT3D* fft; OpenCLFFT3D* fft;
OpenCLFFT3D* dispersionFft; OpenCLFFT3D* dispersionFft;
Kernel cpuPme; Kernel cpuPme;
Kernel cpuDispersionPme;
PmeIO* pmeio; PmeIO* pmeio;
SyncQueuePostComputation* syncQueue; SyncQueuePostComputation* syncQueue;
cl::Kernel ewaldSumsKernel; cl::Kernel ewaldSumsKernel;
......
...@@ -1779,7 +1779,7 @@ void OpenCLCalcNonbondedForceKernel::initialize(const System& system, const Nonb ...@@ -1779,7 +1779,7 @@ void OpenCLCalcNonbondedForceKernel::initialize(const System& system, const Nonb
bool deviceIsCpu = (cl.getDevice().getInfo<CL_DEVICE_TYPE>() == CL_DEVICE_TYPE_CPU); bool deviceIsCpu = (cl.getDevice().getInfo<CL_DEVICE_TYPE>() == CL_DEVICE_TYPE_CPU);
if (deviceIsCpu) if (deviceIsCpu)
pmeDefines["DEVICE_IS_CPU"] = "1"; pmeDefines["DEVICE_IS_CPU"] = "1";
if (cl.getPlatformData().useCpuPme) { if (cl.getPlatformData().useCpuPme && !doLJPME) {
// Create the CPU PME kernel. // Create the CPU PME kernel.
try { try {
...@@ -1790,13 +1790,6 @@ void OpenCLCalcNonbondedForceKernel::initialize(const System& system, const Nonb ...@@ -1790,13 +1790,6 @@ void OpenCLCalcNonbondedForceKernel::initialize(const System& system, const Nonb
pmeio = new PmeIO(cl, addForcesKernel); pmeio = new PmeIO(cl, addForcesKernel);
cl.addPreComputation(new PmePreComputation(cl, cpuPme, *pmeio)); cl.addPreComputation(new PmePreComputation(cl, cpuPme, *pmeio));
cl.addPostComputation(new PmePostComputation(cpuPme, *pmeio)); cl.addPostComputation(new PmePostComputation(cpuPme, *pmeio));
if (doLJPME) {
cpuDispersionPme = getPlatform().createKernel(CalcDispersionPmeReciprocalForceKernel::Name(), *cl.getPlatformData().context);
cpuDispersionPme.getAs<CalcDispersionPmeReciprocalForceKernel>().initialize(dispersionGridSizeX, dispersionGridSizeY,
dispersionGridSizeZ, numParticles, dispersionAlpha);
cl.addPreComputation(new PmePreComputation(cl, cpuDispersionPme, *pmeio));
cl.addPostComputation(new PmePostComputation(cpuDispersionPme, *pmeio));
}
} }
catch (OpenMMException& ex) { catch (OpenMMException& ex) {
// The CPU PME plugin isn't available. // The CPU PME plugin isn't available.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment