#[repr(u32)]pub enum cuvsCagraHnswHeuristicType {
CUVS_CAGRA_HEURISTIC_SIMILAR_SEARCH_PERFORMANCE = 0,
CUVS_CAGRA_HEURISTIC_SAME_GRAPH_FOOTPRINT = 1,
}Expand description
@brief A strategy for selecting the graph build parameters based on similar HNSW index parameters.
Define how cuvsCagraIndexParamsFromHnswParams should construct a graph to construct a graph that is to be converted to (used by) a CPU HNSW index.
Variants§
CUVS_CAGRA_HEURISTIC_SIMILAR_SEARCH_PERFORMANCE = 0
Create a graph that is very similar to an HNSW graph in terms of the number of nodes and search performance. Since HNSW produces a variable-degree graph (2M being the max graph degree) and CAGRA produces a fixed-degree graph, there’s always a difference in the performance of the two.
This function attempts to produce such a graph that the QPS and recall of the two graphs being searched by HNSW are close for any search parameter combination. The CAGRA-produced graph tends to have a “longer tail” on the low recall side (that is being slightly faster and less precise).
CUVS_CAGRA_HEURISTIC_SAME_GRAPH_FOOTPRINT = 1
Create a graph that has the same binary size as an HNSW graph with the given parameters (graph_degree = 2 * M) while trying to match the search performance as closely as possible.
The reference HNSW index and the corresponding from-CAGRA generated HNSW index will NOT produce the same recalls and QPS for the same parameter ef. The graphs are different internally. For the same ef, the from-CAGRA index likely has a slightly higher recall and slightly lower QPS. However, the Recall-QPS curves should be similar (i.e. the points are just shifted along the curve).
Trait Implementations§
Source§impl Clone for cuvsCagraHnswHeuristicType
impl Clone for cuvsCagraHnswHeuristicType
Source§fn clone(&self) -> cuvsCagraHnswHeuristicType
fn clone(&self) -> cuvsCagraHnswHeuristicType
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for cuvsCagraHnswHeuristicType
Source§impl Debug for cuvsCagraHnswHeuristicType
impl Debug for cuvsCagraHnswHeuristicType
impl Eq for cuvsCagraHnswHeuristicType
Source§impl Hash for cuvsCagraHnswHeuristicType
impl Hash for cuvsCagraHnswHeuristicType
Source§impl PartialEq for cuvsCagraHnswHeuristicType
impl PartialEq for cuvsCagraHnswHeuristicType
Source§fn eq(&self, other: &cuvsCagraHnswHeuristicType) -> bool
fn eq(&self, other: &cuvsCagraHnswHeuristicType) -> bool
self and other values to be equal, and is used by ==.