Commit d95a5f21 authored by Stan Moore's avatar Stan Moore
Browse files

Remove all thread fences except one in verlet_kokkos

parent 3e6cdd14
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
@@ -308,7 +308,6 @@ int AtomVecAngleKokkos::pack_comm_kokkos(const int &n,
        Kokkos::parallel_for(n,f);
      }
    }
    LMPHostType::fence();
  } else {
    sync(Device,X_MASK);
    if(pbc_flag) {
@@ -336,7 +335,6 @@ int AtomVecAngleKokkos::pack_comm_kokkos(const int &n,
        Kokkos::parallel_for(n,f);
      }
    }
    LMPDeviceType::fence();
  }

  return n*size_forward;
@@ -430,7 +428,6 @@ int AtomVecAngleKokkos::pack_comm_self(const int &n, const DAT::tdual_int_2d &li
      Kokkos::parallel_for(n,f);
      }
    }
    LMPHostType::fence();
  } else {
    sync(Device,X_MASK);
    modified(Device,X_MASK);
@@ -463,7 +460,6 @@ int AtomVecAngleKokkos::pack_comm_self(const int &n, const DAT::tdual_int_2d &li
      Kokkos::parallel_for(n,f);
      }
    }
    LMPDeviceType::fence();
  }
	return n*3;
}
@@ -501,13 +497,11 @@ void AtomVecAngleKokkos::unpack_comm_kokkos(const int &n, const int &first,
    modified(Host,X_MASK);
    struct AtomVecAngleKokkos_UnpackComm<LMPHostType> f(atomKK->k_x,buf,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  } else {
    sync(Device,X_MASK);
    modified(Device,X_MASK);
    struct AtomVecAngleKokkos_UnpackComm<LMPDeviceType> f(atomKK->k_x,buf,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  }
}

@@ -753,13 +747,11 @@ int AtomVecAngleKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist,
        buf.view<LMPHostType>(), k_sendlist.view<LMPHostType>(),
        iswap,h_x,h_tag,h_type,h_mask,h_molecule,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPHostType::fence();
    } else {
      AtomVecAngleKokkos_PackBorder<LMPDeviceType,1> f(
        buf.view<LMPDeviceType>(), k_sendlist.view<LMPDeviceType>(),
        iswap,d_x,d_tag,d_type,d_mask,d_molecule,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPDeviceType::fence();
    }

  } else {
@@ -769,13 +761,11 @@ int AtomVecAngleKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist,
        buf.view<LMPHostType>(), k_sendlist.view<LMPHostType>(),
        iswap,h_x,h_tag,h_type,h_mask,h_molecule,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPHostType::fence();
    } else {
      AtomVecAngleKokkos_PackBorder<LMPDeviceType,0> f(
        buf.view<LMPDeviceType>(), k_sendlist.view<LMPDeviceType>(),
        iswap,d_x,d_tag,d_type,d_mask,d_molecule,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPDeviceType::fence();
    }
  }
  return n*size_border;
@@ -977,12 +967,10 @@ void AtomVecAngleKokkos::unpack_border_kokkos(const int &n, const int &first,
    struct AtomVecAngleKokkos_UnpackBorder<LMPHostType>
      f(buf.view<LMPHostType>(),h_x,h_tag,h_type,h_mask,h_molecule,first);
    Kokkos::parallel_for(n,f);
    LMPHostType::fence();
  } else {
    struct AtomVecAngleKokkos_UnpackBorder<LMPDeviceType>
      f(buf.view<LMPDeviceType>(),d_x,d_tag,d_type,d_mask,d_molecule,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  }
}

