1. The global non-const variable was temporary introduced to able to
test the PME SYCL spread kernel independently of the rest of the PME
(
f190fa59b4a72390b2aea2e74b4960941098ce4d). NOLINT should be
temporary fix as this variable will go away once the rest of PME
is implemented in SYCL.
2. The conditionals in sim_utils wrap the same copy operation after
4d38a0d65839f951bf275e465f8fb65a35b60b8d. So these conditional can
now be combined.
#include "pme_spline_work.h"
#include "pme_spread.h"
#include "pme_spline_work.h"
#include "pme_spread.h"
+//NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
bool g_allowPmeWithSyclForTesting = false;
bool pme_gpu_supports_build(std::string* error)
bool g_allowPmeWithSyclForTesting = false;
bool pme_gpu_supports_build(std::string* error)
*
* \todo Remove after #3927 is done and PME is fully enabled in SYCL builds.
*/
*
* \todo Remove after #3927 is done and PME is fully enabled in SYCL builds.
*/
+//NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
extern bool g_allowPmeWithSyclForTesting;
namespace gmx
extern bool g_allowPmeWithSyclForTesting;
namespace gmx
- if (simulationWork.useGpuPme && simulationWork.useCpuPmePpCommunication)
+ if ((simulationWork.useGpuPme && simulationWork.useCpuPmePpCommunication)
+ || (!runScheduleWork->stepWork.useGpuFBufferOps))
- // The PME forces were recieved to the host, and reduced on the CPU with the rest of the
- // forces computed on the GPU, so the final forces have to be copied back to the GPU
- stateGpu->copyForcesToGpu(f.view().force(), AtomLocality::Local);
- }
- else if (!runScheduleWork->stepWork.useGpuFBufferOps)
- {
- // The buffer ops were not offloaded this step, so the forces are on the
- // host and have to be copied
+ // The PME forces were recieved to the host, and reduced on the CPU with the
+ // rest of the forces computed on the GPU, so the final forces have to be copied
+ // back to the GPU. Or the buffer ops were not offloaded this step, so the
+ // forces are on the host and have to be copied
stateGpu->copyForcesToGpu(f.view().force(), AtomLocality::Local);
}
const bool doTemperatureScaling =
stateGpu->copyForcesToGpu(f.view().force(), AtomLocality::Local);
}
const bool doTemperatureScaling =