From 24291fa4946ec5d22ed0dba7772904793319a6c6 Mon Sep 17 00:00:00 2001 From: enp1s0 Date: Wed, 22 Jul 2026 01:34:39 +0900 Subject: [PATCH 1/2] Fix the build_knn_graph sample code --- cpp/include/cuvs/neighbors/cagra.hpp | 60 ++++++++++------------------ 1 file changed, 20 insertions(+), 40 deletions(-) diff --git a/cpp/include/cuvs/neighbors/cagra.hpp b/cpp/include/cuvs/neighbors/cagra.hpp index d1937cba27..afb7c2dc62 100644 --- a/cpp/include/cuvs/neighbors/cagra.hpp +++ b/cpp/include/cuvs/neighbors/cagra.hpp @@ -3101,17 +3101,12 @@ auto distribute(const raft::resources& clique, const std::string& filename) * Usage example: * @code{.cpp} * using namespace cuvs::neighbors; - * // use default index parameters based on shape of the dataset - * ivf_pq::index_params build_params = ivf_pq::index_params::from_dataset(dataset); - * ivf_pq::search_params search_params; - * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); + * // raft::host_matrix_view dataset; + * auto build_params = cagra::graph_build_params::ivf_pq_params( + * dataset.extents(), cuvs::distance::DistanceType::L2Expanded); + * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); * // create knn graph - * cagra::build_knn_graph(res, dataset, knn_graph.view(), 2, build_params, search_params); - * auto optimized_gaph = raft::make_host_matrix(dataset.extent(0), 64); - * cagra::optimize(res, dataset, knn_graph.view(), optimized_graph.view()); - * // Construct an index from dataset and optimized knn_graph - * auto index = cagra::index(res, build_params.metric(), dataset, - * optimized_graph.view()); + * cagra::build_knn_graph(res, dataset, knn_graph.view(), build_params); * @endcode * * @param[in] res raft resources @@ -3141,17 +3136,12 @@ void build_knn_graph(raft::resources const& res, * Usage example: * @code{.cpp} * using namespace cuvs::neighbors; - * // use default index parameters based on shape of the dataset - * ivf_pq::index_params build_params = ivf_pq::index_params::from_dataset(dataset); - * ivf_pq::search_params search_params; - * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); + * // raft::host_matrix_view dataset; + * auto build_params = cagra::graph_build_params::ivf_pq_params( + * dataset.extents(), cuvs::distance::DistanceType::L2Expanded); + * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); * // create knn graph - * cagra::build_knn_graph(res, dataset, knn_graph.view(), 2, build_params, search_params); - * auto optimized_gaph = raft::make_host_matrix(dataset.extent(0), 64); - * cagra::optimize(res, dataset, knn_graph.view(), optimized_graph.view()); - * // Construct an index from dataset and optimized knn_graph - * auto index = cagra::index(res, build_params.metric(), dataset, - * optimized_graph.view()); + * cagra::build_knn_graph(res, dataset, knn_graph.view(), build_params); * @endcode * * @param[in] res raft resources @@ -3181,17 +3171,12 @@ void build_knn_graph(raft::resources const& res, * Usage example: * @code{.cpp} * using namespace cuvs::neighbors; - * // use default index parameters based on shape of the dataset - * ivf_pq::index_params build_params = ivf_pq::index_params::from_dataset(dataset); - * ivf_pq::search_params search_params; - * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); + * // raft::host_matrix_view dataset; + * auto build_params = cagra::graph_build_params::ivf_pq_params( + * dataset.extents(), cuvs::distance::DistanceType::L2Expanded); + * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); * // create knn graph - * cagra::build_knn_graph(res, dataset, knn_graph.view(), 2, build_params, search_params); - * auto optimized_gaph = raft::make_host_matrix(dataset.extent(0), 64); - * cagra::optimize(res, dataset, knn_graph.view(), optimized_graph.view()); - * // Construct an index from dataset and optimized knn_graph - * auto index = cagra::index(res, build_params.metric(), dataset, - * optimized_graph.view()); + * cagra::build_knn_graph(res, dataset, knn_graph.view(), build_params); * @endcode * * @param[in] res raft resources @@ -3221,17 +3206,12 @@ void build_knn_graph(raft::resources const& res, * Usage example: * @code{.cpp} * using namespace cuvs::neighbors; - * // use default index parameters based on shape of the dataset - * ivf_pq::index_params build_params = ivf_pq::index_params::from_dataset(dataset); - * ivf_pq::search_params search_params; - * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); + * // raft::host_matrix_view dataset; + * auto build_params = cagra::graph_build_params::ivf_pq_params( + * dataset.extents(), cuvs::distance::DistanceType::L2Expanded); + * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); * // create knn graph - * cagra::build_knn_graph(res, dataset, knn_graph.view(), 2, build_params, search_params); - * auto optimized_gaph = raft::make_host_matrix(dataset.extent(0), 64); - * cagra::optimize(res, dataset, knn_graph.view(), optimized_graph.view()); - * // Construct an index from dataset and optimized knn_graph - * auto index = cagra::index(res, build_params.metric(), dataset, - * optimized_graph.view()); + * cagra::build_knn_graph(res, dataset, knn_graph.view(), build_params); * @endcode * * @param[in] res raft resources From 28d9375a5f62765dfa13aea05d00c6db54a5408f Mon Sep 17 00:00:00 2001 From: enp1s0 Date: Wed, 22 Jul 2026 01:46:03 +0900 Subject: [PATCH 2/2] Update build_knn_graph sample code --- cpp/include/cuvs/neighbors/cagra.hpp | 36 +++++++++++++++++++++------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/cpp/include/cuvs/neighbors/cagra.hpp b/cpp/include/cuvs/neighbors/cagra.hpp index afb7c2dc62..98f3a96e87 100644 --- a/cpp/include/cuvs/neighbors/cagra.hpp +++ b/cpp/include/cuvs/neighbors/cagra.hpp @@ -3102,11 +3102,16 @@ auto distribute(const raft::resources& clique, const std::string& filename) * @code{.cpp} * using namespace cuvs::neighbors; * // raft::host_matrix_view dataset; - * auto build_params = cagra::graph_build_params::ivf_pq_params( - * dataset.extents(), cuvs::distance::DistanceType::L2Expanded); + * auto metric = cuvs::distance::DistanceType::L2Expanded; + * auto build_params = cagra::graph_build_params::ivf_pq_params(dataset.extents(), metric); * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); * // create knn graph * cagra::build_knn_graph(res, dataset, knn_graph.view(), build_params); + * auto optimized_graph = raft::make_host_matrix(dataset.extent(0), 64); + * cagra::helpers::optimize(res, knn_graph.view(), optimized_graph.view()); + * // Construct an index from dataset and optimized knn_graph + * auto index = cagra::index( + * res, metric, dataset, raft::make_const_mdspan(optimized_graph.view())); * @endcode * * @param[in] res raft resources @@ -3137,11 +3142,16 @@ void build_knn_graph(raft::resources const& res, * @code{.cpp} * using namespace cuvs::neighbors; * // raft::host_matrix_view dataset; - * auto build_params = cagra::graph_build_params::ivf_pq_params( - * dataset.extents(), cuvs::distance::DistanceType::L2Expanded); + * auto metric = cuvs::distance::DistanceType::L2Expanded; + * auto build_params = cagra::graph_build_params::ivf_pq_params(dataset.extents(), metric); * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); * // create knn graph * cagra::build_knn_graph(res, dataset, knn_graph.view(), build_params); + * auto optimized_graph = raft::make_host_matrix(dataset.extent(0), 64); + * cagra::helpers::optimize(res, knn_graph.view(), optimized_graph.view()); + * // Construct an index from dataset and optimized knn_graph + * auto index = cagra::index( + * res, metric, dataset, raft::make_const_mdspan(optimized_graph.view())); * @endcode * * @param[in] res raft resources @@ -3172,11 +3182,16 @@ void build_knn_graph(raft::resources const& res, * @code{.cpp} * using namespace cuvs::neighbors; * // raft::host_matrix_view dataset; - * auto build_params = cagra::graph_build_params::ivf_pq_params( - * dataset.extents(), cuvs::distance::DistanceType::L2Expanded); + * auto metric = cuvs::distance::DistanceType::L2Expanded; + * auto build_params = cagra::graph_build_params::ivf_pq_params(dataset.extents(), metric); * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); * // create knn graph * cagra::build_knn_graph(res, dataset, knn_graph.view(), build_params); + * auto optimized_graph = raft::make_host_matrix(dataset.extent(0), 64); + * cagra::helpers::optimize(res, knn_graph.view(), optimized_graph.view()); + * // Construct an index from dataset and optimized knn_graph + * auto index = cagra::index( + * res, metric, dataset, raft::make_const_mdspan(optimized_graph.view())); * @endcode * * @param[in] res raft resources @@ -3207,11 +3222,16 @@ void build_knn_graph(raft::resources const& res, * @code{.cpp} * using namespace cuvs::neighbors; * // raft::host_matrix_view dataset; - * auto build_params = cagra::graph_build_params::ivf_pq_params( - * dataset.extents(), cuvs::distance::DistanceType::L2Expanded); + * auto metric = cuvs::distance::DistanceType::L2Expanded; + * auto build_params = cagra::graph_build_params::ivf_pq_params(dataset.extents(), metric); * auto knn_graph = raft::make_host_matrix(dataset.extent(0), 128); * // create knn graph * cagra::build_knn_graph(res, dataset, knn_graph.view(), build_params); + * auto optimized_graph = raft::make_host_matrix(dataset.extent(0), 64); + * cagra::helpers::optimize(res, knn_graph.view(), optimized_graph.view()); + * // Construct an index from dataset and optimized knn_graph + * auto index = cagra::index( + * res, metric, dataset, raft::make_const_mdspan(optimized_graph.view())); * @endcode * * @param[in] res raft resources