#include <StandardGpuResources.h>
Public Member Functions | |
void | noTempMemory () |
void | setTempMemory (size_t size) |
void | setTempMemoryFraction (float fraction) |
void | setPinnedMemory (size_t size) |
void | setDefaultStream (int device, cudaStream_t stream) |
Called to change the stream for work ordering. | |
void | setDefaultNullStreamAllDevices () |
void | initializeForDevice (int device) override |
Internal system calls. | |
cublasHandle_t | getBlasHandle (int device) override |
Returns the cuBLAS handle that we use for the given device. | |
cudaStream_t | getDefaultStream (int device) override |
std::vector< cudaStream_t > | getAlternateStreams (int device) override |
Returns the set of alternative streams that we use for the given device. | |
DeviceMemory & | getMemoryManager (int device) override |
Returns the temporary memory manager for the given device. | |
std::pair< void *, size_t > | getPinnedMemory () override |
Returns the available CPU pinned memory buffer. | |
cudaStream_t | getAsyncCopyStream (int device) override |
Returns the stream on which we perform async CPU <-> GPU copies. | |
![]() | |
cublasHandle_t | getBlasHandleCurrentDevice () |
Calls getBlasHandle with the current device. | |
cudaStream_t | getDefaultStreamCurrentDevice () |
Calls getDefaultStream with the current device. | |
void | syncDefaultStream (int device) |
void | syncDefaultStreamCurrentDevice () |
Calls syncDefaultStream for the current device. | |
std::vector< cudaStream_t > | getAlternateStreamsCurrentDevice () |
Calls getAlternateStreams for the current device. | |
DeviceMemory & | getMemoryManagerCurrentDevice () |
Calls getMemoryManager for the current device. | |
cudaStream_t | getAsyncCopyStreamCurrentDevice () |
Calls getAsyncCopyStream for the current device. | |
Default implementation of GpuResources that allocates a cuBLAS stream and 2 streams for use, as well as temporary memory
Definition at line 23 of file StandardGpuResources.h.
|
overridevirtual |
Returns the stream that we order all computation on for the given device
Implements faiss::gpu::GpuResources.
Definition at line 211 of file StandardGpuResources.cpp.
void faiss::gpu::StandardGpuResources::noTempMemory | ( | ) |
Disable allocation of temporary memory; all temporary memory requests will call cudaMalloc / cudaFree at the point of use
Definition at line 76 of file StandardGpuResources.cpp.
void faiss::gpu::StandardGpuResources::setDefaultNullStreamAllDevices | ( | ) |
Called to change the work ordering streams to the null stream for all devices
Definition at line 115 of file StandardGpuResources.cpp.
void faiss::gpu::StandardGpuResources::setPinnedMemory | ( | size_t | size | ) |
Set amount of pinned memory to allocate, for async GPU <-> CPU transfers
Definition at line 94 of file StandardGpuResources.cpp.
void faiss::gpu::StandardGpuResources::setTempMemory | ( | size_t | size | ) |
Specify that we wish to use a certain fixed size of memory on all devices as temporary memory
Definition at line 81 of file StandardGpuResources.cpp.
void faiss::gpu::StandardGpuResources::setTempMemoryFraction | ( | float | fraction | ) |
Specify that we wish to use a certain fraction of memory on all devices as temporary memory
Definition at line 87 of file StandardGpuResources.cpp.