Skip to content

feat: [2.6] cherrypick DiskANN GPU build support#1617

Merged
sre-ci-robot merged 3 commits into
zilliztech:2.6from
marcelo-cjl:cherrypick-diskann-gpu-2.6
May 6, 2026
Merged

feat: [2.6] cherrypick DiskANN GPU build support#1617
sre-ci-robot merged 3 commits into
zilliztech:2.6from
marcelo-cjl:cherrypick-diskann-gpu-2.6

Conversation

@marcelo-cjl
Copy link
Copy Markdown
Collaborator

issue: #1616

Cherrypick DiskANN GPU build support to the 2.6 branch.

Summary

Test plan

  • conan install .. --build=missing -o with_ut=True -o with_cuvs=True -o with_diskann=True -s compiler.libcxx=libstdc++11 -s build_type=Release
  • conan build ..
  • LD_LIBRARY_PATH="$PWD/build/Release:$PWD/build/Release/_deps/cuvs-build:${LD_LIBRARY_PATH}" ./build/Release/tests/ut/knowhere_tests "Test DiskANN Build Index" --success --durations yes
  • LD_LIBRARY_PATH="$PWD/build/Release:$PWD/build/Release/_deps/cuvs-build:${LD_LIBRARY_PATH}" ./build/Release/tests/ut/knowhere_tests "Test DiskANNIndexNode." --reporter compact --durations yes
  • LD_LIBRARY_PATH="$PWD/build/Release:$PWD/build/Release/_deps/cuvs-build:${LD_LIBRARY_PATH}" ./build/Release/tests/ut/knowhere_tests "Test DISKANN for EmbList" --reporter compact --durations yes
  • LD_LIBRARY_PATH="$PWD/build/Release:$PWD/build/Release/_deps/cuvs-build:${LD_LIBRARY_PATH}" ./build/Release/tests/ut/knowhere_tests "Test DiskANN GetVectorByIds" --reporter compact --durations yes

Notes

  • Verified on an NVIDIA L4 GPU with driver 560.35.05.
  • The DiskANN GPU test logs confirmed the cuVS path was used: Running pq with 256 clusters, pq 16 ...using GPU! and Building with GPU! R= 64 L=128.
  • This PR intentionally keeps the minimal DiskANN GPU cherrypick scope and does not include unrelated GPU dependency stack upgrades.

liorf95 and others added 3 commits May 6, 2026 09:29
* Add GPU support for building DISKANN based indexes.

Signed-off-by: Lior Friedman <lior.friedman@il.kioxia.com>
Signed-off-by: Hiroshi Murayama <hiroshi4.murayama@kioxia.com>

* Add new diskann_gpu files.

Signed-off-by: Lior Friedman <lior.friedman@il.kioxia.com>
Signed-off-by: Hiroshi Murayama <hiroshi4.murayama@kioxia.com>

* After maintainer code review comments

Signed-off-by: Lior Friedman <lior.friedman@il.kioxia.com>
Signed-off-by: Hiroshi Murayama <hiroshi4.murayama@kioxia.com>

* rephrase GPU R and L validation

Signed-off-by: Lior Friedman <lior.friedman@il.kioxia.com>
Signed-off-by: Hiroshi Murayama <hiroshi4.murayama@kioxia.com>

---------

Signed-off-by: Lior Friedman <lior.friedman@il.kioxia.com>
Signed-off-by: Hiroshi Murayama <hiroshi4.murayama@kioxia.com>
(cherry picked from commit 20b6dce)
Signed-off-by: marcelo-cjl <marcelo.chen@zilliz.com>
)

* After maintainer more code review comments

Signed-off-by: Lior Friedman <lior.friedman@il.kioxia.com>

* fix invalid GPU params UT

Signed-off-by: Lior Friedman <lior.friedman@il.kioxia.com>

* rename local use_gpu param

Signed-off-by: Lior Friedman <lior.friedman@il.kioxia.com>

---------

Signed-off-by: Lior Friedman <lior.friedman@il.kioxia.com>
(cherry picked from commit 12f08a9)
Signed-off-by: marcelo-cjl <marcelo.chen@zilliz.com>
…#1518)

* Attempt to fix cuvs memory access error

Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>

* Suppress cuVS diag 550 to fix GPU build with -Werror

cuVS's ConfigureCUDA.cmake sets -Werror=all-warnings, which promotes
an unused-variable warning (diag 550) in robust_prune.cuh to a build
error. Add --diag-suppress 550 to CMAKE_CUDA_FLAGS so the warning is
silenced before cuVS is configured.

Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>

* Refactor GPU/CPU fallback logic in partition_and_pq.cpp

Replace combined condition with nested if-else for clarity:
check is_gpu_available() first, then guard against
num_centers > num_train inside the GPU block.

Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>

---------

Signed-off-by: jamesgao-jpg <james.gao@zilliz.com>
(cherry picked from commit b023194)
Signed-off-by: marcelo-cjl <marcelo.chen@zilliz.com>
@marcelo-cjl marcelo-cjl force-pushed the cherrypick-diskann-gpu-2.6 branch from d37c2db to 0a61306 Compare May 6, 2026 09:33
@mergify mergify Bot added dco-passed and removed needs-dco labels May 6, 2026
Copy link
Copy Markdown
Collaborator

@foxspy foxspy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@foxspy
Copy link
Copy Markdown
Collaborator

foxspy commented May 6, 2026

/kind improvement

@alexanderguzhva
Copy link
Copy Markdown
Collaborator

/lgtm
/approve

@sre-ci-robot
Copy link
Copy Markdown
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: alexanderguzhva, foxspy, marcelo-cjl

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:
  • OWNERS [alexanderguzhva,foxspy,marcelo-cjl]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mergify mergify Bot removed the ci-passed label May 6, 2026
@sre-ci-robot sre-ci-robot merged commit 2242ec5 into zilliztech:2.6 May 6, 2026
11 of 12 checks passed
@marcelo-cjl marcelo-cjl deleted the cherrypick-diskann-gpu-2.6 branch May 7, 2026 02:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants