gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::Tile< ElemType, Container > Class Template Reference

Provides a view of a matrix that is row-interleaved onto a MatStore. More...

#include <matrix.hh>

Public Member Functions

auto operator[] (size_t idx)
 
Container * getContainer ()
 
auto asHSlice (size_t row_idx)
 
auto asVSlice (size_t col_idx)
 
void zero ()
 

Private Member Functions

 Tile (Container &cnt, size_t idx)
 

Private Attributes

Container * container
 
size_t index
 
size_t startBytes
 
size_t strideBytes
 

Static Private Attributes

static constexpr size_t NUM_TILES = sizeof(ElemType)
 

Friends

template<size_t, size_t>
class MatStore
 

Detailed Description

template<typename ElemType, typename Container>
class gem5::Tile< ElemType, Container >

Provides a view of a matrix that is row-interleaved onto a MatStore.

This class largely acts as a shim between the MatStore and the TileSlice view. The size of the ElemType and the index passed to the constructor are used to calculate the stride and start which are passed to the TileSlice view to control how it strides through the backing store.

Template Parameters
ElemTypeThe type of element to use for the view.
ContainerThe type of container being used as the backing store.

Definition at line 295 of file matrix.hh.

Constructor & Destructor Documentation

◆ Tile()

template<typename ElemType, typename Container>
gem5::Tile< ElemType, Container >::Tile ( Container & cnt,
size_t idx )
inlineprivate

Definition at line 309 of file matrix.hh.

Member Function Documentation

◆ asHSlice()

template<typename ElemType, typename Container>
auto gem5::Tile< ElemType, Container >::asHSlice ( size_t row_idx)
inline

◆ asVSlice()

template<typename ElemType, typename Container>
auto gem5::Tile< ElemType, Container >::asVSlice ( size_t col_idx)
inline

Definition at line 342 of file matrix.hh.

◆ getContainer()

template<typename ElemType, typename Container>
Container * gem5::Tile< ElemType, Container >::getContainer ( )
inline

Definition at line 326 of file matrix.hh.

◆ operator[]()

template<typename ElemType, typename Container>
auto gem5::Tile< ElemType, Container >::operator[] ( size_t idx)
inline

Definition at line 319 of file matrix.hh.

◆ zero()

template<typename ElemType, typename Container>
void gem5::Tile< ElemType, Container >::zero ( )
inline

Definition at line 350 of file matrix.hh.

Friends And Related Symbol Documentation

◆ MatStore

template<typename ElemType, typename Container>
template<size_t, size_t>
friend class MatStore
friend

Definition at line 297 of file matrix.hh.

Member Data Documentation

◆ container

template<typename ElemType, typename Container>
Container* gem5::Tile< ElemType, Container >::container
private

Definition at line 303 of file matrix.hh.

◆ index

template<typename ElemType, typename Container>
size_t gem5::Tile< ElemType, Container >::index
private

Definition at line 304 of file matrix.hh.

◆ NUM_TILES

template<typename ElemType, typename Container>
size_t gem5::Tile< ElemType, Container >::NUM_TILES = sizeof(ElemType)
staticconstexprprivate

Definition at line 300 of file matrix.hh.

◆ startBytes

template<typename ElemType, typename Container>
size_t gem5::Tile< ElemType, Container >::startBytes
private

Definition at line 305 of file matrix.hh.

◆ strideBytes

template<typename ElemType, typename Container>
size_t gem5::Tile< ElemType, Container >::strideBytes
private

Definition at line 306 of file matrix.hh.


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

Generated on Mon May 26 2025 09:19:26 for gem5 by doxygen 1.13.2