Rename Tpetra C wrappers for *gemm Fortran functions in Trilinos 12.12.1 (#8228)
* Updated trilinos to compile/install with xl_r * Undo PGI patch added as part of Trilinos XL fix * Remove PGI related changes in Trilinos XL fix
This commit is contained in:
parent
fba365dc6a
commit
8564be5479
@ -251,8 +251,10 @@ class Trilinos(CMakePackage):
|
|||||||
depends_on('swig', when='+python')
|
depends_on('swig', when='+python')
|
||||||
|
|
||||||
patch('umfpack_from_suitesparse.patch', when='@11.14.1:12.8.1')
|
patch('umfpack_from_suitesparse.patch', when='@11.14.1:12.8.1')
|
||||||
patch('xlf_seacas.patch', when='@12.10.1%xl')
|
patch('xlf_seacas.patch', when='@12.10.1:%xl')
|
||||||
patch('xlf_seacas.patch', when='@12.10.1%xl_r')
|
patch('xlf_seacas.patch', when='@12.10.1:%xl_r')
|
||||||
|
patch('xlf_tpetra.patch', when='@12.12.1:%xl')
|
||||||
|
patch('xlf_tpetra.patch', when='@12.12.1:%xl_r')
|
||||||
|
|
||||||
def url_for_version(self, version):
|
def url_for_version(self, version):
|
||||||
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-{0}.tar.gz"
|
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-{0}.tar.gz"
|
||||||
|
289
var/spack/repos/builtin/packages/trilinos/xlf_tpetra.patch
Normal file
289
var/spack/repos/builtin/packages/trilinos/xlf_tpetra.patch
Normal file
@ -0,0 +1,289 @@
|
|||||||
|
--- a/packages/tpetra/core/src/Tpetra_Details_libGemm.cpp
|
||||||
|
+++ b/packages/tpetra/core/src/Tpetra_Details_libGemm.cpp
|
||||||
|
@@ -108,19 +108,19 @@
|
||||||
|
namespace Impl {
|
||||||
|
|
||||||
|
void
|
||||||
|
-cgemm (const char transA,
|
||||||
|
- const char transB,
|
||||||
|
- const int m,
|
||||||
|
- const int n,
|
||||||
|
- const int k,
|
||||||
|
- const ::Kokkos::complex<float>& alpha,
|
||||||
|
- const ::Kokkos::complex<float> A[],
|
||||||
|
- const int lda,
|
||||||
|
- const ::Kokkos::complex<float> B[],
|
||||||
|
- const int ldb,
|
||||||
|
- const ::Kokkos::complex<float>& beta,
|
||||||
|
- ::Kokkos::complex<float> C[],
|
||||||
|
- const int ldc)
|
||||||
|
+cgemm_fwrap (const char transA,
|
||||||
|
+ const char transB,
|
||||||
|
+ const int m,
|
||||||
|
+ const int n,
|
||||||
|
+ const int k,
|
||||||
|
+ const ::Kokkos::complex<float>& alpha,
|
||||||
|
+ const ::Kokkos::complex<float> A[],
|
||||||
|
+ const int lda,
|
||||||
|
+ const ::Kokkos::complex<float> B[],
|
||||||
|
+ const int ldb,
|
||||||
|
+ const ::Kokkos::complex<float>& beta,
|
||||||
|
+ ::Kokkos::complex<float> C[],
|
||||||
|
+ const int ldc)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_TPETRA_INST_COMPLEX_FLOAT
|
||||||
|
TPETRACORE_CGEMM (&transA, &transB, &m, &n, &k, &alpha, A, &lda, B, &ldb, &beta, C, &ldc);
|
||||||
|
@@ -131,55 +131,55 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
-dgemm (const char transA,
|
||||||
|
- const char transB,
|
||||||
|
- const int m,
|
||||||
|
- const int n,
|
||||||
|
- const int k,
|
||||||
|
- const double alpha,
|
||||||
|
- const double A[],
|
||||||
|
- const int lda,
|
||||||
|
- const double B[],
|
||||||
|
- const int ldb,
|
||||||
|
- const double beta,
|
||||||
|
- double C[],
|
||||||
|
- const int ldc)
|
||||||
|
+dgemm_fwrap (const char transA,
|
||||||
|
+ const char transB,
|
||||||
|
+ const int m,
|
||||||
|
+ const int n,
|
||||||
|
+ const int k,
|
||||||
|
+ const double alpha,
|
||||||
|
+ const double A[],
|
||||||
|
+ const int lda,
|
||||||
|
+ const double B[],
|
||||||
|
+ const int ldb,
|
||||||
|
+ const double beta,
|
||||||
|
+ double C[],
|
||||||
|
+ const int ldc)
|
||||||
|
{
|
||||||
|
TPETRACORE_DGEMM (&transA, &transB, &m, &n, &k, &alpha, A, &lda, B, &ldb, &beta, C, &ldc);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
-sgemm (const char transA,
|
||||||
|
- const char transB,
|
||||||
|
- const int m,
|
||||||
|
- const int n,
|
||||||
|
- const int k,
|
||||||
|
- const float alpha,
|
||||||
|
- const float A[],
|
||||||
|
- const int lda,
|
||||||
|
- const float B[],
|
||||||
|
- const int ldb,
|
||||||
|
- const float beta,
|
||||||
|
- float C[],
|
||||||
|
- const int ldc)
|
||||||
|
+sgemm_fwrap (const char transA,
|
||||||
|
+ const char transB,
|
||||||
|
+ const int m,
|
||||||
|
+ const int n,
|
||||||
|
+ const int k,
|
||||||
|
+ const float alpha,
|
||||||
|
+ const float A[],
|
||||||
|
+ const int lda,
|
||||||
|
+ const float B[],
|
||||||
|
+ const int ldb,
|
||||||
|
+ const float beta,
|
||||||
|
+ float C[],
|
||||||
|
+ const int ldc)
|
||||||
|
{
|
||||||
|
TPETRACORE_SGEMM (&transA, &transB, &m, &n, &k, &alpha, A, &lda, B, &ldb, &beta, C, &ldc);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
-zgemm (const char transA,
|
||||||
|
- const char transB,
|
||||||
|
- const int m,
|
||||||
|
- const int n,
|
||||||
|
- const int k,
|
||||||
|
- const ::Kokkos::complex<double>& alpha,
|
||||||
|
- const ::Kokkos::complex<double> A[],
|
||||||
|
- const int lda,
|
||||||
|
- const ::Kokkos::complex<double> B[],
|
||||||
|
- const int ldb,
|
||||||
|
- const ::Kokkos::complex<double>& beta,
|
||||||
|
- ::Kokkos::complex<double> C[],
|
||||||
|
- const int ldc)
|
||||||
|
+zgemm_fwrap (const char transA,
|
||||||
|
+ const char transB,
|
||||||
|
+ const int m,
|
||||||
|
+ const int n,
|
||||||
|
+ const int k,
|
||||||
|
+ const ::Kokkos::complex<double>& alpha,
|
||||||
|
+ const ::Kokkos::complex<double> A[],
|
||||||
|
+ const int lda,
|
||||||
|
+ const ::Kokkos::complex<double> B[],
|
||||||
|
+ const int ldb,
|
||||||
|
+ const ::Kokkos::complex<double>& beta,
|
||||||
|
+ ::Kokkos::complex<double> C[],
|
||||||
|
+ const int ldc)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_TPETRA_INST_COMPLEX_DOUBLE
|
||||||
|
TPETRACORE_ZGEMM (&transA, &transB, &m, &n, &k, &alpha, A, &lda, B, &ldb, &beta, C, &ldc);
|
||||||
|
|
||||||
|
--- a/packages/tpetra/core/src/Tpetra_Details_libGemm.hpp
|
||||||
|
+++ b/packages/tpetra/core/src/Tpetra_Details_libGemm.hpp
|
||||||
|
@@ -99,67 +99,67 @@
|
||||||
|
|
||||||
|
/// \brief Wrapped version of the BLAS library's cgemm.
|
||||||
|
void
|
||||||
|
-cgemm (const char char_transA,
|
||||||
|
- const char char_transB,
|
||||||
|
- const int m,
|
||||||
|
- const int n,
|
||||||
|
- const int k,
|
||||||
|
- const ::Kokkos::complex<float>& alpha,
|
||||||
|
- const ::Kokkos::complex<float> A[],
|
||||||
|
- const int lda,
|
||||||
|
- const ::Kokkos::complex<float> B[],
|
||||||
|
- const int ldb,
|
||||||
|
- const ::Kokkos::complex<float>& beta,
|
||||||
|
- ::Kokkos::complex<float> C[],
|
||||||
|
- const int ldc);
|
||||||
|
+cgemm_fwrap (const char char_transA,
|
||||||
|
+ const char char_transB,
|
||||||
|
+ const int m,
|
||||||
|
+ const int n,
|
||||||
|
+ const int k,
|
||||||
|
+ const ::Kokkos::complex<float>& alpha,
|
||||||
|
+ const ::Kokkos::complex<float> A[],
|
||||||
|
+ const int lda,
|
||||||
|
+ const ::Kokkos::complex<float> B[],
|
||||||
|
+ const int ldb,
|
||||||
|
+ const ::Kokkos::complex<float>& beta,
|
||||||
|
+ ::Kokkos::complex<float> C[],
|
||||||
|
+ const int ldc);
|
||||||
|
|
||||||
|
/// \brief Wrapped version of the BLAS library's dgemm.
|
||||||
|
void
|
||||||
|
-dgemm (const char char_transA,
|
||||||
|
- const char char_transB,
|
||||||
|
- const int m,
|
||||||
|
- const int n,
|
||||||
|
- const int k,
|
||||||
|
- const double alpha,
|
||||||
|
- const double A[],
|
||||||
|
- const int lda,
|
||||||
|
- const double B[],
|
||||||
|
- const int ldb,
|
||||||
|
- const double beta,
|
||||||
|
- double C[],
|
||||||
|
- const int ldc);
|
||||||
|
+dgemm_fwrap (const char char_transA,
|
||||||
|
+ const char char_transB,
|
||||||
|
+ const int m,
|
||||||
|
+ const int n,
|
||||||
|
+ const int k,
|
||||||
|
+ const double alpha,
|
||||||
|
+ const double A[],
|
||||||
|
+ const int lda,
|
||||||
|
+ const double B[],
|
||||||
|
+ const int ldb,
|
||||||
|
+ const double beta,
|
||||||
|
+ double C[],
|
||||||
|
+ const int ldc);
|
||||||
|
|
||||||
|
/// \brief Wrapped version of the BLAS library's sgemm.
|
||||||
|
void
|
||||||
|
-sgemm (const char char_transA,
|
||||||
|
- const char char_transB,
|
||||||
|
- const int m,
|
||||||
|
- const int n,
|
||||||
|
- const int k,
|
||||||
|
- const float alpha,
|
||||||
|
- const float A[],
|
||||||
|
- const int lda,
|
||||||
|
- const float B[],
|
||||||
|
- const int ldb,
|
||||||
|
- const float beta,
|
||||||
|
- float C[],
|
||||||
|
- const int ldc);
|
||||||
|
+sgemm_fwrap (const char char_transA,
|
||||||
|
+ const char char_transB,
|
||||||
|
+ const int m,
|
||||||
|
+ const int n,
|
||||||
|
+ const int k,
|
||||||
|
+ const float alpha,
|
||||||
|
+ const float A[],
|
||||||
|
+ const int lda,
|
||||||
|
+ const float B[],
|
||||||
|
+ const int ldb,
|
||||||
|
+ const float beta,
|
||||||
|
+ float C[],
|
||||||
|
+ const int ldc);
|
||||||
|
|
||||||
|
/// \brief Wrapped version of the BLAS library's zgemm.
|
||||||
|
void
|
||||||
|
-zgemm (const char char_transA,
|
||||||
|
- const char char_transB,
|
||||||
|
- const int m,
|
||||||
|
- const int n,
|
||||||
|
- const int k,
|
||||||
|
- const ::Kokkos::complex<double>& alpha,
|
||||||
|
- const ::Kokkos::complex<double> A[],
|
||||||
|
- const int lda,
|
||||||
|
- const ::Kokkos::complex<double> B[],
|
||||||
|
- const int ldb,
|
||||||
|
- const ::Kokkos::complex<double>& beta,
|
||||||
|
- ::Kokkos::complex<double> C[],
|
||||||
|
- const int ldc);
|
||||||
|
+zgemm_fwrap (const char char_transA,
|
||||||
|
+ const char char_transB,
|
||||||
|
+ const int m,
|
||||||
|
+ const int n,
|
||||||
|
+ const int k,
|
||||||
|
+ const ::Kokkos::complex<double>& alpha,
|
||||||
|
+ const ::Kokkos::complex<double> A[],
|
||||||
|
+ const int lda,
|
||||||
|
+ const ::Kokkos::complex<double> B[],
|
||||||
|
+ const int ldb,
|
||||||
|
+ const ::Kokkos::complex<double>& beta,
|
||||||
|
+ ::Kokkos::complex<double> C[],
|
||||||
|
+ const int ldc);
|
||||||
|
|
||||||
|
/// \brief Wrapper for the above wrappers, templated on scalar type
|
||||||
|
/// (the type of each entry in the matrices).
|
||||||
|
@@ -184,7 +184,7 @@
|
||||||
|
scalar_type C[],
|
||||||
|
const int ldc)
|
||||||
|
{
|
||||||
|
- return cgemm (transA, transB, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
|
||||||
|
+ return cgemm_fwrap (transA, transB, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -207,7 +207,7 @@
|
||||||
|
scalar_type C[],
|
||||||
|
const int ldc)
|
||||||
|
{
|
||||||
|
- return dgemm (transA, transB, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
|
||||||
|
+ return dgemm_fwrap (transA, transB, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -230,7 +230,7 @@
|
||||||
|
scalar_type C[],
|
||||||
|
const int ldc)
|
||||||
|
{
|
||||||
|
- return sgemm (transA, transB, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
|
||||||
|
+ return sgemm_fwrap (transA, transB, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -253,7 +253,7 @@
|
||||||
|
scalar_type C[],
|
||||||
|
const int ldc)
|
||||||
|
{
|
||||||
|
- return zgemm (transA, transB, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
|
||||||
|
+ return zgemm_fwrap (transA, transB, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user