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 | |
bool | copyDeviceToDevice (const HeapMemory &m) |
copy from same Heap to Heap | |
virtual bool | flush () |
flush the memory | |
virtual bool | allocate (size_t sz) |
allocate memory | |
virtual void | destroy () |
destroy memory | |
virtual bool | copy (const memory &m) |
copy memory | |
virtual size_t | size () const |
the the size of the allocated memory | |
virtual bool | resize (size_t sz) |
resize the memory allocated | |
virtual void * | getPointer () |
get a readable pointer with the data | |
virtual const void * | getPointer () const |
get a readable pointer with the data | |
virtual void * | getDevicePointer () |
get a device pointer for HeapMemory getPointer and getDevicePointer are equivalents | |
virtual void | fill (unsigned char c) |
fill host and device memory with the selected byte | |
virtual void | hostToDevice () |
Do nothing. | |
virtual void | deviceToHost () |
Do nothing. | |
virtual void | deviceToHost (size_t start, size_t stop) |
Do nothing. | |
virtual void | hostToDevice (size_t start, size_t stop) |
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. | |
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. | |
Public Member Functions inherited from memory | |
virtual | ~memory () |
destructor | |
Static Public Member Functions | |
static constexpr bool | isDeviceHostSame () |
Return true if the device and the host pointer are the same. | |
Private Member Functions | |
bool | copyFromPointer (const void *ptr, size_t sz) |
copy from Pointer to Heap | |
void | setAlignment (size_t align) |
Set alignment the memory will be aligned with this number. | |
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. | |
|
inline |
Definition at line 136 of file HeapMemory.hpp.
|
inlinenoexcept |
move
Definition at line 143 of file HeapMemory.hpp.
|
inline |
Constructor, we choose a default alignment of 32 for avx.
Definition at line 160 of file HeapMemory.hpp.
|
inlinevirtualnoexcept |
Definition at line 162 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.
Definition at line 33 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 123 of file HeapMemory.cpp.
bool HeapMemory::copyDeviceToDevice | ( | const HeapMemory & | m | ) |
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 89 of file HeapMemory.cpp.
|
inlinevirtual |
|
virtual |
destroy memory
Destroy the internal memory.
Implements memory.
Definition at line 73 of file HeapMemory.cpp.
|
inlinevirtual |
|
inlinevirtual |
|
virtual |
fill host and device memory with the selected byte
byte | to fill |
Implements memory.
Definition at line 22 of file HeapMemory.cpp.
|
inlinevirtual |
|
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 218 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 228 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 239 of file HeapMemory.cpp.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinestaticconstexpr |
Return true if the device and the host pointer are the same.
Definition at line 207 of file HeapMemory.hpp.
|
inlinevirtual |
Allocated Memory is never initialized.
Implements memory.
Definition at line 123 of file HeapMemory.hpp.
|
inline |
Definition at line 129 of file HeapMemory.hpp.
|
inlinevirtual |
|
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.
Definition at line 167 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 64 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.
Definition at line 153 of file HeapMemory.cpp.
|
inline |
|
private |
memory alignment
Definition at line 42 of file HeapMemory.hpp.
|
private |
device memory
Definition at line 48 of file HeapMemory.hpp.
|
private |
original pointer (before alignment)
Definition at line 50 of file HeapMemory.hpp.
|
private |
Reference counter.
Definition at line 52 of file HeapMemory.hpp.
|
private |
Size of the memory.
Definition at line 45 of file HeapMemory.hpp.