diff --git a/src/KOKKOS/domain_kokkos.cpp b/src/KOKKOS/domain_kokkos.cpp index 5c1f1a60b9f29117d5dd728f21c8d8b7a13b8327..9742dc36b0e214940f7b05be73f0987065b6886c 100644 --- a/src/KOKKOS/domain_kokkos.cpp +++ b/src/KOKKOS/domain_kokkos.cpp @@ -402,7 +402,6 @@ void DomainKokkos::pbc() void DomainKokkos::remap_all() { atomKK->sync(Device,X_MASK | IMAGE_MASK); - atomKK->modified(Device,X_MASK | IMAGE_MASK); x = atomKK->k_x.view<LMPDeviceType>(); image = atomKK->k_image.view<LMPDeviceType>(); @@ -428,6 +427,8 @@ void DomainKokkos::remap_all() LMPDeviceType::fence(); copymode = 0; + atomKK->modified(Device,X_MASK | IMAGE_MASK); + if (triclinic) lamda2x(nlocal); } @@ -521,7 +522,6 @@ void DomainKokkos::image_flip(int m_in, int n_in, int p_in) p_flip = p_in; atomKK->sync(Device,IMAGE_MASK); - atomKK->modified(Device,IMAGE_MASK); image = atomKK->k_image.view<LMPDeviceType>(); int nlocal = atomKK->nlocal; @@ -530,6 +530,8 @@ void DomainKokkos::image_flip(int m_in, int n_in, int p_in) Kokkos::parallel_for(Kokkos::RangePolicy<LMPDeviceType, TagDomain_image_flip>(0,nlocal),*this); LMPDeviceType::fence(); copymode = 0; + + atomKK->modified(Device,IMAGE_MASK); } KOKKOS_INLINE_FUNCTION @@ -554,7 +556,6 @@ void DomainKokkos::operator()(TagDomain_image_flip, const int &i) const { void DomainKokkos::lamda2x(int n) { atomKK->sync(Device,X_MASK); - atomKK->modified(Device,X_MASK); x = atomKK->k_x.view<LMPDeviceType>(); @@ -562,6 +563,8 @@ void DomainKokkos::lamda2x(int n) Kokkos::parallel_for(Kokkos::RangePolicy<LMPDeviceType, TagDomain_lamda2x>(0,n),*this); LMPDeviceType::fence(); copymode = 0; + + atomKK->modified(Device,X_MASK); } KOKKOS_INLINE_FUNCTION @@ -579,7 +582,6 @@ void DomainKokkos::operator()(TagDomain_lamda2x, const int &i) const { void DomainKokkos::x2lamda(int n) { atomKK->sync(Device,X_MASK); - atomKK->modified(Device,X_MASK); x = atomKK->k_x.view<LMPDeviceType>(); @@ -587,6 +589,8 @@ void DomainKokkos::x2lamda(int n) Kokkos::parallel_for(Kokkos::RangePolicy<LMPDeviceType, TagDomain_x2lamda>(0,n),*this); LMPDeviceType::fence(); copymode = 0; + + atomKK->modified(Device,X_MASK); } KOKKOS_INLINE_FUNCTION diff --git a/src/KOKKOS/fix_langevin_kokkos.cpp b/src/KOKKOS/fix_langevin_kokkos.cpp index b51c934c3e602de7198f475c2deb0ff7f228f5ad..0572dcedbecbfab7634285d2dff7b73ac967e008 100644 --- a/src/KOKKOS/fix_langevin_kokkos.cpp +++ b/src/KOKKOS/fix_langevin_kokkos.cpp @@ -177,11 +177,12 @@ void FixLangevinKokkos<DeviceType>::post_force(int vflag) // account for bias velocity if(tbiasflag == BIAS){ + atomKK->sync(temperature->execution_space,temperature->datamask_read); temperature->compute_scalar(); temperature->remove_bias_all(); // modifies velocities // if temeprature compute is kokkosized host-devcie comm won't be needed - atomKK->modified(Host,V_MASK); - atomKK->sync(execution_space,V_MASK); + atomKK->modified(temperature->execution_space,temperature->datamask_modify); + atomKK->sync(execution_space,temperature->datamask_modify); } // compute langevin force in parallel on the device @@ -508,8 +509,10 @@ void FixLangevinKokkos<DeviceType>::post_force(int vflag) DeviceType::fence(); if(tbiasflag == BIAS){ + atomKK->sync(temperature->execution_space,temperature->datamask_read); temperature->restore_bias_all(); // modifies velocities - atomKK->modified(Host,V_MASK); + atomKK->modified(temperature->execution_space,temperature->datamask_modify); + atomKK->sync(execution_space,temperature->datamask_modify); } // set modify flags for the views modified in post_force functor