An allocator that allocates memory on a GPU device.
More...
#include <bfc_allocator.h>
|
| | BFCAllocator (std::unique_ptr< Allocator > sub_alloc, const size_t &total_memory, const Options &options=Options()) |
| |
| | ~BFCAllocator () |
| |
| void * | allocate (size_t size) override |
| | Allocate a block of memory with the given size and default alignment on GPU.
|
| |
| void * | allocate (size_t size, size_t alignment) override |
| | Allocate a block of memory with the given size and alignment on GPU.
|
| |
| void | free (void *ptr) override |
| | Free a block of GPU memory that was previously allocated by this allocator.
|
| |
| DeviceType | GetDeviceType () override |
| | Get the type of memory used by the TensorBuffer.
|
| |
| virtual size_t | AllocatedSize (void *ptr) |
| | Get the allocated size of a given pointer.
|
| |
| virtual | ~Allocator ()=default |
| |
|
| size_t | allocated_size_ = 0 |
| | The total number of bytes allocated by this allocator.
|
| |
An allocator that allocates memory on a GPU device.
This class provides an implementation of the Allocator interface that allocates memory on a GPU device using CUDA APIs.
◆ bin_index_t
◆ chunk_handle_t
◆ BFCAllocator()
| base::core::BFCAllocator::BFCAllocator |
( |
std::unique_ptr< Allocator > |
sub_alloc, |
|
|
const size_t & |
total_memory, |
|
|
const Options & |
options = Options() |
|
) |
| |
◆ ~BFCAllocator()
| base::core::BFCAllocator::~BFCAllocator |
( |
| ) |
|
◆ allocate() [1/2]
| void * base::core::BFCAllocator::allocate |
( |
size_t |
size | ) |
|
|
overridevirtual |
Allocate a block of memory with the given size and default alignment on GPU.
- Parameters
-
| size | The size of the memory block to allocate. |
- Returns
- A pointer to the allocated memory block, or nullptr if the allocation fails.
Implements base::core::Allocator.
◆ allocate() [2/2]
| void * base::core::BFCAllocator::allocate |
( |
size_t |
size, |
|
|
size_t |
alignment |
|
) |
| |
|
overridevirtual |
Allocate a block of memory with the given size and alignment on GPU.
- Parameters
-
| size | The size of the memory block to allocate. |
| alignment | The alignment of the memory block to allocate. |
- Returns
- A pointer to the allocated memory block, or nullptr if the allocation fails.
Implements base::core::Allocator.
◆ free()
| void base::core::BFCAllocator::free |
( |
void * |
ptr | ) |
|
|
overridevirtual |
Free a block of GPU memory that was previously allocated by this allocator.
- Parameters
-
| ptr | A pointer to the memory block to free. |
Implements base::core::Allocator.
◆ GetDeviceType()
| DeviceType base::core::BFCAllocator::GetDeviceType |
( |
| ) |
|
|
overridevirtual |
Get the type of memory used by the TensorBuffer.
- Returns
- MemoryType The type of memory used by the TensorBuffer.
Implements base::core::Allocator.
◆ kInvalidBinNum
| constexpr int base::core::BFCAllocator::kInvalidBinNum = -1 |
|
staticconstexprprivate |
◆ kInvalidChunkHandle
| constexpr chunk_handle_t base::core::BFCAllocator::kInvalidChunkHandle = UINT64_MAX |
|
staticconstexprprivate |
◆ kNumBins
| constexpr int base::core::BFCAllocator::kNumBins = 21 |
|
staticconstexprprivate |
◆ mtx_
| std::mutex base::core::BFCAllocator::mtx_ |
|
mutableprivate |
◆ sub_alloc_
| std::unique_ptr<Allocator> base::core::BFCAllocator::sub_alloc_ |
|
private |
The documentation for this class was generated from the following file:
- /home/runner/work/abacus-develop/abacus-develop/source/source_base/module_container/base/core/bfc_allocator.h