NVIDIA / NVIDIA/cuvs

[BUG] Flaky cpp test `AnnIVFFlatTestF_half.AnnIVFFlat/21`

Open
#1,091 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

AnnIVFFlat test configuration 21 with { 1000, 10000, 2051, 16, 40, 1024, distance::InnerProduct, 1,0,0} shows very low recall. This test becomes flaky depending on the architecture used and tests start to fail with recall values below the threshold. We believe this is mathematical property of the test configuration and propose to skip this test until we find a better parameter set.

[ RUN      ] AnnIVFFlatTest/AnnIVFFlatTestF_half.AnnIVFFlat/21
[   331][14:12:46:144510][info  ] Recall = 0.030875 (494/16000), the error is 0.9% above the threshold (eps = 0.005000).
/home/coder/cuvs/cpp/tests/neighbors/ann_ivf_flat/../ann_ivf_flat.cuh:260: Failure
Value of: eval_neighbours(indices_naive, indices_ivfflat, distances_naive, distances_ivfflat, ps.num_queries, ps.k, eps, min_recall)
  Actual: false (actual recall (0.030875) is lower than the minimum expected recall (0.0390625); eps = 0.004999999888241291. )
Expected: true

[   331][14:12:47:605797][info  ] Recall = 0.071750 (1148/16000), the error is 3.4% below the threshold (eps = 0.005000).
[  FAILED  ] AnnIVFFlatTest/AnnIVFFlatTestF_half.AnnIVFFlat/21, where GetParam() = { 1000, 10000, 2051, 16, 40, 1024, distance::InnerProduct, 1,0,0}
 (1920 ms)

@tfeher

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.

Research direction

Start in cpp/tests/neighbors/ann_ivf_flat/../ann_ivf_flat.cuh around line 260 and locate the parameterized AnnIVFFlat test entry for configuration 21. Run the AnnIVFFlatTestF_half test to reproduce the recall failure, then verify that the flaky configuration is skipped and the remaining test suite passes.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
search, testing-qa
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.