14 #include "utils/DeviceMemory.h"
15 #include <cuda_runtime.h>
16 #include <cublas_v2.h>
20 namespace faiss {
namespace gpu {
33 virtual cublasHandle_t getBlasHandle(
int device) = 0;
35 virtual cudaStream_t getDefaultStream(
int device) = 0;
37 virtual std::vector<cudaStream_t> getAlternateStreams(
int device) = 0;
41 virtual std::pair<void*, size_t> getPinnedMemory() = 0;
43 virtual cudaStream_t getAsyncCopyStream(
int device) = 0;
45 cublasHandle_t getBlasHandleCurrentDevice();
47 cudaStream_t getDefaultStreamCurrentDevice();
49 std::vector<cudaStream_t> getAlternateStreamsCurrentDevice();
53 cudaStream_t getAsyncCopyStreamCurrentDevice();
virtual void initializeForDevice(int device)=0
Manages temporary memory allocations on a GPU device.