Update Kokkos library in LAMMPS to v3.4.0

This commit is contained in:
Stan Gerald Moore
2021-04-26 16:28:19 -06:00
parent 39f3c1684f
commit 692da3bf88
358 changed files with 16375 additions and 10003 deletions

View File

@ -378,7 +378,7 @@ struct TestMDRange_2D {
parallel_reduce(
"rank2-min-reducer", range,
KOKKOS_LAMBDA(const int i, const int j, double &min_val) {
min_val = fmin(v_in(i, j), min_val);
min_val = Kokkos::Experimental::fmin(v_in(i, j), min_val);
},
reducer_scalar);
@ -1411,8 +1411,13 @@ struct TestMDRange_3D {
using tile_type = typename range_type::tile_type;
using point_type = typename range_type::point_type;
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}},
tile_type{{8, 8, 4}});
#else
range_type range(point_type{{0, 0, 0}}, point_type{{N0, N1, N2}},
tile_type{{8, 8, 8}});
#endif
TestMDRange_3D functor(N0, N1, N2);
parallel_for(range, functor);
@ -1874,8 +1879,13 @@ struct TestMDRange_4D {
int s1 = 1;
int s2 = 1;
int s3 = 1;
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{s0, s1, s2, s3}},
point_type{{N0, N1, N2, N3}}, tile_type{{3, 11, 3, 2}});
#else
range_type range(point_type{{s0, s1, s2, s3}},
point_type{{N0, N1, N2, N3}}, tile_type{{3, 11, 3, 3}});
#endif
TestMDRange_4D functor(N0, N1, N2, N3);
parallel_for(range, functor);
@ -2440,9 +2450,16 @@ struct TestMDRange_5D {
int s2 = 1;
int s3 = 1;
int s4 = 1;
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{s0, s1, s2, s3, s4}},
point_type{{N0, N1, N2, N3, N4}},
tile_type{{3, 3, 3, 3, 3}});
#else
range_type range(point_type{{s0, s1, s2, s3, s4}},
point_type{{N0, N1, N2, N3, N4}},
tile_type{{3, 3, 3, 3, 5}});
#endif
TestMDRange_5D functor(N0, N1, N2, N3, N4);
parallel_for(range, functor);
@ -2767,9 +2784,16 @@ struct TestMDRange_6D {
int s3 = 1;
int s4 = 1;
int s5 = 1;
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{s0, s1, s2, s3, s4, s5}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{3, 3, 3, 2, 2, 2}});
#else
range_type range(point_type{{s0, s1, s2, s3, s4, s5}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{3, 3, 3, 3, 3, 2}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);
@ -2786,8 +2810,13 @@ struct TestMDRange_6D {
using range_type =
typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>,
Kokkos::IndexType<int>>;
#ifdef KOKKOS_ENABLE_SYCL
range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}},
{{3, 3, 3, 2, 2, 2}});
#else
range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}},
{{3, 3, 3, 3, 3, 2}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);
@ -2806,8 +2835,14 @@ struct TestMDRange_6D {
using range_type =
typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>,
Kokkos::IndexType<int>>;
#ifdef KOKKOS_ENABLE_SYCL
range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}},
{{3, 3, 3, 2, 2, 2}});
#else
range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}},
{{3, 3, 3, 3, 3, 2}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);
@ -2826,8 +2861,13 @@ struct TestMDRange_6D {
using range_type =
typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>,
Kokkos::IndexType<int>>;
#ifdef KOKKOS_ENABLE_SYCL
range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}},
{{3, 3, 3, 2, 2, 2}});
#else
range_type range({{0, 0, 0, 0, 0, 0}}, {{N0, N1, N2, N3, N4, N5}},
{{3, 3, 3, 3, 3, 2}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);
@ -2851,7 +2891,6 @@ struct TestMDRange_6D {
using range_type =
typename Kokkos::MDRangePolicy<ExecSpace, Kokkos::Rank<6>,
Kokkos::IndexType<int>>;
range_type range({{1, 1, 1, 1, 1, 1}}, {{N0, N1, N2, N3, N4, N5}},
{{3, 3, 3, 2, 2, 1}});
@ -2890,9 +2929,15 @@ struct TestMDRange_6D {
using tile_type = typename range_type::tile_type;
using point_type = typename range_type::point_type;
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{2, 4, 4, 2, 2, 2}});
#else
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{2, 4, 6, 2, 2, 2}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);
@ -3029,11 +3074,17 @@ struct TestMDRange_6D {
int s3 = 1;
int s4 = 1;
int s5 = 1;
range_type range(
point_type{{s0, s1, s2, s3, s4, s5}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{3, 3, 3, 3, 2, 3}}); // tile dims 3,3,3,3,3,3 more than
// cuda can handle with debugging
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{s0, s1, s2, s3, s4, s5}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{3, 3, 3, 2, 2, 2}});
#else
// tile dims 3,3,3,3,3,3 more than cuda can handle with debugging
range_type range(point_type{{s0, s1, s2, s3, s4, s5}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{3, 3, 3, 3, 2, 3}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);
parallel_for(range, functor);
@ -3070,9 +3121,15 @@ struct TestMDRange_6D {
using tile_type = typename range_type::tile_type;
using point_type = typename range_type::point_type;
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 2, 2, 2, 2}});
#else
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 4, 2, 2, 2}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);
@ -3107,9 +3164,15 @@ struct TestMDRange_6D {
using tile_type = typename range_type::tile_type;
using point_type = typename range_type::point_type;
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 2, 2, 2, 2}});
#else
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 4, 2, 2, 2}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);
@ -3144,9 +3207,15 @@ struct TestMDRange_6D {
using tile_type = typename range_type::tile_type;
using point_type = typename range_type::point_type;
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 2, 2, 2, 2}});
#else
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 4, 2, 2, 2}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);
@ -3181,9 +3250,15 @@ struct TestMDRange_6D {
using tile_type = typename range_type::tile_type;
using point_type = typename range_type::point_type;
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 2, 2, 2, 2}});
#else
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 4, 2, 2, 2}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);
@ -3218,9 +3293,15 @@ struct TestMDRange_6D {
using tile_type = typename range_type::tile_type;
using point_type = typename range_type::point_type;
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 2, 2, 2, 2}});
#else
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 4, 2, 2, 2}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);
@ -3255,9 +3336,15 @@ struct TestMDRange_6D {
using tile_type = typename range_type::tile_type;
using point_type = typename range_type::point_type;
#ifdef KOKKOS_ENABLE_SYCL
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 2, 2, 2, 2}});
#else
range_type range(point_type{{0, 0, 0, 0, 0, 0}},
point_type{{N0, N1, N2, N3, N4, N5}},
tile_type{{4, 4, 4, 2, 2, 2}});
#endif
TestMDRange_6D functor(N0, N1, N2, N3, N4, N5);