@@ -1241,13 +1229,11 @@ int AtomVecAngleKokkos::pack_exchange_kokkos(const int &nsend,DAT::tdual_xfloat_
    AtomVecAngleKokkos_PackExchangeFunctor<LMPHostType>
      f(atomKK,k_buf,k_sendlist,k_copylist,atom->nlocal,dim,lo,hi);
    Kokkos::parallel_for(nsend,f);
    LMPHostType::fence();
    return nsend*elements;
  } else {
    AtomVecAngleKokkos_PackExchangeFunctor<LMPDeviceType>
      f(atomKK,k_buf,k_sendlist,k_copylist,atom->nlocal,dim,lo,hi);
    Kokkos::parallel_for(nsend,f);
    LMPDeviceType::fence();
    return nsend*elements;
  }
}
@@ -1405,7 +1391,6 @@ int AtomVecAngleKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int n
    AtomVecAngleKokkos_UnpackExchangeFunctor<LMPHostType>
      f(atomKK,k_buf,k_count,dim,lo,hi);
    Kokkos::parallel_for(nrecv/elements,f);
    LMPHostType::fence();
    return k_count.h_view(0);
  } else {
    k_count.h_view(0) = nlocal;
@@ -1414,7 +1399,6 @@ int AtomVecAngleKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int n
    AtomVecAngleKokkos_UnpackExchangeFunctor<LMPDeviceType>
      f(atomKK,k_buf,k_count,dim,lo,hi);
    Kokkos::parallel_for(nrecv/elements,f);
    LMPDeviceType::fence();
    k_count.modify<LMPDeviceType>();
    k_count.sync<LMPHostType>();

+0 −16
Original line number Diff line number Diff line
@@ -224,7 +224,6 @@ int AtomVecAtomicKokkos::pack_comm_kokkos(const int &n,
        Kokkos::parallel_for(n,f);
      }
    }
    LMPHostType::fence();
  } else {
    sync(Device,X_MASK);
    if(pbc_flag) {
@@ -252,7 +251,6 @@ int AtomVecAtomicKokkos::pack_comm_kokkos(const int &n,
        Kokkos::parallel_for(n,f);
      }
    }
    LMPDeviceType::fence();
  }

	return n*size_forward;
@@ -340,7 +338,6 @@ int AtomVecAtomicKokkos::pack_comm_self(const int &n, const DAT::tdual_int_2d &l
      Kokkos::parallel_for(n,f);
      }
    }
    LMPHostType::fence();
  } else {
    sync(Device,X_MASK);
    modified(Device,X_MASK);
@@ -369,7 +366,6 @@ int AtomVecAtomicKokkos::pack_comm_self(const int &n, const DAT::tdual_int_2d &l
      Kokkos::parallel_for(n,f);
      }
    }
    LMPDeviceType::fence();
  }
	return n*3;
}
@@ -407,13 +403,11 @@ void AtomVecAtomicKokkos::unpack_comm_kokkos(const int &n, const int &first,
    modified(Host,X_MASK);
    struct AtomVecAtomicKokkos_UnpackComm<LMPHostType> f(atomKK->k_x,buf,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  } else {
    sync(Device,X_MASK);
    modified(Device,X_MASK);
    struct AtomVecAtomicKokkos_UnpackComm<LMPDeviceType> f(atomKK->k_x,buf,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  }
}

@@ -655,13 +649,11 @@ int AtomVecAtomicKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist,
        buf.view<LMPHostType>(), k_sendlist.view<LMPHostType>(),
        iswap,h_x,h_tag,h_type,h_mask,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPHostType::fence();
    } else {
      AtomVecAtomicKokkos_PackBorder<LMPDeviceType,1> f(
        buf.view<LMPDeviceType>(), k_sendlist.view<LMPDeviceType>(),
        iswap,d_x,d_tag,d_type,d_mask,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPDeviceType::fence();
    }

  } else {
@@ -671,13 +663,11 @@ int AtomVecAtomicKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist,
        buf.view<LMPHostType>(), k_sendlist.view<LMPHostType>(),
        iswap,h_x,h_tag,h_type,h_mask,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPHostType::fence();
    } else {
      AtomVecAtomicKokkos_PackBorder<LMPDeviceType,0> f(
        buf.view<LMPDeviceType>(), k_sendlist.view<LMPDeviceType>(),
        iswap,d_x,d_tag,d_type,d_mask,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPDeviceType::fence();
    }
  }
  return n*6;
