Skip to content

Commit 6595a38

Browse files
committed
Merge branch 'branch-25.08' of https://github.com/rapidsai/cuvs into build-linkage
2 parents 7090f31 + 6d07116 commit 6595a38

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

cpp/src/neighbors/detail/nn_descent.cuh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,9 @@ __launch_bounds__(BLOCK_SIZE)
633633
s_distances[i] = l2_norms[new_neighbors[i % SKEWED_MAX_NUM_BI_SAMPLES]] +
634634
l2_norms[new_neighbors[i / SKEWED_MAX_NUM_BI_SAMPLES]] -
635635
2.0 * s_distances[i];
636+
// for fp32 vs fp16 precision differences resulting in negative distances when distance
637+
// should be 0 related issue: https://github.com/rapidsai/cuvs/issues/991
638+
s_distances[i] = s_distances[i] < 0.0f ? 0.0f : s_distances[i];
636639
}
637640
} else {
638641
s_distances[i] = std::numeric_limits<float>::max();
@@ -714,6 +717,9 @@ __launch_bounds__(BLOCK_SIZE)
714717
s_distances[i] = l2_norms[old_neighbors[i % SKEWED_MAX_NUM_BI_SAMPLES]] +
715718
l2_norms[new_neighbors[i / SKEWED_MAX_NUM_BI_SAMPLES]] -
716719
2.0 * s_distances[i];
720+
// for fp32 vs fp16 precision differences resulting in negative distances when distance
721+
// should be 0 related issue: https://github.com/rapidsai/cuvs/issues/991
722+
s_distances[i] = s_distances[i] < 0.0f ? 0.0f : s_distances[i];
717723
}
718724
} else {
719725
s_distances[i] = std::numeric_limits<float>::max();

0 commit comments

Comments
 (0)