File GpuIndicesOptions.h
- 
namespace faiss
- Implementation of k-means clustering with many variants. - Copyright (c) Facebook, Inc. and its affiliates. - This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. - IDSelector is intended to define a subset of vectors to handle (for removal or as subset to search) - PQ4 SIMD packing and accumulation functions - The basic kernel accumulates nq query vectors with bbs = nb * 2 * 16 vectors and produces an output matrix for that. It is interesting for nq * nb <= 4, otherwise register spilling becomes too large. - The implementation of these functions is spread over 3 cpp files to reduce parallel compile times. Templates are instantiated explicitly. - This file contains callbacks for kernels that compute distances. - Throughout the library, vectors are provided as float * pointers. Most algorithms can be optimized when several vectors are processed (added/searched) together in a batch. In this case, they are passed in as a matrix. When n vectors of size d are provided as float * x, component j of vector i is - x[ i * d + j ] - where 0 <= i < n and 0 <= j < d. In other words, matrices are always compact. When specifying the size of the matrix, we call it an n*d matrix, which implies a row-major storage. - I/O functions can read/write to a filename, a file handle or to an object that abstracts the medium. - The read functions return objects that should be deallocated with delete. All references within these objectes are owned by the object. - Definition of inverted lists + a few common classes that implement the interface. - Since IVF (inverted file) indexes are of so much use for large-scale use cases, we group a few functions related to them in this small library. Most functions work both on IndexIVFs and IndexIVFs embedded within an IndexPreTransform. - In this file are the implementations of extra metrics beyond L2 and inner product - Implements a few neural net layers, mainly to support QINCo - Defines a few objects that apply transformations to a set of vectors Often these are pre-processing steps. - 
namespace gpu
- Enums - 
enum IndicesOptions
- How user vector index data is stored on the GPU. - Values: - 
enumerator INDICES_CPU
- The user indices are only stored on the CPU; the GPU returns (inverted list, offset) to the CPU which is then translated to the real user index. 
 - 
enumerator INDICES_IVF
- The indices are not stored at all, on either the CPU or GPU. Only (inverted list, offset) is returned to the user as the index. 
 - 
enumerator INDICES_32_BIT
- Indices are stored as 32 bit integers on the GPU, but returned as 64 bit integers 
 - 
enumerator INDICES_64_BIT
- Indices are stored as 64 bit integers on the GPU. 
 
- 
enumerator INDICES_CPU
 
- 
enum IndicesOptions
 
- 
namespace gpu