@@ -853,11 +843,9 @@ void AtomVecAtomicKokkos::unpack_border_kokkos(const int &n, const int &first,
  if(space==Host) {
    struct AtomVecAtomicKokkos_UnpackBorder<LMPHostType> f(buf.view<LMPHostType>(),h_x,h_tag,h_type,h_mask,first);
    Kokkos::parallel_for(n,f);
    LMPHostType::fence();
  } else {
    struct AtomVecAtomicKokkos_UnpackBorder<LMPDeviceType> f(buf.view<LMPDeviceType>(),d_x,d_tag,d_type,d_mask,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  }
}

@@ -1009,12 +997,10 @@ int AtomVecAtomicKokkos::pack_exchange_kokkos(const int &nsend,DAT::tdual_xfloat
  if(space == Host) {
    AtomVecAtomicKokkos_PackExchangeFunctor<LMPHostType> f(atomKK,k_buf,k_sendlist,k_copylist,atom->nlocal,dim,lo,hi);
    Kokkos::parallel_for(nsend,f);
    LMPHostType::fence();
    return nsend*11;
  } else {
    AtomVecAtomicKokkos_PackExchangeFunctor<LMPDeviceType> f(atomKK,k_buf,k_sendlist,k_copylist,atom->nlocal,dim,lo,hi);
    Kokkos::parallel_for(nsend,f);
    LMPDeviceType::fence();
    return nsend*11;
  }
}
@@ -1106,7 +1092,6 @@ int AtomVecAtomicKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int
    k_count.h_view(0) = nlocal;
    AtomVecAtomicKokkos_UnpackExchangeFunctor<LMPHostType> f(atomKK,k_buf,k_count,dim,lo,hi);
    Kokkos::parallel_for(nrecv/11,f);
    LMPHostType::fence();
    return k_count.h_view(0);
  } else {
    k_count.h_view(0) = nlocal;
@@ -1114,7 +1099,6 @@ int AtomVecAtomicKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int
    k_count.sync<LMPDeviceType>();
    AtomVecAtomicKokkos_UnpackExchangeFunctor<LMPDeviceType> f(atomKK,k_buf,k_count,dim,lo,hi);
    Kokkos::parallel_for(nrecv/11,f);
    LMPDeviceType::fence();
    k_count.modify<LMPDeviceType>();
    k_count.sync<LMPHostType>();

+0 −16
Original line number Diff line number Diff line
@@ -266,7 +266,6 @@ int AtomVecBondKokkos::pack_comm_kokkos(const int &n,
        Kokkos::parallel_for(n,f);
      }
    }
    LMPHostType::fence();
  } else {
    sync(Device,X_MASK);
    if(pbc_flag) {
@@ -294,7 +293,6 @@ int AtomVecBondKokkos::pack_comm_kokkos(const int &n,
        Kokkos::parallel_for(n,f);
      }
    }
    LMPDeviceType::fence();
  }

	return n*size_forward;
@@ -382,7 +380,6 @@ int AtomVecBondKokkos::pack_comm_self(const int &n, const DAT::tdual_int_2d &lis
      Kokkos::parallel_for(n,f);
      }
    }
    LMPHostType::fence();
  } else {
    sync(Device,X_MASK);
    modified(Device,X_MASK);
@@ -411,7 +408,6 @@ int AtomVecBondKokkos::pack_comm_self(const int &n, const DAT::tdual_int_2d &lis
      Kokkos::parallel_for(n,f);
      }
    }
    LMPDeviceType::fence();
  }
	return n*3;
}
@@ -449,13 +445,11 @@ void AtomVecBondKokkos::unpack_comm_kokkos(const int &n, const int &first,
    modified(Host,X_MASK);
    struct AtomVecBondKokkos_UnpackComm<LMPHostType> f(atomKK->k_x,buf,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  } else {
    sync(Device,X_MASK);
    modified(Device,X_MASK);
    struct AtomVecBondKokkos_UnpackComm<LMPDeviceType> f(atomKK->k_x,buf,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  }
}

@@ -701,13 +695,11 @@ int AtomVecBondKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist,
        buf.view<LMPHostType>(), k_sendlist.view<LMPHostType>(),
        iswap,h_x,h_tag,h_type,h_mask,h_molecule,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPHostType::fence();
    } else {
      AtomVecBondKokkos_PackBorder<LMPDeviceType,1> f(
        buf.view<LMPDeviceType>(), k_sendlist.view<LMPDeviceType>(),
        iswap,d_x,d_tag,d_type,d_mask,d_molecule,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPDeviceType::fence();
    }

  } else {
@@ -717,13 +709,11 @@ int AtomVecBondKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist,
        buf.view<LMPHostType>(), k_sendlist.view<LMPHostType>(),
        iswap,h_x,h_tag,h_type,h_mask,h_molecule,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPHostType::fence();
    } else {
      AtomVecBondKokkos_PackBorder<LMPDeviceType,0> f(
        buf.view<LMPDeviceType>(), k_sendlist.view<LMPDeviceType>(),
        iswap,d_x,d_tag,d_type,d_mask,d_molecule,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPDeviceType::fence();
    }
  }
  return n*size_border;
