walberla::gpu::HostFieldAllocator< T, HostAllocFlags > Class Template Reference

Detailed Description

template<typename T, unsigned int HostAllocFlags = gpuHostAllocDefault>
class walberla::gpu::HostFieldAllocator< T, HostAllocFlags >

Allocator that allocates a CPU! field using gpuHostAlloc without padding.

Uses gpuHostAlloc for the allocation - which allocates page-locked memory that is faster to transfer to the GPU This allocator should be used for CPU fields that are often transferred to GPU and back

#include <HostFieldAllocator.h>

+ Inheritance diagram for walberla::gpu::HostFieldAllocator< T, HostAllocFlags >:

Public Member Functions

virtual ~HostFieldAllocator ()=default
 
virtual T * allocateMemory (uint_t size0, uint_t size1, uint_t size2, uint_t size3, uint_t &allocSize1, uint_t &allocSize2, uint_t &allocSize3)
 Same as allocated, without handling of reference counter. More...
 
virtual T * allocateMemory (uint_t size)
 Same as allocated, without handling of reference counter. More...
 
virtual void deallocate (T *&values)
 Deallocates memory that has been allocated using allocate() More...
 
- Public Member Functions inherited from walberla::field::FieldAllocator< T >
virtual ~FieldAllocator ()=default
 
T * allocate (uint_t size0, uint_t size1, uint_t size2, uint_t size3, uint_t &allocSize1, uint_t &allocSize2, uint_t &allocSize3)
 Allocate memory for a field of given sizes and initializes reference counter with one. More...
 
virtual void setInnerGhostLayerSize (uint_t)
 
T * allocate (uint_t allocSize)
 Allocate memory of the given size. More...
 
void incrementReferenceCount (T *mem)
 Increments the reference count for the given pointer. More...
 
bool decrementReferenceCount (T *mem)
 Decrements the reference count for the given pointer. More...
 
uint_t referenceCount (T *mem) const
 

Additional Inherited Members

- Public Types inherited from walberla::field::FieldAllocator< T >
using BaseType = typename std::conditional< VectorTrait< T >::F_SIZE!=0, typename VectorTrait< T >::OutputType, T >::type
 

Constructor & Destructor Documentation

◆ ~HostFieldAllocator()

template<typename T , unsigned int HostAllocFlags = gpuHostAllocDefault>
virtual walberla::gpu::HostFieldAllocator< T, HostAllocFlags >::~HostFieldAllocator ( )
virtualdefault

Member Function Documentation

◆ allocateMemory() [1/2]

template<typename T , unsigned int HostAllocFlags = gpuHostAllocDefault>
virtual T* walberla::gpu::HostFieldAllocator< T, HostAllocFlags >::allocateMemory ( uint_t  size)
inlinevirtual

Same as allocated, without handling of reference counter.

Implements walberla::field::FieldAllocator< T >.

◆ allocateMemory() [2/2]

template<typename T , unsigned int HostAllocFlags = gpuHostAllocDefault>
virtual T* walberla::gpu::HostFieldAllocator< T, HostAllocFlags >::allocateMemory ( uint_t  size0,
uint_t  size1,
uint_t  size2,
uint_t  size3,
uint_t allocSize1,
uint_t allocSize2,
uint_t allocSize3 
)
inlinevirtual

Same as allocated, without handling of reference counter.

Implements walberla::field::FieldAllocator< T >.

◆ deallocate()

template<typename T , unsigned int HostAllocFlags = gpuHostAllocDefault>
virtual void walberla::gpu::HostFieldAllocator< T, HostAllocFlags >::deallocate ( T *&  values)
inlinevirtual

Deallocates memory that has been allocated using allocate()

Parameters
valuesReturn value of allocate function()

Implements walberla::field::FieldAllocator< T >.


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