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

Functions

template<typename scalar_t >
void slate::swapLocalRow (int64_t j_offset, int64_t n, Tile< scalar_t > &A, int64_t i1, Tile< scalar_t > &B, int64_t i2)
 Swap a partial row of two local tiles: A[ i1, j_offset : j_offset+n-1 ] and B[ i2, j_offset : j_offset+n-1 ].
 
template<typename scalar_t >
void slate::swapLocalRow (int64_t j_offset, int64_t n, Tile< scalar_t > &&A, int64_t i1, Tile< scalar_t > &&B, int64_t i2)
 Converts rvalue refs to lvalue refs.
 
template<typename scalar_t >
void slate::swapRemoteRow (int64_t j, int64_t n, Tile< scalar_t > &A, int64_t i, int other_rank, MPI_Comm mpi_comm, int tag=0)
 Swap a partial row, A[ i, j : j+n-1 ], with another MPI process.
 
template<typename scalar_t >
void slate::swapRemoteRow (int64_t j, int64_t n, Tile< scalar_t > &&A, int64_t i, int other_rank, MPI_Comm mpi_comm, int tag=0)
 Converts rvalue refs to lvalue refs.
 
template<typename scalar_t >
void slate::swapRemoteRowDevice (int64_t j, int64_t n, int device, Tile< scalar_t > &A, int64_t i, int other_rank, MPI_Comm mpi_comm, blas::Queue &queue, int tag=0)
 Swap a partial row, A[ i, j : j+n-1 ], on a GPU device, with another MPI process.
 
template<typename scalar_t >
void slate::swapRemoteRowDevice (int64_t j, int64_t n, int device, Tile< scalar_t > &&A, int64_t i, int other_rank, MPI_Comm mpi_comm, blas::Queue &queue, int tag=0)
 Converts rvalue refs to lvalue refs.
 
template<typename scalar_t >
void slate::swapRemoteElement (Tile< scalar_t > &A, int64_t i, int64_t j, int other_rank, MPI_Comm mpi_comm, int tag=0)
 Swap one element, A(i, j), with another MPI process.
 
template<typename scalar_t >
void slate::swapRemoteElement (Tile< scalar_t > &&A, int64_t i, int64_t j, int other_rank, MPI_Comm mpi_comm, int tag=0)
 Converts rvalue refs to lvalue refs.
 

Detailed Description

Function Documentation

◆ swapLocalRow()

template<typename scalar_t >
void slate::swapLocalRow ( int64_t  j_offset,
int64_t  n,
Tile< scalar_t > &  A,
int64_t  i1,
Tile< scalar_t > &  B,
int64_t  i2 
)

Swap a partial row of two local tiles: A[ i1, j_offset : j_offset+n-1 ] and B[ i2, j_offset : j_offset+n-1 ].

Either or both tiles can be transposed to swap columns.

◆ swapRemoteRow()

template<typename scalar_t >
void slate::swapRemoteRow ( int64_t  j,
int64_t  n,
Tile< scalar_t > &  A,
int64_t  i,
int  other_rank,
MPI_Comm  mpi_comm,
int  tag = 0 
)

Swap a partial row, A[ i, j : j+n-1 ], with another MPI process.

The tile can be transposed to swap a column.

◆ swapRemoteRowDevice()

template<typename scalar_t >
void slate::swapRemoteRowDevice ( int64_t  j,
int64_t  n,
int  device,
Tile< scalar_t > &  A,
int64_t  i,
int  other_rank,
MPI_Comm  mpi_comm,
blas::Queue &  queue,
int  tag = 0 
)

Swap a partial row, A[ i, j : j+n-1 ], on a GPU device, with another MPI process.

The tile must be row-major, and cannot be transposed.