@@ -124,8 +124,11 @@ template <typename Idx> class BackedgeBuffer {
124124 , bucket_locks_{parameters.num_buckets_ } {}
125125
126126 BackedgeBuffer (size_t num_elements, size_t bucket_size)
127- : BackedgeBuffer(BackedgeBufferParameters{
128- bucket_size, lib::div_round_up (num_elements, bucket_size)}) {}
127+ : BackedgeBuffer(
128+ BackedgeBufferParameters{
129+ bucket_size, lib::div_round_up (num_elements, bucket_size)
130+ }
131+ ) {}
129132
130133 // Add a point.
131134 void add_edge (Idx src, Idx dst) {
@@ -184,7 +187,9 @@ class VamanaBuilder {
184187 Dist distance_function,
185188 const VamanaBuildParameters& params,
186189 Pool& threadpool,
187- GreedySearchPrefetchParameters prefetch_hint = {}
190+ GreedySearchPrefetchParameters prefetch_hint = {},
191+ svs::logging::logger_ptr logger = svs::logging::get(),
192+ logging::Level level = logging::Level::Debug
188193 )
189194 : graph_{graph}
190195 , data_{data}
@@ -194,6 +199,20 @@ class VamanaBuilder {
194199 , threadpool_{threadpool}
195200 , vertex_locks_(data.size())
196201 , backedge_buffer_{data.size (), 1000 } {
202+ // Print all parameters
203+ svs::logging::log (
204+ logger,
205+ level,
206+ " Vamana Build Parameters: alpha={}, graph_max_degree={}, "
207+ " max_candidate_pool_size={}, prune_to={}, window_size={}, "
208+ " use_full_search_history={}" ,
209+ params.alpha ,
210+ params.graph_max_degree ,
211+ params.max_candidate_pool_size ,
212+ params.prune_to ,
213+ params.window_size ,
214+ params.use_full_search_history
215+ );
197216 // Check class invariants.
198217 if (graph_.n_nodes () != data_.size ()) {
199218 throw ANNEXCEPTION (
@@ -296,12 +315,9 @@ class VamanaBuilder {
296315 }
297316 }
298317 svs::logging::log (
299- logger,
300- logging::Level::Debug,
301- " Completed pass using window size {}." ,
302- params_.window_size
318+ logger, level, " Completed pass using window size {}." , params_.window_size
303319 );
304- svs::logging::log (logger, logging::Level::Debug , " {}" , timer);
320+ svs::logging::log (logger, level , " {}" , timer);
305321 }
306322
307323 // /
@@ -323,9 +339,7 @@ class VamanaBuilder {
323339 update_type updates{threadpool_.size ()};
324340 auto main = timer.push_back (" main" );
325341 threads::parallel_for (
326- threadpool_,
327- range,
328- [&](const auto & local_indices, uint64_t tid) {
342+ threadpool_, range, [&](const auto & local_indices, uint64_t tid) {
329343 // Thread local variables
330344 auto & thread_local_updates = updates.at (tid);
331345
@@ -476,9 +490,7 @@ class VamanaBuilder {
476490 auto range = threads::StaticPartition{indices};
477491 backedge_buffer_.reset ();
478492 threads::parallel_for (
479- threadpool_,
480- range,
481- [&](const auto & is, uint64_t SVS_UNUSED (tid)) {
493+ threadpool_, range, [&](const auto & is, uint64_t SVS_UNUSED (tid)) {
482494 for (auto node_id : is) {
483495 for (auto other_id : graph_.get_node (node_id)) {
484496 std::lock_guard lock{vertex_locks_[other_id]};
@@ -527,7 +539,8 @@ class VamanaBuilder {
527539 i,
528540 distance::compute (
529541 general_distance, src_data, general_accessor (data_, i)
530- )};
542+ )
543+ };
531544 };
532545
533546 candidates.clear ();
0 commit comments