13 #include "utils/DeviceMemory.h"
14 #include <cuda_runtime.h>
15 #include <cublas_v2.h>
19 namespace faiss {
namespace gpu {
32 virtual cublasHandle_t getBlasHandle(
int device) = 0;
34 virtual cudaStream_t getDefaultStream(
int device) = 0;
36 virtual std::vector<cudaStream_t> getAlternateStreams(
int device) = 0;
40 virtual std::pair<void*, size_t> getPinnedMemory() = 0;
42 virtual cudaStream_t getAsyncCopyStream(
int device) = 0;
44 cublasHandle_t getBlasHandleCurrentDevice();
46 cudaStream_t getDefaultStreamCurrentDevice();
48 std::vector<cudaStream_t> getAlternateStreamsCurrentDevice();
52 cudaStream_t getAsyncCopyStreamCurrentDevice();
virtual void initializeForDevice(int device)=0
Manages temporary memory allocations on a GPU device.