From 2dd737e7655732ea90b7248f53571a9f712ea7bb Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 27 Apr 2020 14:47:03 -0600 Subject: [PATCH] Fix UVM compile issues --- src/KOKKOS/angle_charmm_kokkos.cpp | 22 ++++++------- src/KOKKOS/angle_charmm_kokkos.h | 8 +++-- src/KOKKOS/bond_harmonic_kokkos.cpp | 12 +++---- src/KOKKOS/bond_harmonic_kokkos.h | 9 ++--- src/KOKKOS/dihedral_charmm_kokkos.cpp | 44 ++++++++++++------------- src/KOKKOS/dihedral_charmm_kokkos.h | 17 +++++----- src/KOKKOS/improper_harmonic_kokkos.cpp | 4 +-- src/KOKKOS/improper_harmonic_kokkos.h | 11 ++++--- src/KOKKOS/pppm_kokkos.cpp | 10 +++--- src/KOKKOS/pppm_kokkos.h | 8 ++--- 10 files changed, 75 insertions(+), 70 deletions(-) diff --git a/src/KOKKOS/angle_charmm_kokkos.cpp b/src/KOKKOS/angle_charmm_kokkos.cpp index 245aead73e..8d7a4d23d6 100644 --- a/src/KOKKOS/angle_charmm_kokkos.cpp +++ b/src/KOKKOS/angle_charmm_kokkos.cpp @@ -72,21 +72,21 @@ void AngleCharmmKokkos::compute(int eflag_in, int vflag_in) //if(k_eatom.extent(0)destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom"); - d_eatom = k_eatom.template view(); + d_eatom = k_eatom.template view(); //} } if (vflag_atom) { //if(k_vatom.extent(0)destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom"); - d_vatom = k_vatom.template view(); + d_vatom = k_vatom.template view(); //} } x = atomKK->k_x.view(); f = atomKK->k_f.view(); neighborKK->k_anglelist.template sync(); - anglelist = neighborKK->k_anglelist.view(); + anglelist = neighborKK->k_anglelist.view(); int nanglelist = neighborKK->nanglelist; nlocal = atom->nlocal; newton_bond = force->newton_bond; @@ -265,10 +265,10 @@ void AngleCharmmKokkos::coeff(int narg, char **arg) AngleCharmm::coeff(narg, arg); int n = atom->nangletypes; - Kokkos::DualView k_k("AngleCharmm::k",n+1); - Kokkos::DualView k_theta0("AngleCharmm::theta0",n+1); - Kokkos::DualView k_k_ub("AngleCharmm::k_ub",n+1); - Kokkos::DualView k_r_ub("AngleCharmm::r_ub",n+1); + typename AT::tdual_ffloat_1d k_k("AngleCharmm::k",n+1); + typename AT::tdual_ffloat_1d k_theta0("AngleCharmm::theta0",n+1); + typename AT::tdual_ffloat_1d k_k_ub("AngleCharmm::k_ub",n+1); + typename AT::tdual_ffloat_1d k_r_ub("AngleCharmm::r_ub",n+1); d_k = k_k.template view(); d_theta0 = k_theta0.template view(); @@ -303,10 +303,10 @@ void AngleCharmmKokkos::read_restart(FILE *fp) AngleCharmm::read_restart(fp); int n = atom->nangletypes; - Kokkos::DualView k_k("AngleCharmm::k",n+1); - Kokkos::DualView k_theta0("AngleCharmm::theta0",n+1); - Kokkos::DualView k_k_ub("AngleCharmm::k_ub",n+1); - Kokkos::DualView k_r_ub("AngleCharmm::r_ub",n+1); + typename AT::tdual_ffloat_1d k_k("AngleCharmm::k",n+1); + typename AT::tdual_ffloat_1d k_theta0("AngleCharmm::theta0",n+1); + typename AT::tdual_ffloat_1d k_k_ub("AngleCharmm::k_ub",n+1); + typename AT::tdual_ffloat_1d k_r_ub("AngleCharmm::r_ub",n+1); d_k = k_k.template view(); d_theta0 = k_theta0.template view(); diff --git a/src/KOKKOS/angle_charmm_kokkos.h b/src/KOKKOS/angle_charmm_kokkos.h index 865439b83a..c7f64d4c22 100644 --- a/src/KOKKOS/angle_charmm_kokkos.h +++ b/src/KOKKOS/angle_charmm_kokkos.h @@ -63,11 +63,13 @@ class AngleCharmmKokkos : public AngleCharmm { typedef ArrayTypes AT; typename AT::t_x_array_randomread x; - typename Kokkos::View::value,Kokkos::MemoryTraits > f; + + typedef typename KKDevice::value KKDeviceType; + typename Kokkos::View > f; typename AT::t_int_2d anglelist; - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; Kokkos::View::value,Kokkos::MemoryTraits > d_eatom; Kokkos::View::value,Kokkos::MemoryTraits > d_vatom; diff --git a/src/KOKKOS/bond_harmonic_kokkos.cpp b/src/KOKKOS/bond_harmonic_kokkos.cpp index e0d75dcd9a..4e2a5aaa05 100644 --- a/src/KOKKOS/bond_harmonic_kokkos.cpp +++ b/src/KOKKOS/bond_harmonic_kokkos.cpp @@ -69,14 +69,14 @@ void BondHarmonicKokkos::compute(int eflag_in, int vflag_in) //if(k_eatom.extent(0)destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom"); - d_eatom = k_eatom.template view(); + d_eatom = k_eatom.template view(); //} } if (vflag_atom) { //if(k_vatom.extent(0)destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom"); - d_vatom = k_vatom.template view(); + d_vatom = k_vatom.template view(); //} } @@ -204,8 +204,8 @@ void BondHarmonicKokkos::coeff(int narg, char **arg) BondHarmonic::coeff(narg, arg); int n = atom->nbondtypes; - Kokkos::DualView k_k("BondHarmonic::k",n+1); - Kokkos::DualView k_r0("BondHarmonic::r0",n+1); + typename AT::tdual_ffloat_1d k_k("BondHarmonic::k",n+1); + typename AT::tdual_ffloat_1d k_r0("BondHarmonic::r0",n+1); d_k = k_k.template view(); d_r0 = k_r0.template view(); @@ -231,8 +231,8 @@ void BondHarmonicKokkos::read_restart(FILE *fp) BondHarmonic::read_restart(fp); int n = atom->nbondtypes; - Kokkos::DualView k_k("BondHarmonic::k",n+1); - Kokkos::DualView k_r0("BondHarmonic::r0",n+1); + typename AT::tdual_ffloat_1d k_k("BondHarmonic::k",n+1); + typename AT::tdual_ffloat_1d k_r0("BondHarmonic::r0",n+1); d_k = k_k.template view(); d_r0 = k_r0.template view(); diff --git a/src/KOKKOS/bond_harmonic_kokkos.h b/src/KOKKOS/bond_harmonic_kokkos.h index b5bee7e909..cf716ec843 100644 --- a/src/KOKKOS/bond_harmonic_kokkos.h +++ b/src/KOKKOS/bond_harmonic_kokkos.h @@ -66,10 +66,11 @@ class BondHarmonicKokkos : public BondHarmonic { typename Kokkos::View::value,Kokkos::MemoryTraits > f; typename AT::t_int_2d bondlist; - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_eatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_vatom; + typedef typename KKDevice::value KKDeviceType; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; + Kokkos::View > d_eatom; + Kokkos::View > d_vatom; int nlocal,newton_bond; int eflag,vflag; diff --git a/src/KOKKOS/dihedral_charmm_kokkos.cpp b/src/KOKKOS/dihedral_charmm_kokkos.cpp index 06f25ee0a2..7fb8bd525a 100644 --- a/src/KOKKOS/dihedral_charmm_kokkos.cpp +++ b/src/KOKKOS/dihedral_charmm_kokkos.cpp @@ -82,18 +82,18 @@ void DihedralCharmmKokkos::compute(int eflag_in, int vflag_in) //if(k_eatom.extent(0)destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"dihedral:eatom"); - d_eatom = k_eatom.template view(); - k_eatom_pair = Kokkos::DualView("dihedral:eatom_pair",maxeatom); - d_eatom_pair = k_eatom.template view(); + d_eatom = k_eatom.template view(); + k_eatom_pair = Kokkos::DualView("dihedral:eatom_pair",maxeatom); + d_eatom_pair = k_eatom.template view(); //} } if (vflag_atom) { //if(k_vatom.extent(0)destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"dihedral:vatom"); - d_vatom = k_vatom.template view(); - k_vatom_pair = Kokkos::DualView("dihedral:vatom_pair",maxvatom); - d_vatom_pair = k_vatom.template view(); + d_vatom = k_vatom.template view(); + k_vatom_pair = Kokkos::DualView("dihedral:vatom_pair",maxvatom); + d_vatom_pair = k_vatom.template view(); //} } @@ -424,12 +424,12 @@ void DihedralCharmmKokkos::coeff(int narg, char **arg) DihedralCharmm::coeff(narg, arg); int nd = atom->ndihedraltypes; - Kokkos::DualView k_k("DihedralCharmm::k",nd+1); - Kokkos::DualView k_multiplicity("DihedralCharmm::multiplicity",nd+1); - Kokkos::DualView k_shift("DihedralCharmm::shift",nd+1); - Kokkos::DualView k_cos_shift("DihedralCharmm::cos_shift",nd+1); - Kokkos::DualView k_sin_shift("DihedralCharmm::sin_shift",nd+1); - Kokkos::DualView k_weight("DihedralCharmm::weight",nd+1); + typename AT::tdual_ffloat_1d k_k("DihedralCharmm::k",nd+1); + typename AT::tdual_ffloat_1d k_multiplicity("DihedralCharmm::multiplicity",nd+1); + typename AT::tdual_ffloat_1d k_shift("DihedralCharmm::shift",nd+1); + typename AT::tdual_ffloat_1d k_cos_shift("DihedralCharmm::cos_shift",nd+1); + typename AT::tdual_ffloat_1d k_sin_shift("DihedralCharmm::sin_shift",nd+1); + typename AT::tdual_ffloat_1d k_weight("DihedralCharmm::weight",nd+1); d_k = k_k.template view(); d_multiplicity = k_multiplicity.template view(); @@ -473,10 +473,10 @@ void DihedralCharmmKokkos::init_style() DihedralCharmm::init_style(); int n = atom->ntypes; - Kokkos::DualView k_lj14_1("DihedralCharmm:lj14_1",n+1,n+1); - Kokkos::DualView k_lj14_2("DihedralCharmm:lj14_2",n+1,n+1); - Kokkos::DualView k_lj14_3("DihedralCharmm:lj14_3",n+1,n+1); - Kokkos::DualView k_lj14_4("DihedralCharmm:lj14_4",n+1,n+1); + DAT::tdual_ffloat_2d k_lj14_1("DihedralCharmm:lj14_1",n+1,n+1); + DAT::tdual_ffloat_2d k_lj14_2("DihedralCharmm:lj14_2",n+1,n+1); + DAT::tdual_ffloat_2d k_lj14_3("DihedralCharmm:lj14_3",n+1,n+1); + DAT::tdual_ffloat_2d k_lj14_4("DihedralCharmm:lj14_4",n+1,n+1); d_lj14_1 = k_lj14_1.template view(); d_lj14_2 = k_lj14_2.template view(); @@ -517,12 +517,12 @@ void DihedralCharmmKokkos::read_restart(FILE *fp) DihedralCharmm::read_restart(fp); int nd = atom->ndihedraltypes; - Kokkos::DualView k_k("DihedralCharmm::k",nd+1); - Kokkos::DualView k_multiplicity("DihedralCharmm::multiplicity",nd+1); - Kokkos::DualView k_shift("DihedralCharmm::shift",nd+1); - Kokkos::DualView k_cos_shift("DihedralCharmm::cos_shift",nd+1); - Kokkos::DualView k_sin_shift("DihedralCharmm::sin_shift",nd+1); - Kokkos::DualView k_weight("DihedralCharmm::weight",nd+1); + typename AT::tdual_ffloat_1d k_k("DihedralCharmm::k",nd+1); + typename AT::tdual_ffloat_1d k_multiplicity("DihedralCharmm::multiplicity",nd+1); + typename AT::tdual_ffloat_1d k_shift("DihedralCharmm::shift",nd+1); + typename AT::tdual_ffloat_1d k_cos_shift("DihedralCharmm::cos_shift",nd+1); + typename AT::tdual_ffloat_1d k_sin_shift("DihedralCharmm::sin_shift",nd+1); + typename AT::tdual_ffloat_1d k_weight("DihedralCharmm::weight",nd+1); d_k = k_k.template view(); d_multiplicity = k_multiplicity.template view(); diff --git a/src/KOKKOS/dihedral_charmm_kokkos.h b/src/KOKKOS/dihedral_charmm_kokkos.h index 21bb6fd2e1..828abd2be7 100644 --- a/src/KOKKOS/dihedral_charmm_kokkos.h +++ b/src/KOKKOS/dihedral_charmm_kokkos.h @@ -132,15 +132,16 @@ class DihedralCharmmKokkos : public DihedralCharmm { typename AT::t_f_array f; typename AT::t_int_2d dihedrallist; - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_eatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_vatom; + typedef typename KKDevice::value KKDeviceType; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; + Kokkos::View > d_eatom; + Kokkos::View > d_vatom; - Kokkos::DualView k_eatom_pair; - Kokkos::DualView k_vatom_pair; - Kokkos::View::value,Kokkos::MemoryTraits > d_eatom_pair; - Kokkos::View::value,Kokkos::MemoryTraits > d_vatom_pair; + Kokkos::DualView k_eatom_pair; + Kokkos::DualView k_vatom_pair; + Kokkos::View > d_eatom_pair; + Kokkos::View > d_vatom_pair; int nlocal,newton_bond; int eflag,vflag; diff --git a/src/KOKKOS/improper_harmonic_kokkos.cpp b/src/KOKKOS/improper_harmonic_kokkos.cpp index 6a32e8af47..6f2969722a 100644 --- a/src/KOKKOS/improper_harmonic_kokkos.cpp +++ b/src/KOKKOS/improper_harmonic_kokkos.cpp @@ -73,14 +73,14 @@ void ImproperHarmonicKokkos::compute(int eflag_in, int vflag_in) //if(k_eatom.extent(0)destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom"); - d_eatom = k_eatom.template view(); + d_eatom = k_eatom.template view(); //} } if (vflag_atom) { //if(k_vatom.extent(0)destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom"); - d_vatom = k_vatom.template view(); + d_vatom = k_vatom.template view(); //} } diff --git a/src/KOKKOS/improper_harmonic_kokkos.h b/src/KOKKOS/improper_harmonic_kokkos.h index fb44081928..e143e65adf 100644 --- a/src/KOKKOS/improper_harmonic_kokkos.h +++ b/src/KOKKOS/improper_harmonic_kokkos.h @@ -63,14 +63,15 @@ class ImproperHarmonicKokkos : public ImproperHarmonic { class NeighborKokkos *neighborKK; + typedef typename KKDevice::value KKDeviceType; typename AT::t_x_array_randomread x; - typename Kokkos::View::value,Kokkos::MemoryTraits > f; + typename Kokkos::View > f; typename AT::t_int_2d improperlist; - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_eatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_vatom; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; + Kokkos::View > d_eatom; + Kokkos::View > d_vatom; int nlocal,newton_bond; int eflag,vflag; diff --git a/src/KOKKOS/pppm_kokkos.cpp b/src/KOKKOS/pppm_kokkos.cpp index 62d7ccc3cd..0940bda7ac 100644 --- a/src/KOKKOS/pppm_kokkos.cpp +++ b/src/KOKKOS/pppm_kokkos.cpp @@ -106,7 +106,7 @@ PPPMKokkos::PPPMKokkos(LAMMPS *lmp) : PPPM(lmp) // see JCP 109, pg 7698 for derivation of coefficients // higher order coefficients may be computed if needed - acons = typename Kokkos::DualView::t_host("pppm:acons"); + acons = typename Kokkos::DualView::t_host("pppm:acons"); acons(1,0) = 2.0 / 3.0; acons(2,0) = 1.0 / 50.0; acons(2,1) = 5.0 / 294.0; @@ -2581,7 +2581,7 @@ void PPPMKokkos::operator()(TagPPPM_fieldforce_peratom, const int &i ------------------------------------------------------------------------- */ template -void PPPMKokkos::pack_forward_kspace_kokkos(int flag, Kokkos::DualView &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) +void PPPMKokkos::pack_forward_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) { typename AT::t_int_2d_um d_list = k_list.view(); d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL()); @@ -2637,7 +2637,7 @@ void PPPMKokkos::operator()(TagPPPM_pack_forward2, const int &i) con ------------------------------------------------------------------------- */ template -void PPPMKokkos::unpack_forward_kspace_kokkos(int flag, Kokkos::DualView &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) +void PPPMKokkos::unpack_forward_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) { typename AT::t_int_2d_um d_list = k_list.view(); d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL()); @@ -2694,7 +2694,7 @@ void PPPMKokkos::operator()(TagPPPM_unpack_forward2, const int &i) c ------------------------------------------------------------------------- */ template -void PPPMKokkos::pack_reverse_kspace_kokkos(int flag, Kokkos::DualView &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) +void PPPMKokkos::pack_reverse_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) { typename AT::t_int_2d_um d_list = k_list.view(); d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL()); @@ -2724,7 +2724,7 @@ void PPPMKokkos::operator()(TagPPPM_pack_reverse, const int &i) cons ------------------------------------------------------------------------- */ template -void PPPMKokkos::unpack_reverse_kspace_kokkos(int flag, Kokkos::DualView &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) +void PPPMKokkos::unpack_reverse_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) { typename AT::t_int_2d_um d_list = k_list.view(); d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL()); diff --git a/src/KOKKOS/pppm_kokkos.h b/src/KOKKOS/pppm_kokkos.h index a07ed7d7c4..847a2f807f 100644 --- a/src/KOKKOS/pppm_kokkos.h +++ b/src/KOKKOS/pppm_kokkos.h @@ -403,10 +403,10 @@ class PPPMKokkos : public PPPM, public KokkosBaseFFT { // grid communication - void pack_forward_kspace_kokkos(int, Kokkos::DualView &, int, DAT::tdual_int_2d &, int); - void unpack_forward_kspace_kokkos(int, Kokkos::DualView &, int, DAT::tdual_int_2d &, int); - void pack_reverse_kspace_kokkos(int, Kokkos::DualView &, int, DAT::tdual_int_2d &, int); - void unpack_reverse_kspace_kokkos(int, Kokkos::DualView &, int, DAT::tdual_int_2d &, int); + void pack_forward_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int); + void unpack_forward_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int); + void pack_reverse_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int); + void unpack_reverse_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int); // triclinic