Brick Library 0.1
Performance-portable stencil datalayout & codegen
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
DPCBrick< Dim< BDims... >, Dim< Folds... > > Struct Template Reference

Brick data structure. More...

#include <brick-dpc.h>

Collaboration diagram for DPCBrick< Dim< BDims... >, Dim< Folds... > >:
[legend]

Public Types

typedef DPCBrick< Dim< BDims... >, Dim< Folds... > > mytype
 Shorthand for this struct's type.
 
typedef BrickInfo< sizeof...(BDims)> myBrickInfo
 Shorthand for type of the metadata.
 

Public Member Functions

FORCUDA _BrickAccessor< mytype, Dim< BDims... >, Dim< Folds... >, typename std::conditional< sizeof...(BDims)==sizeof...(Folds), bool, void >::type > operator[] (unsigned b)
 Indexing operator returns: Accessing brick elements using [].
 
template<unsigned ... Offsets>
FORCUDA bElemneighbor (unsigned b)
 Return the adjacency list of brick b
 
 DPCBrick (myBrickInfo *bInfo, bElem *bData, size_t bStep, unsigned offset)
 

Public Attributes

myBrickInfobInfo
 Pointer to (possibly shared) metadata.
 
size_t step
 Spacing between bricks in unit of bElem (BrickStorage)
 
bElemdat
 Offsetted memory (BrickStorage)
 

Static Public Attributes

static constexpr unsigned VECLEN = cal_size<Folds...>::value
 Vector length shorthand.
 
static constexpr unsigned BRICKSIZE = cal_size<BDims...>::value
 Brick size shorthand.
 

Detailed Description

template<unsigned ... BDims, unsigned ... Folds>
struct DPCBrick< Dim< BDims... >, Dim< Folds... > >

Brick data structure.

Template Parameters
BDimsThe brick dimensions
FoldsThe fold dimensions

Some example usage:

Brick<Dim<8,8,8>, Dim<2,4>> bIn(&bInfo, bStorage, 0); // 8x8x8 bricks with 2x4 folding
bIn[1][0][0][0] = 2; // Setting the first element for the brick at index 1 to 2
#define bIn(i, j, k)
Generic base template, see Brick< Dim< BDims... >, Dim< Folds... > >
Definition: brick.h:340
myBrickInfo * bInfo
Pointer to (possibly shared) metadata.
Definition: brick-dpc.h:123
Empty template to specify an n-D list.
Definition: brick.h:131

Member Typedef Documentation

◆ myBrickInfo

template<unsigned ... BDims, unsigned ... Folds>
typedef BrickInfo<sizeof...(BDims)> DPCBrick< Dim< BDims... >, Dim< Folds... > >::myBrickInfo

Shorthand for type of the metadata.

◆ mytype

template<unsigned ... BDims, unsigned ... Folds>
typedef DPCBrick<Dim<BDims...>, Dim<Folds...> > DPCBrick< Dim< BDims... >, Dim< Folds... > >::mytype

Shorthand for this struct's type.

Constructor & Destructor Documentation

◆ DPCBrick()

template<unsigned ... BDims, unsigned ... Folds>
DPCBrick< Dim< BDims... >, Dim< Folds... > >::DPCBrick ( myBrickInfo bInfo,
bElem bData,
size_t  bStep,
unsigned  offset 
)
inline

Member Function Documentation

◆ neighbor()

template<unsigned ... BDims, unsigned ... Folds>
template<unsigned ... Offsets>
FORCUDA bElem * DPCBrick< Dim< BDims... >, Dim< Folds... > >::neighbor ( unsigned  b)
inline

Return the adjacency list of brick b

◆ operator[]()

template<unsigned ... BDims, unsigned ... Folds>
FORCUDA _BrickAccessor< mytype, Dim< BDims... >, Dim< Folds... >, typename std::conditional< sizeof...(BDims)==sizeof...(Folds), bool, void >::type > DPCBrick< Dim< BDims... >, Dim< Folds... > >::operator[] ( unsigned  b)
inline

Indexing operator returns: Accessing brick elements using [].

Member Data Documentation

◆ bInfo

template<unsigned ... BDims, unsigned ... Folds>
myBrickInfo* DPCBrick< Dim< BDims... >, Dim< Folds... > >::bInfo

Pointer to (possibly shared) metadata.

◆ BRICKSIZE

template<unsigned ... BDims, unsigned ... Folds>
constexpr unsigned DPCBrick< Dim< BDims... >, Dim< Folds... > >::BRICKSIZE = cal_size<BDims...>::value
staticconstexpr

Brick size shorthand.

◆ dat

template<unsigned ... BDims, unsigned ... Folds>
bElem* DPCBrick< Dim< BDims... >, Dim< Folds... > >::dat

Offsetted memory (BrickStorage)

◆ step

template<unsigned ... BDims, unsigned ... Folds>
size_t DPCBrick< Dim< BDims... >, Dim< Folds... > >::step

Spacing between bricks in unit of bElem (BrickStorage)

◆ VECLEN

template<unsigned ... BDims, unsigned ... Folds>
constexpr unsigned DPCBrick< Dim< BDims... >, Dim< Folds... > >::VECLEN = cal_size<Folds...>::value
staticconstexpr

Vector length shorthand.


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