diff --git a/packages/kokkos-kernels/blas/tpls/KokkosBlas_Cuda_tpl.cpp b/packages/kokkos-kernels/blas/tpls/KokkosBlas_Cuda_tpl.cpp index eed90ef7e0c2..cb8ba34101c4 100644 --- a/packages/kokkos-kernels/blas/tpls/KokkosBlas_Cuda_tpl.cpp +++ b/packages/kokkos-kernels/blas/tpls/KokkosBlas_Cuda_tpl.cpp @@ -16,3 +16,4 @@ #include #include #include +#include diff --git a/packages/kokkos-kernels/blas/tpls/KokkosBlas_Cuda_tpl.hpp b/packages/kokkos-kernels/blas/tpls/KokkosBlas_Cuda_tpl.hpp index cf5134147199..d85785316ec6 100644 --- a/packages/kokkos-kernels/blas/tpls/KokkosBlas_Cuda_tpl.hpp +++ b/packages/kokkos-kernels/blas/tpls/KokkosBlas_Cuda_tpl.hpp @@ -39,26 +39,4 @@ CudaBlasSingleton& CudaBlasSingleton::singleton() { } // namespace KokkosBlas #endif // defined (KOKKOSKERNELS_ENABLE_TPL_CUBLAS) -#if defined(KOKKOSKERNELS_ENABLE_TPL_MAGMA) -#include - -namespace KokkosBlas { -namespace Impl { - -MagmaSingleton::MagmaSingleton() { - magma_int_t stat = magma_init(); - if (stat != MAGMA_SUCCESS) Kokkos::abort("MAGMA initialization failed\n"); - - Kokkos::push_finalize_hook([&]() { magma_finalize(); }); -} - -MagmaSingleton& MagmaSingleton::singleton() { - static MagmaSingleton s; - return s; -} - -} // namespace Impl -} // namespace KokkosBlas -#endif // defined(KOKKOSKERNELS_ENABLE_TPL_MAGMA) - #endif // KOKKOSBLAS_CUDA_TPL_HPP_ diff --git a/packages/kokkos-kernels/blas/tpls/KokkosBlas_Magma_tpl.hpp b/packages/kokkos-kernels/blas/tpls/KokkosBlas_Magma_tpl.hpp new file mode 100644 index 000000000000..f149a790df53 --- /dev/null +++ b/packages/kokkos-kernels/blas/tpls/KokkosBlas_Magma_tpl.hpp @@ -0,0 +1,41 @@ +//@HEADER +// ************************************************************************ +// +// Kokkos v. 4.0 +// Copyright (2022) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions. +// See https://kokkos.org/LICENSE for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//@HEADER +#ifndef KOKKOSBLAS_MAGMA_TPL_HPP_ +#define KOKKOSBLAS_MAGMA_TPL_HPP_ + +#if defined(KOKKOSKERNELS_ENABLE_TPL_MAGMA) +#include + +namespace KokkosBlas { +namespace Impl { + +MagmaSingleton::MagmaSingleton() { + magma_int_t stat = magma_init(); + if (stat != MAGMA_SUCCESS) Kokkos::abort("MAGMA initialization failed\n"); + + Kokkos::push_finalize_hook([&]() { magma_finalize(); }); +} + +MagmaSingleton& MagmaSingleton::singleton() { + static MagmaSingleton s; + return s; +} + +} // namespace Impl +} // namespace KokkosBlas +#endif // defined(KOKKOSKERNELS_ENABLE_TPL_MAGMA) + +#endif // KOKKOSBLAS_MAGMA_TPL_HPP_ diff --git a/packages/kokkos-kernels/blas/tpls/KokkosBlas_magma.hpp b/packages/kokkos-kernels/blas/tpls/KokkosBlas_magma.hpp new file mode 100644 index 000000000000..5f5fcfe4e189 --- /dev/null +++ b/packages/kokkos-kernels/blas/tpls/KokkosBlas_magma.hpp @@ -0,0 +1,37 @@ +//@HEADER +// ************************************************************************ +// +// Kokkos v. 4.0 +// Copyright (2022) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions. +// See https://kokkos.org/LICENSE for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//@HEADER + +#ifndef KOKKOSBLAS_MAGMA_HPP_ +#define KOKKOSBLAS_MAGMA_HPP_ + +// If LAPACK TPL is enabled, it is preferred over magma's LAPACK +#ifdef KOKKOSKERNELS_ENABLE_TPL_MAGMA +#include "magma_v2.h" + +namespace KokkosBlas { +namespace Impl { + +struct MagmaSingleton { + MagmaSingleton(); + + static MagmaSingleton& singleton(); +}; + +} // namespace Impl +} // namespace KokkosBlas +#endif // KOKKOSKERNELS_ENABLE_TPL_MAGMA + +#endif // KOKKOSBLAS_MAGMA_HPP_ diff --git a/packages/kokkos-kernels/blas/tpls/KokkosBlas_tpl_spec.hpp b/packages/kokkos-kernels/blas/tpls/KokkosBlas_tpl_spec.hpp index a1eee4b69cec..0151c0534fe9 100644 --- a/packages/kokkos-kernels/blas/tpls/KokkosBlas_tpl_spec.hpp +++ b/packages/kokkos-kernels/blas/tpls/KokkosBlas_tpl_spec.hpp @@ -214,21 +214,4 @@ inline rocblas_operation trans_mode_kk_to_rocblas(const char kkMode[]) { #endif // KOKKOSKERNELS_ENABLE_TPL_ROCBLAS -// If LAPACK TPL is enabled, it is preferred over magma's LAPACK -#ifdef KOKKOSKERNELS_ENABLE_TPL_MAGMA -#include "magma_v2.h" - -namespace KokkosBlas { -namespace Impl { - -struct MagmaSingleton { - MagmaSingleton(); - - static MagmaSingleton& singleton(); -}; - -} // namespace Impl -} // namespace KokkosBlas -#endif // KOKKOSKERNELS_ENABLE_TPL_MAGMA - #endif // KOKKOSBLAS_TPL_SPEC_HPP_ diff --git a/packages/kokkos-kernels/lapack/tpls/KokkosLapack_Cuda_tpl.cpp b/packages/kokkos-kernels/lapack/tpls/KokkosLapack_Cuda_tpl.cpp index 2ac28871a420..7f87eed0d561 100644 --- a/packages/kokkos-kernels/lapack/tpls/KokkosLapack_Cuda_tpl.cpp +++ b/packages/kokkos-kernels/lapack/tpls/KokkosLapack_Cuda_tpl.cpp @@ -16,3 +16,4 @@ #include #include #include +#include diff --git a/packages/kokkos-kernels/lapack/tpls/KokkosLapack_Cuda_tpl.hpp b/packages/kokkos-kernels/lapack/tpls/KokkosLapack_Cuda_tpl.hpp index 6749a4740f67..943d10d11175 100644 --- a/packages/kokkos-kernels/lapack/tpls/KokkosLapack_Cuda_tpl.hpp +++ b/packages/kokkos-kernels/lapack/tpls/KokkosLapack_Cuda_tpl.hpp @@ -39,26 +39,4 @@ CudaLapackSingleton& CudaLapackSingleton::singleton() { } // namespace KokkosLapack #endif // defined (KOKKOSKERNELS_ENABLE_TPL_CUSOLVER) -#if defined(KOKKOSKERNELS_ENABLE_TPL_MAGMA) -#include - -namespace KokkosLapack { -namespace Impl { - -MagmaSingleton::MagmaSingleton() { - magma_int_t stat = magma_init(); - if (stat != MAGMA_SUCCESS) Kokkos::abort("MAGMA initialization failed\n"); - - Kokkos::push_finalize_hook([&]() { magma_finalize(); }); -} - -MagmaSingleton& MagmaSingleton::singleton() { - static MagmaSingleton s; - return s; -} - -} // namespace Impl -} // namespace KokkosLapack -#endif // defined(KOKKOSKERNELS_ENABLE_TPL_MAGMA) - #endif // KOKKOSLAPACK_CUDA_TPL_HPP_ diff --git a/packages/kokkos-kernels/lapack/tpls/KokkosLapack_Magma_tpl.hpp b/packages/kokkos-kernels/lapack/tpls/KokkosLapack_Magma_tpl.hpp new file mode 100644 index 000000000000..636c40735db6 --- /dev/null +++ b/packages/kokkos-kernels/lapack/tpls/KokkosLapack_Magma_tpl.hpp @@ -0,0 +1,41 @@ +//@HEADER +// ************************************************************************ +// +// Kokkos v. 4.0 +// Copyright (2022) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions. +// See https://kokkos.org/LICENSE for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//@HEADER +#ifndef KOKKOSLAPACK_MAGMA_TPL_HPP_ +#define KOKKOSLAPACK_MAGMA_TPL_HPP_ + +#if defined(KOKKOSKERNELS_ENABLE_TPL_MAGMA) +#include + +namespace KokkosLapack { +namespace Impl { + +MagmaSingleton::MagmaSingleton() { + magma_int_t stat = magma_init(); + if (stat != MAGMA_SUCCESS) Kokkos::abort("MAGMA initialization failed\n"); + + Kokkos::push_finalize_hook([&]() { magma_finalize(); }); +} + +MagmaSingleton& MagmaSingleton::singleton() { + static MagmaSingleton s; + return s; +} + +} // namespace Impl +} // namespace KokkosLapack +#endif // defined(KOKKOSKERNELS_ENABLE_TPL_MAGMA) + +#endif // KOKKOSLAPACK_MAGMA_TPL_HPP_ diff --git a/packages/kokkos-kernels/lapack/tpls/KokkosLapack_gesv_tpl_spec_decl.hpp b/packages/kokkos-kernels/lapack/tpls/KokkosLapack_gesv_tpl_spec_decl.hpp index 41592e079acb..ca4b9e7abc2e 100644 --- a/packages/kokkos-kernels/lapack/tpls/KokkosLapack_gesv_tpl_spec_decl.hpp +++ b/packages/kokkos-kernels/lapack/tpls/KokkosLapack_gesv_tpl_spec_decl.hpp @@ -155,7 +155,7 @@ KOKKOSLAPACK_GESV_LAPACK(Kokkos::complex, Kokkos::LayoutLeft, // MAGMA #ifdef KOKKOSKERNELS_ENABLE_TPL_MAGMA -#include +#include namespace KokkosLapack { namespace Impl {