SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
|
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). | |
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.
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.
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.
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.
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.