diff --git a/src/blas/KokkosBlas3_trsm.hpp b/src/blas/KokkosBlas3_trsm.hpp new file mode 100644 index 0000000000..67a00dcaa8 --- /dev/null +++ b/src/blas/KokkosBlas3_trsm.hpp @@ -0,0 +1,175 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ +#ifndef KOKKOSBLAS3_TRSM_HPP_ +#define KOKKOSBLAS3_TRSM_HPP_ + +/// \file KokkosBlas3_trsm.hpp + +#include "KokkosKernels_Macros.hpp" +#include "KokkosBlas3_trsm_spec.hpp" +#include "KokkosKernels_helpers.hpp" +#include +#include + +namespace KokkosBlas { + +/// \brief Solve triangular linear system with multiple RHSs: +/// op(A)*X = alpha*B if side == "L" or "l" +/// X*op(A) = alpha*B if side == "R" or "r" +/// +/// \tparam AViewType Input matrix, as a 2-D Kokkos::View +/// \tparam BViewType Input(RHS)/Output(solution) M-by-N matrix, as a 2-D Kokkos::View +/// +/// \param side [in] "L" or "l" indicates matrix A is on the left of X +/// "R" or "r" indicates matrix A is on the right of X +/// \param uplo [in] "U" or "u" indicates matrix A upper part is stored, the other part is not referenced +/// "L" or "l" indicates matrix A lower part is stored, the other part is not referenced +/// \param trans [in] "N" or "n" for non-transpose, "T" or "t" for transpose, "C" or "c" for conjugate transpose. +/// \param diag [in] "U" or "u" indicates the diagonal of A is assumed to be unit +// "N" or "n" indicated the diagonal of A is assumed to be non-unit +/// \param alpha [in] Input coefficient used for multiplication with B +/// \param A [in] Input matrix, as a 2-D Kokkos::View +/// If side == "L" or "l", matrix A is a M-by-M triangular matrix; +/// otherwise, matrix A is a N-by-N triangular matrix +/// \param B [in,out] Input/Output matrix, as a 2-D Kokkos::View +/// On entry, M-by-N matrix of multile RHS +/// On exit, overwritten with the solution X +template +void +trsm (const char side[], + const char uplo[], + const char trans[], + const char diag[], + typename BViewType::const_value_type& alpha, + const AViewType& A, + const BViewType& B) +{ + + static_assert (Kokkos::Impl::is_view::value, + "AViewType must be a Kokkos::View."); + static_assert (Kokkos::Impl::is_view::value, + "BViewType must be a Kokkos::View."); + static_assert (static_cast (AViewType::rank) == 2, + "AViewType must have rank 2."); + static_assert (static_cast (BViewType::rank) == 2, + "BViewType must have rank 2."); + + // Check validity of indicator argument + bool valid_side = (side[0] == 'L' ) || (side[0] == 'l' )|| + (side[0] == 'R' ) || (side[0] == 'r' ); + bool valid_uplo = (uplo[0] == 'U' ) || (uplo[0] == 'u' )|| + (uplo[0] == 'L' ) || (uplo[0] == 'l' ); + bool valid_trans = (trans[0] == 'N') || (trans[0] == 'n')|| + (trans[0] == 'T') || (trans[0] == 't')|| + (trans[0] == 'C') || (trans[0] == 'c'); + bool valid_diag = (diag[0] == 'U' ) || (diag[0] == 'u' )|| + (diag[0] == 'N' ) || (diag[0] == 'n' ); + if(!valid_side) { + std::ostringstream os; + os << "KokkosBlas::trsm: side = '" << side[0] << "'. " << + "Valid values include 'L' or 'l' (A is on the left of X), " + "'R' or 'r' (A is on the right of X)."; + Kokkos::Impl::throw_runtime_exception (os.str ()); + } + if(!valid_uplo) { + std::ostringstream os; + os << "KokkosBlas::trsm: uplo = '" << uplo[0] << "'. " << + "Valid values include 'U' or 'u' (A is upper triangular), " + "'L' or 'l' (A is lower triangular)."; + Kokkos::Impl::throw_runtime_exception (os.str ()); + } + if(!valid_trans) { + std::ostringstream os; + os << "KokkosBlas::trsm: trans = '" << trans[0] << "'. " << + "Valid values include 'N' or 'n' (No transpose), 'T' or 't' (Transpose), " + "and 'C' or 'c' (Conjugate transpose)."; + Kokkos::Impl::throw_runtime_exception (os.str ()); + } + if(!valid_diag) { + std::ostringstream os; + os << "KokkosBlas::trsm: diag = '" << diag[0] << "'. " << + "Valid values include 'U' or 'u' (the diagonal of A is assumed to be unit), " + "'N' or 'n' (the diagonal of A is assumed to be non-unit)."; + Kokkos::Impl::throw_runtime_exception (os.str ()); + } + + // Check compatibility of dimensions at run time. + bool A_s = (side[0] == 'L' || side[0] == 'l'); + + int64_t A0 = A.extent(0); + int64_t A1 = A.extent(1); + int64_t B0 = B.extent(0); + int64_t B1 = B.extent(1); + + if ((A0 != A1) || ((A_s?B0:B1) != A1)) { + std::ostringstream os; + os << "KokkosBlas::trsm: Dimensions of A and B do not match: " + << "side: " << side[0] + << " A: " << A.extent(0) << " x " << A.extent(1) + << " B: " << B.extent(0) << " x " << B.extent(1); + Kokkos::Impl::throw_runtime_exception (os.str ()); + } + + // Return if degenerated matrices are provided + if((A.extent(0) == 0) || (A.extent(1) == 0) || (B.extent(0) == 0) || (B.extent(1) == 0)) + return; + + // Minimize the number of Impl::TRSM instantiations, by + // standardizing on particular View specializations for its template + // parameters. + using AVT = Kokkos::View >; + using BVT = Kokkos::View >; + + KokkosBlas::Impl::TRSM::trsm (side, uplo, trans, diag, alpha, A, B); +} + +} // namespace KokkosBlas + +#endif // KOKKOS_BLAS3_TRSM_HPP_ diff --git a/src/blas/impl/KokkosBlas3_trsm_impl.hpp b/src/blas/impl/KokkosBlas3_trsm_impl.hpp new file mode 100644 index 0000000000..2e5c189634 --- /dev/null +++ b/src/blas/impl/KokkosBlas3_trsm_impl.hpp @@ -0,0 +1,328 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOSBLAS3_TRSM_IMPL_HPP_ +#define KOKKOSBLAS3_TRSM_IMPL_HPP_ + +/// \file KokkosBlas3_trsm_impl.hpp +/// \brief Implementation(s) of triangular linear system solve (with multiple RHSs) +/// \brief Sequential fall-back implementation calls the exisiting serial batched TRSM. +/// \brief Two sequential fall-back implementations for conjugate transpose case are +/// \brief also based on the exisiting serial batched TRSM. + +#include "KokkosKernels_config.h" +#include "Kokkos_Core.hpp" +#include "Kokkos_ArithTraits.hpp" +#include "KokkosBatched_Trsm_Decl.hpp" +#include "KokkosBatched_Trsm_Serial_Impl.hpp" + +using namespace KokkosBatched; + +namespace KokkosBlas { +namespace Impl { + +template +int +SerialTrsmInternalLeftLowerConj(const bool use_unit_diag, + const int m, const int n, + const ScalarType alpha, + const ValueType* KOKKOS_RESTRICT A, const int as0, const int as1, + /**/ ValueType* KOKKOS_RESTRICT B, const int bs0, const int bs1) { + + typedef Kokkos::Details::ArithTraits AT; + + const ScalarType one(1.0), zero(0.0); + + if (alpha == zero) SerialSetInternal ::invoke(m, n, zero, B, bs0, bs1); + else { + if (alpha != one) SerialScaleInternal::invoke(m, n, alpha, B, bs0, bs1); + if (m <= 0 || n <= 0) return 0; + + for (int p=0;p +int +SerialTrsmInternalLeftUpperConj(const bool use_unit_diag, + const int m, const int n, + const ScalarType alpha, + const ValueType* KOKKOS_RESTRICT A, const int as0, const int as1, + /**/ ValueType* KOKKOS_RESTRICT B, const int bs0, const int bs1) { + + typedef Kokkos::Details::ArithTraits AT; + + const ScalarType one(1.0), zero(0.0); + + if (alpha == zero) SerialSetInternal ::invoke(m, n, zero, B, bs0, bs1); + else { + if (alpha != one) SerialScaleInternal::invoke(m, n, alpha, B, bs0, bs1); + if (m <= 0 || n <= 0) return 0; + + ValueType *KOKKOS_RESTRICT B0 = B; + for (int p=(m-1);p>=0;--p) { + const int iend = p, jend = n; + + const ValueType* KOKKOS_RESTRICT a01 = A+p*as1; + ValueType* KOKKOS_RESTRICT b1t = B+p*bs0; + + if (!use_unit_diag) { + const ValueType alpha11 = AT::conj(A[p*as0+p*as1]); + for (int j=0;j0){//Note: A workaround to produce correct results for complex with Intel-18.2.199 + for (int i=0;i +void SerialTrsm_Invoke (const char side[], + const char uplo[], + const char trans[], + const char diag[], + typename BViewType::const_value_type& alpha, + const AViewType& A, + const BViewType& B) +{ + //Side::Left, Uplo::Lower, Trans::NoTranspose + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='N')||(trans[0]=='n'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftLower::invoke(Diag::Unit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(0), B.stride(1)); + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='N')||(trans[0]=='n'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftLower::invoke(Diag::NonUnit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(0), B.stride(1)); + + //Side::Left, Uplo::Lower, Trans::Transpose + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='T')||(trans[0]=='t'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftUpper::invoke(Diag::Unit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(0), B.stride(1)); + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='T')||(trans[0]=='t'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftUpper::invoke(Diag::NonUnit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(0), B.stride(1)); + + //Side::Left, Uplo::Lower, Trans::ConjTranspose + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='C')||(trans[0]=='c'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftUpperConj(Diag::Unit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(0), B.stride(1)); + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='C')||(trans[0]=='c'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftUpperConj(Diag::NonUnit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(0), B.stride(1)); + + //Side::Left, Uplo::Upper, Trans::NoTranspose + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='N')||(trans[0]=='n'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftUpper::invoke(Diag::Unit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(0), B.stride(1)); + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='N')||(trans[0]=='n'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftUpper::invoke(Diag::NonUnit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(0), B.stride(1)); + + //Side::Left, Uplo::Upper, Trans::Transpose + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='T')||(trans[0]=='t'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftLower::invoke(Diag::Unit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(0), B.stride(1)); + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='T')||(trans[0]=='t'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftLower::invoke(Diag::NonUnit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(0), B.stride(1)); + + //Side::Left, Uplo::Upper, Trans::ConjTranspose + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='C')||(trans[0]=='c'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftLowerConj(Diag::Unit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(0), B.stride(1)); + if (((side[0]=='L')||(side[0]=='l'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='C')||(trans[0]=='c'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftLowerConj(Diag::NonUnit::use_unit_diag, + B.extent(0), B.extent(1), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(0), B.stride(1)); + //// + //Side::Right, Uplo::Lower, Trans::NoTranspose + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='N')||(trans[0]=='n'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftUpper::invoke(Diag::Unit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(1), B.stride(0)); + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='N')||(trans[0]=='n'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftUpper::invoke(Diag::NonUnit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(1), B.stride(0)); + + //Side::Right, Uplo::Lower, Trans::Transpose + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='T')||(trans[0]=='t'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftLower::invoke(Diag::Unit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(1), B.stride(0)); + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='T')||(trans[0]=='t'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftLower::invoke(Diag::NonUnit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(1), B.stride(0)); + + //Side::Right, Uplo::Lower, Trans::ConjTranspose + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='C')||(trans[0]=='c'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftLowerConj(Diag::Unit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(1), B.stride(0)); + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='L')||(uplo[0]=='l'))&&((trans[0]=='C')||(trans[0]=='c'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftLowerConj(Diag::NonUnit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(1), B.stride(0)); + + //Side::Right, Uplo::Upper, Trans::NoTranspose + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='N')||(trans[0]=='n'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftLower::invoke(Diag::Unit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(1), B.stride(0)); + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='N')||(trans[0]=='n'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftLower::invoke(Diag::NonUnit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(1), A.stride(0), + B.data(), B.stride(1), B.stride(0)); + + //Side::Right, Uplo::Upper, Trans::Transpose + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='T')||(trans[0]=='t'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftUpper::invoke(Diag::Unit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(1), B.stride(0)); + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='T')||(trans[0]=='t'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftUpper::invoke(Diag::NonUnit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(1), B.stride(0)); + + //Side::Right, Uplo::Upper, Trans::ConjTranspose + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='C')||(trans[0]=='c'))&&((diag[0]=='U')||(diag[0]=='u'))) + SerialTrsmInternalLeftUpperConj(Diag::Unit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(1), B.stride(0)); + if (((side[0]=='R')||(side[0]=='r'))&&((uplo[0]=='U')||(uplo[0]=='u'))&&((trans[0]=='C')||(trans[0]=='c'))&&((diag[0]=='N')||(diag[0]=='n'))) + SerialTrsmInternalLeftUpperConj(Diag::NonUnit::use_unit_diag, + B.extent(1), B.extent(0), + alpha, + A.data(), A.stride(0), A.stride(1), + B.data(), B.stride(1), B.stride(0)); +} + +}// namespace Impl +}// namespace KokkosBlas +#endif // KOKKOSBLAS3_TRSM_IMPL_HPP_ diff --git a/src/blas/impl/KokkosBlas3_trsm_spec.hpp b/src/blas/impl/KokkosBlas3_trsm_spec.hpp new file mode 100644 index 0000000000..f2207bc4e9 --- /dev/null +++ b/src/blas/impl/KokkosBlas3_trsm_spec.hpp @@ -0,0 +1,189 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ +#ifndef KOKKOSBLAS3_TRSM_SPEC_HPP_ +#define KOKKOSBLAS3_TRSM_SPEC_HPP_ + +#include "KokkosKernels_config.h" +#include "Kokkos_Core.hpp" +#include "Kokkos_InnerProductSpaceTraits.hpp" +#include + +#if !defined(KOKKOSKERNELS_ETI_ONLY) || KOKKOSKERNELS_IMPL_COMPILE_LIBRARY +#include +#endif + +namespace KokkosBlas { +namespace Impl { +// Specialization struct which defines whether a specialization exists +template +struct trsm_eti_spec_avail { + enum : bool { value = false }; +}; +} +} + +// +// Macro for declaration of full specialization availability +// KokkosBlas::Impl::TRSM. This is NOT for users!!! All +// the declarations of full specializations go in this header file. +// We may spread out definitions (see _INST macro below) across one or +// more .cpp files. +// +#define KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL_LAYOUT( SCALAR, LAYOUTA, LAYOUTB, EXEC_SPACE, MEM_SPACE ) \ + template<> \ + struct trsm_eti_spec_avail< \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + Kokkos::View, \ + Kokkos::MemoryTraits > \ + > { enum : bool { value = true }; }; + +#define KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL( SCALAR, LAYOUT, EXEC_SPACE, MEM_SPACE ) \ + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL_LAYOUT( SCALAR, LAYOUT, LAYOUT, EXEC_SPACE, MEM_SPACE) + +// Include the actual specialization declarations +#include +#include + +namespace KokkosBlas { +namespace Impl { + +// +// trsm +// + +//Unification layer +template::value, + bool eti_spec_avail = trsm_eti_spec_avail::value + > +struct TRSM{ + static void + trsm (const char side[], + const char uplo[], + const char trans[], + const char diag[], + typename BViewType::const_value_type& alpha, + const AViewType& A, + const BViewType& B); +}; + +// Implementation of KokkosBlas::trsm. +#if !defined(KOKKOSKERNELS_ETI_ONLY) || KOKKOSKERNELS_IMPL_COMPILE_LIBRARY +template +struct TRSM { + static void + trsm (const char side[], + const char uplo[], + const char trans[], + const char diag[], + typename BViewType::const_value_type& alpha, + const AViewType& A, + const BViewType& B) + { + static_assert (Kokkos::Impl::is_view::value, + "AViewType must be a Kokkos::View."); + static_assert (Kokkos::Impl::is_view::value, + "BViewType must be a Kokkos::View."); + static_assert (static_cast (AViewType::rank) == 2, + "AViewType must have rank 2."); + static_assert (static_cast (BViewType::rank) == 2, + "BViewType must have rank 2."); + + Kokkos::Profiling::pushRegion(KOKKOSKERNELS_IMPL_COMPILE_LIBRARY?"KokkosBlas::trsm[ETI]":"KokkosBlas::trsm[noETI]"); + + typename AViewType::HostMirror h_A = Kokkos::create_mirror_view(A); + typename BViewType::HostMirror h_B = Kokkos::create_mirror_view(B); + + Kokkos::deep_copy(h_A, A); + Kokkos::deep_copy(h_B, B); + + SerialTrsm_Invoke (side, uplo, trans, diag, alpha, h_A, h_B); + + Kokkos::deep_copy(B, h_B); + + Kokkos::Profiling::popRegion(); + } +}; +#endif //!defined(KOKKOSKERNELS_ETI_ONLY) || KOKKOSKERNELS_IMPL_COMPILE_LIBRARY + +} // namespace Impl +} // namespace KokkosBlas + + +// +// Macro for declaration of full specialization of +// KokkosBlas::Impl::TRSM. This is NOT for users!!! +// All the declarations of full specializations go in this header +// file. We may spread out definitions (see _DEF macro below) across +// one or more .cpp files. +// + +#define KOKKOSBLAS3_TRSM_ETI_SPEC_DECL_LAYOUTS( SCALAR, LAYOUTA, LAYOUTB, EXEC_SPACE, MEM_SPACE ) \ +extern template struct TRSM< \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + false, true>; + +#define KOKKOSBLAS3_TRSM_ETI_SPEC_INST_LAYOUTS( SCALAR, LAYOUTA, LAYOUTB, EXEC_SPACE, MEM_SPACE ) \ +template struct TRSM< \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + false, true>; + +#define KOKKOSBLAS3_TRSM_ETI_SPEC_DECL( SCALAR, LAYOUT, EXEC_SPACE, MEM_SPACE ) \ + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL_LAYOUTS(SCALAR, LAYOUT, LAYOUT, EXEC_SPACE, MEM_SPACE) + +#define KOKKOSBLAS3_TRSM_ETI_SPEC_INST( SCALAR, LAYOUT, EXEC_SPACE, MEM_SPACE ) \ + KOKKOSBLAS3_TRSM_ETI_SPEC_INST_LAYOUTS(SCALAR, LAYOUT, LAYOUT, EXEC_SPACE, MEM_SPACE) + +#include +#include + +#endif // KOKKOSBLAS3_TRSM_SPEC_HPP_ diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Cuda_CudaS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Cuda_CudaS.cpp new file mode 100644 index 0000000000..a571ed2fdd --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Cuda_CudaS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Cuda_CudaUS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Cuda_CudaUS.cpp new file mode 100644 index 0000000000..f464f25190 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Cuda_CudaUS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_OpenMP_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_OpenMP_HBWSpace.cpp new file mode 100644 index 0000000000..5d9cfd162c --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_OpenMP_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_OpenMP_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_OpenMP_HostSpace.cpp new file mode 100644 index 0000000000..d77ef9174e --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_OpenMP_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Serial_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Serial_HBWSpace.cpp new file mode 100644 index 0000000000..a2420f2fb2 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Serial_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Serial_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Serial_HostSpace.cpp new file mode 100644 index 0000000000..30b7201266 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Serial_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Threads_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Threads_HBWSpace.cpp new file mode 100644 index 0000000000..dce384149f --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Threads_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Threads_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Threads_HostSpace.cpp new file mode 100644 index 0000000000..be1a25d525 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutLeft_Threads_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Cuda_CudaS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Cuda_CudaS.cpp new file mode 100644 index 0000000000..fb74effd7c --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Cuda_CudaS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Cuda_CudaUS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Cuda_CudaUS.cpp new file mode 100644 index 0000000000..e2185f8b10 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Cuda_CudaUS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_OpenMP_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_OpenMP_HBWSpace.cpp new file mode 100644 index 0000000000..80476ad091 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_OpenMP_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_OpenMP_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_OpenMP_HostSpace.cpp new file mode 100644 index 0000000000..b30605db04 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_OpenMP_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Serial_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Serial_HBWSpace.cpp new file mode 100644 index 0000000000..1a4e3406c4 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Serial_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Serial_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Serial_HostSpace.cpp new file mode 100644 index 0000000000..1797085e57 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Serial_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Threads_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Threads_HBWSpace.cpp new file mode 100644 index 0000000000..c412aaba89 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Threads_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Threads_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Threads_HostSpace.cpp new file mode 100644 index 0000000000..4182ce725b --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_dbl__LayoutRight_Threads_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Cuda_CudaS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Cuda_CudaS.cpp new file mode 100644 index 0000000000..fb467321cd --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Cuda_CudaS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Cuda_CudaUS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Cuda_CudaUS.cpp new file mode 100644 index 0000000000..6a1df587c9 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Cuda_CudaUS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_OpenMP_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_OpenMP_HBWSpace.cpp new file mode 100644 index 0000000000..e45755ddb2 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_OpenMP_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_OpenMP_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_OpenMP_HostSpace.cpp new file mode 100644 index 0000000000..4bc1cdf1a2 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_OpenMP_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Serial_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Serial_HBWSpace.cpp new file mode 100644 index 0000000000..42e2a2871d --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Serial_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Serial_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Serial_HostSpace.cpp new file mode 100644 index 0000000000..9119bc928e --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Serial_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Threads_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Threads_HBWSpace.cpp new file mode 100644 index 0000000000..cb510c5c6b --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Threads_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Threads_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Threads_HostSpace.cpp new file mode 100644 index 0000000000..5be24c5d8f --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutLeft_Threads_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Cuda_CudaS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Cuda_CudaS.cpp new file mode 100644 index 0000000000..1f7fc8e515 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Cuda_CudaS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Cuda_CudaUS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Cuda_CudaUS.cpp new file mode 100644 index 0000000000..abcdf6a9e1 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Cuda_CudaUS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_OpenMP_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_OpenMP_HBWSpace.cpp new file mode 100644 index 0000000000..47799f3e78 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_OpenMP_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_OpenMP_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_OpenMP_HostSpace.cpp new file mode 100644 index 0000000000..b4d116d17c --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_OpenMP_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Serial_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Serial_HBWSpace.cpp new file mode 100644 index 0000000000..350c9898a9 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Serial_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Serial_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Serial_HostSpace.cpp new file mode 100644 index 0000000000..d4f25f45bc --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Serial_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Threads_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Threads_HBWSpace.cpp new file mode 100644 index 0000000000..20b677a347 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Threads_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Threads_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Threads_HostSpace.cpp new file mode 100644 index 0000000000..bcc2fa09c8 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_Kokkos_cmplx_flt__LayoutRight_Threads_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Cuda_CudaS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Cuda_CudaS.cpp new file mode 100644 index 0000000000..15a1663634 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Cuda_CudaS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Cuda_CudaUS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Cuda_CudaUS.cpp new file mode 100644 index 0000000000..648f8b4f8f --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Cuda_CudaUS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_OpenMP_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_OpenMP_HBWSpace.cpp new file mode 100644 index 0000000000..d848e869d1 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_OpenMP_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_OpenMP_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_OpenMP_HostSpace.cpp new file mode 100644 index 0000000000..9e0bf6f734 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_OpenMP_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Serial_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Serial_HBWSpace.cpp new file mode 100644 index 0000000000..46329850fe --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Serial_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Serial_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Serial_HostSpace.cpp new file mode 100644 index 0000000000..7800c973d2 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Serial_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Threads_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Threads_HBWSpace.cpp new file mode 100644 index 0000000000..82be47bced --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Threads_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Threads_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Threads_HostSpace.cpp new file mode 100644 index 0000000000..777ae258dc --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutLeft_Threads_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Cuda_CudaS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Cuda_CudaS.cpp new file mode 100644 index 0000000000..8bdac42f3e --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Cuda_CudaS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Cuda_CudaUS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Cuda_CudaUS.cpp new file mode 100644 index 0000000000..577be20422 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Cuda_CudaUS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_OpenMP_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_OpenMP_HBWSpace.cpp new file mode 100644 index 0000000000..d777bdb59a --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_OpenMP_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_OpenMP_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_OpenMP_HostSpace.cpp new file mode 100644 index 0000000000..3ae9f04b0e --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_OpenMP_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Serial_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Serial_HBWSpace.cpp new file mode 100644 index 0000000000..08ecbe7a95 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Serial_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Serial_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Serial_HostSpace.cpp new file mode 100644 index 0000000000..334633f19f --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Serial_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Threads_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Threads_HBWSpace.cpp new file mode 100644 index 0000000000..ef2825bd40 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Threads_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Threads_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Threads_HostSpace.cpp new file mode 100644 index 0000000000..584f5f942d --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_dbl_LayoutRight_Threads_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(double, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Cuda_CudaS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Cuda_CudaS.cpp new file mode 100644 index 0000000000..16f24ffc7e --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Cuda_CudaS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Cuda_CudaUS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Cuda_CudaUS.cpp new file mode 100644 index 0000000000..1b6ed41693 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Cuda_CudaUS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_OpenMP_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_OpenMP_HBWSpace.cpp new file mode 100644 index 0000000000..aabfc73ef6 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_OpenMP_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_OpenMP_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_OpenMP_HostSpace.cpp new file mode 100644 index 0000000000..51d3ed4665 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_OpenMP_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Serial_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Serial_HBWSpace.cpp new file mode 100644 index 0000000000..5e1d7f11d0 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Serial_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Serial_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Serial_HostSpace.cpp new file mode 100644 index 0000000000..5b3a488d81 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Serial_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Threads_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Threads_HBWSpace.cpp new file mode 100644 index 0000000000..efc79583ea --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Threads_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Threads_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Threads_HostSpace.cpp new file mode 100644 index 0000000000..fa175d4688 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutLeft_Threads_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Cuda_CudaS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Cuda_CudaS.cpp new file mode 100644 index 0000000000..de267982a7 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Cuda_CudaS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Cuda_CudaUS.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Cuda_CudaUS.cpp new file mode 100644 index 0000000000..8409a3585f --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Cuda_CudaUS.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_OpenMP_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_OpenMP_HBWSpace.cpp new file mode 100644 index 0000000000..946009f33c --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_OpenMP_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_OpenMP_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_OpenMP_HostSpace.cpp new file mode 100644 index 0000000000..a5172b65fb --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_OpenMP_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Serial_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Serial_HBWSpace.cpp new file mode 100644 index 0000000000..1c09886300 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Serial_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Serial_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Serial_HostSpace.cpp new file mode 100644 index 0000000000..afc8948f28 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Serial_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Threads_HBWSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Threads_HBWSpace.cpp new file mode 100644 index 0000000000..45a20b08ff --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Threads_HBWSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Threads_HostSpace.cpp b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Threads_HostSpace.cpp new file mode 100644 index 0000000000..ba5a577255 --- /dev/null +++ b/src/impl/generated_specializations_cpp/trsm/KokkosBlas3_trsm_eti_spec_inst_flt_LayoutRight_Threads_HostSpace.cpp @@ -0,0 +1,58 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + + +#define KOKKOSKERNELS_IMPL_COMPILE_LIBRARY true +#include "KokkosKernels_config.h" +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) +#include "KokkosBlas3_trsm_spec.hpp" + +namespace KokkosBlas { +namespace Impl { + KOKKOSBLAS3_TRSM_ETI_SPEC_INST(float, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +} // Impl +} // KokkosBlas +#endif diff --git a/src/impl/generated_specializations_hpp/KokkosBlas3_trsm_eti_spec_avail.hpp b/src/impl/generated_specializations_hpp/KokkosBlas3_trsm_eti_spec_avail.hpp new file mode 100644 index 0000000000..9982bc1016 --- /dev/null +++ b/src/impl/generated_specializations_hpp/KokkosBlas3_trsm_eti_spec_avail.hpp @@ -0,0 +1,498 @@ +#ifndef KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL_HPP_ +#define KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL_HPP_ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +namespace KokkosBlas { +namespace Impl { + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(double, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(float, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif +} // Impl +} // KokkosBlas +#endif // KOKKOSBLAS3_TRSM_ETI_SPEC_AVAIL_HPP_ diff --git a/src/impl/generated_specializations_hpp/KokkosBlas3_trsm_eti_spec_decl.hpp b/src/impl/generated_specializations_hpp/KokkosBlas3_trsm_eti_spec_decl.hpp new file mode 100644 index 0000000000..b509d1d39b --- /dev/null +++ b/src/impl/generated_specializations_hpp/KokkosBlas3_trsm_eti_spec_decl.hpp @@ -0,0 +1,498 @@ +#ifndef KOKKOSBLAS3_TRSM_ETI_SPEC_DECL_HPP_ +#define KOKKOSBLAS3_TRSM_ETI_SPEC_DECL_HPP_ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +namespace KokkosBlas { +namespace Impl { + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(double, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(float, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutLeft, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDASPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_CUDA) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_CUDAUVMSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Cuda, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HOSTSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_OPENMP) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::OpenMP, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_THREADS) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Threads, Kokkos::Experimental::HBWSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) \ + && defined (KOKKOSKERNELS_INST_EXECSPACE_SERIAL) \ + && defined (KOKKOSKERNELS_INST_MEMSPACE_HBWSPACE) + KOKKOSBLAS3_TRSM_ETI_SPEC_DECL(Kokkos::complex, Kokkos::LayoutRight, Kokkos::Serial, Kokkos::Experimental::HBWSpace) +#endif +} // Impl +} // KokkosBlas +#endif // KOKKOSBLAS3_TRSM_ETI_SPEC_DECL_HPP_ diff --git a/src/impl/tpls/KokkosBlas3_trsm_tpl_spec_avail.hpp b/src/impl/tpls/KokkosBlas3_trsm_tpl_spec_avail.hpp new file mode 100644 index 0000000000..3e08bd6a9f --- /dev/null +++ b/src/impl/tpls/KokkosBlas3_trsm_tpl_spec_avail.hpp @@ -0,0 +1,162 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_HPP_ +#define KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_HPP_ + +namespace KokkosBlas { +namespace Impl { + +// Specialization struct which defines whether a specialization exists +template +struct trsm_tpl_spec_avail { + enum : bool { value = false }; +}; + +// Generic Host side BLAS (could be MKL or whatever) +#ifdef KOKKOSKERNELS_ENABLE_TPL_BLAS + +#define KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_BLAS( SCALAR , LAYOUTA, LAYOUTB, MEMSPACE ) \ +template \ +struct trsm_tpl_spec_avail< \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + Kokkos::View, \ + Kokkos::MemoryTraits > \ + > { enum : bool { value = true }; }; + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_BLAS( double, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace) +#endif +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_BLAS( float, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace) +#endif +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_BLAS( Kokkos::complex, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace) +#endif +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_BLAS( Kokkos::complex, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_BLAS( double, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace) +#endif +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_BLAS( float, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace) +#endif +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_BLAS( Kokkos::complex, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace) +#endif +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_BLAS( Kokkos::complex, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace) +#endif + +#endif + +// cuBLAS +#ifdef KOKKOSKERNELS_ENABLE_TPL_CUBLAS + +#define KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( SCALAR , LAYOUTA, LAYOUTB, MEMSPACE ) \ +template \ +struct trsm_tpl_spec_avail< \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + Kokkos::View, \ + Kokkos::MemoryTraits > \ + > { enum : bool { value = true }; }; + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( double, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( double, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace) +#endif +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( float, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( float, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace) +#endif +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( Kokkos::complex, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( Kokkos::complex, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace) +#endif +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTLEFT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( Kokkos::complex, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( Kokkos::complex, Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace) +#endif + +#if defined (KOKKOSKERNELS_INST_DOUBLE) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( double, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( double, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace) +#endif +#if defined (KOKKOSKERNELS_INST_FLOAT) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( float, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( float, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace) +#endif +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_DOUBLE_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( Kokkos::complex, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( Kokkos::complex, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace) +#endif +#if defined (KOKKOSKERNELS_INST_KOKKOS_COMPLEX_FLOAT_) \ + && defined (KOKKOSKERNELS_INST_LAYOUTRIGHT) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( Kokkos::complex, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace) + KOKKOSBLAS3_TRSM_TPL_SPEC_AVAIL_CUBLAS( Kokkos::complex, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace) +#endif + +#endif +} +} + +#endif diff --git a/src/impl/tpls/KokkosBlas3_trsm_tpl_spec_decl.hpp b/src/impl/tpls/KokkosBlas3_trsm_tpl_spec_decl.hpp new file mode 100644 index 0000000000..ab59d2f238 --- /dev/null +++ b/src/impl/tpls/KokkosBlas3_trsm_tpl_spec_decl.hpp @@ -0,0 +1,710 @@ +/* +//@HEADER +// ************************************************************************ +// +// KokkosKernels 0.9: Linear Algebra and Graph Kernels +// Copyright 2017 Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Siva Rajamanickam (srajama@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOSBLAS3_TRSM_TPL_SPEC_DECL_HPP_ +#define KOKKOSBLAS3_TRSM_TPL_SPEC_DECL_HPP_ + +#ifdef KOKKOSKERNELS_ENABLE_TPL_BLAS +#include "KokkosBlas_Host_tpl.hpp" + +namespace KokkosBlas { +namespace Impl { + +#define KOKKOSBLAS3_DTRSM_BLAS( LAYOUTA, LAYOUTB, MEM_SPACE, ETI_SPEC_AVAIL ) \ +template \ +struct TRSM< \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + true, ETI_SPEC_AVAIL> { \ + typedef double SCALAR; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > AViewType; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > BViewType; \ + \ + static void \ + trsm (const char side[], \ + const char uplo[], \ + const char trans[], \ + const char diag[], \ + typename BViewType::const_value_type& alpha, \ + const AViewType& A, \ + const BViewType& B) { \ + \ + Kokkos::Profiling::pushRegion("KokkosBlas::trsm[TPL_BLAS,double]"); \ + const int M = static_cast (B.extent(0)); \ + const int N = static_cast (B.extent(1)); \ + \ + bool A_is_ll = std::is_same::value; \ + bool B_is_ll = std::is_same::value; \ + \ + const int AST = A_is_ll?A.stride(1):A.stride(0), LDA = (AST == 0) ? 1 : AST; \ + const int BST = B_is_ll?B.stride(1):B.stride(0), LDB = (BST == 0) ? 1 : BST; \ + \ + char side_; \ + char uplo_; \ + \ + if(A_is_ll) { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = 'L'; \ + else \ + side_ = 'R'; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = 'L'; \ + else \ + uplo_ = 'U'; \ + } \ + else { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = 'R'; \ + else \ + side_ = 'L'; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = 'U'; \ + else \ + uplo_ = 'L'; \ + } \ + \ + if(A_is_ll) \ + HostBlas::trsm(side_, uplo_, trans[0], diag[0], M, N, alpha, A.data(), LDA, B.data(), LDB); \ + else \ + HostBlas::trsm(side_, uplo_, trans[0], diag[0], N, M, alpha, A.data(), LDA, B.data(), LDB); \ + Kokkos::Profiling::popRegion(); \ + } \ +}; + +#define KOKKOSBLAS3_STRSM_BLAS( LAYOUTA, LAYOUTB, MEM_SPACE, ETI_SPEC_AVAIL ) \ +template \ +struct TRSM< \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + true, ETI_SPEC_AVAIL> { \ + typedef float SCALAR; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > AViewType; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > BViewType; \ + \ + static void \ + trsm (const char side[], \ + const char uplo[], \ + const char trans[], \ + const char diag[], \ + typename BViewType::const_value_type& alpha, \ + const AViewType& A, \ + const BViewType& B) { \ + \ + Kokkos::Profiling::pushRegion("KokkosBlas::trsm[TPL_BLAS,float]"); \ + const int M = static_cast (B.extent(0)); \ + const int N = static_cast (B.extent(1)); \ + \ + bool A_is_ll = std::is_same::value; \ + bool B_is_ll = std::is_same::value; \ + \ + const int AST = A_is_ll?A.stride(1):A.stride(0), LDA = (AST == 0) ? 1 : AST; \ + const int BST = B_is_ll?B.stride(1):B.stride(0), LDB = (BST == 0) ? 1 : BST; \ + \ + char side_; \ + char uplo_; \ + \ + if(A_is_ll) { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = 'L'; \ + else \ + side_ = 'R'; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = 'L'; \ + else \ + uplo_ = 'U'; \ + } \ + else { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = 'R'; \ + else \ + side_ = 'L'; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = 'U'; \ + else \ + uplo_ = 'L'; \ + } \ + \ + if(A_is_ll) \ + HostBlas::trsm(side_, uplo_, trans[0], diag[0], M, N, alpha, A.data(), LDA, B.data(), LDB); \ + else \ + HostBlas::trsm(side_, uplo_, trans[0], diag[0], N, M, alpha, A.data(), LDA, B.data(), LDB); \ + Kokkos::Profiling::popRegion(); \ + } \ +}; + +#define KOKKOSBLAS3_ZTRSM_BLAS( LAYOUTA, LAYOUTB, MEM_SPACE, ETI_SPEC_AVAIL ) \ +template \ +struct TRSM< \ + Kokkos::View**, LAYOUTA, Kokkos::Device, \ + Kokkos::MemoryTraits >, \ + Kokkos::View**, LAYOUTB, Kokkos::Device, \ + Kokkos::MemoryTraits >, \ + true, ETI_SPEC_AVAIL> { \ + typedef Kokkos::complex SCALAR; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > AViewType; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > BViewType; \ + \ + static void \ + trsm (const char side[], \ + const char uplo[], \ + const char trans[], \ + const char diag[], \ + typename BViewType::const_value_type& alpha, \ + const AViewType& A, \ + const BViewType& B) { \ + \ + Kokkos::Profiling::pushRegion("KokkosBlas::trsm[TPL_BLAS,complex]"); \ + const int M = static_cast (B.extent(0)); \ + const int N = static_cast (B.extent(1)); \ + \ + bool A_is_ll = std::is_same::value; \ + bool B_is_ll = std::is_same::value; \ + \ + const int AST = A_is_ll?A.stride(1):A.stride(0), LDA = (AST == 0) ? 1 : AST; \ + const int BST = B_is_ll?B.stride(1):B.stride(0), LDB = (BST == 0) ? 1 : BST; \ + \ + char side_; \ + char uplo_; \ + \ + if(A_is_ll) { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = 'L'; \ + else \ + side_ = 'R'; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = 'L'; \ + else \ + uplo_ = 'U'; \ + } \ + else { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = 'R'; \ + else \ + side_ = 'L'; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = 'U'; \ + else \ + uplo_ = 'L'; \ + } \ + \ + const std::complex alpha_val = alpha; \ + if(A_is_ll) \ + HostBlas >::trsm(side_, uplo_, trans[0], diag[0], M, N, alpha_val, reinterpret_cast*>(A.data()), LDA, reinterpret_cast*>(B.data()), LDB); \ + else \ + HostBlas >::trsm(side_, uplo_, trans[0], diag[0], N, M, alpha_val, reinterpret_cast*>(A.data()), LDA, reinterpret_cast*>(B.data()), LDB); \ + Kokkos::Profiling::popRegion(); \ + } \ +}; \ + +#define KOKKOSBLAS3_CTRSM_BLAS( LAYOUTA, LAYOUTB, MEM_SPACE, ETI_SPEC_AVAIL ) \ +template \ +struct TRSM< \ + Kokkos::View**, LAYOUTA, Kokkos::Device, \ + Kokkos::MemoryTraits >, \ + Kokkos::View**, LAYOUTB, Kokkos::Device, \ + Kokkos::MemoryTraits >, \ + true, ETI_SPEC_AVAIL> { \ + typedef Kokkos::complex SCALAR; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > AViewType; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > BViewType; \ + \ + static void \ + trsm (const char side[], \ + const char uplo[], \ + const char trans[], \ + const char diag[], \ + typename BViewType::const_value_type& alpha, \ + const AViewType& A, \ + const BViewType& B) { \ + \ + Kokkos::Profiling::pushRegion("KokkosBlas::trsm[TPL_BLAS,complex]"); \ + const int M = static_cast (B.extent(0)); \ + const int N = static_cast (B.extent(1)); \ + \ + bool A_is_ll = std::is_same::value; \ + bool B_is_ll = std::is_same::value; \ + \ + const int AST = A_is_ll?A.stride(1):A.stride(0), LDA = (AST == 0) ? 1 : AST; \ + const int BST = B_is_ll?B.stride(1):B.stride(0), LDB = (BST == 0) ? 1 : BST; \ + \ + char side_; \ + char uplo_; \ + \ + if(A_is_ll) { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = 'L'; \ + else \ + side_ = 'R'; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = 'L'; \ + else \ + uplo_ = 'U'; \ + } \ + else { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = 'R'; \ + else \ + side_ = 'L'; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = 'U'; \ + else \ + uplo_ = 'L'; \ + } \ + \ + const std::complex alpha_val = alpha; \ + if(A_is_ll) \ + HostBlas >::trsm(side_, uplo_, trans[0], diag[0], M, N, alpha_val, reinterpret_cast*>(A.data()), LDA, reinterpret_cast*>(B.data()), LDB); \ + else \ + HostBlas >::trsm(side_, uplo_, trans[0], diag[0], N, M, alpha_val, reinterpret_cast*>(A.data()), LDA, reinterpret_cast*>(B.data()), LDB); \ + Kokkos::Profiling::popRegion(); \ + } \ +}; + +KOKKOSBLAS3_DTRSM_BLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace, true) +KOKKOSBLAS3_DTRSM_BLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace, false) +KOKKOSBLAS3_DTRSM_BLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace, true) +KOKKOSBLAS3_DTRSM_BLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace, false) + +KOKKOSBLAS3_STRSM_BLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace, true) +KOKKOSBLAS3_STRSM_BLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace, false) +KOKKOSBLAS3_STRSM_BLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace, true) +KOKKOSBLAS3_STRSM_BLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace, false) + +KOKKOSBLAS3_ZTRSM_BLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace, true) +KOKKOSBLAS3_ZTRSM_BLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace, false) +KOKKOSBLAS3_ZTRSM_BLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace, true) +KOKKOSBLAS3_ZTRSM_BLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace, false) + +KOKKOSBLAS3_CTRSM_BLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace, true) +KOKKOSBLAS3_CTRSM_BLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::HostSpace, false) +KOKKOSBLAS3_CTRSM_BLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace, true) +KOKKOSBLAS3_CTRSM_BLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::HostSpace, false) + +} +} +#endif // KOKKOSKERNELS_ENABLE_TPL_BLAS + +// cuBLAS +#ifdef KOKKOSKERNELS_ENABLE_TPL_CUBLAS +#include + +namespace KokkosBlas { +namespace Impl { + +#define KOKKOSBLAS3_DTRSM_CUBLAS( LAYOUTA, LAYOUTB, MEM_SPACE, ETI_SPEC_AVAIL ) \ +template \ +struct TRSM< \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + true, ETI_SPEC_AVAIL> { \ + typedef double SCALAR; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > AViewType; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > BViewType; \ + \ + static void \ + trsm (const char side[], \ + const char uplo[], \ + const char trans[], \ + const char diag[], \ + typename BViewType::const_value_type& alpha, \ + const AViewType& A, \ + const BViewType& B) { \ + \ + Kokkos::Profiling::pushRegion("KokkosBlas::trsm[TPL_CUBLAS,double]"); \ + const int M = static_cast (B.extent(0)); \ + const int N = static_cast (B.extent(1)); \ + \ + bool A_is_ll = std::is_same::value; \ + bool B_is_ll = std::is_same::value; \ + \ + const int AST = A_is_ll?A.stride(1):A.stride(0), LDA = (AST == 0) ? 1 : AST; \ + const int BST = B_is_ll?B.stride(1):B.stride(0), LDB = (BST == 0) ? 1 : BST; \ + \ + cublasSideMode_t side_; \ + cublasFillMode_t uplo_; \ + cublasOperation_t trans_; \ + cublasDiagType_t diag_; \ + \ + if(A_is_ll) { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = CUBLAS_SIDE_LEFT; \ + else \ + side_ = CUBLAS_SIDE_RIGHT; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = CUBLAS_FILL_MODE_LOWER; \ + else \ + uplo_ = CUBLAS_FILL_MODE_UPPER; \ + } \ + else { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = CUBLAS_SIDE_RIGHT; \ + else \ + side_ = CUBLAS_SIDE_LEFT; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = CUBLAS_FILL_MODE_UPPER; \ + else \ + uplo_ = CUBLAS_FILL_MODE_LOWER; \ + } \ + \ + if ((trans[0]=='N')||(trans[0]=='n')) \ + trans_ = CUBLAS_OP_N; \ + else if ((trans[0]=='T')||(trans[0]=='t')) \ + trans_ = CUBLAS_OP_T; \ + else \ + trans_ = CUBLAS_OP_C; \ + if ((diag[0]=='U')||(diag[0]=='u')) \ + diag_ = CUBLAS_DIAG_UNIT; \ + else \ + diag_ = CUBLAS_DIAG_NON_UNIT; \ + \ + KokkosBlas::Impl::CudaBlasSingleton & s = KokkosBlas::Impl::CudaBlasSingleton::singleton(); \ + if(A_is_ll) \ + cublasDtrsm(s.handle, side_, uplo_, trans_, diag_, M, N, &alpha, A.data(), LDA, B.data(), LDB); \ + else \ + cublasDtrsm(s.handle, side_, uplo_, trans_, diag_, N, M, &alpha, A.data(), LDA, B.data(), LDB); \ + \ + Kokkos::Profiling::popRegion(); \ + } \ +}; + +#define KOKKOSBLAS3_STRSM_CUBLAS( LAYOUTA, LAYOUTB, MEM_SPACE, ETI_SPEC_AVAIL ) \ +template \ +struct TRSM< \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + Kokkos::View, \ + Kokkos::MemoryTraits >, \ + true, ETI_SPEC_AVAIL> { \ + typedef float SCALAR; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > AViewType; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > BViewType; \ + \ + static void \ + trsm (const char side[], \ + const char uplo[], \ + const char trans[], \ + const char diag[], \ + typename BViewType::const_value_type& alpha, \ + const AViewType& A, \ + const BViewType& B) { \ + \ + Kokkos::Profiling::pushRegion("KokkosBlas::trsm[TPL_CUBLAS,float]"); \ + const int M = static_cast (B.extent(0)); \ + const int N = static_cast (B.extent(1)); \ + \ + bool A_is_ll = std::is_same::value; \ + bool B_is_ll = std::is_same::value; \ + \ + const int AST = A_is_ll?A.stride(1):A.stride(0), LDA = (AST == 0) ? 1 : AST; \ + const int BST = B_is_ll?B.stride(1):B.stride(0), LDB = (BST == 0) ? 1 : BST; \ + \ + cublasSideMode_t side_; \ + cublasFillMode_t uplo_; \ + cublasOperation_t trans_; \ + cublasDiagType_t diag_; \ + \ + if(A_is_ll) { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = CUBLAS_SIDE_LEFT; \ + else \ + side_ = CUBLAS_SIDE_RIGHT; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = CUBLAS_FILL_MODE_LOWER; \ + else \ + uplo_ = CUBLAS_FILL_MODE_UPPER; \ + } \ + else { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = CUBLAS_SIDE_RIGHT; \ + else \ + side_ = CUBLAS_SIDE_LEFT; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = CUBLAS_FILL_MODE_UPPER; \ + else \ + uplo_ = CUBLAS_FILL_MODE_LOWER; \ + } \ + \ + if ((trans[0]=='N')||(trans[0]=='n')) \ + trans_ = CUBLAS_OP_N; \ + else if ((trans[0]=='T')||(trans[0]=='t')) \ + trans_ = CUBLAS_OP_T; \ + else \ + trans_ = CUBLAS_OP_C; \ + if ((diag[0]=='U')||(diag[0]=='u')) \ + diag_ = CUBLAS_DIAG_UNIT; \ + else \ + diag_ = CUBLAS_DIAG_NON_UNIT; \ + \ + KokkosBlas::Impl::CudaBlasSingleton & s = KokkosBlas::Impl::CudaBlasSingleton::singleton(); \ + if(A_is_ll) \ + cublasStrsm(s.handle, side_, uplo_, trans_, diag_, M, N, &alpha, A.data(), LDA, B.data(), LDB); \ + else \ + cublasStrsm(s.handle, side_, uplo_, trans_, diag_, N, M, &alpha, A.data(), LDA, B.data(), LDB); \ + \ + Kokkos::Profiling::popRegion(); \ + } \ +}; + +#define KOKKOSBLAS3_ZTRSM_CUBLAS( LAYOUTA, LAYOUTB, MEM_SPACE, ETI_SPEC_AVAIL ) \ +template \ +struct TRSM< \ + Kokkos::View**, LAYOUTA, Kokkos::Device, \ + Kokkos::MemoryTraits >, \ + Kokkos::View**, LAYOUTB, Kokkos::Device, \ + Kokkos::MemoryTraits >, \ + true, ETI_SPEC_AVAIL> { \ + typedef Kokkos::complex SCALAR; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > AViewType; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > BViewType; \ + \ + static void \ + trsm (const char side[], \ + const char uplo[], \ + const char trans[], \ + const char diag[], \ + typename BViewType::const_value_type& alpha, \ + const AViewType& A, \ + const BViewType& B) { \ + \ + Kokkos::Profiling::pushRegion("KokkosBlas::trsm[TPL_CUBLAS,complex]"); \ + const int M = static_cast (B.extent(0)); \ + const int N = static_cast (B.extent(1)); \ + \ + bool A_is_ll = std::is_same::value; \ + bool B_is_ll = std::is_same::value; \ + \ + const int AST = A_is_ll?A.stride(1):A.stride(0), LDA = (AST == 0) ? 1 : AST; \ + const int BST = B_is_ll?B.stride(1):B.stride(0), LDB = (BST == 0) ? 1 : BST; \ + \ + cublasSideMode_t side_; \ + cublasFillMode_t uplo_; \ + cublasOperation_t trans_; \ + cublasDiagType_t diag_; \ + \ + if(A_is_ll) { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = CUBLAS_SIDE_LEFT; \ + else \ + side_ = CUBLAS_SIDE_RIGHT; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = CUBLAS_FILL_MODE_LOWER; \ + else \ + uplo_ = CUBLAS_FILL_MODE_UPPER; \ + } \ + else { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = CUBLAS_SIDE_RIGHT; \ + else \ + side_ = CUBLAS_SIDE_LEFT; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = CUBLAS_FILL_MODE_UPPER; \ + else \ + uplo_ = CUBLAS_FILL_MODE_LOWER; \ + } \ + \ + if ((trans[0]=='N')||(trans[0]=='n')) \ + trans_ = CUBLAS_OP_N; \ + else if ((trans[0]=='T')||(trans[0]=='t')) \ + trans_ = CUBLAS_OP_T; \ + else \ + trans_ = CUBLAS_OP_C; \ + if ((diag[0]=='U')||(diag[0]=='u')) \ + diag_ = CUBLAS_DIAG_UNIT; \ + else \ + diag_ = CUBLAS_DIAG_NON_UNIT; \ + \ + KokkosBlas::Impl::CudaBlasSingleton & s = KokkosBlas::Impl::CudaBlasSingleton::singleton(); \ + if(A_is_ll) \ + cublasZtrsm(s.handle, side_, uplo_, trans_, diag_, M, N, reinterpret_cast(&alpha), reinterpret_cast(A.data()), LDA, reinterpret_cast(B.data()), LDB); \ + else \ + cublasZtrsm(s.handle, side_, uplo_, trans_, diag_, N, M, reinterpret_cast(&alpha), reinterpret_cast(A.data()), LDA, reinterpret_cast(B.data()), LDB); \ + \ + Kokkos::Profiling::popRegion(); \ + } \ +}; \ + +#define KOKKOSBLAS3_CTRSM_CUBLAS( LAYOUTA, LAYOUTB, MEM_SPACE, ETI_SPEC_AVAIL ) \ +template \ +struct TRSM< \ + Kokkos::View**, LAYOUTA, Kokkos::Device, \ + Kokkos::MemoryTraits >, \ + Kokkos::View**, LAYOUTB, Kokkos::Device, \ + Kokkos::MemoryTraits >, \ + true, ETI_SPEC_AVAIL> { \ + typedef Kokkos::complex SCALAR; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > AViewType; \ + typedef Kokkos::View, \ + Kokkos::MemoryTraits > BViewType; \ + \ + static void \ + trsm (const char side[], \ + const char uplo[], \ + const char trans[], \ + const char diag[], \ + typename BViewType::const_value_type& alpha, \ + const AViewType& A, \ + const BViewType& B) { \ + \ + Kokkos::Profiling::pushRegion("KokkosBlas::trsm[TPL_CUBLAS,complex]"); \ + const int M = static_cast (B.extent(0)); \ + const int N = static_cast (B.extent(1)); \ + \ + bool A_is_ll = std::is_same::value; \ + bool B_is_ll = std::is_same::value; \ + \ + const int AST = A_is_ll?A.stride(1):A.stride(0), LDA = (AST == 0) ? 1 : AST; \ + const int BST = B_is_ll?B.stride(1):B.stride(0), LDB = (BST == 0) ? 1 : BST; \ + \ + cublasSideMode_t side_; \ + cublasFillMode_t uplo_; \ + cublasOperation_t trans_; \ + cublasDiagType_t diag_; \ + \ + if(A_is_ll) { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = CUBLAS_SIDE_LEFT; \ + else \ + side_ = CUBLAS_SIDE_RIGHT; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = CUBLAS_FILL_MODE_LOWER; \ + else \ + uplo_ = CUBLAS_FILL_MODE_UPPER; \ + } \ + else { \ + if ((side[0]=='L')||(side[0]=='l')) \ + side_ = CUBLAS_SIDE_RIGHT; \ + else \ + side_ = CUBLAS_SIDE_LEFT; \ + if ((uplo[0]=='L')||(uplo[0]=='l')) \ + uplo_ = CUBLAS_FILL_MODE_UPPER; \ + else \ + uplo_ = CUBLAS_FILL_MODE_LOWER; \ + } \ + \ + if ((trans[0]=='N')||(trans[0]=='n')) \ + trans_ = CUBLAS_OP_N; \ + else if ((trans[0]=='T')||(trans[0]=='t')) \ + trans_ = CUBLAS_OP_T; \ + else \ + trans_ = CUBLAS_OP_C; \ + if ((diag[0]=='U')||(diag[0]=='u')) \ + diag_ = CUBLAS_DIAG_UNIT; \ + else \ + diag_ = CUBLAS_DIAG_NON_UNIT; \ + \ + KokkosBlas::Impl::CudaBlasSingleton & s = KokkosBlas::Impl::CudaBlasSingleton::singleton(); \ + if(A_is_ll) \ + cublasCtrsm(s.handle, side_, uplo_, trans_, diag_, M, N, reinterpret_cast(&alpha), reinterpret_cast(A.data()), LDA, reinterpret_cast(B.data()), LDB); \ + else \ + cublasCtrsm(s.handle, side_, uplo_, trans_, diag_, N, M, reinterpret_cast(&alpha), reinterpret_cast(A.data()), LDA, reinterpret_cast(B.data()), LDB); \ + \ + Kokkos::Profiling::popRegion(); \ + } \ +}; + +KOKKOSBLAS3_DTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace, true) +KOKKOSBLAS3_DTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace, false) +KOKKOSBLAS3_DTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace, true) +KOKKOSBLAS3_DTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace, false) + +KOKKOSBLAS3_DTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace, true) +KOKKOSBLAS3_DTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace, false) +KOKKOSBLAS3_DTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace, true) +KOKKOSBLAS3_DTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace, false) + +KOKKOSBLAS3_STRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace, true) +KOKKOSBLAS3_STRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace, false) +KOKKOSBLAS3_STRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace, true) +KOKKOSBLAS3_STRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace, false) + +KOKKOSBLAS3_STRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace, true) +KOKKOSBLAS3_STRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace, false) +KOKKOSBLAS3_STRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace, true) +KOKKOSBLAS3_STRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace, false) + +KOKKOSBLAS3_ZTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace, true) +KOKKOSBLAS3_ZTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace, false) +KOKKOSBLAS3_ZTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace, true) +KOKKOSBLAS3_ZTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace, false) + +KOKKOSBLAS3_ZTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace, true) +KOKKOSBLAS3_ZTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace, false) +KOKKOSBLAS3_ZTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace, true) +KOKKOSBLAS3_ZTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace, false) + +KOKKOSBLAS3_CTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace, true) +KOKKOSBLAS3_CTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaSpace, false) +KOKKOSBLAS3_CTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace, true) +KOKKOSBLAS3_CTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaSpace, false) + +KOKKOSBLAS3_CTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace, true) +KOKKOSBLAS3_CTRSM_CUBLAS( Kokkos::LayoutLeft, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace, false) +KOKKOSBLAS3_CTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace, true) +KOKKOSBLAS3_CTRSM_CUBLAS( Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace, false) + +} +} +#endif // KOKKOSKERNELS_ENABLE_TPL_CUBLAS + +#endif diff --git a/src/impl/tpls/KokkosBlas_Host_tpl.cpp b/src/impl/tpls/KokkosBlas_Host_tpl.cpp index bed6c88504..2b7e6a2f61 100644 --- a/src/impl/tpls/KokkosBlas_Host_tpl.cpp +++ b/src/impl/tpls/KokkosBlas_Host_tpl.cpp @@ -225,6 +225,31 @@ extern "C" { const std::complex*, /* */ std::complex*, int* ); + /// + /// Trmm + /// + + void F77_BLAS_MANGLE(strmm,STRMM)( const char*, const char*, const char*, const char*, + int*, int*, + const float*, + const float*, int*, + /* */ float*, int* ); + void F77_BLAS_MANGLE(dtrmm,DTRMM)( const char*, const char*, const char*, const char*, + int*, int*, + const double*, + const double*, int*, + /* */ double*, int* ); + void F77_BLAS_MANGLE(ctrmm,CTRMM)( const char*, const char*, const char*, const char*, + int*, int*, + const std::complex*, + const std::complex*, int*, + /* */ std::complex*, int* ); + void F77_BLAS_MANGLE(ztrmm,ZTRMM)( const char*, const char*, const char*, const char*, + int*, int*, + const std::complex*, + const std::complex*, int*, + /* */ std::complex*, int* ); + /// /// Trsm /// @@ -335,6 +360,11 @@ extern "C" { #define F77_FUNC_CHERK F77_BLAS_MANGLE(cherk,CHERK) #define F77_FUNC_ZHERK F77_BLAS_MANGLE(zherk,ZHERK) +#define F77_FUNC_STRMM F77_BLAS_MANGLE(strmm,STRMM) +#define F77_FUNC_DTRMM F77_BLAS_MANGLE(dtrmm,DTRMM) +#define F77_FUNC_CTRMM F77_BLAS_MANGLE(ctrmm,CTRMM) +#define F77_FUNC_ZTRMM F77_BLAS_MANGLE(ztrmm,ZTRMM) + #define F77_FUNC_STRSM F77_BLAS_MANGLE(strsm,STRSM) #define F77_FUNC_DTRSM F77_BLAS_MANGLE(dtrsm,DTRSM) #define F77_FUNC_CTRSM F77_BLAS_MANGLE(ctrsm,CTRSM) @@ -454,6 +484,19 @@ namespace KokkosBlas { } template<> void + HostBlas::trmm(const char side, const char uplo, const char transa, const char diag, + int m, int n, + const float alpha, + const float *a, int lda, + /* */ float *b, int ldb) { + F77_FUNC_STRMM(&side, &uplo, &transa, &diag, + &m, &n, + &alpha, + a, &lda, + b, &ldb); + } + template<> + void HostBlas::trsm(const char side, const char uplo, const char transa, const char diag, int m, int n, const float alpha, @@ -581,6 +624,19 @@ namespace KokkosBlas { } template<> void + HostBlas::trmm(const char side, const char uplo, const char transa, const char diag, + int m, int n, + const double alpha, + const double *a, int lda, + /* */ double *b, int ldb) { + F77_FUNC_DTRMM(&side, &uplo, &transa, &diag, + &m, &n, + &alpha, + a, &lda, + b, &ldb); + } + template<> + void HostBlas::trsm(const char side, const char uplo, const char transa, const char diag, int m, int n, const double alpha, @@ -715,6 +771,19 @@ namespace KokkosBlas { } template<> void + HostBlas >::trmm(const char side, const char uplo, const char transa, const char diag, + int m, int n, + const std::complex alpha, + const std::complex *a, int lda, + /* */ std::complex *b, int ldb) { + F77_FUNC_CTRMM(&side, &uplo, &transa, &diag, + &m, &n, + &alpha, + (const std::complex*)a, &lda, + ( std::complex*)b, &ldb); + } + template<> + void HostBlas >::trsm(const char side, const char uplo, const char transa, const char diag, int m, int n, const std::complex alpha, @@ -850,6 +919,19 @@ namespace KokkosBlas { } template<> void + HostBlas >::trmm(const char side, const char uplo, const char transa, const char diag, + int m, int n, + const std::complex alpha, + const std::complex *a, int lda, + /* */ std::complex *b, int ldb) { + F77_FUNC_ZTRMM(&side, &uplo, &transa, &diag, + &m, &n, + &alpha, + (const std::complex*)a, &lda, + ( std::complex*)b, &ldb); + } + template<> + void HostBlas >::trsm(const char side, const char uplo, const char transa, const char diag, int m, int n, const std::complex alpha, diff --git a/src/impl/tpls/KokkosBlas_Host_tpl.hpp b/src/impl/tpls/KokkosBlas_Host_tpl.hpp index 4ab2fd2c1c..46227a5155 100644 --- a/src/impl/tpls/KokkosBlas_Host_tpl.hpp +++ b/src/impl/tpls/KokkosBlas_Host_tpl.hpp @@ -79,6 +79,13 @@ namespace KokkosBlas { const T beta, /* */ T *c, int ldc); + static + void trmm(const char side, const char uplo, const char transa, const char diag, + int m, int n, + const T alpha, + const T *a, int lda, + /* */ T *b, int ldb); + static void trsm(const char side, const char uplo, const char transa, const char diag, int m, int n, diff --git a/unit_test/Makefile b/unit_test/Makefile index 98c9e2d57c..89ab51a4c3 100644 --- a/unit_test/Makefile +++ b/unit_test/Makefile @@ -113,6 +113,7 @@ ifeq ($(KOKKOSKERNELS_INTERNAL_TEST_OPENMP), 1) OBJ_OPENMP += Test_OpenMP_Blas2_gemv.o OBJ_OPENMP += Test_OpenMP_Blas2_team_gemv.o OBJ_OPENMP += Test_OpenMP_Blas3_gemm.o + OBJ_OPENMP += Test_OpenMP_Blas3_trsm.o OBJ_OPENMP += Test_OpenMP_Blas_gesv.o OBJ_OPENMP += Test_OpenMP_Sparse_spmv.o OBJ_OPENMP += Test_OpenMP_Sparse_trsv.o @@ -230,6 +231,7 @@ ifeq ($(KOKKOSKERNELS_INTERNAL_TEST_CUDA), 1) OBJ_CUDA += Test_Cuda_Blas2_gemv.o OBJ_CUDA += Test_Cuda_Blas2_team_gemv.o OBJ_CUDA += Test_Cuda_Blas3_gemm.o #Not yet ready need to figure out how to handle CUBLAS + OBJ_CUDA += Test_Cuda_Blas3_trsm.o OBJ_CUDA += Test_Cuda_Blas_gesv.o OBJ_CUDA += Test_Cuda_Sparse_spmv.o #OBJ_CUDA += Test_Cuda_Sparse_trsv.o #removing trsv from cuda unit test as it runs only sequential. @@ -340,6 +342,7 @@ ifeq ($(KOKKOSKERNELS_INTERNAL_TEST_SERIAL), 1) OBJ_SERIAL += Test_Serial_Blas2_gemv.o OBJ_SERIAL += Test_Serial_Blas2_team_gemv.o OBJ_SERIAL += Test_Serial_Blas3_gemm.o + OBJ_SERIAL += Test_Serial_Blas3_trsm.o OBJ_SERIAL += Test_Serial_Blas_gesv.o OBJ_SERIAL += Test_Serial_Sparse_spmv.o OBJ_SERIAL += Test_Serial_Sparse_trsv.o @@ -457,6 +460,7 @@ ifeq ($(KOKKOSKERNELS_INTERNAL_TEST_THREADS), 1) OBJ_THREADS += Test_Threads_Blas2_gemv.o OBJ_THREADS += Test_Threads_Blas2_team_gemv.o OBJ_THREADS += Test_Threads_Blas3_gemm.o + OBJ_THREADS += Test_Threads_Blas3_trsm.o OBJ_THREADS += Test_Threads_Blas_gesv.o OBJ_THREADS += Test_Threads_Sparse_spmv.o OBJ_THREADS += Test_Threads_Sparse_trsv.o diff --git a/unit_test/blas/Test_Blas3_trsm.hpp b/unit_test/blas/Test_Blas3_trsm.hpp new file mode 100644 index 0000000000..8c876e4077 --- /dev/null +++ b/unit_test/blas/Test_Blas3_trsm.hpp @@ -0,0 +1,389 @@ +#include +#include +#include +#include +#include + +namespace Test { + + template + struct UnitDiagTRSM { + ViewTypeA A_; + using ScalarA = typename ViewTypeA::value_type; + + UnitDiagTRSM (const ViewTypeA& A) : A_(A) {} + + KOKKOS_INLINE_FUNCTION + void operator() (const int& i) const { + A_(i,i) = ScalarA(1); + } + }; + template + struct NonUnitDiagTRSM { + ViewTypeA A_; + using ScalarA = typename ViewTypeA::value_type; + + NonUnitDiagTRSM (const ViewTypeA& A) : A_(A) {} + + KOKKOS_INLINE_FUNCTION + void operator() (const int& i) const { + A_(i,i) = A_(i,i)+10; + } + }; + template + struct VanillaGEMM { + bool A_t, B_t, A_c, B_c; + int N,K; + ViewTypeA A; + ViewTypeB B; + ViewTypeC C; + + typedef typename ViewTypeA::value_type ScalarA; + typedef typename ViewTypeB::value_type ScalarB; + typedef typename ViewTypeC::value_type ScalarC; + typedef Kokkos::Details::ArithTraits APT; + typedef typename APT::mag_type mag_type; + ScalarA alpha; + ScalarC beta; + + KOKKOS_INLINE_FUNCTION + void operator() (const typename Kokkos::TeamPolicy::member_type& team) const { +// GNU COMPILER BUG WORKAROUND +#if defined(KOKKOS_COMPILER_GNU) && !defined(__CUDA_ARCH__) + int i = team.league_rank(); +#else + const int i = team.league_rank(); +#endif + Kokkos::parallel_for(Kokkos::TeamThreadRange(team,N), [&] (const int& j) { + ScalarC C_ij = 0.0; + + // GNU 5.3, 5.4 and 6.1 (and maybe more) crash with another nested lambda here + +#if defined(KOKKOS_COMPILER_GNU) && !defined(KOKKOS_COMPILER_NVCC) + for(int k=0; k + void impl_test_trsm(const char* side, const char* uplo, const char* trans, const char* diag, + int M, int N, typename ViewTypeA::value_type alpha) { + + using execution_space = typename ViewTypeA::device_type::execution_space; + using ScalarA = typename ViewTypeA::value_type; + using APT = Kokkos::Details::ArithTraits; + using mag_type = typename APT::mag_type; + + double machine_eps = APT::epsilon(); + bool A_l = (side[0]=='L') || (side[0]=='l'); + int K = A_l?M:N; + + //printf("KokkosBlas::trsm test for alpha %lf, %c %c %c %c, M %d, N %d, eps %.12lf, ViewType: %s\n", double(APT::abs(alpha)),side[0],uplo[0],trans[0],diag[0],M,N,1.0e8*machine_eps,typeid(ViewTypeA).name()); + + ViewTypeA A ("A", K,K); + ViewTypeB B ("B", M,N); + ViewTypeB X0 ("X0",M,N); + + typename ViewTypeA::HostMirror h_A = Kokkos::create_mirror_view(A); + typename ViewTypeB::HostMirror h_B = Kokkos::create_mirror_view(B); + typename ViewTypeB::HostMirror h_X0 = Kokkos::create_mirror_view(X0); + + uint64_t seed = Kokkos::Impl::clock_tic(); + Kokkos::Random_XorShift64_Pool rand_pool(seed); + + if((diag[0]=='U')||(diag[0]=='u')) { + Kokkos::fill_random(A, rand_pool, Kokkos::rand, ScalarA>::max()*0.1); + using functor_type = UnitDiagTRSM; + functor_type udtrsm(A); + Kokkos::parallel_for("KokkosBlas::Test::UnitDiagTRSM", Kokkos::RangePolicy(0,K), udtrsm); + } else {//(diag[0]=='N')||(diag[0]=='n') + Kokkos::fill_random(A, rand_pool, Kokkos::rand, ScalarA>::max()); + using functor_type = NonUnitDiagTRSM; + functor_type nudtrsm(A); + Kokkos::parallel_for("KokkosBlas::Test::NonUnitDiagTRSM", Kokkos::RangePolicy(0,K), nudtrsm); + } + Kokkos::fill_random(X0, rand_pool, Kokkos::rand, ScalarA>::max()); + + Kokkos::deep_copy(h_A, A); + Kokkos::deep_copy(h_X0, X0); + + ScalarA alpha_trmm = ScalarA(1)/alpha; + ScalarA beta = ScalarA(0); + + Kokkos::fence(); + + if ((uplo[0]=='L')||(uplo[0]=='l')) { + for (int i = 0; i < K-1; i++) + for (int j = i+1; j < K; j++) + h_A(i,j) = ScalarA(0); + } + else { + for (int i = 1; i < K; i++) + for (int j = 0; j < i; j++) + h_A(i,j) = ScalarA(0); + } + + Kokkos::deep_copy(A, h_A); + + if (A_l){ + struct VanillaGEMM vgemm; + vgemm.A_t = (trans[0]!='N') && (trans[0]!='n'); vgemm.B_t = false; + vgemm.A_c = (trans[0]=='C') || (trans[0]=='c'); vgemm.B_c = false; + vgemm.N = N; vgemm.K = K; + vgemm.A = A; vgemm.B = X0; + vgemm.C = B; + vgemm.alpha = alpha_trmm; + vgemm.beta = beta; + Kokkos::parallel_for("KokkosBlas::Test::VanillaGEMM", Kokkos::TeamPolicy(M,Kokkos::AUTO,16), vgemm); + } + else { + struct VanillaGEMM vgemm; + vgemm.A_t = false; vgemm.B_t = (trans[0]!='N') && (trans[0]!='n'); + vgemm.A_c = false; vgemm.B_c = (trans[0]=='C') || (trans[0]=='c'); + vgemm.N = N; vgemm.K = K; + vgemm.A = X0; vgemm.B = A; + vgemm.C = B; + vgemm.alpha = alpha_trmm; + vgemm.beta = beta; + Kokkos::parallel_for("KokkosBlas::Test::VanillaGEMM", Kokkos::TeamPolicy(M,Kokkos::AUTO,16), vgemm); + } + Kokkos::fence(); + + KokkosBlas::trsm(side, uplo, trans, diag, alpha, A, B); + + Kokkos::fence(); + + Kokkos::deep_copy(h_B, B); + + // Checking vs ref on CPU, this eps is about 10^-6 + const mag_type eps = 1.0e8 * machine_eps; + bool test_flag = true; + for (int i=0; i eps ) { + test_flag = false; + //printf(" Error: abs_result( %.15lf ) != abs_solution( %.15lf ) (abs result-solution %.15lf) at (i %ld, j %ld)\n", APT::abs(h_B(i,j)), APT::abs(h_X0(i,j)), APT::abs(h_B(i,j) - h_X0(i,j)), i, j); + break; + } + } + if (!test_flag) break; + } + ASSERT_EQ( test_flag, true ); + } +} + +template +int test_trsm(const char* mode, ScalarA alpha) { + +#if defined(KOKKOSKERNELS_INST_LAYOUTLEFT) || (!defined(KOKKOSKERNELS_ETI_ONLY) && !defined(KOKKOSKERNELS_IMPL_CHECK_ETI_CALLS)) + using view_type_a_ll = Kokkos::View; + using view_type_b_ll = Kokkos::View; + Test::impl_test_trsm(&mode[0],&mode[1],&mode[2],&mode[3],0,0,alpha); + Test::impl_test_trsm(&mode[0],&mode[1],&mode[2],&mode[3],101,19,alpha); + Test::impl_test_trsm(&mode[0],&mode[1],&mode[2],&mode[3],19,101,alpha); + Test::impl_test_trsm(&mode[0],&mode[1],&mode[2],&mode[3],1031,731,alpha); +#endif + +#if defined(KOKKOSKERNELS_INST_LAYOUTRIGHT) || (!defined(KOKKOSKERNELS_ETI_ONLY) && !defined(KOKKOSKERNELS_IMPL_CHECK_ETI_CALLS)) + using view_type_a_lr = Kokkos::View; + using view_type_b_lr = Kokkos::View; + Test::impl_test_trsm(&mode[0],&mode[1],&mode[2],&mode[3],0,0,alpha); + Test::impl_test_trsm(&mode[0],&mode[1],&mode[2],&mode[3],101,19,alpha); + Test::impl_test_trsm(&mode[0],&mode[1],&mode[2],&mode[3],19,101,alpha); + Test::impl_test_trsm(&mode[0],&mode[1],&mode[2],&mode[3],1031,731,alpha); +#endif + + return 1; +} + +#if defined(KOKKOSKERNELS_INST_FLOAT) || (!defined(KOKKOSKERNELS_ETI_ONLY) && !defined(KOKKOSKERNELS_IMPL_CHECK_ETI_CALLS)) +TEST_F( TestCategory, trsm_float ) { + Kokkos::Profiling::pushRegion("KokkosBlas::Test::trsm_float"); + float alpha = 1.0f; + test_trsm ("LLNN",alpha); + test_trsm ("LLNU",alpha); + test_trsm ("LLTN",alpha); + test_trsm ("LLTU",alpha); + test_trsm ("LUNN",alpha); + test_trsm ("LUNU",alpha); + test_trsm ("LUTN",alpha); + test_trsm ("LUTU",alpha); + + test_trsm ("RLNN",alpha); + test_trsm ("RLNU",alpha); + test_trsm ("RLTN",alpha); + test_trsm ("RLTU",alpha); + test_trsm ("RUNN",alpha); + test_trsm ("RUNU",alpha); + test_trsm ("RUTN",alpha); + test_trsm ("RUTU",alpha); + + alpha = 4.5f; + test_trsm ("LLNN",alpha); + test_trsm ("LLNU",alpha); + test_trsm ("LLTN",alpha); + test_trsm ("LLTU",alpha); + test_trsm ("LUNN",alpha); + test_trsm ("LUNU",alpha); + test_trsm ("LUTN",alpha); + test_trsm ("LUTU",alpha); + + test_trsm ("RLNN",alpha); + test_trsm ("RLNU",alpha); + test_trsm ("RLTN",alpha); + test_trsm ("RLTU",alpha); + test_trsm ("RUNN",alpha); + test_trsm ("RUNU",alpha); + test_trsm ("RUTN",alpha); + test_trsm ("RUTU",alpha); + Kokkos::Profiling::popRegion(); +} +#endif + +#if defined(KOKKOSKERNELS_INST_DOUBLE) || (!defined(KOKKOSKERNELS_ETI_ONLY) && !defined(KOKKOSKERNELS_IMPL_CHECK_ETI_CALLS)) +TEST_F( TestCategory, trsm_double ) { + Kokkos::Profiling::pushRegion("KokkosBlas::Test::trsm_double"); + double alpha = 1.0; + test_trsm ("LLNN",alpha); + test_trsm ("LLNU",alpha); + test_trsm ("LLTN",alpha); + test_trsm ("LLTU",alpha); + test_trsm ("LUNN",alpha); + test_trsm ("LUNU",alpha); + test_trsm ("LUTN",alpha); + test_trsm ("LUTU",alpha); + + test_trsm ("RLNN",alpha); + test_trsm ("RLNU",alpha); + test_trsm ("RLTN",alpha); + test_trsm ("RLTU",alpha); + test_trsm ("RUNN",alpha); + test_trsm ("RUNU",alpha); + test_trsm ("RUTN",alpha); + test_trsm ("RUTU",alpha); + + alpha = 4.5; + test_trsm ("LLNN",alpha); + test_trsm ("LLNU",alpha); + test_trsm ("LLTN",alpha); + test_trsm ("LLTU",alpha); + test_trsm ("LUNN",alpha); + test_trsm ("LUNU",alpha); + test_trsm ("LUTN",alpha); + test_trsm ("LUTU",alpha); + + test_trsm ("RLNN",alpha); + test_trsm ("RLNU",alpha); + test_trsm ("RLTN",alpha); + test_trsm ("RLTU",alpha); + test_trsm ("RUNN",alpha); + test_trsm ("RUNU",alpha); + test_trsm ("RUTN",alpha); + test_trsm ("RUTU",alpha); + Kokkos::Profiling::popRegion(); +} +#endif + +#if defined(KOKKOSKERNELS_INST_COMPLEX_DOUBLE) || (!defined(KOKKOSKERNELS_ETI_ONLY) && !defined(KOKKOSKERNELS_IMPL_CHECK_ETI_CALLS)) +TEST_F( TestCategory, trsm_complex_double ) { + Kokkos::Profiling::pushRegion("KokkosBlas::Test::trsm_complex_double"); + Kokkos::complex alpha = 1.0; + test_trsm,Kokkos::complex,TestExecSpace> ("LLNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLCU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUCU",alpha); + + test_trsm,Kokkos::complex,TestExecSpace> ("RLNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLCU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUCU",alpha); + + alpha = Kokkos::complex(4.5,0.0); + test_trsm,Kokkos::complex,TestExecSpace> ("LLNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLCU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUCU",alpha); + + test_trsm,Kokkos::complex,TestExecSpace> ("RLNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLCU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUCU",alpha); + Kokkos::Profiling::popRegion(); +} +#endif + +#if defined(KOKKOSKERNELS_INST_COMPLEX_FLOAT) || (!defined(KOKKOSKERNELS_ETI_ONLY) && !defined(KOKKOSKERNELS_IMPL_CHECK_ETI_CALLS)) +TEST_F( TestCategory, trsm_complex_float ) { + Kokkos::Profiling::pushRegion("KokkosBlas::Test::trsm_complex_float"); + Kokkos::complex alpha = 1.0f; + test_trsm,Kokkos::complex,TestExecSpace> ("LLNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLCU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUCU",alpha); + + test_trsm,Kokkos::complex,TestExecSpace> ("RLNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLCU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUCU",alpha); + + alpha = Kokkos::complex(4.5f,0.0f); + test_trsm,Kokkos::complex,TestExecSpace> ("LLNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LLCU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("LUCU",alpha); + + test_trsm,Kokkos::complex,TestExecSpace> ("RLNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RLCU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUNN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUNU",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUCN",alpha); + test_trsm,Kokkos::complex,TestExecSpace> ("RUCU",alpha); + Kokkos::Profiling::popRegion(); +} +#endif diff --git a/unit_test/cuda/Test_Cuda_Blas3_trsm.cpp b/unit_test/cuda/Test_Cuda_Blas3_trsm.cpp new file mode 100644 index 0000000000..6506c49c1d --- /dev/null +++ b/unit_test/cuda/Test_Cuda_Blas3_trsm.cpp @@ -0,0 +1,2 @@ +#include +#include diff --git a/unit_test/openmp/Test_OpenMP_Blas3_trsm.cpp b/unit_test/openmp/Test_OpenMP_Blas3_trsm.cpp new file mode 100644 index 0000000000..6941f4c387 --- /dev/null +++ b/unit_test/openmp/Test_OpenMP_Blas3_trsm.cpp @@ -0,0 +1,2 @@ +#include +#include diff --git a/unit_test/serial/Test_Serial_Blas3_trsm.cpp b/unit_test/serial/Test_Serial_Blas3_trsm.cpp new file mode 100644 index 0000000000..c01d885ee6 --- /dev/null +++ b/unit_test/serial/Test_Serial_Blas3_trsm.cpp @@ -0,0 +1,2 @@ +#include +#include diff --git a/unit_test/threads/Test_Threads_Blas3_trsm.cpp b/unit_test/threads/Test_Threads_Blas3_trsm.cpp new file mode 100644 index 0000000000..3556d17bb5 --- /dev/null +++ b/unit_test/threads/Test_Threads_Blas3_trsm.cpp @@ -0,0 +1,2 @@ +#include +#include