@@ -594,10 +594,15 @@ class PyTiered_SVSIndex : public PyTieredIndex {
594
594
explicit PyTiered_SVSIndex (const SVSParams &svs_params,
595
595
const TieredSVSParams &tiered_svs_params, size_t buffer_limit) {
596
596
597
- // Create primaryIndexParams and specific params for hnsw tiered index.
597
+ // Create primaryIndexParams and specific params for svs tiered index.
598
598
VecSimParams primary_index_params = {.algo = VecSimAlgo_SVS,
599
599
.algoParams = {.svsParams = svs_params}};
600
600
601
+ if (primary_index_params.algoParams .svsParams .num_threads == 0 ) {
602
+ primary_index_params.algoParams .svsParams .num_threads =
603
+ this ->mock_thread_pool .thread_pool_size ; // Use the mock thread pool size as default
604
+ }
605
+
601
606
auto tiered_params = this ->getTieredIndexParams (buffer_limit);
602
607
tiered_params.primaryIndexParams = &primary_index_params;
603
608
tiered_params.specificParams .tieredSVSParams = tiered_svs_params;
@@ -611,6 +616,10 @@ class PyTiered_SVSIndex : public PyTieredIndex {
611
616
// Set the created tiered index in the index external context.
612
617
this ->mock_thread_pool .ctx ->index_strong_ref = this ->index ;
613
618
}
619
+
620
+ size_t SVSLabelCount () {
621
+ return this ->index ->debugInfo ().tieredInfo .backendCommonInfo .indexLabelCount ;
622
+ }
614
623
};
615
624
#endif
616
625
@@ -672,10 +681,13 @@ PYBIND11_MODULE(VecSim, m) {
672
681
673
682
py::enum_<VecSimSvsQuantBits>(m, " VecSimSvsQuantBits" )
674
683
.value (" VecSimSvsQuant_NONE" , VecSimSvsQuant_NONE)
675
- .value (" VecSimSvsQuant_8 " , VecSimSvsQuant_8 )
684
+ .value (" VecSimSvsQuant_Scalar " , VecSimSvsQuant_Scalar )
676
685
.value (" VecSimSvsQuant_4" , VecSimSvsQuant_4)
686
+ .value (" VecSimSvsQuant_8" , VecSimSvsQuant_8)
677
687
.value (" VecSimSvsQuant_4x4" , VecSimSvsQuant_4x4)
678
688
.value (" VecSimSvsQuant_4x8" , VecSimSvsQuant_4x8)
689
+ .value (" VecSimSvsQuant_4x8_LeanVec" , VecSimSvsQuant_4x8_LeanVec)
690
+ .value (" VecSimSvsQuant_8x8_LeanVec" , VecSimSvsQuant_8x8_LeanVec)
679
691
.export_values ();
680
692
681
693
py::class_<SVSParams>(m, " SVSParams" )
@@ -705,6 +717,7 @@ PYBIND11_MODULE(VecSim, m) {
705
717
py::class_<TieredSVSParams>(m, " TieredSVSParams" )
706
718
.def (py::init ())
707
719
.def_readwrite (" trainingTriggerThreshold" , &TieredSVSParams::trainingTriggerThreshold)
720
+ .def_readwrite (" updateTriggerThreshold" , &TieredSVSParams::updateTriggerThreshold)
708
721
.def_readwrite (" updateJobWaitTime" , &TieredSVSParams::updateJobWaitTime);
709
722
710
723
py::class_<AlgoParams>(m, " AlgoParams" )
@@ -799,7 +812,9 @@ PYBIND11_MODULE(VecSim, m) {
799
812
size_t flat_buffer_size = DEFAULT_BLOCK_SIZE) {
800
813
return new PyTiered_SVSIndex (svs_params, tiered_svs_params, flat_buffer_size);
801
814
}),
802
- py::arg (" svs_params" ), py::arg (" tiered_svs_params" ), py::arg (" flat_buffer_size" ));
815
+ py::arg (" svs_params" ), py::arg (" tiered_svs_params" ),
816
+ py::arg (" flat_buffer_size" ) = DEFAULT_BLOCK_SIZE)
817
+ .def (" svs_label_count" , &PyTiered_SVSIndex::SVSLabelCount);
803
818
#endif
804
819
805
820
py::class_<PyBatchIterator>(m, " BatchIterator" )
0 commit comments