ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | List of all members
base::core::GPUAllocator Class Reference

An allocator that allocates memory on a GPU device. More...

#include <gpu_allocator.h>

Inheritance diagram for base::core::GPUAllocator:
Collaboration diagram for base::core::GPUAllocator:

Public Member Functions

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.
 
container::DeviceType GetDeviceType () override
 Get the type of memory 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.
 

Detailed Description

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.

Member Function Documentation

◆ allocate() [1/2]

void * base::core::GPUAllocator::allocate ( size_t  size)
overridevirtual

Allocate a block of memory with the given size and default alignment on GPU.

Parameters
sizeThe 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::GPUAllocator::allocate ( size_t  size,
size_t  alignment 
)
overridevirtual

Allocate a block of memory with the given size and alignment on GPU.

Parameters
sizeThe size of the memory block to allocate.
alignmentThe 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::GPUAllocator::free ( void *  ptr)
overridevirtual

Free a block of GPU memory that was previously allocated by this allocator.

Parameters
ptrA pointer to the memory block to free.

Implements base::core::Allocator.

◆ GetDeviceType()

container::DeviceType base::core::GPUAllocator::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.


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