SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
herk: Hermitian rank k update

Functions

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

Detailed Description

Function Documentation

◆ herk() [1/5]

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

Hermitian rank-k 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 and C cannot be Trans.

◆ herk() [2/5]

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

Hermitian rank-k 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.

◆ herk() [3/5]

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

Hermitian rank-k 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.

◆ herk() [4/5]

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

Hermitian rank-k 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.

◆ herk() [5/5]

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

Hermitian rank-k 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.