@@ -925,12 +915,10 @@ void AtomVecBondKokkos::unpack_border_kokkos(const int &n, const int &first,
    struct AtomVecBondKokkos_UnpackBorder<LMPHostType>
      f(buf.view<LMPHostType>(),h_x,h_tag,h_type,h_mask,h_molecule,first);
    Kokkos::parallel_for(n,f);
    LMPHostType::fence();
  } else {
    struct AtomVecBondKokkos_UnpackBorder<LMPDeviceType>
      f(buf.view<LMPDeviceType>(),d_x,d_tag,d_type,d_mask,d_molecule,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  }
}

@@ -1157,13 +1145,11 @@ int AtomVecBondKokkos::pack_exchange_kokkos(const int &nsend,DAT::tdual_xfloat_2
    AtomVecBondKokkos_PackExchangeFunctor<LMPHostType>
      f(atomKK,k_buf,k_sendlist,k_copylist,atom->nlocal,dim,lo,hi);
    Kokkos::parallel_for(nsend,f);
    LMPHostType::fence();
    return nsend*elements;
  } else {
    AtomVecBondKokkos_PackExchangeFunctor<LMPDeviceType>
      f(atomKK,k_buf,k_sendlist,k_copylist,atom->nlocal,dim,lo,hi);
    Kokkos::parallel_for(nsend,f);
    LMPDeviceType::fence();
    return nsend*elements;
  }
}
@@ -1299,7 +1285,6 @@ int AtomVecBondKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int nr
    AtomVecBondKokkos_UnpackExchangeFunctor<LMPHostType>
      f(atomKK,k_buf,k_count,dim,lo,hi);
    Kokkos::parallel_for(nrecv/elements,f);
    LMPHostType::fence();
    return k_count.h_view(0);
  } else {
    k_count.h_view(0) = nlocal;
@@ -1308,7 +1293,6 @@ int AtomVecBondKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int nr
    AtomVecBondKokkos_UnpackExchangeFunctor<LMPDeviceType>
      f(atomKK,k_buf,k_count,dim,lo,hi);
    Kokkos::parallel_for(nrecv/elements,f);
    LMPDeviceType::fence();
    k_count.modify<LMPDeviceType>();
    k_count.sync<LMPHostType>();

+0 −16
Original line number Diff line number Diff line
@@ -236,7 +236,6 @@ int AtomVecChargeKokkos::pack_comm_kokkos(const int &n,
        Kokkos::parallel_for(n,f);
      }
    }
    LMPHostType::fence();
  } else {
    sync(Device,X_MASK);
    if(pbc_flag) {
@@ -264,7 +263,6 @@ int AtomVecChargeKokkos::pack_comm_kokkos(const int &n,
        Kokkos::parallel_for(n,f);
      }
    }
    LMPDeviceType::fence();
  }

	return n*size_forward;
@@ -352,7 +350,6 @@ int AtomVecChargeKokkos::pack_comm_self(const int &n, const DAT::tdual_int_2d &l
      Kokkos::parallel_for(n,f);
      }
    }
    LMPHostType::fence();
  } else {
    sync(Device,X_MASK);
    modified(Device,X_MASK);
@@ -381,7 +378,6 @@ int AtomVecChargeKokkos::pack_comm_self(const int &n, const DAT::tdual_int_2d &l
      Kokkos::parallel_for(n,f);
      }
    }
    LMPDeviceType::fence();
  }
	return n*3;
}
@@ -419,13 +415,11 @@ void AtomVecChargeKokkos::unpack_comm_kokkos(const int &n, const int &first,
    modified(Host,X_MASK);
    struct AtomVecChargeKokkos_UnpackComm<LMPHostType> f(atomKK->k_x,buf,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  } else {
    sync(Device,X_MASK);
    modified(Device,X_MASK);
    struct AtomVecChargeKokkos_UnpackComm<LMPDeviceType> f(atomKK->k_x,buf,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  }
}

@@ -669,13 +663,11 @@ int AtomVecChargeKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist,
        buf.view<LMPHostType>(), k_sendlist.view<LMPHostType>(),
        iswap,h_x,h_tag,h_type,h_mask,h_q,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPHostType::fence();
    } else {
      AtomVecChargeKokkos_PackBorder<LMPDeviceType,1> f(
        buf.view<LMPDeviceType>(), k_sendlist.view<LMPDeviceType>(),
        iswap,d_x,d_tag,d_type,d_mask,d_q,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPDeviceType::fence();
    }

  } else {
@@ -685,13 +677,11 @@ int AtomVecChargeKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist,
        buf.view<LMPHostType>(), k_sendlist.view<LMPHostType>(),
        iswap,h_x,h_tag,h_type,h_mask,h_q,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPHostType::fence();
    } else {
      AtomVecChargeKokkos_PackBorder<LMPDeviceType,0> f(
        buf.view<LMPDeviceType>(), k_sendlist.view<LMPDeviceType>(),
        iswap,d_x,d_tag,d_type,d_mask,d_q,dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPDeviceType::fence();
    }
  }
  return n*size_border;
