From: Daniel Arndt Date: Wed, 7 Dec 2022 23:45:30 +0000 (-0500) Subject: backport to Kokkos 3.4.00 X-Git-Tag: v9.5.0-rc1~697^2~18 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d2f49c37430ead68a84ff50c95447c60bb03f2bd;p=dealii.git backport to Kokkos 3.4.00 --- diff --git a/cmake/modules/FindDEAL_II_KOKKOS.cmake b/cmake/modules/FindDEAL_II_KOKKOS.cmake index bbe1f4054d..c147281c0d 100644 --- a/cmake/modules/FindDEAL_II_KOKKOS.cmake +++ b/cmake/modules/FindDEAL_II_KOKKOS.cmake @@ -32,7 +32,7 @@ if(DEAL_II_TRILINOS_WITH_KOKKOS) # Let deal.II know that we have found Kokkos set(KOKKOS_FOUND ON) else() - find_package(Kokkos 3.7.0 QUIET + find_package(Kokkos 3.0.0 QUIET HINTS ${KOKKOS_DIR} ${Kokkos_DIR} $ENV{Kokkos_DIR} ) diff --git a/include/deal.II/lac/la_parallel_vector.templates.h b/include/deal.II/lac/la_parallel_vector.templates.h index a07df612ab..b280f69f9e 100644 --- a/include/deal.II/lac/la_parallel_vector.templates.h +++ b/include/deal.II/lac/la_parallel_vector.templates.h @@ -480,7 +480,12 @@ namespace LinearAlgebra ::dealii::MemorySpace::Device::kokkos_space::execution_space>( exec, 0, size), KOKKOS_LAMBDA(size_type i, RealType & update) { - update = Kokkos::max(update, Kokkos::abs(data.values(i))); +#if KOKKOS_VERSION < 30700 + update = Kokkos::Experimental::fmax( + update, Kokkos::Experimental::fabs(data.values(i))); +#else + update = Kokkos::fmax(update, Kokkos::abs(data.values(i))); +#endif }, Kokkos::Max(result)); } diff --git a/include/deal.II/lac/vector_operations_internal.h b/include/deal.II/lac/vector_operations_internal.h index 452e378ce0..323ecb9705 100644 --- a/include/deal.II/lac/vector_operations_internal.h +++ b/include/deal.II/lac/vector_operations_internal.h @@ -2529,7 +2529,11 @@ namespace internal 0, size), KOKKOS_LAMBDA(size_type i, Number & update) { - update += Kokkos::abs(data.values(i)); +#if KOKKOS_VERSION < 30700 + update += Kokkos::Experimental::fabs(data.values(i)); +#else + update += Kokkos::fabs(data.values(i)); +#endif }, sum); } @@ -2553,7 +2557,12 @@ namespace internal 0, size), KOKKOS_LAMBDA(size_type i, Number & update) { - update += Kokkos::pow(Kokkos::abs(data.values(i)), exp); +#if KOKKOS_VERSION < 30700 + update += Kokkos::Experimental::pow( + Kokkos::Experimental::fabs(data.values(i)), exp); +#else + update += Kokkos::pow(Kokkos::fabs(data.values(i)), exp); +#endif }, sum); } diff --git a/source/lac/la_parallel_vector_cuda.cc b/source/lac/la_parallel_vector_cuda.cc index e4ebd6c6f5..83599fa2a2 100644 --- a/source/lac/la_parallel_vector_cuda.cc +++ b/source/lac/la_parallel_vector_cuda.cc @@ -24,39 +24,39 @@ namespace LinearAlgebra { namespace distributed { - template class Vector; - template class Vector; + template class Vector; + template class Vector; template void Vector::import< - ::dealii::MemorySpace::CUDA>( - const Vector &, + ::dealii::MemorySpace::Device>( + const Vector &, VectorOperation::values); template void Vector::import< - ::dealii::MemorySpace::CUDA>( - const Vector &, + ::dealii::MemorySpace::Device>( + const Vector &, VectorOperation::values); template void - Vector::import< + Vector::import< ::dealii::MemorySpace::Host>( const Vector &, VectorOperation::values); template void - Vector::import< + Vector::import< ::dealii::MemorySpace::Host>( const Vector &, VectorOperation::values); template void - Vector::import< - ::dealii::MemorySpace::CUDA>( - const Vector &, + Vector::import< + ::dealii::MemorySpace::Device>( + const Vector &, VectorOperation::values); template void - Vector::import< - ::dealii::MemorySpace::CUDA>( - const Vector &, + Vector::import< + ::dealii::MemorySpace::Device>( + const Vector &, VectorOperation::values); } // namespace distributed } // namespace LinearAlgebra diff --git a/source/lac/read_write_vector.cc b/source/lac/read_write_vector.cc index 3b77c05a6b..a6dc6febd2 100644 --- a/source/lac/read_write_vector.cc +++ b/source/lac/read_write_vector.cc @@ -48,7 +48,7 @@ namespace LinearAlgebra const std::shared_ptr &); template void ReadWriteVector::import( - const distributed::Vector &, + const distributed::Vector &, VectorOperation::values, const std::shared_ptr &); @@ -59,7 +59,7 @@ namespace LinearAlgebra const std::shared_ptr &); template void ReadWriteVector::import( - const distributed::Vector &, + const distributed::Vector &, VectorOperation::values, const std::shared_ptr &); # ifdef DEAL_II_WITH_COMPLEX_VALUES