🐛 Fixed aforementioned correctness issue by deleting a superflous cudaMemcpy in computeForce() that was overwriting correct data with incorrect data
This commit is contained in:
		@@ -193,11 +193,6 @@ double computeForce(
 | 
			
		||||
 | 
			
		||||
    cudaProfilerStart();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    if(!reneighbourHappenend) {
 | 
			
		||||
        checkCUDAError( "computeForce c_atom->x memcpy", cudaMemcpy(c_atom->x, atom->x, sizeof(MD_FLOAT) * atom->Nmax * 3, cudaMemcpyHostToDevice) );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const int num_blocks = ceil((float)Nlocal / (float)num_threads_per_block);
 | 
			
		||||
 | 
			
		||||
    double S = getTimeStamp();
 | 
			
		||||
 
 | 
			
		||||
@@ -363,6 +363,7 @@ int main(int argc, char** argv)
 | 
			
		||||
        cuda_final_integrate(doReneighbour, ¶m, &atom, &c_atom, num_threads_per_block);
 | 
			
		||||
 | 
			
		||||
        if(!((n + 1) % param.nstat) && (n+1) < param.ntimes) {
 | 
			
		||||
	    checkCUDAError("computeThermo atom->x memcpy back", cudaMemcpy(atom.x, c_atom.x, atom.Nmax * sizeof(MD_FLOAT) * 3, cudaMemcpyDeviceToHost) );
 | 
			
		||||
            computeThermo(n + 1, ¶m, &atom);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -131,7 +131,9 @@ void updatePbc_cuda(Atom *atom, Parameter *param, Atom *c_atom, bool doReneighbo
 | 
			
		||||
     *                                                          MD_FLOAT xprd, MD_FLOAT yprd, MD_FLOAT zprd)
 | 
			
		||||
     * */
 | 
			
		||||
    computePbcUpdate<<<num_blocks, num_threads_per_block>>>(*c_atom, c_PBCx, c_PBCy, c_PBCz, xprd, yprd, zprd);
 | 
			
		||||
    checkCUDAError( "updatePbc atom->x memcpy back", cudaMemcpy(atom->x, c_atom->x, atom->Nmax * sizeof(MD_FLOAT) * 3, cudaMemcpyDeviceToHost) );
 | 
			
		||||
    if(doReneighbor){
 | 
			
		||||
    	checkCUDAError( "updatePbc atom->x memcpy back", cudaMemcpy(atom->x, c_atom->x, atom->Nmax * sizeof(MD_FLOAT) * 3, cudaMemcpyDeviceToHost) );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* relocate atoms that have left domain according
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user