kokkos parallel_for

This commit is contained in:
alphataubio
2024-09-08 16:36:39 -04:00
parent bce51ea2c9
commit b67b38ab68

View File

@ -98,7 +98,6 @@ FixCMAPKokkos<DeviceType>::FixCMAPKokkos(LAMMPS *lmp, int narg, char **arg) :
k_d1cmapgrid.h_view(i,j,k) = d1cmapgrid[i][j][k];
k_d2cmapgrid.h_view(i,j,k) = d2cmapgrid[i][j][k];
k_d12cmapgrid.h_view(i,j,k) = d12cmapgrid[i][j][k];
}
}
}
@ -158,7 +157,6 @@ void FixCMAPKokkos<DeviceType>::init()
template<class DeviceType>
void FixCMAPKokkos<DeviceType>::pre_neighbor()
{
int i,m,atom1,atom2,atom3,atom4,atom5;
const int me = comm->me;
const int nprocs = comm->nprocs;
@ -189,19 +187,19 @@ void FixCMAPKokkos<DeviceType>::pre_neighbor()
atomKK->k_sametag.sync<DeviceType>();
d_sametag = atomKK->k_sametag.view<DeviceType>();
ncrosstermlist = 0;
Kokkos::parallel_for(nlocal, KOKKOS_LAMBDA(const int i) {
for (i = 0; i < nlocal; i++) {
for (m = 0; m < k_num_crossterm.h_view(i); m++) {
ncrosstermlist = 0;
atom1 = AtomKokkos::map_kokkos<DeviceType>(k_crossterm_atom1.h_view(i,m),map_style,k_map_array,k_map_hash);
atom2 = AtomKokkos::map_kokkos<DeviceType>(k_crossterm_atom2.h_view(i,m),map_style,k_map_array,k_map_hash);
atom3 = AtomKokkos::map_kokkos<DeviceType>(k_crossterm_atom3.h_view(i,m),map_style,k_map_array,k_map_hash);
atom4 = AtomKokkos::map_kokkos<DeviceType>(k_crossterm_atom4.h_view(i,m),map_style,k_map_array,k_map_hash);
atom5 = AtomKokkos::map_kokkos<DeviceType>(k_crossterm_atom5.h_view(i,m),map_style,k_map_array,k_map_hash);
for (int m = 0; m < d_num_crossterm(i); m++) {
if (atom1 == -1 || atom2 == -1 || atom3 == -1 ||
atom4 == -1 || atom5 == -1)
int atom1 = AtomKokkos::map_kokkos<DeviceType>(d_crossterm_atom1(i,m),map_style,k_map_array,k_map_hash);
int atom2 = AtomKokkos::map_kokkos<DeviceType>(d_crossterm_atom2(i,m),map_style,k_map_array,k_map_hash);
int atom3 = AtomKokkos::map_kokkos<DeviceType>(d_crossterm_atom3(i,m),map_style,k_map_array,k_map_hash);
int atom4 = AtomKokkos::map_kokkos<DeviceType>(d_crossterm_atom4(i,m),map_style,k_map_array,k_map_hash);
int atom5 = AtomKokkos::map_kokkos<DeviceType>(d_crossterm_atom5(i,m),map_style,k_map_array,k_map_hash);
if (atom1 == -1 || atom2 == -1 || atom3 == -1 || atom4 == -1 || atom5 == -1)
error->one(FLERR,"CMAP atoms {} {} {} {} {} missing on "
"proc {} at step {}",
d_crossterm_atom1(i,m),d_crossterm_atom2(i,m),
@ -230,7 +228,8 @@ void FixCMAPKokkos<DeviceType>::pre_neighbor()
ncrosstermlist++;
}
}
}
});
}