SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
Loading...
Searching...
No Matches
her2k: Hermitian rank 2k update

Functions

template<Target target = Target::HostTask, typename scalar_t >
void slate::internal::her2k (scalar_t alpha, Matrix< scalar_t > &&A, Matrix< scalar_t > &&B, blas::real_type< scalar_t > beta, HermitianMatrix< scalar_t > &&C, int priority, int queue_index, Layout layout)
 Hermitian rank-2k update of single block column (i.e., k = nb).
 
template<typename scalar_t >
void slate::internal::her2k (internal::TargetType< Target::HostTask >, scalar_t alpha, Matrix< scalar_t > &A, Matrix< scalar_t > &B, blas::real_type< scalar_t > beta, HermitianMatrix< scalar_t > &C, int priority, int queue_index, Layout layout)
 Hermitian rank-2k update of single block column (i.e., k = nb).
 
template<typename scalar_t >
void slate::internal::her2k (internal::TargetType< Target::HostNest >, scalar_t alpha, Matrix< scalar_t > &A, Matrix< scalar_t > &B, blas::real_type< scalar_t > beta, HermitianMatrix< scalar_t > &C, int priority, int queue_index, Layout layout)
 Hermitian rank-2k update of single block column (i.e., k = nb).
 
template<typename scalar_t >
void slate::internal::her2k (internal::TargetType< Target::HostBatch >, scalar_t alpha, Matrix< scalar_t > &A, Matrix< scalar_t > &B, blas::real_type< scalar_t > beta, HermitianMatrix< scalar_t > &C, int priority, int queue_index, Layout layout)
 Hermitian rank-2k update of single block column (i.e., k = nb).
 
template<typename scalar_t >
void slate::internal::her2k (internal::TargetType< Target::Devices >, scalar_t alpha, Matrix< scalar_t > &A, Matrix< scalar_t > &B, blas::real_type< scalar_t > beta, HermitianMatrix< scalar_t > &C, int priority, int queue_index, Layout layout)
 Hermitian rank-2k update of single block column (i.e., k = nb).
 

Detailed Description

Function Documentation

◆ her2k() [1/5]

template<typename scalar_t >
void slate::internal::her2k ( internal::TargetType< Target::Devices ,
scalar_t  alpha,
Matrix< scalar_t > &  A,
Matrix< scalar_t > &  B,
blas::real_type< scalar_t >  beta,
HermitianMatrix< scalar_t > &  C,
int  priority,
int  queue_index,
Layout  layout 
)

Hermitian rank-2k update of single block column (i.e., k = nb).

GPU device batched cuBLAS implementation. Assumes A is NoTrans or ConjTrans; C is Lower, NoTrans or Upper, ConjTrans.

◆ her2k() [2/5]

template<typename scalar_t >
void slate::internal::her2k ( internal::TargetType< Target::HostBatch ,
scalar_t  alpha,
Matrix< scalar_t > &  A,
Matrix< scalar_t > &  B,
blas::real_type< scalar_t >  beta,
HermitianMatrix< scalar_t > &  C,
int  priority,
int  queue_index,
Layout  layout 
)

Hermitian rank-2k update of single block column (i.e., k = nb).

Host batched implementation. Assumes A is NoTrans or ConjTrans; C is Lower, NoTrans or Upper, ConjTrans.

◆ her2k() [3/5]

template<typename scalar_t >
void slate::internal::her2k ( internal::TargetType< Target::HostNest ,
scalar_t  alpha,
Matrix< scalar_t > &  A,
Matrix< scalar_t > &  B,
blas::real_type< scalar_t >  beta,
HermitianMatrix< scalar_t > &  C,
int  priority,
int  queue_index,
Layout  layout 
)

Hermitian rank-2k update of single block column (i.e., k = nb).

Host nested OpenMP implementation. Assumes A is NoTrans or ConjTrans; C is Lower, NoTrans or Upper, ConjTrans.

◆ her2k() [4/5]

template<typename scalar_t >
void slate::internal::her2k ( internal::TargetType< Target::HostTask ,
scalar_t  alpha,
Matrix< scalar_t > &  A,
Matrix< scalar_t > &  B,
blas::real_type< scalar_t >  beta,
HermitianMatrix< scalar_t > &  C,
int  priority,
int  queue_index,
Layout  layout 
)

Hermitian rank-2k update of single block column (i.e., k = nb).

Host OpenMP task implementation. Assumes A is NoTrans or ConjTrans; C is Lower, NoTrans or Upper, ConjTrans.

◆ her2k() [5/5]

template<Target target = Target::HostTask, typename scalar_t >
void slate::internal::her2k ( scalar_t  alpha,
Matrix< scalar_t > &&  A,
Matrix< scalar_t > &&  B,
blas::real_type< scalar_t >  beta,
HermitianMatrix< scalar_t > &&  C,
int  priority,
int  queue_index,
Layout  layout 
)

Hermitian rank-2k update of single block column (i.e., k = nb).

Dispatches to target implementations. C is Lower, NoTrans or Upper, Trans/ConjTrans. In complex case, A, B, and C cannot be Trans. Requires op(A) and op(B) to be the same, either both NoTrans, or both Trans.