SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
Loading...
Searching...
No Matches
slate::Memory Class Reference

Allocates workspace blocks for host and GPU devices. More...

#include <Memory.hh>

Public Member Functions

 Memory (size_t block_size)
 Construct saves block size, but does not allocate any memory.
 
 ~Memory ()
 Destructor frees all allocations on host and devices.
 
void addHostBlocks (int64_t num_blocks)
 
void addDeviceBlocks (int device, int64_t num_blocks, blas::Queue *queue)
 Allocates num_blocks in given device's memory and adds them to the pool of free blocks.
 
void clearHostBlocks ()
 
void clearDeviceBlocks (int device, blas::Queue *queue)
 Empties the pool of free blocks of given device's memory and frees the allocations.
 
void * alloc (int device, size_t size, blas::Queue *queue)
 
void free (void *block, int device)
 Puts a single block of memory back into the pool of free blocks for the given device, which can be host.
 
size_t available (int device) const
 
size_t capacity (int device) const
 
size_t allocated (int device) const
 

Static Public Attributes

static struct slate::Memory::StaticConstructor static_constructor_
 
static int num_devices_
 

Friends

class Debug
 

Detailed Description

Allocates workspace blocks for host and GPU devices.

Currently assumes a fixed-size block of block_size bytes, e.g., block_size = sizeof(scalar_t) * mb * nb.

Member Function Documentation

◆ alloc()

void * slate::Memory::alloc ( int  device,
size_t  size,
blas::Queue *  queue 
)
Returns
single block of memory on the given device, which can be host, either from free blocks or by allocating a new block.

◆ allocated()

size_t slate::Memory::allocated ( int  device) const
inline
Returns
total number of allocated blocks from device's memory pool, which can be host.

◆ available()

size_t slate::Memory::available ( int  device) const
inline
Returns
number of available free blocks in device's memory pool, which can be host.

◆ capacity()

size_t slate::Memory::capacity ( int  device) const
inline
Returns
total number of blocks in device's memory pool, which can be host.

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