Faiss

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
Public Member Functions | Public Attributes | List of all members
faiss::gpu::StackDeviceMemory::Stack Struct Reference

## Public Member Functions
| Stack (int device, size_t size)
| Constructor that allocates memory via cudaMalloc.
| Stack (int device, void *p, size_t size, bool isOwner)
| Constructor that references a pre-allocated region of memory.
size_t | getSizeAvailable () const
char * | getAlloc (size_t size, cudaStream_t stream)
void | returnAlloc (char *p, size_t size, cudaStream_t stream)
| Returns an allocation.
std::string | toString () const
| Returns the stack state.
size_t | getHighWaterCudaMalloc () const
| Returns the high-water mark of cudaMalloc activity.

## Public Attributes
int | device_
| Device this allocation is on.
bool | isOwner_
| Do we own our region of memory?
char * | start_
char * | end_
size_t | size_
| Total size end_ - start_.
char * | head_
| Stack head within [start, end)
std::list< Range > | lastUsers_
size_t | mallocCurrent_
| How much cudaMalloc memory is currently outstanding?
size_t | highWaterMemoryUsed_
size_t | highWaterMalloc_
bool | cudaMallocWarning_
| Whether or not a warning upon cudaMalloc is generated.

## Detailed Description

Definition at line 61 of file StackDeviceMemory.h.

## Member Function Documentation

char * faiss::gpu::StackDeviceMemory::Stack::getAlloc | ( | size_t | size,
|  | cudaStream_t | stream
| ) |  |

Obtains an allocation; all allocations are guaranteed to be 16 byte aligned

Definition at line 65 of file StackDeviceMemory.cpp.

size_t faiss::gpu::StackDeviceMemory::Stack::getSizeAvailable | ( |  | ) | const

Returns how much size is available for an allocation without calling cudaMalloc

Definition at line 60 of file StackDeviceMemory.cpp.

## Member Data Documentation

size_t faiss::gpu::StackDeviceMemory::Stack::highWaterMalloc_

What's the high water mark in terms of memory allocated via cudaMalloc?

Definition at line 116 of file StackDeviceMemory.h.

size_t faiss::gpu::StackDeviceMemory::Stack::highWaterMemoryUsed_

What's the high water mark in terms of memory used from the temporary buffer?

Definition at line 112 of file StackDeviceMemory.h.

std::list<Range> faiss::gpu::StackDeviceMemory::Stack::lastUsers_

List of previous last users of allocations on our stack, for possible synchronization purposes

Definition at line 105 of file StackDeviceMemory.h.

char* faiss::gpu::StackDeviceMemory::Stack::start_

Where our allocation begins and ends [start_, end_) is valid

Definition at line 94 of file StackDeviceMemory.h.

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

- /data/users/hoss/faiss/gpu/utils/StackDeviceMemory.h
- /data/users/hoss/faiss/gpu/utils/StackDeviceMemory.cpp