Cagra Package
Go package: cagra
Sources: go/cagra
Constants
BuildAlgo Constants
Source: go/cagra/index_params.go:23
HashmapMode Constants
Source: go/cagra/search_params.go:28
SearchAlgo Constants
Source: go/cagra/search_params.go:19
Types
BuildAlgo
Source: go/cagra/index_params.go:21
CagraIndex
Cagra ANN Index
Source: go/cagra/cagra.go:14
CompressionParams
Supplemental parameters to build CAGRA Index
Source: go/cagra/index_params.go:17
ExtendParams
Parameters to extend CAGRA Index
Source: go/cagra/extend_params.go:11
HashmapMode
Source: go/cagra/search_params.go:26
IndexParams
Source: go/cagra/index_params.go:12
SearchAlgo
Source: go/cagra/search_params.go:17
SearchParams
Supplemental parameters to search CAGRA Index
Source: go/cagra/search_params.go:13
Functions
BuildIndex
Builds a new Index from the dataset for efficient search.
Arguments
Resources- Resources to useparams- Parameters for building the indexdataset- A row-major Tensor on either the host or device to indexindex- CagraIndex to build
Source: go/cagra/cagra.go:38
CreateCompressionParams
Creates a new CompressionParams
Source: go/cagra/index_params.go:36
CreateExtendParams
Creates a new ExtendParams
Source: go/cagra/extend_params.go:16
CreateIndex
Creates a new empty Cagra Index
Source: go/cagra/cagra.go:20
CreateIndexParams
Creates a new IndexParams
Source: go/cagra/index_params.go:99
CreateSearchParams
Creates a new SearchParams
Source: go/cagra/search_params.go:35
ExtendIndex
Extends the index with additional data
Arguments
Resources- Resources to useparams- Parameters for extending the indexadditional_dataset- A row-major Tensor on the device to extend the index withindex- CagraIndex to extend
Source: go/cagra/cagra.go:55
SearchIndex
Perform a Approximate Nearest Neighbors search on the Index
Arguments
Resources- Resources to useparams- Parameters to use in searching the indexqueries- A tensor in device memory to query forneighbors- Tensor in device memory that receives the indices of the nearest neighborsdistances- Tensor in device memory that receives the distances of the nearest neighborsallowList- List of indices to allow in the search, if nil, no filtering is applied
Source: go/cagra/cagra.go:85
Methods
CagraIndex.Close
Destroys the Cagra Index
Source: go/cagra/cagra.go:67
CompressionParams.SetKMeansNIters
The number of iterations searching for kmeans centers (both VQ & PQ phases).
Source: go/cagra/index_params.go:76
CompressionParams.SetPQBits
The bit length of the vector element after compression by PQ.
Source: go/cagra/index_params.go:52
CompressionParams.SetPQDim
The dimensionality of the vector after compression by PQ. When zero, an optimal value is selected using a heuristic.
Source: go/cagra/index_params.go:60
CompressionParams.SetPQKMeansTrainsetFraction
The fraction of data to use during iterative kmeans building (PQ phase). When zero, an optimal value is selected using a heuristic.
Source: go/cagra/index_params.go:92
CompressionParams.SetVQKMeansTrainsetFraction
The fraction of data to use during iterative kmeans building (VQ phase). When zero, an optimal value is selected using a heuristic.
Source: go/cagra/index_params.go:84
CompressionParams.SetVQNCenters
Vector Quantization (VQ) codebook size - number of “coarse cluster centers”. When zero, an optimal value is selected using a heuristic.
Source: go/cagra/index_params.go:68
ExtendParams.Close
Source: go/cagra/extend_params.go:40
ExtendParams.SetMaxChunkSize
The additional dataset is divided into chunks and added to the graph. This is the knob to adjust the tradeoff between the recall and operation throughput. Large chunk sizes can result in high throughput, but use more working memory (O(max_chunk_size*degree^2)). This can also degrade recall because no edges are added between the nodes in the same chunk. Auto select when 0.
Source: go/cagra/extend_params.go:35
IndexParams.Close
Destroys IndexParams
Source: go/cagra/index_params.go:152
IndexParams.SetBuildAlgo
ANN algorithm to build knn graph
Source: go/cagra/index_params.go:126
IndexParams.SetCompression
Compression parameters
Source: go/cagra/index_params.go:145
IndexParams.SetGraphDegree
Degree of output graph
Source: go/cagra/index_params.go:119
IndexParams.SetIntermediateGraphDegree
Degree of input graph for pruning
Source: go/cagra/index_params.go:113
IndexParams.SetNNDescentNiter
Number of iterations to run if building with NN_DESCENT
Source: go/cagra/index_params.go:138
SearchParams.Close
Destroys SearchParams
Source: go/cagra/search_params.go:157
SearchParams.SetAlgo
Which search implementation to use.
Source: go/cagra/search_params.go:67
SearchParams.SetHashmapMaxFillRate
Upper limit of hashmap fill rate. More than 0.1, less than 0.9.
Source: go/cagra/search_params.go:139
SearchParams.SetHashmapMinBitlen
Lower limit of hashmap bit length. More than 8.
Source: go/cagra/search_params.go:133
SearchParams.SetHashmapMode
Hashmap type. Auto selection when AUTO.
Source: go/cagra/search_params.go:113
SearchParams.SetItopkSize
Number of intermediate search results retained during the search. This is the main knob to adjust trade off between accuracy and search speed. Higher values improve the search accuracy
Source: go/cagra/search_params.go:55
SearchParams.SetMaxIterations
Upper limit of search iterations. Auto select when 0.
Source: go/cagra/search_params.go:61
SearchParams.SetMaxQueries
Maximum number of queries to search at the same time (batch size). Auto select when 0
Source: go/cagra/search_params.go:47
SearchParams.SetMinIterations
Lower limit of search iterations.
Source: go/cagra/search_params.go:95
SearchParams.SetNumRandomSamplings
Number of iterations of initial random seed node selection. 1 or more.
Source: go/cagra/search_params.go:145
SearchParams.SetRandXorMask
Bit mask used for initial random seed node selection.
Source: go/cagra/search_params.go:151
SearchParams.SetSearchWidth
How many nodes to search at once. Auto select when 0.
Source: go/cagra/search_params.go:101
SearchParams.SetTeamSize
Number of threads used to calculate a single distance. 4, 8, 16, or 32.
Source: go/cagra/search_params.go:89
SearchParams.SetThreadBlockSize
Thread block size. 0, 64, 128, 256, 512, 1024. Auto selection when 0.
Source: go/cagra/search_params.go:107