Update Kokkos library in LAMMPS to v4.2

This commit is contained in:
Stan Gerald Moore
2023-11-21 15:02:12 -07:00
parent 33dcfb5390
commit 3306b95589
493 changed files with 41548 additions and 15629 deletions

View File

@ -911,11 +911,14 @@ struct TestComplexBesselJ1Y1Function {
Kokkos::abs(h_ref_cbj1(i)) * 1e-13);
}
// FIXME_SYCL Failing for Intel GPUs
#if !(defined(KOKKOS_ENABLE_SYCL) && defined(KOKKOS_ARCH_INTEL_GPU))
EXPECT_EQ(h_ref_cby1(0), h_cby1(0));
for (int i = 1; i < N; i++) {
EXPECT_LE(Kokkos::abs(h_cby1(i) - h_ref_cby1(i)),
Kokkos::abs(h_ref_cby1(i)) * 1e-13);
}
#endif
////Test large arguments
d_z_large = ViewType("d_z_large", 6);
@ -1055,7 +1058,7 @@ struct TestComplexBesselI0K0Function {
void testit() {
using Kokkos::Experimental::infinity;
int N = 25;
int N = 26;
d_z = ViewType("d_z", N);
d_cbi0 = ViewType("d_cbi0", N);
d_cbk0 = ViewType("d_cbk0", N);
@ -1091,6 +1094,7 @@ struct TestComplexBesselI0K0Function {
h_z(22) = Kokkos::complex<double>(-28.0, 0.0);
h_z(23) = Kokkos::complex<double>(60.0, 0.0);
h_z(24) = Kokkos::complex<double>(-60.0, 0.0);
h_z(25) = Kokkos::complex<double>(7.998015e-5, 0.0);
Kokkos::deep_copy(d_z, h_z);
@ -1149,6 +1153,7 @@ struct TestComplexBesselI0K0Function {
h_ref_cbi0(22) = Kokkos::complex<double>(1.095346047317573e+11, 0);
h_ref_cbi0(23) = Kokkos::complex<double>(5.894077055609803e+24, 0);
h_ref_cbi0(24) = Kokkos::complex<double>(5.894077055609803e+24, 0);
h_ref_cbi0(25) = Kokkos::complex<double>(1.0000000015992061009, 0);
h_ref_cbk0(0) = Kokkos::complex<double>(infinity<double>::value, 0);
h_ref_cbk0(1) =
@ -1195,17 +1200,31 @@ struct TestComplexBesselI0K0Function {
h_ref_cbk0(23) = Kokkos::complex<double>(1.413897840559108e-27, 0);
h_ref_cbk0(24) =
Kokkos::complex<double>(1.413897840559108e-27, -1.851678917759592e+25);
h_ref_cbk0(25) = Kokkos::complex<double>(9.5496636116079915979, 0.);
// FIXME_HIP Disable the test when using ROCm 5.5 and 5.6 due to a known
// compiler bug
#if !defined(KOKKOS_ENABLE_HIP) || (HIP_VERSION_MAJOR != 5) || \
((HIP_VERSION_MAJOR == 5) && \
!((HIP_VERSION_MINOR == 5) || (HIP_VERSION_MINOR == 6)))
for (int i = 0; i < N; i++) {
EXPECT_LE(Kokkos::abs(h_cbi0(i) - h_ref_cbi0(i)),
Kokkos::abs(h_ref_cbi0(i)) * 1e-13);
}
EXPECT_EQ(h_ref_cbk0(0), h_cbk0(0));
for (int i = 1; i < N; i++) {
int upper_limit = N;
// FIXME_SYCL Failing for Intel GPUs, 19 is the first failing test case
#if defined(KOKKOS_ENABLE_SYCL) && defined(KOKKOS_ARCH_INTEL_GPU)
if (std::is_same_v<TEST_EXECSPACE, Kokkos::Experimental::SYCL>)
upper_limit = 19;
#endif
for (int i = 1; i < upper_limit; i++) {
EXPECT_LE(Kokkos::abs(h_cbk0(i) - h_ref_cbk0(i)),
Kokkos::abs(h_ref_cbk0(i)) * 1e-13);
Kokkos::abs(h_ref_cbk0(i)) * 1e-13)
<< "at index " << i;
}
#endif
////Test large arguments
d_z_large = ViewType("d_z_large", 6);
@ -1443,9 +1462,16 @@ struct TestComplexBesselI1K1Function {
}
EXPECT_EQ(h_ref_cbk1(0), h_cbk1(0));
for (int i = 1; i < N; i++) {
int upper_limit = N;
// FIXME_SYCL Failing for Intel GPUs, 8 is the first failing test case
#if defined(KOKKOS_ENABLE_SYCL) && defined(KOKKOS_ARCH_INTEL_GPU)
if (std::is_same_v<TEST_EXECSPACE, Kokkos::Experimental::SYCL>)
upper_limit = 8;
#endif
for (int i = 1; i < upper_limit; i++) {
EXPECT_LE(Kokkos::abs(h_cbk1(i) - h_ref_cbk1(i)),
Kokkos::abs(h_ref_cbk1(i)) * 1e-13);
Kokkos::abs(h_ref_cbk1(i)) * 1e-13)
<< "at index " << i;
}
////Test large arguments
@ -1686,6 +1712,11 @@ struct TestComplexBesselH1Function {
h_ref_ch11(24) =
Kokkos::complex<double>(-5.430453818237824e-02, -1.530182458039000e-02);
// FIXME_HIP Disable the test when using ROCm 5.5 and 5.6 due to a known
// compiler bug
#if !defined(KOKKOS_ENABLE_HIP) || (HIP_VERSION_MAJOR != 5) || \
((HIP_VERSION_MAJOR == 5) && \
!((HIP_VERSION_MINOR == 5) || (HIP_VERSION_MINOR == 6)))
EXPECT_EQ(h_ref_ch10(0), h_ch10(0));
for (int i = 1; i < N; i++) {
EXPECT_LE(Kokkos::abs(h_ch10(i) - h_ref_ch10(i)),
@ -1694,11 +1725,18 @@ struct TestComplexBesselH1Function {
}
EXPECT_EQ(h_ref_ch11(0), h_ch11(0));
for (int i = 1; i < N; i++) {
int upper_limit = N;
// FIXME_SYCL Failing for Intel GPUs, 16 is the first failing test case
#if defined(KOKKOS_ENABLE_SYCL) && defined(KOKKOS_ARCH_INTEL_GPU)
if (std::is_same_v<TEST_EXECSPACE, Kokkos::Experimental::SYCL>)
upper_limit = 16;
#endif
for (int i = 1; i < upper_limit; i++) {
EXPECT_LE(Kokkos::abs(h_ch11(i) - h_ref_ch11(i)),
Kokkos::abs(h_ref_ch11(i)) * 1e-13)
<< "at index " << i;
}
#endif
}
KOKKOS_INLINE_FUNCTION
@ -1868,6 +1906,11 @@ struct TestComplexBesselH2Function {
h_ref_ch21(24) =
Kokkos::complex<double>(1.629136145471347e-01, +1.530182458039000e-02);
// FIXME_HIP Disable the test when using ROCm 5.5 and 5.6 due to a known
// compiler bug
#if !defined(KOKKOS_ENABLE_HIP) || (HIP_VERSION_MAJOR != 5) || \
((HIP_VERSION_MAJOR == 5) && \
!((HIP_VERSION_MINOR == 5) || (HIP_VERSION_MINOR == 6)))
EXPECT_EQ(h_ref_ch20(0), h_ch20(0));
for (int i = 1; i < N; i++) {
EXPECT_LE(Kokkos::abs(h_ch20(i) - h_ref_ch20(i)),
@ -1875,10 +1918,18 @@ struct TestComplexBesselH2Function {
}
EXPECT_EQ(h_ref_ch21(0), h_ch21(0));
for (int i = 1; i < N; i++) {
int upper_limit = N;
// FIXME_SYCL Failing for Intel GPUs, 17 is the first failing test case
#if defined(KOKKOS_ENABLE_SYCL) && defined(KOKKOS_ARCH_INTEL_GPU)
if (std::is_same_v<TEST_EXECSPACE, Kokkos::Experimental::SYCL>)
upper_limit = 17;
#endif
for (int i = 1; i < upper_limit; i++) {
EXPECT_LE(Kokkos::abs(h_ch21(i) - h_ref_ch21(i)),
Kokkos::abs(h_ref_ch21(i)) * 1e-13);
Kokkos::abs(h_ref_ch21(i)) * 1e-13)
<< "at index " << i;
}
#endif
}
KOKKOS_INLINE_FUNCTION