Skip to content

[BUG] Some values of graphDegree and intermediateGraphDegree resulting in cagra build errors #626

Closed
0 of 1 issue completed
@chatman

Description

@chatman

Describe the bug
Just found a situation where numdocs= 101, dimensions=128, graphdegree=64 and intGraphDegree=64 fails, but graphDegree=1, intGraphDegree=2 passes.

Steps/Code to reproduce bug
Index 101 vectors (dim=128) with graphDegree=64, intermediateGraphDegree=64. There's the following error:

cuvsCagraBuild: 0
RAFT failure at file=/home/searchscale/code/cuvs-api/cuvs/cpp/src/neighbors/detail/cagra/graph_core.cuh line=1252: Could not generate an intermediate CAGRA graph because the initial kNN graph contains too many invalid or duplicated neighbor nodes. This error can occur, for example, if too many overflows occur during the norm computation between the dataset vectors.
Obtained 7 stack frames
........



Expected behavior
If those degrees are bad values, some sensible defaults should be assumed by cuvs. Just like it assumes some defaults if those degrees are more than the dataset size. FYI, using 64/128 as degrees fails, even though cuvs drops them back to 100 (less than the dataset size), so even cuvs' own chosen defaults are failing.

If this is not a bug, but a user error, then this needs to be handled in the (upcoming) Java API appropriately.

Environment details (please complete the following information):

  • Environment location: [Bare metal, RTX 4090]
  • Method of RAFT install: [from source]

Additional context
Branch 25.02.
Found this while trying via the Java API. Haven't tested with C api directly yet. In my experience, using both degrees as 32 passes, but 33 fails. Dataset doesn't contain any duplicates.

Sub-issues

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions