SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
Loading...
Searching...
No Matches
slate::func Namespace Reference

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').
 

Detailed Description

A set of functions useful in SLATE's "lambda" constructors.