|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
An Allocator subclass for CPU memory. More...
#include <cpu_allocator.h>
Public Member Functions | |
| void * | allocate (size_t size) override |
| Allocate a block of CPU memory with the given size and default alignment. | |
| void * | allocate (size_t size, size_t alignment) override |
| Allocate a block of CPU memory with the given size and alignment. | |
| void | free (void *ptr) override |
| Free a block of CPU memory that was previously allocated by this allocator. | |
| container::DeviceType | GetDeviceType () override |
| Get the type of device used by the TensorBuffer. | |
Public Member Functions inherited from base::core::Allocator | |
| virtual size_t | AllocatedSize (void *ptr) |
| Get the allocated size of a given pointer. | |
| virtual | ~Allocator ()=default |
Additional Inherited Members | |
Protected Attributes inherited from base::core::Allocator | |
| size_t | allocated_size_ = 0 |
| The total number of bytes allocated by this allocator. | |
An Allocator subclass for CPU memory.
This class provides an implementation of the Allocator interface for CPU memory. It uses the standard library functions std::malloc, std::free, and std::aligned_alloc to allocate and deallocate memory blocks.
|
overridevirtual |
Allocate a block of CPU memory with the given size and default alignment.
| size | The size of the memory block to allocate. |
Implements base::core::Allocator.
|
overridevirtual |
Allocate a block of CPU memory with the given size and alignment.
| size | The size of the memory block to allocate. |
| alignment | The alignment of the memory block to allocate. |
Implements base::core::Allocator.
|
overridevirtual |
Free a block of CPU memory that was previously allocated by this allocator.
| ptr | A pointer to the memory block to free. |
Implements base::core::Allocator.
|
overridevirtual |
Get the type of device used by the TensorBuffer.
Implements base::core::Allocator.