Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] refine_device fails to compile for idx_t != matrix_idx #1950

Open
wphicks opened this issue Nov 1, 2023 · 0 comments
Open

[BUG] refine_device fails to compile for idx_t != matrix_idx #1950

wphicks opened this issue Nov 1, 2023 · 0 comments
Labels
bug Something isn't working Vector Search

Comments

@wphicks
Copy link
Contributor

wphicks commented Nov 1, 2023

Calling raft::neighbors::refine on input which uses a different indexing type for the input matrices than for the vector ids results in a compilation failure in raft::neighbors::ivf_flat::detail::fill_refinement_index. This comes up in attempting to refine output from some of our supported CAGRA instantiations, which use int64_t for the input matrices' indexes but some other type for the vector ids.

To trace through the problem:

  1. refine can be instantiated with different idx_t and matrix_idx here.
  2. This calls refine_device with the same type instantiations here.
  3. refine_device calls fill_refinement_index here.
  4. fill_refinement_index has only a single indexing type in its template. This is deduced to be idx_t from refine_device due to this argument, but matrix_idx due to this argument. Because these two do not match, no instantiation matches the template, and we fail to compile.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Vector Search
Projects
Status: No status
Development

No branches or pull requests

2 participants