Struct faiss::gpu::GpuDistanceParams
-
struct GpuDistanceParams
Arguments to brute-force GPU k-nearest neighbor searching.
Public Members
-
faiss::MetricType metric = METRIC_L2
Search parameter: distance metric.
-
float metricArg = 0
Search parameter: distance metric argument (if applicable) For metric == METRIC_Lp, this is the p-value
-
int k = 0
Search parameter: return k nearest neighbors If the value provided is -1, then we report all pairwise distances without top-k filtering
-
int dims = 0
Vector dimensionality.
-
const void *vectors = nullptr
If vectorsRowMajor is true, this is numVectors x dims, with dims innermost; otherwise, dims x numVectors, with numVectors innermost
-
DistanceDataType vectorType = DistanceDataType::F32
-
bool vectorsRowMajor = true
-
idx_t numVectors = 0
-
const float *vectorNorms = nullptr
Precomputed L2 norms for each vector in
vectors
, which can be optionally provided in advance to speed computation for METRIC_L2
-
const void *queries = nullptr
If queriesRowMajor is true, this is numQueries x dims, with dims innermost; otherwise, dims x numQueries, with numQueries innermost
-
DistanceDataType queryType = DistanceDataType::F32
-
bool queriesRowMajor = true
-
idx_t numQueries = 0
-
float *outDistances = nullptr
A region of memory size numQueries x k, with k innermost (row major) if k > 0, or if k == -1, a region of memory of size numQueries x numVectors
-
bool ignoreOutDistances = false
Do we only care about the indices reported, rather than the output distances? Not used if k == -1 (all pairwise distances)
-
IndicesDataType outIndicesType = IndicesDataType::I64
A region of memory size numQueries x k, with k innermost (row major). Not used if k == -1 (all pairwise distances)
-
void *outIndices = nullptr
-
int device = -1
On which GPU device should the search run? -1 indicates that the current CUDA thread-local device (via cudaGetDevice/cudaSetDevice) is used Otherwise, an integer 0 <= device < numDevices indicates the device for execution
-
bool use_cuvs = false
Should the index dispatch down to cuVS?
-
faiss::MetricType metric = METRIC_L2