This class allocate, and destroy CPU memory. More...
This class allocate, and destroy CPU memory.
Definition at line 39 of file HeapMemory.hpp.
#include <HeapMemory.hpp>
Public Member Functions | |
virtual bool | flush () |
flush the memory | |
virtual bool | allocate (size_t sz) |
allocate memory More... | |
virtual void | destroy () |
destroy memory More... | |
virtual bool | copy (const memory &m) |
copy memory More... | |
virtual size_t | size () const |
the the size of the allocated memory More... | |
virtual bool | resize (size_t sz) |
resize the memory allocated More... | |
virtual void * | getPointer () |
get a readable pointer with the data More... | |
virtual const void * | getPointer () const |
get a readable pointer with the data More... | |
virtual void * | getDevicePointer () |
get a device pointer for HeapMemory getPointer and getDevicePointer are equivalents More... | |
virtual void | deviceToHost () |
Do nothing. | |
virtual void | incRef () |
Increment the reference counter. | |
virtual void | decRef () |
Decrement the reference counter. | |
virtual long int | ref () |
Return the reference counter. | |
bool | isInitialized () |
Allocated Memory is never initialized. More... | |
HeapMemory & | operator= (const HeapMemory &mem) |
HeapMemory (const HeapMemory &mem) | |
HeapMemory (HeapMemory &&mem) noexcept | |
HeapMemory () | |
Constructor, we choose a default alignment of 32 for avx. | |
void | swap (HeapMemory &mem) |
Swap the memory. More... | |
![]() | |
virtual | ~memory () |
destructor More... | |
Private Member Functions | |
bool | copyDeviceToDevice (const HeapMemory &m) |
copy from same Heap to Heap More... | |
bool | copyFromPointer (const void *ptr, size_t sz) |
copy from Pointer to Heap More... | |
void | setAlignment (size_t align) |
Set alignment the memory will be aligned with this number. More... | |
Private Attributes | |
size_t | alignement |
memory alignment | |
size_t | sz |
Size of the memory. | |
byte * | dm |
device memory | |
byte * | dmOrig |
original pointer (before alignment) | |
long int | ref_cnt |
Reference counter. | |
|
inlinenoexcept |
move
Definition at line 128 of file HeapMemory.hpp.
|
virtual |
allocate memory
Allocate a chunk of memory.
sz | size of the chunk of memory to allocate in byte |
Allocate the device memory
Implements memory.
Reimplemented in BHeapMemory.
Definition at line 27 of file HeapMemory.cpp.
|
virtual |
copy memory
copy the memory
m | a memory interface |
Here we try to cast memory into HeapMemory
if we fail we get the pointer and simply copy from the pointer
Implements memory.
Definition at line 127 of file HeapMemory.cpp.
|
private |
copy from same Heap to Heap
copy from device to device
copy a piece of memory from device to device
m | from where to copy |
The source buffer is too big to copy it
Definition at line 103 of file HeapMemory.cpp.
|
private |
copy from Pointer to Heap
copy the data from a pointer
ptr |
Definition at line 83 of file HeapMemory.cpp.
|
virtual |
destroy memory
Destroy the internal memory.
Implements memory.
Reimplemented in BHeapMemory.
Definition at line 63 of file HeapMemory.cpp.
|
virtual |
get a device pointer for HeapMemory getPointer and getDevicePointer are equivalents
Return a readable pointer with your data.
Return a readable pointer with your data
Implements memory.
Definition at line 226 of file HeapMemory.cpp.
|
virtual |
get a readable pointer with the data
Return a readable pointer with your data.
Return a readable pointer with your data
Implements memory.
Definition at line 237 of file HeapMemory.cpp.
|
virtual |
get a readable pointer with the data
Return a readable pointer with your data.
Return a readable pointer with your data
Implements memory.
Definition at line 248 of file HeapMemory.cpp.
|
inlinevirtual |
Allocated Memory is never initialized.
Implements memory.
Definition at line 108 of file HeapMemory.hpp.
|
virtual |
resize the memory allocated
Resize the allocated memory.
Resize the allocated memory, if request is smaller than the allocated memory is not resized
sz | size |
Allocate the device memory if not done yet
Create a new buffer if sz is bigger than the actual size
size plus alignment
align it
copy from the old buffer to the new one
free the old buffer
change to the new buffer
Implements memory.
Reimplemented in BHeapMemory.
Definition at line 171 of file HeapMemory.cpp.
|
private |
Set alignment the memory will be aligned with this number.
set the memory block to be aligned by this number
Definition at line 54 of file HeapMemory.cpp.
|
virtual |
the the size of the allocated memory
Get the size of the allocated memory.
Get the size of the allocated memory
Implements memory.
Reimplemented in BHeapMemory.
Definition at line 157 of file HeapMemory.cpp.
|
inline |