@@ -890,12 +880,10 @@ void AtomVecChargeKokkos::unpack_border_kokkos(const int &n, const int &first,
    struct AtomVecChargeKokkos_UnpackBorder<LMPHostType>
      f(buf.view<LMPHostType>(),h_x,h_tag,h_type,h_mask,h_q,first);
    Kokkos::parallel_for(n,f);
    LMPHostType::fence();
  } else {
    struct AtomVecChargeKokkos_UnpackBorder<LMPDeviceType>
      f(buf.view<LMPDeviceType>(),d_x,d_tag,d_type,d_mask,d_q,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  }
  modified(space,X_MASK|TAG_MASK|TYPE_MASK|MASK_MASK|Q_MASK);
}
@@ -1078,13 +1066,11 @@ int AtomVecChargeKokkos::pack_exchange_kokkos(const int &nsend,DAT::tdual_xfloat
    AtomVecChargeKokkos_PackExchangeFunctor<LMPHostType>
      f(atomKK,k_buf,k_sendlist,k_copylist,atom->nlocal,dim,lo,hi);
    Kokkos::parallel_for(nsend,f);
    LMPHostType::fence();
    return nsend*12;
  } else {
    AtomVecChargeKokkos_PackExchangeFunctor<LMPDeviceType>
      f(atomKK,k_buf,k_sendlist,k_copylist,atom->nlocal,dim,lo,hi);
    Kokkos::parallel_for(nsend,f);
    LMPDeviceType::fence();
    return nsend*12;
  }
}
@@ -1181,7 +1167,6 @@ int AtomVecChargeKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int
    k_count.h_view(0) = nlocal;
    AtomVecChargeKokkos_UnpackExchangeFunctor<LMPHostType> f(atomKK,k_buf,k_count,dim,lo,hi);
    Kokkos::parallel_for(nrecv/12,f);
    LMPHostType::fence();
    return k_count.h_view(0);
  } else {
    k_count.h_view(0) = nlocal;
@@ -1190,7 +1175,6 @@ int AtomVecChargeKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int
    AtomVecChargeKokkos_UnpackExchangeFunctor<LMPDeviceType>
      f(atomKK,k_buf,k_count,dim,lo,hi);
    Kokkos::parallel_for(nrecv/12,f);
    LMPDeviceType::fence();
    k_count.modify<LMPDeviceType>();
    k_count.sync<LMPHostType>();

+0 −16
Original line number Diff line number Diff line
@@ -298,7 +298,6 @@ int AtomVecDPDKokkos::pack_comm_kokkos(const int &n,
        Kokkos::parallel_for(n,f);
      }
    }
    LMPHostType::fence();
  } else {
    sync(Device,X_MASK|DPDTHETA_MASK|UCOND_MASK|UMECH_MASK|UCHEM_MASK);
    if(pbc_flag) {
@@ -334,7 +333,6 @@ int AtomVecDPDKokkos::pack_comm_kokkos(const int &n,
        Kokkos::parallel_for(n,f);
      }
    }
    LMPDeviceType::fence();
  }

	return n*size_forward;
@@ -443,7 +441,6 @@ int AtomVecDPDKokkos::pack_comm_self(const int &n, const DAT::tdual_int_2d &list
      Kokkos::parallel_for(n,f);
      }
    }
    LMPHostType::fence();
  } else {
    sync(Device,X_MASK|DPDTHETA_MASK|UCOND_MASK|UMECH_MASK|UCHEM_MASK);
    modified(Device,X_MASK|DPDTHETA_MASK|UCOND_MASK|UMECH_MASK|UCHEM_MASK);
@@ -480,7 +477,6 @@ int AtomVecDPDKokkos::pack_comm_self(const int &n, const DAT::tdual_int_2d &list
      Kokkos::parallel_for(n,f);
      }
    }
    LMPDeviceType::fence();
  }
	return n*3;
}
@@ -534,7 +530,6 @@ void AtomVecDPDKokkos::unpack_comm_kokkos(const int &n, const int &first,
    atomKK->k_dpdTheta,atomKK->k_uCond,atomKK->k_uMech,atomKK->k_uChem,
    buf,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  } else {
    sync(Device,X_MASK|DPDTHETA_MASK|UCOND_MASK|UMECH_MASK|UCHEM_MASK);
    modified(Device,X_MASK|DPDTHETA_MASK|UCOND_MASK|UMECH_MASK|UCHEM_MASK);
@@ -542,7 +537,6 @@ void AtomVecDPDKokkos::unpack_comm_kokkos(const int &n, const int &first,
    atomKK->k_dpdTheta,atomKK->k_uCond,atomKK->k_uMech,atomKK->k_uChem,
    buf,first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  }
}

