13 #include "../utils/DeviceTensor.cuh"
14 #include "../utils/DeviceVector.cuh"
15 #include "../utils/Float16.cuh"
16 #include "../utils/MemorySpace.h"
18 namespace faiss {
namespace gpu {
29 bool useFloat16Accumulator,
33 bool getUseFloat16()
const;
41 void reserve(
size_t numVecs, cudaStream_t stream);
46 #ifdef FAISS_USE_FLOAT16
67 #ifdef FAISS_USE_FLOAT16
78 void add(
const float* data,
int numVecs, cudaStream_t stream);
91 const bool useFloat16_;
94 const bool useFloat16Accumulator_;
98 const bool storeTransposed_;
116 #ifdef FAISS_USE_FLOAT16
125 #ifdef FAISS_USE_FLOAT16
DeviceTensor< float, 2, true > getVectorsFloat32Copy(cudaStream_t stream)
int getSize() const
Returns the number of vectors we contain.
Holder of GPU resources for a particular flat index.
void reserve(size_t numVecs, cudaStream_t stream)
Reserve storage that can contain at least this many vectors.
void add(const float *data, int numVecs, cudaStream_t stream)
Tensor< float, 2, true > & getVectorsFloat32Ref()
Returns a reference to our vectors currently in use.
void reset()
Free all storage.