template<typename AggregateBlockT, unsigned int threadBlockSize = 128, typename indexT = long int, template< typename > class layout_base = memory_traits_inte>
class BlockMapGpu< AggregateBlockT, threadBlockSize, indexT, layout_base >
Definition at line 41 of file BlockMapGpu.hpp.
|
void | clear () |
|
void | swap (self &bm) |
|
sparse_grid_bck_value< typename std::remove_reference< decltype(blockMap.getBackground())>::type > | getBackgroundValue () |
| Get the background value.
|
|
template<unsigned int p> |
auto | get (unsigned int linId) const -> const ScalarTypeOf< AggregateBlockT, p > & |
|
auto | get (unsigned int linId) const -> const decltype(blockMap.get(0)) & |
|
template<unsigned int p> |
auto | insert (unsigned int linId) -> ScalarTypeOf< AggregateBlockT, p > & |
| insert data, host version
|
|
auto | insert_o (unsigned int linId) -> decltype(blockMap.insert(0)) |
| insert data, host version
|
|
template<unsigned int p> |
auto | insertBlockFlush (size_t blockId) -> decltype(blockMap.insertFlush(blockId, is_new).template get< p >()) |
| insert a block + flush, host version
|
|
auto | insertBlockFlush (size_t blockId) -> decltype(blockMap.insertFlush(blockId, is_new)) |
| insert a block + flush, host version
|
|
BlockMapGpu_ker< AggregateInternalT, indexT, layout_base > | toKernel () |
|
template<unsigned int ... prp> |
void | deviceToHost () |
|
void | deviceToHost () |
|
template<unsigned int ... prp> |
void | hostToDevice () |
|
void | hostToDevice () |
|
void | setGPUInsertBuffer (int nBlock, int nSlot) |
|
void | preFlush () |
| In case we manually set the added index buffer and the add data buffer we have to call this function before flush.
|
|
void | initializeGPUInsertBuffer () |
|
template<typename ... v_reduce> |
void | flush (gpu::ofp_context_t &context, flush_type opt=FLUSH_ON_HOST) |
|
template<unsigned int p, typename TypeBck > |
void | setBackgroundValue (TypeBck backgroundValue) |
| set the background for property p
|
|
void | removeUnusedBuffers () |
| Eliminate many internal temporary buffer you can use this between flushes if you get some out of memory.
|
|
decltype(blockMap) & | private_get_blockMap_non_const () |
| Return internal structure block map.
|
|
decltype(blockMap) & | private_get_blockMap () |
| Return internal structure block map.
|
|
const decltype(blockMap) & | private_get_blockMap () const |
| Return internal structure block map.
|
|
|
template<typename BitMaskT > |
static bool | getBit (const BitMaskT &bitMask, unsigned char pos) |
|
template<typename BitMaskT > |
static bool | setBit (BitMaskT &bitMask, unsigned char pos) |
|
template<typename BitMaskT > |
static bool | unsetBit (BitMaskT &bitMask, unsigned char pos) |
|
template<typename BitMaskT > |
static bool | exist (BitMaskT &bitMask) |
|
template<typename BitMaskT > |
static void | setExist (BitMaskT &bitMask) |
|
template<typename BitMaskT > |
static void | unsetExist (BitMaskT &bitMask) |
|
template<typename AggregateBlockT , unsigned int threadBlockSize = 128, typename indexT = long int, template< typename > class layout_base = memory_traits_inte>
template<unsigned int p>
auto BlockMapGpu< AggregateBlockT, threadBlockSize, indexT, layout_base >::insert |
( |
unsigned int |
linId | ) |
-> ScalarTypeOf<AggregateBlockT, p> &
|
|
inline |
insert data, host version
- Template Parameters
-
- Parameters
-
linId | linearized id block + local linearization |
- Returns
- a reference to the data
Definition at line 147 of file BlockMapGpu.hpp.
template<typename AggregateBlockT , unsigned int threadBlockSize = 128, typename indexT = long int, template< typename > class layout_base = memory_traits_inte>
auto BlockMapGpu< AggregateBlockT, threadBlockSize, indexT, layout_base >::insert_o |
( |
unsigned int |
linId | ) |
-> decltype(blockMap.insert(0))
|
|
inline |
insert data, host version
- Template Parameters
-
- Parameters
-
linId | linearized id block + local linearization |
- Returns
- a reference to the data
Definition at line 168 of file BlockMapGpu.hpp.
template<typename AggregateBlockT , unsigned int threadBlockSize = 128, typename indexT = long int, template< typename > class layout_base = memory_traits_inte>
auto BlockMapGpu< AggregateBlockT, threadBlockSize, indexT, layout_base >::insertBlockFlush |
( |
size_t |
blockId | ) |
-> decltype(blockMap.insertFlush(blockId,is_new))
|
|
inline |
insert a block + flush, host version
- Parameters
-
- Returns
- a reference to the block data
Definition at line 210 of file BlockMapGpu.hpp.
template<typename AggregateBlockT , unsigned int threadBlockSize = 128, typename indexT = long int, template< typename > class layout_base = memory_traits_inte>
template<unsigned int p>
auto BlockMapGpu< AggregateBlockT, threadBlockSize, indexT, layout_base >::insertBlockFlush |
( |
size_t |
blockId | ) |
-> decltype(blockMap.insertFlush(blockId,is_new).template get<p>())
|
|
inline |
insert a block + flush, host version
- Template Parameters
-
- Parameters
-
- Returns
- a reference to the block data
Definition at line 187 of file BlockMapGpu.hpp.
template<typename AggregateBlockT , unsigned int threadBlockSize = 128, typename indexT = long int, template< typename > class layout_base = memory_traits_inte>
void BlockMapGpu< AggregateBlockT, threadBlockSize, indexT, layout_base >::preFlush |
( |
| ) |
|
|
inline |
In case we manually set the added index buffer and the add data buffer we have to call this function before flush.
Definition at line 265 of file BlockMapGpu.hpp.
template<typename AggregateBlockT , unsigned int threadBlockSize = 128, typename indexT = long int, template< typename > class layout_base = memory_traits_inte>
void BlockMapGpu< AggregateBlockT, threadBlockSize, indexT, layout_base >::removeUnusedBuffers |
( |
| ) |
|
|
inline |
Eliminate many internal temporary buffer you can use this between flushes if you get some out of memory.
Definition at line 368 of file BlockMapGpu.hpp.
template<typename AggregateBlockT , unsigned int threadBlockSize = 128, typename indexT = long int, template< typename > class layout_base = memory_traits_inte>
template<unsigned int p, typename TypeBck >
void BlockMapGpu< AggregateBlockT, threadBlockSize, indexT, layout_base >::setBackgroundValue |
( |
TypeBck |
backgroundValue | ) |
|
|
inline |
set the background for property p
- Template Parameters
-
Definition at line 307 of file BlockMapGpu.hpp.
template<typename AggregateBlockT , unsigned int threadBlockSize = 128, typename indexT = long int, template< typename > class layout_base = memory_traits_inte>
void BlockMapGpu< AggregateBlockT, threadBlockSize, indexT, layout_base >::setGPUInsertBuffer |
( |
int |
nBlock, |
|
|
int |
nSlot |
|
) |
| |
|
inline |
\Brief Before inser any element you have to call this function to initialize the insert buffer
- Parameters
-
nBlock | number of blocks the insert buffer has |
nSlot | maximum number of insertion each thread block does |
Definition at line 249 of file BlockMapGpu.hpp.