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
					Dan FitzGerald
				
			
				
					committed by
					
						 Adam J. Stewart
						Adam J. Stewart
					
				
			
			
				
	
			
			
			 Adam J. Stewart
						Adam J. Stewart
					
				
			
						parent
						
							fba365dc6a
						
					
				
				
					commit
					8564be5479
				
			| @@ -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" | ||||
|   | ||||
							
								
								
									
										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); | ||||
|    } | ||||
|  }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user