<T>LAPACK 0.1.1
C++ Template Linear Algebra PACKage
Loading...
Searching...
No Matches
tlapack::starpu::Tile Struct Reference

Class for representing a tile of a matrix. More...

#include <Tile.hpp>

Public Member Functions

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()
 
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.
 
 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.
 
 ~Tile () noexcept
 Destructor.
 

Static Public Member Functions

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

Public Attributes

starpu_data_handle_t handle
 Tile handle possibly partitioned.
 
const idx_t i
 
const idx_t j
 Tile starting indices (i,j)
 
const idx_t m
 
const idx_t n
 Tile sizes (m,n)
 
bool partition_planned
 True if there is a partition associated with this tile.
 
const starpu_data_handle_t root_handle
 Matrix tile handle.
 

Detailed Description

Class for representing a tile of a matrix.

Objects of this class are used to represent tiles of a matrix.

Member Function Documentation

◆ clean_compatible_handles()

static void tlapack::starpu::Tile::clean_compatible_handles ( starpu_data_handle_t  handles[2],
const Tile A,
const Tile B 
)
inlinestaticnoexcept

Clean the partition created by create_compatible_handles()

Parameters
[in,out]handlesArray of two handles to be used in the task On exit, the partition is cleaned if it was previously created by create_compatible_handles().
[in]AFirst tile
[in]BSecond tile

◆ clean_compatible_inout_handles()

void tlapack::starpu::Tile::clean_compatible_inout_handles ( starpu_data_handle_t  handles[3],
const Tile A,
const Tile B 
) const
inlinenoexcept

Clean the partition created by create_compatible_inout_handles()

Parameters
[in,out]handlesArray of three handles to be used in the task. On exit, the partition is cleaned if it was previously created by create_compatible_inout_handles().
[in]AFirst tile
[in]BSecond tile

◆ create_compatible_handles()

static void tlapack::starpu::Tile::create_compatible_handles ( starpu_data_handle_t  handles[2],
const Tile A,
const Tile B 
)
inlinestaticnoexcept

Create a compatible handles between two tiles.

When two tiles are used in the same task and one of them has WRITE mode, they must be compatible. This means that:

  1. They are associated to different matrix tile handles
  2. They are associated to the same matrix tile handle, but they are not overlapping.

If case two happens, we must create a new partition of the matrix tile handle so that StarPU tasks can be submitted.

Note
One must call clean_compatible_handles() after submitting the desired task to clean the partition that was possibly created in this routine.
Parameters
[out]handlesArray of two handles to be used in the task On exit, handles[0] is the handle of the first tile and handles[1] is the handle of the second tile.
[in]AFirst tile
[in]BSecond tile

◆ create_compatible_inout_handles()

void tlapack::starpu::Tile::create_compatible_inout_handles ( starpu_data_handle_t  handles[3],
const Tile A,
const Tile B 
) const
inlinenoexcept

Create a compatible handles between one output tile and two input tiles.

See also
create_compatible_handles() for more details.
Note
One must call clean_compatible_inout_handles() after submitting the task to clean the partition that was possibly created in this routine.
Parameters
[out]handlesArray of three handles to be used in the task. On exit, handles[0] is the handle of the output tile, handles[1] is the handle of the first input tile and handles[2] is the handle of the second input tile.
[in]AFirst input tile.
[in]BSecond input tile.

Member Data Documentation

◆ partition_planned

bool tlapack::starpu::Tile::partition_planned
Initial value:
=
false

True if there is a partition associated with this tile.


The documentation for this struct was generated from the following file: