Faiss
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
Public Member Functions | Protected Member Functions | List of all members
faiss::gpu::GpuIndexIVFFlat Class Reference

#include <GpuIndexIVFFlat.h>

Inheritance diagram for faiss::gpu::GpuIndexIVFFlat:
faiss::gpu::GpuIndexIVF faiss::gpu::GpuIndex faiss::Index

Public Member Functions

 GpuIndexIVFFlat (GpuResources *resources, const faiss::IndexIVFFlat *index, GpuIndexIVFFlatConfig config=GpuIndexIVFFlatConfig())
 
 GpuIndexIVFFlat (GpuResources *resources, int dims, int nlist, faiss::MetricType metric, GpuIndexIVFFlatConfig config=GpuIndexIVFFlatConfig())
 
void reserveMemory (size_t numVecs)
 Reserve GPU memory in our inverted lists for this number of vectors.
 
void copyFrom (const faiss::IndexIVFFlat *index)
 
void copyTo (faiss::IndexIVFFlat *index) const
 
size_t reclaimMemory ()
 
void reset () override
 removes all elements from the database.
 
void train (Index::idx_t n, const float *x) override
 
- Public Member Functions inherited from faiss::gpu::GpuIndexIVF
 GpuIndexIVF (GpuResources *resources, int dims, faiss::MetricType metric, int nlist, GpuIndexIVFConfig config=GpuIndexIVFConfig())
 
void copyFrom (const faiss::IndexIVF *index)
 Copy what we need from the CPU equivalent.
 
void copyTo (faiss::IndexIVF *index) const
 Copy what we have to the CPU equivalent.
 
int getNumLists () const
 Returns the number of inverted lists we're managing.
 
GpuIndexFlatgetQuantizer ()
 Return the quantizer we're using.
 
void setNumProbes (int nprobe)
 Sets the number of list probes per query.
 
int getNumProbes () const
 Returns our current number of list probes per query.
 
void add (Index::idx_t n, const float *x) override
 
- Public Member Functions inherited from faiss::gpu::GpuIndex
 GpuIndex (GpuResources *resources, int dims, faiss::MetricType metric, GpuIndexConfig config)
 
int getDevice () const
 
GpuResourcesgetResources ()
 
void add_with_ids (Index::idx_t n, const float *x, const Index::idx_t *ids) override
 
void search (faiss::Index::idx_t n, const float *x, faiss::Index::idx_t k, float *distances, faiss::Index::idx_t *labels) const override
 
- Public Member Functions inherited from faiss::Index
 Index (idx_t d=0, MetricType metric=METRIC_INNER_PRODUCT)
 
virtual void range_search (idx_t n, const float *x, float radius, RangeSearchResult *result) const
 
void assign (idx_t n, const float *x, idx_t *labels, idx_t k=1)
 
virtual long remove_ids (const IDSelector &sel)
 
virtual void reconstruct (idx_t key, float *recons) const
 
virtual void reconstruct_n (idx_t i0, idx_t ni, float *recons) const
 
void compute_residual (const float *x, float *residual, idx_t key) const
 
void display () const
 

Protected Member Functions

void addImpl_ (faiss::Index::idx_t n, const float *x, const faiss::Index::idx_t *ids) override
 Called from GpuIndex for add/add_with_ids.
 
void searchImpl_ (faiss::Index::idx_t n, const float *x, faiss::Index::idx_t k, float *distances, faiss::Index::idx_t *labels) const override
 Called from GpuIndex for search.
 
- Protected Member Functions inherited from faiss::gpu::GpuIndexIVF
void trainQuantizer_ (faiss::Index::idx_t n, const float *x)
 
- Protected Member Functions inherited from faiss::gpu::GpuIndex
void addInternal_ (Index::idx_t n, const float *x, const Index::idx_t *ids)
 

Additional Inherited Members

- Public Types inherited from faiss::Index
typedef long idx_t
 all indices are this type
 
- Public Attributes inherited from faiss::gpu::GpuIndexIVF
ClusteringParameters cp
 
- Public Attributes inherited from faiss::Index
int d
 vector dimension
 
idx_t ntotal
 total nb of indexed vectors
 
bool verbose
 verbosity level
 
bool is_trained
 set if the Index does not require training, or if training is done already
 
MetricType metric_type
 type of metric this index uses for search
 
- Protected Attributes inherited from faiss::gpu::GpuIndexIVF
GpuIndexIVFConfig ivfConfig_
 
int nlist_
 Number of inverted lists that we manage.
 
int nprobe_
 Number of inverted list probes per query.
 
GpuIndexFlatquantizer_
 Quantizer for inverted lists.
 
- Protected Attributes inherited from faiss::gpu::GpuIndex
GpuResourcesresources_
 Manages streans, cuBLAS handles and scratch memory for devices.
 
const int device_
 The GPU device we are resident on.
 
const MemorySpace memorySpace_
 The memory space of our primary storage on the GPU.
 

Detailed Description

Wrapper around the GPU implementation that looks like faiss::IndexIVFFlat

Definition at line 34 of file GpuIndexIVFFlat.h.

Constructor & Destructor Documentation

faiss::gpu::GpuIndexIVFFlat::GpuIndexIVFFlat ( GpuResources resources,
const faiss::IndexIVFFlat index,
GpuIndexIVFFlatConfig  config = GpuIndexIVFFlatConfig() 
)

Construct from a pre-existing faiss::IndexIVFFlat instance, copying data over to the given GPU, if the input index is trained.

Definition at line 25 of file GpuIndexIVFFlat.cu.

faiss::gpu::GpuIndexIVFFlat::GpuIndexIVFFlat ( GpuResources resources,
int  dims,
int  nlist,
faiss::MetricType  metric,
GpuIndexIVFFlatConfig  config = GpuIndexIVFFlatConfig() 
)

Constructs a new instance with an empty flat quantizer; the user provides the number of lists desired.

Definition at line 44 of file GpuIndexIVFFlat.cu.

Member Function Documentation

void faiss::gpu::GpuIndexIVFFlat::copyFrom ( const faiss::IndexIVFFlat index)

Initialize ourselves from the given CPU index; will overwrite all data in ourselves

Definition at line 79 of file GpuIndexIVFFlat.cu.

void faiss::gpu::GpuIndexIVFFlat::copyTo ( faiss::IndexIVFFlat index) const

Copy ourselves to the given CPU index; will overwrite all data in the index instance

Definition at line 126 of file GpuIndexIVFFlat.cu.

size_t faiss::gpu::GpuIndexIVFFlat::reclaimMemory ( )

After adding vectors, one can call this to reclaim device memory to exactly the amount needed. Returns space reclaimed in bytes

Definition at line 150 of file GpuIndexIVFFlat.cu.

void faiss::gpu::GpuIndexIVFFlat::train ( Index::idx_t  ,
const float *   
)
overridevirtual

Perform training on a representative set of vectors

Parameters
nnb of training vectors
xtraining vecors, size n * d

Reimplemented from faiss::Index.

Definition at line 173 of file GpuIndexIVFFlat.cu.


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