10#ifndef TLAPACK_STARPU_TILE_HH
11#define TLAPACK_STARPU_TILE_HH
50 if (m !=
M ||
n !=
N) {
51 idx_t pos[4] = {i,
j, m,
n};
55 .filter_arg_ptr = (
void*)pos};
99 const Tile&
B)
noexcept
101 if (
A.root_handle ==
B.root_handle) {
102 idx_t pos[8] = {
A.i,
A.j,
A.m,
A.n,
B.i,
B.j,
B.m,
B.n};
107 .filter_arg_ptr = (
void*)pos};
113 "Invalid tile size");
116 "Invalid tile size");
134 const Tile&
B)
noexcept
136 if (
A.root_handle ==
B.root_handle)
159 const Tile&
B)
const noexcept
163 idx_t pos[12] = {i,
j, m,
n,
A.i,
A.j,
164 A.m,
A.n,
B.i,
B.j,
B.m,
B.n};
169 .filter_arg_ptr = (
void*)pos};
175 "Invalid tile size");
178 "Invalid tile size");
181 "Invalid tile size");
210 const Tile&
B)
const noexcept
Filters for StarPU data interfaces.
void filter_ntiles(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, STARPU_ATTRIBUTE_UNUSED unsigned nparts) noexcept
StarPU filter to define a multiple submatrices of a non-tiled matrix.
Definition filters.hpp:82
void filter_tile(void *father_interface, void *child_interface, struct starpu_data_filter *f, STARPU_ATTRIBUTE_UNUSED unsigned id, STARPU_ATTRIBUTE_UNUSED unsigned nparts) noexcept
StarPU filter to define a single submatrix of a non-tiled matrix.
Definition filters.hpp:29
typename traits::real_type_traits< Types..., int >::type real_type
The common real type of the list of types.
Definition scalar_type_traits.hpp:113
Class for representing a tile of a matrix.
Definition Tile.hpp:25
void create_compatible_inout_handles(starpu_data_handle_t handles[3], const Tile &A, const Tile &B) const noexcept
Create a compatible handles between one output tile and two input tiles.
Definition Tile.hpp:157
starpu_data_handle_t handle
Tile handle possibly partitioned.
Definition Tile.hpp:30
const starpu_data_handle_t root_handle
Matrix tile handle.
Definition Tile.hpp:26
~Tile() noexcept
Destructor.
Definition Tile.hpp:69
Tile(starpu_data_handle_t tile_handle, idx_t i, idx_t j, idx_t m, idx_t n) noexcept
Construct a new Tile object using a Matrix tile handle and the local partitioning information.
Definition Tile.hpp:38
static void clean_compatible_handles(starpu_data_handle_t handles[2], const Tile &A, const Tile &B) noexcept
Clean the partition created by create_compatible_handles()
Definition Tile.hpp:132
static void create_compatible_handles(starpu_data_handle_t handles[2], const Tile &A, const Tile &B) noexcept
Create a compatible handles between two tiles.
Definition Tile.hpp:97
const idx_t j
Tile starting indices (i,j)
Definition Tile.hpp:27
bool partition_planned
True if there is a partition associated with this tile.
Definition Tile.hpp:31
const idx_t n
Tile sizes (m,n)
Definition Tile.hpp:28
void clean_compatible_inout_handles(starpu_data_handle_t handles[3], const Tile &A, const Tile &B) const noexcept
Clean the partition created by create_compatible_inout_handles()
Definition Tile.hpp:208