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') |     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); | ||||||
|  |    } | ||||||
|  |  }; | ||||||
|  |   | ||||||
		Reference in New Issue
	
	Block a user