NVIDIA / NVIDIA/cuvs

Simplify CAGRA search call hierarchy

Open
#343 0 comments 0 reactions 1 assignee View on GitHub

@achirkin is already working on this.

Since Sep 24, 2024.

improvement
Dominant language
Cuda
Stars
854
Forks
236
Avg merge
3d 3h
Merged PRs (30d)
62

Description

Past several major code updates since RAFT release (latest change #296) parts of CAGRA search code have become unnecessary complicated or obsolete.

  • neighbors/detail/cagra/factory.cuh once served the instance parameter selection logic (including the non-type template parameters) via the factory class; now this logic can be replaced with a single switch-case block on search_algo.
  • search_params <- search_plan_impl_base <- search_plan_impl <- search is overly complicated for a plain task of choosing between the search algorithms
  • dataset_descriptor_base_t and related types (implementation types and the descriptor host) names are confusing
  • The way the polymorphic behavior is implemented in dataset_descriptor_base_t and its member type args_t is hard to read.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.