@@ -840,7 +834,6 @@ int AtomVecDPDKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist, DA
        h_dpdTheta,h_uCond,h_uMech,h_uChem,h_uCG,h_uCGnew,
        dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPHostType::fence();
    } else {
      AtomVecDPDKokkos_PackBorder<LMPDeviceType,1> f(
        buf.view<LMPDeviceType>(), k_sendlist.view<LMPDeviceType>(),
@@ -848,7 +841,6 @@ int AtomVecDPDKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist, DA
        d_dpdTheta,d_uCond,d_uMech,d_uChem,d_uCG,d_uCGnew,
        dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPDeviceType::fence();
    }

  } else {
@@ -860,7 +852,6 @@ int AtomVecDPDKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist, DA
        h_dpdTheta,h_uCond,h_uMech,h_uChem,h_uCG,h_uCGnew,
        dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPHostType::fence();
    } else {
      AtomVecDPDKokkos_PackBorder<LMPDeviceType,0> f(
        buf.view<LMPDeviceType>(), k_sendlist.view<LMPDeviceType>(),
@@ -868,7 +859,6 @@ int AtomVecDPDKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist, DA
        d_dpdTheta,d_uCond,d_uMech,d_uChem,d_uCG,d_uCGnew,
        dx,dy,dz);
      Kokkos::parallel_for(n,f);
      LMPDeviceType::fence();
    }
  }
  return n*6;
@@ -1146,14 +1136,12 @@ void AtomVecDPDKokkos::unpack_border_kokkos(const int &n, const int &first,
      h_dpdTheta,h_uCond,h_uMech,h_uChem,h_uCG,h_uCGnew,
      first);
    Kokkos::parallel_for(n,f);
    LMPHostType::fence();
  } else {
    struct AtomVecDPDKokkos_UnpackBorder<LMPDeviceType> f(buf.view<LMPDeviceType>(),
      d_x,d_tag,d_type,d_mask,
      d_dpdTheta,d_uCond,d_uMech,d_uChem,d_uCG,d_uCGnew,
      first);
    Kokkos::parallel_for(n,f);
    LMPDeviceType::fence();
  }
}

@@ -1399,11 +1387,9 @@ int AtomVecDPDKokkos::pack_exchange_kokkos(const int &nsend,DAT::tdual_xfloat_2d
  if(space == Host) {
    AtomVecDPDKokkos_PackExchangeFunctor<LMPHostType> f(atomKK,k_buf,k_sendlist,k_copylist,atom->nlocal,dim,lo,hi);
    Kokkos::parallel_for(nsend,f);
    LMPHostType::fence();
  } else {
    AtomVecDPDKokkos_PackExchangeFunctor<LMPDeviceType> f(atomKK,k_buf,k_sendlist,k_copylist,atom->nlocal,dim,lo,hi);
    Kokkos::parallel_for(nsend,f);
    LMPDeviceType::fence();
  }
  return nsend*17;
}
@@ -1518,14 +1504,12 @@ int AtomVecDPDKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf,int nre
    k_count.h_view(0) = nlocal;
    AtomVecDPDKokkos_UnpackExchangeFunctor<LMPHostType> f(atomKK,k_buf,k_count,dim,lo,hi);
    Kokkos::parallel_for(nrecv/17,f);
    LMPHostType::fence();
  } else {
    k_count.h_view(0) = nlocal;
    k_count.modify<LMPHostType>();
    k_count.sync<LMPDeviceType>();
    AtomVecDPDKokkos_UnpackExchangeFunctor<LMPDeviceType> f(atomKK,k_buf,k_count,dim,lo,hi);
    Kokkos::parallel_for(nrecv/17,f);
    LMPDeviceType::fence();
    k_count.modify<LMPDeviceType>();
    k_count.sync<LMPHostType>();
  }
Loading