Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
9fd71ef
add CAGRA ANN to replace brute force kmeans for prediction + test cas…
HowardHuang1 Mar 18, 2026
80070c4
fix test cases + fix threshold
HowardHuang1 Mar 18, 2026
fa6fd70
add test cases for entire IVF-PQ pipeline
HowardHuang1 Mar 18, 2026
d8543a6
rename variable to use_ann_for_extend since previous changes are only…
HowardHuang1 Mar 19, 2026
d26e916
Replace brute force with CAGRA ANN in build()
HowardHuang1 Mar 20, 2026
ad054af
add test cases
HowardHuang1 Mar 24, 2026
0f14da1
Merge remote-tracking branch 'upstream' into HH-ANNs-for-clustering-a…
HowardHuang1 Jun 25, 2026
e69259f
rename use_cagra and use_ann variables to use_cagra_for_cluster_assig…
HowardHuang1 Jun 25, 2026
1d76516
fix null list or empty trained indices error for IVF-PQ serialize cau…
HowardHuang1 Jun 25, 2026
8e62682
rename benchmark names so that Build_NearestCentroidLookup_Speedup mi…
HowardHuang1 Jun 25, 2026
167f0c4
refactor out common code shared by BM_IVFPQ_Build_NearestCentroidLook…
HowardHuang1 Jun 26, 2026
64586ad
add ann for cluster assignment to postfit. Added use_ann_for_build_po…
HowardHuang1 Jun 26, 2026
de80d26
Merge remote-tracking branch 'upstream' into HH-ANNs-for-clustering-a…
HowardHuang1 Jun 27, 2026
7daf9cb
add tuning script for ann_rebuild_interval balancing recall and speedup
HowardHuang1 Jun 27, 2026
76ebb73
Merge remote-tracking branch 'upstream' into HH-ANNs-for-clustering-a…
HowardHuang1 Jun 27, 2026
525cd4c
Merge remote-tracking branch 'upstream/main' into HH-ANNs-for-cluster…
HowardHuang1 Sep 5, 2026
1673e39
fix merge conflict with build now taking only dataset views and not d…
HowardHuang1 Sep 7, 2026
3951248
Replace hand-picked cluster-assignment bench args with controlled K s…
HowardHuang1 Sep 7, 2026
1daabbe
Add controlled fixed-K/vary-N, grid, search-only, dim, and rebuild-in…
HowardHuang1 Sep 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions cpp/bench/ann/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,83 @@ if(CUVS_KNN_BENCH_USE_CUVS_BRUTE_FORCE)
)
endif()

# Cluster assignment benchmark: brute force vs CAGRA for assigning vectors to clusters (IVF
# training)
if(CUVS_ANN_BENCH_USE_CUVS_CAGRA)
add_executable(CUVS_CLUSTER_ASSIGNMENT_BENCH src/cuvs/cuvs_cluster_assignment_bench.cu)
target_link_libraries(
CUVS_CLUSTER_ASSIGNMENT_BENCH
PRIVATE cuvs benchmark::benchmark $<$<TARGET_EXISTS:CUDA::nvtx3>:CUDA::nvtx3>
$<COMPILE_ONLY:nvidia::cutlass::cutlass>
)
target_include_directories(
CUVS_CLUSTER_ASSIGNMENT_BENCH
PUBLIC "$<BUILD_INTERFACE:${CUVS_SOURCE_DIR}/include>"
"$<BUILD_INTERFACE:${CUVS_SOURCE_DIR}/../c/include>"
PRIVATE "$<BUILD_INTERFACE:${CUVS_SOURCE_DIR}/src>"
)
set_target_properties(
CUVS_CLUSTER_ASSIGNMENT_BENCH
PROPERTIES CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
CUDA_STANDARD 17
CUDA_STANDARD_REQUIRED ON
)
install(
TARGETS CUVS_CLUSTER_ASSIGNMENT_BENCH
COMPONENT ann_bench
DESTINATION bin/ann
)
add_dependencies(CUVS_ANN_BENCH_ALL CUVS_CLUSTER_ASSIGNMENT_BENCH)

# IVF-PQ build benchmarks: k-means fit and extend cluster-assignment (brute vs CAGRA)
add_executable(CUVS_IVFPQ_BUILD_BENCH src/cuvs/cuvs_ivf_pq_build_bench.cu)
target_link_libraries(CUVS_IVFPQ_BUILD_BENCH PRIVATE cuvs benchmark::benchmark)
target_include_directories(
CUVS_IVFPQ_BUILD_BENCH PUBLIC "$<BUILD_INTERFACE:${CUVS_SOURCE_DIR}/include>"
"$<BUILD_INTERFACE:${CUVS_SOURCE_DIR}/../c/include>"
)
set_target_properties(
CUVS_IVFPQ_BUILD_BENCH
PROPERTIES CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
CUDA_STANDARD 17
CUDA_STANDARD_REQUIRED ON
)
install(
TARGETS CUVS_IVFPQ_BUILD_BENCH
COMPONENT ann_bench
DESTINATION bin/ann
)
add_dependencies(CUVS_ANN_BENCH_ALL CUVS_IVFPQ_BUILD_BENCH)

add_executable(CUVS_FIT_ANN_REBUILD_TUNING_BENCH src/cuvs/cuvs_fit_ann_rebuild_tuning_bench.cu)
target_link_libraries(
CUVS_FIT_ANN_REBUILD_TUNING_BENCH
PRIVATE cuvs benchmark::benchmark $<$<TARGET_EXISTS:CUDA::nvtx3>:CUDA::nvtx3>
$<COMPILE_ONLY:nvidia::cutlass::cutlass>
)
target_include_directories(
CUVS_FIT_ANN_REBUILD_TUNING_BENCH
PUBLIC "$<BUILD_INTERFACE:${CUVS_SOURCE_DIR}/include>"
"$<BUILD_INTERFACE:${CUVS_SOURCE_DIR}/../c/include>"
PRIVATE "$<BUILD_INTERFACE:${CUVS_SOURCE_DIR}/src>"
)
set_target_properties(
CUVS_FIT_ANN_REBUILD_TUNING_BENCH
PROPERTIES CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
CUDA_STANDARD 17
CUDA_STANDARD_REQUIRED ON
)
install(
TARGETS CUVS_FIT_ANN_REBUILD_TUNING_BENCH
COMPONENT ann_bench
DESTINATION bin/ann
)
add_dependencies(CUVS_ANN_BENCH_ALL CUVS_FIT_ANN_REBUILD_TUNING_BENCH)
endif()

if(CUVS_ANN_BENCH_USE_CUVS_CAGRA)
ConfigureAnnBench(
NAME
Expand Down
Loading
Loading