|
| 1 | +#pragma once |
| 2 | +/************************************** |
| 3 | + Define and register tests |
| 4 | + NOTE: benchmarks' tests order can affect their results. Please add new benchmarks at the end of |
| 5 | +the file. |
| 6 | +***************************************/ |
| 7 | + |
| 8 | +// Memory BF |
| 9 | +BENCHMARK_TEMPLATE_DEFINE_F(BM_VecSimCommon, BM_FUNC_NAME(Memory, FLAT), int8_index_t) |
| 10 | +(benchmark::State &st) { Memory_FLAT(st); } |
| 11 | +BENCHMARK_REGISTER_F(BM_VecSimCommon, BM_FUNC_NAME(Memory, FLAT))->Iterations(1); |
| 12 | + |
| 13 | +// Memory HNSW |
| 14 | +BENCHMARK_TEMPLATE_DEFINE_F(BM_VecSimCommon, BM_FUNC_NAME(Memory, HNSW), int8_index_t) |
| 15 | +(benchmark::State &st) { Memory_HNSW(st); } |
| 16 | +BENCHMARK_REGISTER_F(BM_VecSimCommon, BM_FUNC_NAME(Memory, HNSW))->Iterations(1); |
| 17 | + |
| 18 | +// Memory Tiered |
| 19 | +BENCHMARK_TEMPLATE_DEFINE_F(BM_VecSimCommon, BM_FUNC_NAME(Memory, Tiered), int8_index_t) |
| 20 | +(benchmark::State &st) { Memory_Tiered(st); } |
| 21 | +BENCHMARK_REGISTER_F(BM_VecSimCommon, BM_FUNC_NAME(Memory, Tiered))->Iterations(1); |
| 22 | + |
| 23 | +// AddLabel |
| 24 | +BENCHMARK_TEMPLATE_DEFINE_F(BM_VecSimBasics, BM_ADD_LABEL, int8_index_t) |
| 25 | +(benchmark::State &st) { AddLabel(st); } |
| 26 | +REGISTER_AddLabel(BM_ADD_LABEL, VecSimAlgo_BF); |
| 27 | +REGISTER_AddLabel(BM_ADD_LABEL, VecSimAlgo_HNSWLIB); |
| 28 | + |
| 29 | +// DeleteLabel Registration. Definition is placed in the .cpp file. |
| 30 | +REGISTER_DeleteLabel(BM_FUNC_NAME(DeleteLabel, BF)); |
| 31 | +REGISTER_DeleteLabel(BM_FUNC_NAME(DeleteLabel, HNSW)); |
| 32 | + |
| 33 | +// TopK BF |
| 34 | +BENCHMARK_TEMPLATE_DEFINE_F(BM_VecSimCommon, BM_FUNC_NAME(TopK, BF), int8_index_t) |
| 35 | +(benchmark::State &st) { TopK_BF(st); } |
| 36 | +REGISTER_TopK_BF(BM_VecSimCommon, BM_FUNC_NAME(TopK, BF)); |
| 37 | + |
| 38 | +// TopK HNSW |
| 39 | +BENCHMARK_TEMPLATE_DEFINE_F(BM_VecSimCommon, BM_FUNC_NAME(TopK, HNSW), int8_index_t) |
| 40 | +(benchmark::State &st) { TopK_HNSW(st); } |
| 41 | +REGISTER_TopK_HNSW(BM_VecSimCommon, BM_FUNC_NAME(TopK, HNSW)); |
| 42 | + |
| 43 | +// TopK Tiered HNSW |
| 44 | +BENCHMARK_TEMPLATE_DEFINE_F(BM_VecSimCommon, BM_FUNC_NAME(TopK, Tiered), int8_index_t) |
| 45 | +(benchmark::State &st) { TopK_Tiered(st); } |
| 46 | +REGISTER_TopK_Tiered(BM_VecSimCommon, BM_FUNC_NAME(TopK, Tiered)); |
| 47 | + |
| 48 | +// Range BF |
| 49 | +BENCHMARK_TEMPLATE_DEFINE_F(BM_VecSimBasics, BM_FUNC_NAME(Range, BF), int8_index_t) |
| 50 | +(benchmark::State &st) { Range_BF(st); } |
| 51 | +REGISTER_Range_INT8_BF(BM_FUNC_NAME(Range, BF)); |
| 52 | + |
| 53 | +// Range HNSW |
| 54 | +BENCHMARK_TEMPLATE_DEFINE_F(BM_VecSimBasics, BM_FUNC_NAME(Range, HNSW), int8_index_t) |
| 55 | +(benchmark::State &st) { Range_HNSW(st); } |
| 56 | +REGISTER_Range_INT8_HNSW(BM_FUNC_NAME(Range, HNSW)); |
| 57 | + |
| 58 | +// Tiered HNSW add/delete benchmarks |
| 59 | +REGISTER_AddLabel(BM_ADD_LABEL, VecSimAlgo_TIERED); |
| 60 | +REGISTER_DeleteLabel(BM_FUNC_NAME(DeleteLabel, Tiered)); |
| 61 | + |
| 62 | +BENCHMARK_TEMPLATE_DEFINE_F(BM_VecSimBasics, BM_ADD_LABEL_ASYNC, int8_index_t) |
| 63 | +(benchmark::State &st) { AddLabel_AsyncIngest(st); } |
| 64 | +BENCHMARK_REGISTER_F(BM_VecSimBasics, BM_ADD_LABEL_ASYNC) |
| 65 | + ->UNIT_AND_ITERATIONS->Arg(VecSimAlgo_TIERED) |
| 66 | + ->ArgName("VecSimAlgo_TIERED"); |
| 67 | + |
| 68 | +BENCHMARK_TEMPLATE_DEFINE_F(BM_VecSimBasics, BM_DELETE_LABEL_ASYNC, int8_index_t) |
| 69 | +(benchmark::State &st) { DeleteLabel_AsyncRepair(st); } |
0 commit comments