From d273ef2fd73fbad2b34bba9357a4c0296ed320f7 Mon Sep 17 00:00:00 2001 From: Alexandr Guzhva Date: Fri, 6 Sep 2024 13:51:44 -0400 Subject: [PATCH] Fix an incorrectly counted the number of computed distances for HNSW Signed-off-by: Alexandr Guzhva --- faiss/impl/HNSW.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/faiss/impl/HNSW.cpp b/faiss/impl/HNSW.cpp index e39a6a4d93..436a1bfcc9 100644 --- a/faiss/impl/HNSW.cpp +++ b/faiss/impl/HNSW.cpp @@ -775,7 +775,6 @@ int search_from_candidates( int counter = 0; size_t saved_j[4]; - ndis += jmax - begin; threshold = res.threshold; auto add_to_heap = [&](const size_t idx, const float dis) { @@ -814,6 +813,8 @@ int search_from_candidates( add_to_heap(saved_j[id4], dis[id4]); } + ndis += 4; + counter = 0; } } @@ -821,6 +822,8 @@ int search_from_candidates( for (size_t icnt = 0; icnt < counter; icnt++) { float dis = qdis(saved_j[icnt]); add_to_heap(saved_j[icnt], dis); + + ndis += 1; } } @@ -919,8 +922,6 @@ std::priority_queue search_from_candidate_unbounded( int counter = 0; size_t saved_j[4]; - ndis += jmax - begin; - auto add_to_heap = [&](const size_t idx, const float dis) { if (top_candidates.top().first > dis || top_candidates.size() < ef) { @@ -957,6 +958,8 @@ std::priority_queue search_from_candidate_unbounded( add_to_heap(saved_j[id4], dis[id4]); } + ndis += 4; + counter = 0; } } @@ -964,6 +967,8 @@ std::priority_queue search_from_candidate_unbounded( for (size_t icnt = 0; icnt < counter; icnt++) { float dis = qdis(saved_j[icnt]); add_to_heap(saved_j[icnt], dis); + + ndis += 1; } }