"...ssh:/git@developer.sourcefind.cn:2222/tsoc/openmm.git" did not exist on "dad22074e2619c51031f5ac2fb6b306d568bae0e"
Unverified Commit ac67d179 authored by Peter Eastman's avatar Peter Eastman Committed by GitHub
Browse files

Fixed test failures on CPU OpenCL (#3003)

parent e53bdc5e
......@@ -530,7 +530,9 @@ void OpenCLContext::initialize() {
energyParamDerivBuffer.initialize<cl_float>(*this, numEnergyParamDerivs*energyBufferSize, "energyParamDerivBuffer");
addAutoclearBuffer(energyParamDerivBuffer);
}
int bufferBytes = max(velm.getSize()*velm.getElementSize(), energyBufferSize*energyBuffer.getElementSize());
int bufferBytes = max(max(velm.getSize()*velm.getElementSize(),
energyBufferSize*energyBuffer.getElementSize()),
longForceBuffer.getSize()*longForceBuffer.getElementSize());
pinnedBuffer = new cl::Buffer(context, CL_MEM_ALLOC_HOST_PTR, bufferBytes);
pinnedMemory = currentQueue.enqueueMapBuffer(*pinnedBuffer, CL_TRUE, CL_MAP_READ | CL_MAP_WRITE, 0, bufferBytes);
for (int i = 0; i < numAtoms; i++) {
......
......@@ -155,6 +155,8 @@ void runPlatformTests() {
testParallelComputation(NonbondedForce::Ewald);
testParallelComputation(NonbondedForce::PME);
testReordering();
if (canRunHugeTest())
testHugeSystem();
if (canRunHugeTest()) {
double tol = (platform.getPropertyDefaultValue("Precision") == "single" ? 1e-4 : 1e-5);
testHugeSystem(tol);
}
}
......@@ -536,7 +536,7 @@ void testLargeSystem() {
ASSERT_EQUAL_TOL(state.getPotentialEnergy(), referenceState.getPotentialEnergy(), tol);
}
void testHugeSystem() {
void testHugeSystem(double tol=1e-5) {
// Create a system with over 3 million particles.
const int gridSize = 150;
......@@ -590,7 +590,7 @@ void testHugeSystem() {
State state2 = context.getState(State::Energy);
context.setPositions(positions3);
State state3 = context.getState(State::Energy);
ASSERT_EQUAL_TOL(state2.getPotentialEnergy(), state3.getPotentialEnergy()+norm*delta, 1e-5)
ASSERT_EQUAL_TOL(state2.getPotentialEnergy(), state3.getPotentialEnergy()+norm*delta, tol)
}
void testDispersionCorrection() {
......
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