SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
Loading...
Searching...
No Matches

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.
 

Detailed Description

Function Documentation

◆ ttlqt() [1/2]

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.

Assumes panel tiles reside on host.

◆ ttlqt() [2/2]

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.

Each rank has one triangular tile, the result of local gelqf panel. Dispatches to target implementations.

◆ ttmlq()

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.

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.

◆ unmlq()

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.

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.