Fix the single-GPU update-constraints
authorArtem Zhmurov <zhmurov@gmail.com>
Mon, 14 Oct 2019 21:36:20 +0000 (23:36 +0200)
committerSzilárd Páll <pall.szilard@gmail.com>
Tue, 15 Oct 2019 17:10:43 +0000 (19:10 +0200)
This is a temporary fix to make it work. Better solutions are in other patches.

1. The getter for the update stream returned the stream itself instead of a
   pointer to it.
2. The copy stream for forces with AtomLocality:All set to updateStream.

Change-Id: I02b15beddebc160f2fe4fc21da64975977855699

src/gromacs/mdtypes/state_propagator_data_gpu_impl_gpu.cpp

index fd591bc9846c822617efc7a4d0999b389c0ec81d..50294a921cd46f223530063ee4c5149335d18739 100644 (file)
@@ -124,7 +124,7 @@ StatePropagatorDataGpu::Impl::Impl(const void            *pmeStream,
 
     fCopyStreams_[AtomLocality::Local]    = localStream_;
     fCopyStreams_[AtomLocality::NonLocal] = nonLocalStream_;
-    fCopyStreams_[AtomLocality::All]      = nullptr;
+    fCopyStreams_[AtomLocality::All]      = updateStream_;
 }
 
 StatePropagatorDataGpu::Impl::Impl(const void            *pmeStream,
@@ -450,7 +450,7 @@ void StatePropagatorDataGpu::Impl::waitForcesReadyOnHost(AtomLocality  atomLocal
 
 void* StatePropagatorDataGpu::Impl::getUpdateStream()
 {
-    return updateStream_;
+    return &updateStream_;
 }
 
 int StatePropagatorDataGpu::Impl::numAtomsLocal()