|
SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
|
\(C = \alpha A B + \beta C\) More...
Functions | |
| template<typename scalar_t > | |
| void | slate::gemm (scalar_t alpha, Matrix< scalar_t > &A, Matrix< scalar_t > &B, scalar_t beta, Matrix< scalar_t > &C, Options const &opts) |
| Distributed parallel general matrix-matrix multiplication. | |
| template<typename scalar_t > | |
| void | slate::gemmA (scalar_t alpha, Matrix< scalar_t > &A, Matrix< scalar_t > &B, scalar_t beta, Matrix< scalar_t > &C, Options const &opts) |
| Distributed parallel general matrix-matrix multiplication. | |
| template<typename scalar_t > | |
| void | slate::gemmC (scalar_t alpha, Matrix< scalar_t > &A, Matrix< scalar_t > &B, scalar_t beta, Matrix< scalar_t > &C, Options const &opts) |
| Distributed parallel general matrix-matrix multiplication. | |
\(C = \alpha A B + \beta C\)
| void slate::gemm | ( | scalar_t | alpha, |
| Matrix< scalar_t > & | A, | ||
| Matrix< scalar_t > & | B, | ||
| scalar_t | beta, | ||
| Matrix< scalar_t > & | C, | ||
| Options const & | opts | ||
| ) |
Distributed parallel general matrix-matrix multiplication.
Performs the matrix-matrix operation
\[ C = \alpha A B + \beta C, \]
where alpha and beta are scalars, and \(A\), \(B\), and \(C\) are matrices, with \(A\) an m-by-k matrix, \(B\) a k-by-n matrix, and \(C\) an m-by-n matrix. The matrices can be transposed or conjugate-transposed beforehand, e.g.,
auto AT = slate::transpose( A ); auto BT = slate::conj_transpose( B ); slate::gemm( alpha, AT, BT, beta, C );
Complexity (in real): \(2 m n k\) flops.
| scalar_t | One of float, double, std::complex<float>, std::complex<double>. |
| [in] | alpha | The scalar alpha. |
| [in] | A | The m-by-k matrix A. |
| [in] | B | The k-by-n matrix B. |
| [in] | beta | The scalar beta. |
| [in,out] | C | On entry, the m-by-n matrix C. On exit, overwritten by the result \(\alpha A B + \beta C\). |
| [in] | opts | Additional options, as map of name = value pairs. Possible options:
|
| void slate::gemmA | ( | scalar_t | alpha, |
| Matrix< scalar_t > & | A, | ||
| Matrix< scalar_t > & | B, | ||
| scalar_t | beta, | ||
| Matrix< scalar_t > & | C, | ||
| Options const & | opts | ||
| ) |
Distributed parallel general matrix-matrix multiplication.
Performs the matrix-matrix operation
\[ C = \alpha A B + \beta C, \]
where alpha and beta are scalars, and \(A\), \(B\), and \(C\) are matrices, with \(A\) an m-by-k matrix, \(B\) a k-by-n matrix, and \(C\) an m-by-n matrix. The matrices can be transposed or conjugate-transposed beforehand, e.g.,
auto AT = slate::transpose( A ); auto BT = slate::conj_transpose( B ); slate::gemm( alpha, AT, BT, beta, C );
This algorithmic variant manages computation to be local to the location of the A matrix. This can be useful if size(A) >> size(B), size(C).
| scalar_t | One of float, double, std::complex<float>, std::complex<double>. |
| [in] | alpha | The scalar alpha. |
| [in] | A | The m-by-k matrix A. |
| [in] | B | The k-by-n matrix B. |
| [in] | beta | The scalar beta. |
| [in,out] | C | On entry, the m-by-n matrix C. On exit, overwritten by the result \(\alpha A B + \beta C\). |
| [in] | opts | Additional options, as map of name = value pairs. Possible options:
|
| void slate::gemmC | ( | scalar_t | alpha, |
| Matrix< scalar_t > & | A, | ||
| Matrix< scalar_t > & | B, | ||
| scalar_t | beta, | ||
| Matrix< scalar_t > & | C, | ||
| Options const & | opts | ||
| ) |
Distributed parallel general matrix-matrix multiplication.
Performs the matrix-matrix operation
\[ C = \alpha A B + \beta C, \]
where alpha and beta are scalars, and \(A\), \(B\), and \(C\) are matrices, with \(A\) an m-by-k matrix, \(B\) a k-by-n matrix, and \(C\) an m-by-n matrix. The matrices can be transposed or conjugate-transposed beforehand, e.g.,
auto AT = slate::transpose( A ); auto BT = slate::conj_transpose( B ); slate::gemmC( alpha, AT, BT, beta, C );
| scalar_t | One of float, double, std::complex<float>, std::complex<double>. |
| [in] | alpha | The scalar alpha. |
| [in] | A | The m-by-k matrix A. |
| [in] | B | The k-by-n matrix B. |
| [in] | beta | The scalar beta. |
| [in,out] | C | On entry, the m-by-n matrix C. On exit, overwritten by the result \(\alpha A B + \beta C\). |
| [in] | opts | Additional options, as map of name = value pairs. Possible options:
|