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.