SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
Loading...
Searching...
No Matches
hemm: Hermitian matrix multiply

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.
 

Detailed Description

Function Documentation

◆ hemm() [1/3]

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.

Host nested OpenMP implementation.

◆ hemm() [2/3]

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.

Host OpenMP task implementation.

◆ hemm() [3/3]

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.

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.