Struct faiss::gpu::StackDeviceMemory::Stack
- 
struct Stack
 Public Functions
- 
Stack(GpuResources *res, int device, size_t size)
 Constructor that allocates memory via cudaMalloc.
- 
~Stack()
 
- 
size_t getSizeAvailable() const
 Returns how much size is available for an allocation without calling cudaMalloc
- 
char *getAlloc(size_t size, cudaStream_t stream)
 Obtains an allocation; all allocations are guaranteed to be 16 byte aligned
- 
void returnAlloc(char *p, size_t size, cudaStream_t stream)
 Returns an allocation.
- 
std::string toString() const
 Returns the stack state.
Public Members
- 
GpuResources *res_
 Our GpuResources object.
- 
int device_
 Device this allocation is on.
- 
char *alloc_
 Where our temporary memory buffer is allocated; we allocate starting 16 bytes into this
- 
size_t allocSize_
 Total size of our allocation.
- 
char *start_
 Our temporary memory region; [start_, end_) is valid.
- 
char *end_
 
- 
char *head_
 Stack head within [start, end)
- 
std::list<Range> lastUsers_
 List of previous last users of allocations on our stack, for possible synchronization purposes
- 
size_t highWaterMemoryUsed_
 What’s the high water mark in terms of memory used from the temporary buffer?
- 
Stack(GpuResources *res, int device, size_t size)