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

Functions

template<Target target, typename scalar_t >
void slate::impl::hemmA (Side side, scalar_t alpha, HermitianMatrix< scalar_t > A, Matrix< scalar_t > B, scalar_t beta, Matrix< scalar_t > C, Options const &opts)
 
template<Target target, typename scalar_t >
void slate::impl::hemmC (Side side, scalar_t alpha, HermitianMatrix< scalar_t > A, Matrix< scalar_t > B, scalar_t beta, Matrix< scalar_t > C, Options const &opts)
 

Detailed Description

Function Documentation

◆ hemmA()

template<Target target, typename scalar_t >
void slate::impl::hemmA ( Side  side,
scalar_t  alpha,
HermitianMatrix< scalar_t >  A,
Matrix< scalar_t >  B,
scalar_t  beta,
Matrix< scalar_t >  C,
Options const &  opts 
)

Distributed parallel Hermitian matrix-matrix multiplication. Generic implementation for any target. Dependencies enforce the following behavior:

  • bcast communications are serialized,
  • hemm operations are serialized,
  • bcasts can get ahead of hemms by the value of lookahead. Note A, B, and C are passed by value, so we can transpose if needed (for side = right) without affecting caller.

ColMajor layout is assumed

◆ hemmC()

template<Target target, typename scalar_t >
void slate::impl::hemmC ( Side  side,
scalar_t  alpha,
HermitianMatrix< scalar_t >  A,
Matrix< scalar_t >  B,
scalar_t  beta,
Matrix< scalar_t >  C,
Options const &  opts 
)

Distributed parallel Hermitian matrix-matrix multiplication. Generic implementation for any target. Dependencies enforce the following behavior:

  • bcast communications are serialized,
  • hemm operations are serialized,
  • bcasts can get ahead of hemms by the value of lookahead. Note A, B, and C are passed by value, so we can transpose if needed (for side = right) without affecting caller.

ColMajor layout is assumed