SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
|
A set of functions useful in SLATE's "lambda" constructors. More...
Typedefs | |
using | ij_tuple = std::tuple< int64_t, int64_t > |
Functions | |
std::function< int64_t(int64_t)> | uniform_blocksize (int64_t n, int64_t nb) |
Creates a uniform blocksize. | |
int64_t | max_blocksize (int64_t nt, std::function< int64_t(int64_t)> size) |
Computes the largest block given a blocksize function. | |
std::function< int(ij_tuple)> | device_2d_grid (GridOrder order, int64_t m, int64_t n, int64_t p, int64_t q) |
Distributes tiles to devices in a 2d block-cyclic fashion. | |
std::function< int(ij_tuple)> | device_1d_grid (GridOrder order, int64_t block_size, int size) |
Distributes tiles to devices in a 1d block-cyclic fashion. | |
std::function< int(ij_tuple)> | process_2d_grid (GridOrder order, int64_t p, int64_t q) |
Distributes tiles to processes in a 2d cyclic fashion, resulting in the elements being distributed in a 2d block-cyclic fashion. | |
std::function< int(ij_tuple)> | process_1d_grid (GridOrder order, int size) |
Distributes tiles to processes in a 1d cyclic fashion, resulting in the elements being distributed in a 1d block-cyclic fashion. | |
std::function< int(ij_tuple)> | transpose_grid (std::function< int(ij_tuple)> old_func) |
Transposes the given tile distribution function for processes or devices. | |
bool | is_2d_cyclic_grid (int64_t mt, int64_t nt, std::function< int(ij_tuple)> func, GridOrder *order, int *p, int *q) |
Checks whether the given tile map is a 2d cyclic grid (i.e., equivalent to 'process_2d_grid(order, p, q)' for some 'order', 'p', and 'q'). | |
A set of functions useful in SLATE's "lambda" constructors.