gem5 v24.1.0.1
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
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

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

◆ getContainer()

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

Definition at line 326 of file matrix.hh.

References gem5::Tile< ElemType, Container >::container.

◆ operator[]()

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

◆ zero()

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

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

◆ index

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

Definition at line 304 of file matrix.hh.

Referenced by gem5::Tile< ElemType, Container >::Tile().

◆ NUM_TILES

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

◆ startBytes

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

◆ strideBytes

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

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

Generated on Mon Jan 13 2025 04:28:59 for gem5 by doxygen 1.9.8