SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
Loading...
Searching...
No Matches
syrk: Symmetric rank k update

Functions

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

Detailed Description

Function Documentation

◆ syrk() [1/5]

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

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

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

◆ syrk() [2/5]

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

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

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

◆ syrk() [3/5]

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

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

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

◆ syrk() [4/5]

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

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

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

◆ syrk() [5/5]

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

Symmetric 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 ConjTrans.