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:
Dan FitzGerald 2018-05-21 17:00:10 -04:00 committed by Adam J. Stewart
parent fba365dc6a
commit 8564be5479
2 changed files with 293 additions and 2 deletions

View File

@ -251,8 +251,10 @@ class Trilinos(CMakePackage):
depends_on('swig', when='+python')
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_r')
patch('xlf_seacas.patch', when='@12.10.1:%xl')
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):
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-{0}.tar.gz"

View 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);
}
};