-
Notifications
You must be signed in to change notification settings - Fork 87
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[BUG] Fix CAGRA graph optimization bug (#565)
The merging process of the pruned and revedge graphs is inappropriate, resulting in neighbor index duplication. This PR fixes the issue and adds the validation of graph indices at the end of the `graph::optimze` function. The simplest solution to fix this issue is 1151511, but it ignores the memory space optimization by rapidsai/raft@12480cf. The code changes in this PR apply the memory space optimization to the simplest solution to remove the memory space for the pruned graph (`pruned_graph`). This PR also fixes a problem that throwing an exception from an OMP loop does not work as expected. This is the search performance comparison between the graph optimization that has a bug (branch-25.02) and fixed (fix-cagra-graph-optimization-bug). Each point represents the search performance for itopk=32, 64, ... 512. By this PR, the recall becomes slightly higher when searching with a small itopk size. Because the number of duplicated nodes by this bug is not so large (typically less than 100 in a 1M dataset), the performances are almost the same when searching with a large itopk size and traversing the graph sufficiently.  Authors: - tsuki (https://github.com/enp1s0) Approvers: - Corey J. Nolet (https://github.com/cjnolet) URL: #565
- Loading branch information
Showing
2 changed files
with
129 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters