github facebookresearch/faiss v1.14.2

4 hours ago

Highlights

  • SuperKMeans — faster k-means via ADSampling + PDX progressive pruning (#5168)
  • Metal GPU backend for Apple Silicon, starting with IndexFlat (#5144)
  • RVV (RISC-V Vector) SIMD backend + RISC-V cross-compilation CI (#5156, #5184)
  • pip install support via scikit-build-core + cibuildwheel (#4862)
  • SVS IVF index enabled; SVS upgraded to 0.3.0 (#4801, #4999); SVSVamana usable as IVF coarse quantizer via index_factory (#5175)
  • TurboQuant (CPU) quantizer (#5049)
  • HNSW improvements — optional persistent locks for incremental adds (#5031), prune_headroom to avoid O(n²) pruning (#4847), narrower add-time critical section (#4915)
  • Extensive index deserialization hardening — validation and OOM/overflow protection across ~40 PRs (binary, IVF, HNSW, FastScan, ScalarQuantizer, AdditiveQuantizer, ProductQuantizer, SVS, VectorTransform, …)
  • Major Dynamic Dispatch refactor across distances, hamming, partitioning, RaBitQ, FastScan; dynamic dispatch now builds on Windows (#5127)
  • cuVS upgraded to 26.02 (#4945, #4788); CI moved to CUDA 13.2 (#5207); C++20 for cuVS (#4881); filtered search for cuVS indexes (#4858)
  • OMP exception safety across IndexHNSW, IndexNNDescent, IndexNSG, IndexFlatCodes, IndexIVF (#5106, #5105, #5111, #5133, #5037, #5053)

Full Changelog

Added

  • b7618fa Add SuperKMeans: faster k-means via ADSampling+PDX progressive pruning (#5168)
  • 66c9d08 Add SuperKMeans foundations: math primitives, PDX layout, SIMD kernels
  • dc7afcf Support SVSVamana as IVF coarse quantizer via index_factory (#5175)
  • 7a8e4dd CI: cross-compile for riscv64 with RVV dynamic dispatch (#5184)
  • 0320279 Introduce RVV (#5156)
  • 417c53e Add NoneSIMDLevel context manager for cross-level reference checks (#5158)
  • 46def46 Enable SVS IVF Index in FAISS (#4801)
  • 585ba79 Add pip install support via scikit-build-core + cibuildwheel (#4862)
  • 799bf3a Introduce early stop facilities for IVF, attempt 2 (#5160)
  • 66cea52 Add Metal GPU backend for Apple Silicon (IndexFlat) (#5144)
  • 17fd333 Add database-parallel flat search for few-query workloads (#5000)
  • c7f07bb Add C++ per-SIMD-level tests for distance utility functions (#5154)
  • 0242758 Add bit-exact RQ encode cross-level test (#5155)
  • 2f68a37 Add per-SIMD-level tests for hamming.h utils + fix crosshamming bug (#5153)
  • a7116ed Add TurboQuant (CPU) (#5049)
  • 11e5d39 Add optional persistent locks to IndexHNSW for incremental adds (#5031)
  • e82aa28 Add OMP exception capture helpers and migrate IndexIVF (#5111)
  • 6299bff Add QT_0bit to ScalarQuantizer for centroid-only IVF distance (#5079)
  • 3030fe0 Add filtered search for cuVS indexes (#4858)
  • f83ea51 Support IVFRaBitQSearchParameters in RaBitQFastScan scanner (#5081)
  • 82a8235 Add iterator callbacks for distance computation and heap admission (#5082)
  • b068fd9 Support IO_FLAG_MMAP_IFC on Darwin (#5058)
  • 113bf6c Expose fast_scan_code_size from non-IVF FastScan indices (#5077)
  • 786d993 Expose a fast scan code size from fast scan indices (#5064)
  • 95f1e45 OMP build diagnostics (#4842)
  • c4ac852 Add a balanced assignment function (#5050)
  • 8402a6b Add unit tests for HNSW deserialization validation (#5033)
  • 1dc5e1f V2 enable specifying a subset of SIMD levels that are implemented at dispatching time. (#4959)
  • e6f5c0c Add SIMD dynamic dispatch migration guide (#4973)
  • 8177a3b Add nvidia-smi diagnostic call (#4960)
  • 67fc664 Add CappedInvertedLists for per-list size limiting (#4880)
  • e57a893 introduce SingleQueryResultCollectHandler (#4926)
  • 748c031 HNSW: add prune_headroom to avoid O(n^2) pruning/locking, headroom test (#4847)
  • 1e4d227 Introduce an early stop threshold for Kmeans (#4894)
  • 4a0fba1 Add FastScanCodeScanner dispatch boundary with per-SIMD TUs (#4897)
  • 0fcba22 Add sentinels to index format enums. (#4907)
  • 40480fb Support limits on index deserialization loops — useful for tests (#4902)
  • 1e4544a Add defaulted SIMDLevel template parameter to handler and scaler types (#4867)
  • abdd37b Add Pixi installation option to docs (#5214)

Changed

  • 9d5491a Templatize SIMDResultHandler on SL, mark handle() final (#5223)
  • b63f236 Upgrade GitHub Actions CI from CUDA 12.6 to CUDA 13.2 (#5207)
  • a9f5baa Move RISC-V fast_scan forwarders to dedicated impl-riscv.cpp (#5216)
  • 8932716 Validate SVS storage_kind via shared helper at all deserialization read sites (#5204)
  • bc490b5 Make IVFPQSearchCagraConfig dtype fields settable from Python (#5191)
  • ffd3727 Update pattern for index factory string with SVSVamana (#5201)
  • f37041d Extract Metal shaders to standalone .metal file with kernel wrapper class (#5167)
  • d98364e perf: reserve() to avoid rehashing/reallocation (#5193)
  • 4eee3d7 Add tolerance and assertion log to test_OIVFPQ (#5188)
  • 2322afd faiss: parallelize post-BLAS reduction loop and end_multiple() in result handlers (#5185)
  • 967eda6 Replace FAISS_ASSERT with FAISS_THROW_FMT for unsupported SVSStorageKind (#5182)
  • 715725d Enable verbose mode for TestPyPI publish step (#5181)
  • 5e12311 Filter wheel artifacts before publishing to PyPI (#5179)
  • 28b2b66 Inline PQ code distance kernels into scanner TUs (#5159)
  • c41405d Enforce minimum training set size for ScalarQuantizer, check nullptr (#5141)
  • 44c1972 Enable ccache in GitHub Actions cmake builds (#5157)
  • e09de2d Harden compute_query_factors: add preconditions, handle aliasing, remove dead checks
  • 6a9936c Hoist per-iteration vector allocations in IndexIVFRaBitQFastScan::compute_LUT
  • c3460c9 Convert binary index Hamming callers to dynamic dispatch (#5071)
  • ecac651 Convert hamming.cpp public API to dynamic dispatch (#5070)
  • 8d1b964 Enable dynamic dispatch build on Windows (#5127)
  • a25bcb1 Rely on cuVS for default values (#5140)
  • 0622841 Panorama Optimizations (#5041)
  • f4338ad Parameterize existing tests with @for_all_simd_levels (#5134)
  • 9d56749 Wire 512-bit QBS kernels into fast scan DD dispatch (#5075)
  • bdf877f facebook-unused-include-check in IndexNNDescent.cpp (#5132)
  • 632427f fbcode/faiss/invlists (#5048)
  • e23c661 Replace dispatch_HammingComputer with with_HammingComputer (#5126)
  • ed7e1f2 Hoist SIMD dispatch outside loops in 4 call sites (#5074)
  • 582246b Remove use of __AMDGCN_WAVEFRONT_SIZE macro with it being deprecated in ROCm 7 (#4619)
  • 2dff119 Add braces around single-line control flow statements
  • cc0c087 Hoist SIMD dispatch out of approx_topk hot loops (#5073)
  • 18f93fd Replace SSE3 intrinsics in Index2Layer with portable scalar code (#5076)
  • 42765ab Optimize RaBitQ FastScan LUT construction for high-dimensional data (#5110)
  • ec5e70c Optimize multibit sign-bit unpacking in RaBitQ FastScan handlers (#5097)
  • 3f127ee Thread qb/centered search params through FastScan LUT and handler (#5095)
  • 3c19c52 Use std:: qualified math functions to avoid float-to-double promotion (#5088)
  • 48d2b0c Replace typedef with using declarations (#5086)
  • e12debc Remove extra semicolons after inline member function definitions (#5085)
  • 5679d3a HNSW Cagra base-level entrypoint sampling parallel (#5068)
  • c4efc42 Remove bare simdlib type aliases from simdlib_dispatch.h (#5069)
  • 4a63c9e Convert partitioning to dynamic dispatch (#5062)
  • f226be4 Roll out @for_all_simd_levels to key test files (#5061)
  • afd6949 fbcode/faiss/impl/HNSW.cpp (#5059)
  • 658c434 Replace bare assert() with FAISS_THROW_IF_NOT in core index files (#5052)
  • 364749e Re-enable ROCm runner for AMD GPU CI (#4854)
  • faeac86 Update outdated C++17 and Python 2 references (#5045)
  • 77e6028 Use HTTPS for GitHub links in README (#5043)
  • 91843bd Use explicit ISA flags instead of -march/-mtune=sapphirerapids (#5034)
  • acac823 Merge .gitignore updates from faiss-gpu-cu132 into main (#4996)
  • 8d8881e Make distance_compute_blas_threshold dimension-aware (#5022)
  • 553c78b HNSW SIMD dispatch (#5015)
  • 499b488 close the loop on ivf rabitq fast scan filter integration (#5026)
  • aef066a SVS 0.3.0 (#4999)
  • cc34603 reuse unpack buffer in multibit IVFRaBitQFastScan refinement (#5003)
  • d81584d Update Python type stubs: fix class hierarchy and add missing base classes (#5004)
  • d1c432f Convert rabitq_simd.h to runtime SIMD dispatch (#4912)
  • 6bca961 Convert distances_fused/ to runtime SIMD dispatch (#4911)
  • 04d0d56 facebook-unused-include-check in distances_simd.cpp (#5013)
  • 7eb05f0 facebook-unused-include-check in partition.cpp (#5012)
  • 7e04fa2 Update Python type stubs (init.pyi) to match current API (#4998)
  • db0e798 Use omp_get_max_threads() for OpenMP thread count (#4991)
  • 9af8384 Bump openblas from 0.3.30 to 0.3.32 in conda recipes (#4994)
  • c048917 Enable quieting FAISS warning "inverted lists not stored" (#4964)
  • b2ddb46 Loosen SVS findpackage version requirement (#4969)
  • d8c3d26 Upgrade to C++20 for CUVS (#4881)
  • 94f2b51 Rename train() with queries to train_with_queries (#4955)
  • 02d609c Upgrade cuVS Version to 26.02 (#4945)
  • 55a47c9 Upgrade cuVS Version to 26.02, switch various BUCK files over to 26.02 (#4788)
  • 0d147a7 Make READVECTOR byte limit configurable (#4928)
  • 9962fbe HNSW: narrow critical section during add to avoid lock contention (#4915)
  • b1feeb7 Convert approx_topk and residual_quantizer_encode_steps to SIMDLevel dynamic dispatch (#4923)
  • 58a57e6 Re-enable backwards compatibility tests for rabitq now that 1.14.1 released (#4924)
  • 5dcef18 Refactor binary HNSW stats to use OpenMP reduction instead of destructor sync (#4910)
  • d8c1a97 move distances implementation into SIMD specific compile units (#4906)
  • ea11f0e Switch all search paths to FastScanCodeScanner and remove make_knn_handler (#4904)
  • 57190f9 Wire RaBitQ search through FastScanCodeScanner dispatch (#4903)
  • 79e8acb Parallelize compute_residuals in IndexIVFPQ (#4654)
  • eddea2a Extract RaBitQ result handler to impl/fast_scan/ (#4895)
  • 734751a Extract PQ4 kernels to includable headers in impl/pq_4bit/ (#4868)
  • bb298a2 convert simdlib in distances_simd.cpp (#4884)
  • 8d8268c Templatize simdlib types on SIMDLevel (#4866)
  • c74809a Improve exception safety for the 'own_fields'/allocation pattern (#4864)
  • c6cf004 use level but not 0 in neighbor_range(i, level, &begin, &end) (line 198) (#5005)

Fixed

  • cb69d7c Fix Dq=None crash and np.empty nondeterminism in search_preassigned wrappers (#5221)
  • 5c92c5c Fix flaky test_hnsw smoke test by increasing efSearch (#5222)
  • 8d3cc92 Fix clone_index null return for IndexRowwiseMinMax (#5220)
  • ff1d543 Fix python_unnecessary_generator_set_comprehension issues in faiss/tests/test_fastscan_filter.py (#5215)
  • e235915 Fix FastScan DD regression by threading SIMD level through kernel functions (#5210)
  • 172324a Fix IDSelectorBitmap conversion to cuVS bitset (#5211)
  • 6bd749e Fix IDSelector leak via SearchParameters.sel setter (#5208)
  • 6376bc3 Fix CI: (cuVS) conda shards cache lock, (ARM) bump openblas, (SVS) fix LeanVec double-destruction (#5209)
  • 4b5a735 Fix python_unnecessary_generator_set_comprehension issues in faiss/.../bench_fw/optimize.py (#5205)
  • 6789bf5 Validate IndexIDMap id_map and inner-index ntotal consistency to prevent search-time null deref (#5203)
  • f750815 Pin MKL to <2026 to avoid soname mismatch with pytorch (#5192)
  • bb2ce71 Fix 7 broken tests (#5197)
  • f323c0f Fix backward compat test (#5195)
  • 23cd94c Reduce BinaryCagra test parameters to prevent CI timeouts (#5194)
  • 85fc627 Validate ProductQuantizer M*ksub during deserialization to prevent oversized allocations (#5187)
  • 6cef1bb Fix cuVS and ROCm CI conda environment failures (#5180)
  • 4a471ee Pin conda <25.7 to fix Windows build (#5176)
  • a9c0d41 Work around GCC 12 miscompilation of AVX2 histogram (#5124)
  • 40a8cc0 Fix lints associated with early stop facilities for IVF (#5172)
  • 1e69d5a Fix peak-memory spike when loading IVF invlists via IO_FLAG_MMAP_IFC (#5122)
  • 9942229 Fix add_sa_codes silently accepting non-int64 ids, corrupting stored labels (#5171)
  • c5ddbc7 c_api: fix IndexShards own_indices getter/setter name mismatch (#5165)
  • 8380e25 Fix avx512 unit test (#5161)
  • 71448c0 Fix issue with svs tests (#5162)
  • 6c70444 Validate code_size during deserialization to prevent oversized allocations (#5151)
  • 9dbb81c Set own_fields after reading Index2Layer sub-quantizer during deserialization (#5147)
  • 01b22b4 Fix memory leak warning for unordered_multimap in IndexIVFFlatDedup Python binding (#1667) (#5145)
  • 130fc24 Fix flaky test (#5150)
  • dfce6e9 Fix OMP exception safety in IndexHNSW search (#5133)
  • c627334 Fix sa_decode offset bug and integer overflow in IndexRefine (#5143)
  • 1b4b995 Fix implicit integer precision loss from 64-bit to 32-bit (#5091)
  • b056894 Fix miscellaneous lint warnings (#5093)
  • ed11f28 Fix broken fbcode//faiss/tests:test_contrib - test_checkpoint (test_contrib.TestBigBatchSearch) (#5139)
  • 277c53d Fix PCA training bug and memory safety issues in VectorTransform.cpp (#5138)
  • 8312540 Fix integer type truncation in IDSelectorBatch bloom filter mask (#5136)
  • 9cbc8da Fix integer overflow and unbounded loop in Clustering.cpp (#5130)
  • 3c4056d Fix race condition in HNSW::add_with_locks (#5129)
  • 6e64c5d Bump GCC pin in faiss-gpu conda recipe to fix AVX2 SIMD miscompilation (#5125)
  • 58f6ebb Add per-read byte limit to SVS ReaderStreambuf to prevent OOM from corrupt index data (#5118)
  • 817ecf9 Validate inverted list entry sizes against deserialization byte limit (#5117)
  • e6be162 Validate VectorTransform dimension consistency during deserialization (#5115)
  • 6707eac Add is_trained check to IndexIVF search and range_search to prevent querying untrained indexes (#5114)
  • 349df70 Validate IndexHNSW2Level storage type during deserialization and search (#5113)
  • edd6f3b Reject null quantizer during IVF index deserialization (#5112)
  • 27078c5 Fix OMP exception safety in IndexNNDescent and IndexNSG search (#5106)
  • 99db159 Fix OMP exception safety in IndexFlatCodes search (#5105)
  • 40ad646 Fix cuVS build (#5107)
  • 57bf474 Fix int/size_t signedness mismatches in HNSW add (#5116)
  • f9f116d Validate k_factor during deserialization to prevent search-time OOM (#5104)
  • 2d8232c Set code_size on IVFRaBitQFastScanScanner (#5099)
  • b923091 fix: GPU CAGRA copyFrom host-memory lifetime dependency and add regression test (#4968)
  • 796977a Fix IndexBinaryMultiHash::reset() not clearing hash maps and avoid unnecessary copies (#5100)
  • b86066a fix: cagra bug (#4963)
  • 91f6636 Add value-initialization to uninitialized member variables (#5089)
  • 61ed7dc Fix orphaned OpenMP directives in IndexRowwiseMinMax training functions (#5096)
  • 740d3a3 Fix FastScan for indices without own inverted lists + performance optimizations in RaBitQ handler (#5080)
  • 7cc6342 Suppress unused static constexpr variable warnings (#5087)
  • aa3ce37 Fix race condition, memory management, debug output, and hashtable lookup in sorting.cpp (#5078)
  • 86d3371 Validate FastScan M2 consistency during deserialization (#5056)
  • 67f066f Validate SVS storage_kind during deserialization (#5055)
  • e899476 Default-initialize SVSStorageKind in IndexSVSVamana (#5054)
  • c1e48a2 Add search-path bounds checking to IndexIVF::search1 (#5040)
  • 97d2574 Fix correctness bugs in NNDescent Nhood copy/move operations and gen_random bounds (#5072)
  • 06ef481 Fix uncaught exceptions in IndexIVF::range_search_preassigned OpenMP region (#5053)
  • 2552509 Fix bugs in NSG search_on_graph and sync_prune (#5063)
  • 7047dc5 Fix priority_queue constructor inheritance for Apple Clang on macOS (#5065)
  • e0a1aec Assorted Dynamic Dispatch cleanup fixes (#5060)
  • 25296ba Fix type mismatch bug and remove dead code in IndexRowwiseMinMax::sa_decode_impl (#5051)
  • 7b2705c Debug manifold crash with NaN (#5025)
  • 9d3f97e Fix duplicate words and grammar typos across codebase (#5044)
  • 84262f0 Fix d_out check bug and add descriptive error messages to VectorTransform assertions (#5047)
  • ef28c6b Fix uncaught exceptions in IndexIVF::search_preassigned OpenMP region (#5037)
  • 8008ca2 Fix deadly signal in to_svs_metric() for unsupported metrics (#5032)
  • 4b8da68 Fix IndexSVSVamana null-deref in deserialize_impl (#5029)
  • ab3da52 Cap ZnSphereCodecRec decode cache size (#5028)
  • d68050d Add missing input validation to IndexFlat::range_search and compute_distance_subset (#5038)
  • c6fa50a Validate IndexIDMap id_map size during deserialization (#5024)
  • 408786b Validate AdditiveQuantizer dimension consistency during deserialization (#5023)
  • 0ce4dfb Fix AVX512_SPR build failure for 512-bit SIMD types (#5030)
  • a308ada Harden ScalarQuantizer deserialization validation (#5020)
  • ab46dcb Validate qbs at deserialization time in FastScan index formats (#5019)
  • 668da4a Validate IndexBinaryHash b <= code_size*8 during deserialization (#5011)
  • 87bc9b0 Validate IndexFastScan quantizer state during deserialization (#5009)
  • 4c39156 Validate codebooks size at deserialization time in read_AdditiveQuantizer (#5008)
  • 8c1f3f4 read-heap-buffer-overflow (size 32) in float faiss::fvec_norm_L2sqr<>()
  • 226ccf3 Fix OSX arm64 nightly: bump libopenblas from 0.3.30 to 0.3.32 (#5006)
  • aeb170c large-malloc (15023964028 bytes) in __sanitizer::RunMallocHooks() (#5018)
  • 8550f23 Validate VectorTransform dimensions during deserialization (#5007)
  • 833d4aa out-of-memory in __gnu_cxx::new_allocator<>::allocate() (#5014)
  • d716be3 Fix avx512_result_handlers build on aarch64 (#4965)
  • 18c85e1 Add deserialization vector limit enforcement for ResidualCoarseQuantizer (#4997)
  • b74f3cd Validate IndexBinaryMultiHash b and nhash*b bounds during deserialization (#4984)
  • b9f4960 Add invlists null check to IndexBinaryIVF::search (#4980)
  • ba1981c Add input validation to IndexBinaryHNSW search preconditions (#4979)
  • d26c15d Validate binary index consistency during deserialization (#4978)
  • 2c28ef5 Validate RaBitQ qb during deserialization (#4983)
  • 5a4d621 deadly-signal (vector::_M_default_append) in __clang_call_terminate (#4986)
  • 0759009 Fix compiler warnings for pip wheel builds (macOS + Windows) (#4989)
  • 8a80b3d signal in faiss::ArrayInvertedListsPanorama::ArrayInvertedListsPanorama() (#4987)
  • 12675af out-of-memory in __gnu_cxx::new_allocator<>::allocate() (#4985)
  • 0a8e516 Fix HNSW Panorama Perf Bug (#4974)
  • 6dbf271 Validate VectorTransform data during deserialization (#4981)
  • 3f79389 Fix MSVC link failure: remove __restrict from fvec_madd specializations (#4972)
  • d47b281 deadly-signal (vector::_M_default_append) in __clang_call_terminate (#4982)
  • f851c54 large-malloc (6241124352 bytes) in __sanitizer::RunMallocHooks() (#4977)
  • bd5ed00 Validate inverted lists pointer in IndexIVF operations (#4951)
  • 398857b Handle empty index in IndexHNSWCagra base_level_only search (#4950)
  • d647b59 Validate graph index data during deserialization (#4949)
  • e5114c2 fix: resolve compiler warnings in binary and miscellaneous Index files (#4940)
  • 44f57ba fix: resolve compiler warnings in top-level FAISS source files (#4943)
  • b3a2914 fix: resolve compiler warnings in test files (#4944)
  • 88efcb9 fix: resolve compiler warnings in core base classes and headers (#4933)
  • 7acc420 fix: resolve compiler warnings in inverted lists and cppcontrib (#4939)
  • 64a2122 fix: resolve compiler warnings in IO, result handlers, and misc impl (#4936)
  • a05f13f fix: resolve compiler warnings in PQ, PreTransform, and Refine Index files (#4941)
  • 7645426 fix: resolve compiler warnings in IVF Index implementations (#4942)
  • f5142bf large-malloc (7046432072 bytes) in __sanitizer::RunMallocHooks() (#4967)
  • 4db01e3 fix: resolve compiler warnings in graph-based index implementations (#4956)
  • ccc3cd6 Validate code vector sizes during index deserialization (#4948)
  • ec30fb3 Use BitstringReader in IndexBinaryHash to avoid OOB reads (#4961)
  • fa8ddd9 Fix flaky test for Panaorama/regular IVFFlat equivalence (#4954)
  • 1e6729d Validate quantizer data sizes during index deserialization (#4947)
  • 62a1969 fix: resolve compiler warnings in distance and hamming utilities (#4937)
  • 645a742 Re add cuvs to cmakelists.txt (#4953)
  • 5287db0 fix: resolve compiler warnings in graph-based index implementations (#4934)
  • a48e45a fix: resolve compiler warnings in quantizer implementations (#4935)
  • 32ca42f fix: resolve compiler warnings in SIMD, sorting, and misc utilities (#4938)
  • 52d9fc7 Add overflow check in READVECTOR macro (#4946)
  • 0f7e65e Enforce memory limit in read_ProductQuantizer (#4930)
  • 9ea026c Validate codes vector size in BlockInvertedLists deserialization (#4920)
  • a4385df Validate n_per_block and block_size in BlockInvertedLists deserialization (#4919)
  • cdb7254 Validate id_map size matches ntotal in IndexBinaryIDMap deserialization (#4917)
  • 05ca04e Validate per-entry ilsz in read_binary_multi_hash_map (#4916)
  • b023178 Fix MSVC OpenMP build: use idx_t instead of size_t in parallel for loop (#4922)
  • 5b83ec6 Fix OpenMP critical section contention in IndexBinaryHNSW search (#4909)
  • e96ba2d fix: decouple coarse quantizer from cuvs index reset (#4885)
  • 9d6b2e7 Additional input validation for index deserialization (#4899)
  • 796bdf9 Additional binary index input validation (#4898)
  • d0434be Fix cloning for IVFFlatPanorama (#4887)
  • 3e4c103 Validate dynamic_casts during index load (#4883)
  • 47e53b4 Fix backward compatibility to use latest version (#4855)

Deprecated

  • 812010f Remove flaky test (#5169)
  • 74dceee Remove RaBitQStats debug counters from all RaBitQ handlers (#5102)
  • 000eec2 Delete old pq4_accumulate_loop files (replaced by dispatching.h) (#4905)

Compare: v1.14.1...v1.14.2

Don't miss a new faiss release

NewReleases is sending notifications on new releases.