SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
|
Functions | |
template<Target target = Target::HostTask, typename scalar_t > | |
void | slate::internal::hemm (Side side, scalar_t alpha, HermitianMatrix< scalar_t > &&A, Matrix< scalar_t > &&B, scalar_t beta, Matrix< scalar_t > &&C, int priority) |
Hermitian matrix multiply to update trailing matrix, where A is a single tile. | |
template<typename scalar_t > | |
void | slate::internal::hemm (internal::TargetType< Target::HostTask >, Side side, scalar_t alpha, HermitianMatrix< scalar_t > &A, Matrix< scalar_t > &B, scalar_t beta, Matrix< scalar_t > &C, int priority) |
Hermitian matrix multiply to update trailing matrix. | |
template<typename scalar_t > | |
void | slate::internal::hemm (internal::TargetType< Target::HostNest >, Side side, scalar_t alpha, HermitianMatrix< scalar_t > &A, Matrix< scalar_t > &B, scalar_t beta, Matrix< scalar_t > &C, int priority) |
Hermitian matrix multiply to update trailing matrix. | |
void slate::internal::hemm | ( | internal::TargetType< Target::HostNest > | , |
Side | side, | ||
scalar_t | alpha, | ||
HermitianMatrix< scalar_t > & | A, | ||
Matrix< scalar_t > & | B, | ||
scalar_t | beta, | ||
Matrix< scalar_t > & | C, | ||
int | priority | ||
) |
Hermitian matrix multiply to update trailing matrix.
Host nested OpenMP implementation.
void slate::internal::hemm | ( | internal::TargetType< Target::HostTask > | , |
Side | side, | ||
scalar_t | alpha, | ||
HermitianMatrix< scalar_t > & | A, | ||
Matrix< scalar_t > & | B, | ||
scalar_t | beta, | ||
Matrix< scalar_t > & | C, | ||
int | priority | ||
) |
Hermitian matrix multiply to update trailing matrix.
Host OpenMP task implementation.
void slate::internal::hemm | ( | Side | side, |
scalar_t | alpha, | ||
HermitianMatrix< scalar_t > && | A, | ||
Matrix< scalar_t > && | B, | ||
scalar_t | beta, | ||
Matrix< scalar_t > && | C, | ||
int | priority | ||
) |
Hermitian matrix multiply to update trailing matrix, where A is a single tile.
If side = left, B and C are each a single block row; if side = right, B and C are each a single block col. Unlike most BLAS operations, here op(B) and op(C) must be both the same, either both NoTrans or both ConjTrans. Dispatches to target implementations.