NVIDIA / NVIDIA/cuvs

[FEA] Add CMake component that contains `libdiskann.so`

Open
#760 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

In porting over the conda package builds to rattler-build, we've added a new libcuvs-bench-ann output that contains the compiled dependencies for the cuvs-bench python output (this was done to remove a double-compile that was sucking up cuVS CI time).

The work in #751 now does one compile pass of the C++, then installs the appropriate CMake components into their respective outputs, so libcuvs gets cuvs, c_api, and hnswlib, libcuvs-tests gets testing, etc.

For libcuvs-bench-ann, we do:

cmake --install cpp/build --component ann_bench

which installs the most of the objects needed for the benchmark package, but it leaves out libdiskann.so, which is required.

For now, we're working around this with an explicit copy of libdiskann.so into the conda package, but it would be much less brittle if we could add that so to the existing ann_bench component (or expose a separate component to allow installing it).

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 by examining the CMake install-component definitions used by cpp/build and the ann_bench component. Check how libdiskann.so is currently installed and determine whether it belongs in ann_bench or needs a separate component. Run the existing cmake --install cpp/build --component ann_bench flow and confirm the resulting package contains the required library.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp
Domain
build-system
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.