SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
|
Functions | |
template<Target target = Target::HostTask, typename scalar_t > | |
void | slate::internal::ttlqt (Matrix< scalar_t > &&A, Matrix< scalar_t > &&T) |
Distributed LQ triangle-triangle factorization of row of tiles. | |
template<typename scalar_t > | |
void | slate::internal::ttlqt (internal::TargetType< Target::HostTask >, Matrix< scalar_t > &A, Matrix< scalar_t > &T) |
Distributed LQ triangle-triangle factorization, host implementation. | |
template<Target target = Target::HostTask, typename scalar_t > | |
void | slate::internal::ttmlq (Side side, Op op, Matrix< scalar_t > &&A, Matrix< scalar_t > &&T, Matrix< scalar_t > &&C, int tag) |
Distributed multiply matrix by Q from LQ triangle-triangle factorization of row of tiles. | |
template<typename scalar_t > | |
void | slate::internal::ttmlq (internal::TargetType< Target::HostTask >, Side side, Op op, Matrix< scalar_t > &A, Matrix< scalar_t > &T, Matrix< scalar_t > &C, int tag) |
Distributed multiply matrix by Q from LQ triangle-triangle factorization of row of tiles, host implementation. | |
template<Target target = Target::HostTask, typename scalar_t > | |
void | slate::internal::unmlq (Side side, Op op, Matrix< scalar_t > &&V, Matrix< scalar_t > &&T, Matrix< scalar_t > &&C, Matrix< scalar_t > &&W, int priority, int64_t queue_index) |
Multiply matrix by Q from local LQ factorization. | |
template<Target target, typename scalar_t > | |
void | slate::internal::unmlq (internal::TargetType< target >, Side side, Op op, Matrix< scalar_t > V, Matrix< scalar_t > &T, Matrix< scalar_t > &C, Matrix< scalar_t > &W, int priority, int64_t queue_index) |
Multiply matrix by Q from local LQ factorization. | |
void slate::internal::ttlqt | ( | internal::TargetType< Target::HostTask > | , |
Matrix< scalar_t > & | A, | ||
Matrix< scalar_t > & | T | ||
) |
Distributed LQ triangle-triangle factorization, host implementation.
Assumes panel tiles reside on host.
void slate::internal::ttlqt | ( | Matrix< scalar_t > && | A, |
Matrix< scalar_t > && | T | ||
) |
Distributed LQ triangle-triangle factorization of row of tiles.
Each rank has one triangular tile, the result of local gelqf panel. Dispatches to target implementations.
void slate::internal::ttmlq | ( | Side | side, |
Op | op, | ||
Matrix< scalar_t > && | A, | ||
Matrix< scalar_t > && | T, | ||
Matrix< scalar_t > && | C, | ||
int | tag | ||
) |
Distributed multiply matrix by Q from LQ triangle-triangle factorization of row of tiles.
Dispatches to target implementations. todo: This assumes A and T have already been communicated as needed. However, it necessarily handles communication for C. Tag is used in gelqf to differentiate communication for look-ahead panel from rest of trailing matrix.
void slate::internal::unmlq | ( | internal::TargetType< target > | , |
Side | side, | ||
Op | op, | ||
Matrix< scalar_t > | V, | ||
Matrix< scalar_t > & | T, | ||
Matrix< scalar_t > & | C, | ||
Matrix< scalar_t > & | W, | ||
int | priority, | ||
int64_t | queue_index | ||
) |
Multiply matrix by Q from local LQ factorization.
C = op(Q) C for side = left, or C = C op(Q) for side = right. Assumes V and T are each a single block-row. Assumes W and C have the same dimensions and distribution. This corresponds to larfb( ..., direct=Forward, storev=Rowwise, ... ). This does not include applying the distributed triangle-triangle reductions.