Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce CAGRA test runtime #602

Merged
merged 7 commits into from
Jan 27, 2025
160 changes: 80 additions & 80 deletions cpp/test/neighbors/ann_cagra.cuh
Original file line number Diff line number Diff line change
Expand Up @@ -905,7 +905,7 @@ inline std::vector<AnnCagraInputs> generate_inputs()
{0},
{256},
{1},
{cuvs::distance::DistanceType::L2Expanded},
{cuvs::distance::DistanceType::L2Expanded, cuvs::distance::DistanceType::InnerProduct},
{false},
{true},
{0.995});
Expand Down Expand Up @@ -966,21 +966,21 @@ inline std::vector<AnnCagraInputs> generate_inputs()
inputs.insert(inputs.end(), inputs2.begin(), inputs2.end());

// Varying n_rows, host_dataset
inputs2 =
raft::util::itertools::product<AnnCagraInputs>({100},
{10000},
{32},
{10},
{graph_build_algo::AUTO},
{search_algo::AUTO},
{10},
{0}, // team_size
{64},
{1},
{cuvs::distance::DistanceType::L2Expanded},
{false, true},
{false},
{0.985});
inputs2 = raft::util::itertools::product<AnnCagraInputs>(
{100},
{10000},
{32},
{10},
{graph_build_algo::AUTO},
{search_algo::AUTO},
{10},
{0}, // team_size
{64},
{1},
{cuvs::distance::DistanceType::L2Expanded, cuvs::distance::DistanceType::InnerProduct},
{false, true},
{false},
{0.985});
inputs.insert(inputs.end(), inputs2.begin(), inputs2.end());

// A few PQ configurations.
Expand Down Expand Up @@ -1014,40 +1014,40 @@ inline std::vector<AnnCagraInputs> generate_inputs()

// Refinement options
// Varying host_dataset, ivf_pq_search_refine_ratio
inputs2 =
raft::util::itertools::product<AnnCagraInputs>({100},
{5000},
{32, 64},
{16},
{graph_build_algo::IVF_PQ},
{search_algo::AUTO},
{10},
{0}, // team_size
{64},
{1},
{cuvs::distance::DistanceType::L2Expanded},
{false, true},
{false},
{0.99},
{1.0f, 2.0f, 3.0f});
inputs2 = raft::util::itertools::product<AnnCagraInputs>(
{100},
{5000},
{32, 64},
{16},
{graph_build_algo::IVF_PQ},
{search_algo::AUTO},
{10},
{0}, // team_size
{64},
{1},
{cuvs::distance::DistanceType::L2Expanded, cuvs::distance::DistanceType::InnerProduct},
{false, true},
{false},
{0.99},
{1.0f, 2.0f, 3.0f});
inputs.insert(inputs.end(), inputs2.begin(), inputs2.end());

// Varying dim, adding non_owning_memory_buffer_flag
inputs2 =
raft::util::itertools::product<AnnCagraInputs>({100},
{1000},
{1, 5, 8, 64, 137, 256, 619, 1024}, // dim
{10},
{graph_build_algo::IVF_PQ},
{search_algo::AUTO},
{10},
{0}, // team_size
{64},
{1},
{cuvs::distance::DistanceType::L2Expanded},
{false},
{false},
{0.995});
inputs2 = raft::util::itertools::product<AnnCagraInputs>(
{100},
{1000},
{1, 5, 8, 64, 137, 256, 619, 1024}, // dim
{10},
{graph_build_algo::IVF_PQ},
{search_algo::AUTO},
{10},
{0}, // team_size
{64},
{1},
{cuvs::distance::DistanceType::L2Expanded, cuvs::distance::DistanceType::InnerProduct},
{false},
{false},
{0.995});
for (auto input : inputs2) {
input.non_owning_memory_buffer_flag = true;
inputs.push_back(input);
Expand All @@ -1059,38 +1059,38 @@ inline std::vector<AnnCagraInputs> generate_inputs()
inline std::vector<AnnCagraInputs> generate_addnode_inputs()
{
// changing dim
std::vector<AnnCagraInputs> inputs =
raft::util::itertools::product<AnnCagraInputs>({100},
{1000},
{1, 8, 17, 64, 128, 137, 512, 1024}, // dim
{16}, // k
{graph_build_algo::NN_DESCENT},
{search_algo::AUTO},
{10},
{0},
{64},
{1},
{cuvs::distance::DistanceType::L2Expanded},
{false},
{true},
{0.995});
std::vector<AnnCagraInputs> inputs = raft::util::itertools::product<AnnCagraInputs>(
{100},
{1000},
{1, 8, 17, 64, 128, 137, 512, 1024}, // dim
{16}, // k
{graph_build_algo::NN_DESCENT},
{search_algo::AUTO},
{10},
{0},
{64},
{1},
{cuvs::distance::DistanceType::L2Expanded, cuvs::distance::DistanceType::InnerProduct},
{false},
{true},
{0.995});

// testing host and device datasets
auto inputs2 =
raft::util::itertools::product<AnnCagraInputs>({100},
{10000},
{32},
{10},
{graph_build_algo::AUTO},
{search_algo::AUTO},
{10},
{0}, // team_size
{64},
{1},
{cuvs::distance::DistanceType::L2Expanded},
{false, true},
{false},
{0.985});
auto inputs2 = raft::util::itertools::product<AnnCagraInputs>(
{100},
{10000},
{32},
{10},
{graph_build_algo::AUTO},
{search_algo::AUTO},
{10},
{0}, // team_size
{64},
{1},
{cuvs::distance::DistanceType::L2Expanded, cuvs::distance::DistanceType::InnerProduct},
{false, true},
{false},
{0.985});
inputs.insert(inputs.end(), inputs2.begin(), inputs2.end());

// a few PQ configurations
Expand Down Expand Up @@ -1138,7 +1138,7 @@ inline std::vector<AnnCagraInputs> generate_filtering_inputs()
{0},
{256},
{1},
{cuvs::distance::DistanceType::L2Expanded},
{cuvs::distance::DistanceType::L2Expanded, cuvs::distance::DistanceType::InnerProduct},
{false},
{true},
{0.995});
Expand All @@ -1155,7 +1155,7 @@ inline std::vector<AnnCagraInputs> generate_filtering_inputs()
{0},
{256},
{1},
{cuvs::distance::DistanceType::L2Expanded},
{cuvs::distance::DistanceType::L2Expanded, cuvs::distance::DistanceType::InnerProduct},
{false},
{true},
{0.995});
Expand All @@ -1173,7 +1173,7 @@ inline std::vector<AnnCagraInputs> generate_filtering_inputs()
{0},
{64},
{1},
{cuvs::distance::DistanceType::L2Expanded},
{cuvs::distance::DistanceType::L2Expanded, cuvs::distance::DistanceType::InnerProduct},
achirkin marked this conversation as resolved.
Show resolved Hide resolved
{false},
{true},
{0.6}); // don't demand high recall without refinement
Expand Down
Loading