faiss 0.3.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/faiss/version.rb +1 -1
- data/vendor/faiss/faiss/AutoTune.cpp +11 -8
- data/vendor/faiss/faiss/Clustering.cpp +0 -16
- data/vendor/faiss/faiss/IVFlib.cpp +213 -0
- data/vendor/faiss/faiss/IVFlib.h +42 -0
- data/vendor/faiss/faiss/Index.h +1 -1
- data/vendor/faiss/faiss/IndexBinaryFlat.cpp +9 -7
- data/vendor/faiss/faiss/IndexBinaryFlat.h +2 -1
- data/vendor/faiss/faiss/IndexFlatCodes.cpp +1 -1
- data/vendor/faiss/faiss/IndexFlatCodes.h +4 -2
- data/vendor/faiss/faiss/IndexHNSW.cpp +13 -20
- data/vendor/faiss/faiss/IndexHNSW.h +1 -1
- data/vendor/faiss/faiss/IndexIVF.cpp +20 -3
- data/vendor/faiss/faiss/IndexIVF.h +5 -2
- data/vendor/faiss/faiss/IndexIVFAdditiveQuantizer.cpp +2 -1
- data/vendor/faiss/faiss/IndexIVFAdditiveQuantizer.h +2 -1
- data/vendor/faiss/faiss/IndexIVFFlat.cpp +2 -1
- data/vendor/faiss/faiss/IndexIVFFlat.h +2 -1
- data/vendor/faiss/faiss/IndexIVFPQ.cpp +2 -1
- data/vendor/faiss/faiss/IndexIVFPQ.h +2 -1
- data/vendor/faiss/faiss/IndexIVFRaBitQ.cpp +277 -0
- data/vendor/faiss/faiss/IndexIVFRaBitQ.h +70 -0
- data/vendor/faiss/faiss/IndexIVFSpectralHash.cpp +2 -1
- data/vendor/faiss/faiss/IndexIVFSpectralHash.h +2 -1
- data/vendor/faiss/faiss/IndexRaBitQ.cpp +148 -0
- data/vendor/faiss/faiss/IndexRaBitQ.h +65 -0
- data/vendor/faiss/faiss/IndexScalarQuantizer.cpp +2 -1
- data/vendor/faiss/faiss/IndexScalarQuantizer.h +2 -1
- data/vendor/faiss/faiss/clone_index.cpp +38 -3
- data/vendor/faiss/faiss/cppcontrib/factory_tools.cpp +19 -0
- data/vendor/faiss/faiss/cppcontrib/factory_tools.h +4 -11
- data/vendor/faiss/faiss/gpu/GpuAutoTune.cpp +2 -1
- data/vendor/faiss/faiss/gpu/GpuIndexCagra.h +13 -3
- data/vendor/faiss/faiss/gpu/StandardGpuResources.cpp +1 -1
- data/vendor/faiss/faiss/gpu/StandardGpuResources.h +1 -1
- data/vendor/faiss/faiss/gpu/test/TestGpuIcmEncoder.cpp +112 -0
- data/vendor/faiss/faiss/impl/HNSW.cpp +35 -13
- data/vendor/faiss/faiss/impl/HNSW.h +5 -4
- data/vendor/faiss/faiss/impl/NNDescent.cpp +1 -1
- data/vendor/faiss/faiss/impl/RaBitQuantizer.cpp +519 -0
- data/vendor/faiss/faiss/impl/RaBitQuantizer.h +78 -0
- data/vendor/faiss/faiss/impl/ResultHandler.h +2 -2
- data/vendor/faiss/faiss/impl/code_distance/code_distance-sve.h +3 -4
- data/vendor/faiss/faiss/impl/index_read.cpp +220 -25
- data/vendor/faiss/faiss/impl/index_write.cpp +29 -0
- data/vendor/faiss/faiss/impl/io.h +2 -2
- data/vendor/faiss/faiss/impl/io_macros.h +2 -0
- data/vendor/faiss/faiss/impl/mapped_io.cpp +313 -0
- data/vendor/faiss/faiss/impl/mapped_io.h +51 -0
- data/vendor/faiss/faiss/impl/maybe_owned_vector.h +316 -0
- data/vendor/faiss/faiss/impl/platform_macros.h +7 -3
- data/vendor/faiss/faiss/impl/simd_result_handlers.h +1 -1
- data/vendor/faiss/faiss/impl/zerocopy_io.cpp +67 -0
- data/vendor/faiss/faiss/impl/zerocopy_io.h +32 -0
- data/vendor/faiss/faiss/index_factory.cpp +16 -5
- data/vendor/faiss/faiss/index_io.h +4 -0
- data/vendor/faiss/faiss/invlists/InvertedLists.cpp +3 -3
- data/vendor/faiss/faiss/invlists/InvertedLists.h +5 -3
- data/vendor/faiss/faiss/invlists/InvertedListsIOHook.cpp +3 -3
- data/vendor/faiss/faiss/python/python_callbacks.cpp +24 -0
- data/vendor/faiss/faiss/python/python_callbacks.h +22 -0
- data/vendor/faiss/faiss/utils/approx_topk_hamming/approx_topk_hamming.h +30 -12
- data/vendor/faiss/faiss/utils/hamming.cpp +45 -21
- data/vendor/faiss/faiss/utils/hamming.h +7 -3
- data/vendor/faiss/faiss/utils/hamming_distance/avx512-inl.h +1 -1
- data/vendor/faiss/faiss/utils/utils.cpp +4 -4
- data/vendor/faiss/faiss/utils/utils.h +3 -3
- metadata +16 -4
| @@ -387,7 +387,7 @@ size_t ranklist_intersection_size( | |
| 387 387 | 
             
                return count;
         | 
| 388 388 | 
             
            }
         | 
| 389 389 |  | 
| 390 | 
            -
            double imbalance_factor(int k, const  | 
| 390 | 
            +
            double imbalance_factor(int k, const int64_t* hist) {
         | 
| 391 391 | 
             
                double tot = 0, uf = 0;
         | 
| 392 392 |  | 
| 393 393 | 
             
                for (int i = 0; i < k; i++) {
         | 
| @@ -399,9 +399,9 @@ double imbalance_factor(int k, const int* hist) { | |
| 399 399 | 
             
                return uf;
         | 
| 400 400 | 
             
            }
         | 
| 401 401 |  | 
| 402 | 
            -
            double imbalance_factor( | 
| 403 | 
            -
                std::vector< | 
| 404 | 
            -
                for ( | 
| 402 | 
            +
            double imbalance_factor(int64_t n, int k, const int64_t* assign) {
         | 
| 403 | 
            +
                std::vector<int64_t> hist(k, 0);
         | 
| 404 | 
            +
                for (int64_t i = 0; i < n; i++) {
         | 
| 405 405 | 
             
                    hist[assign[i]]++;
         | 
| 406 406 | 
             
                }
         | 
| 407 407 |  | 
| @@ -37,7 +37,7 @@ std::string get_compile_options(); | |
| 37 37 | 
             
             * Get some stats about the system
         | 
| 38 38 | 
             
             **************************************************/
         | 
| 39 39 |  | 
| 40 | 
            -
            // Expose  | 
| 40 | 
            +
            // Expose Faiss version as a string
         | 
| 41 41 | 
             
            std::string get_version();
         | 
| 42 42 |  | 
| 43 43 | 
             
            /// ms elapsed since some arbitrary epoch
         | 
| @@ -92,10 +92,10 @@ size_t merge_result_table_with( | |
| 92 92 |  | 
| 93 93 | 
             
            /// a balanced assignment has a IF of 1, a completely unbalanced assignment has
         | 
| 94 94 | 
             
            /// an IF = k.
         | 
| 95 | 
            -
            double imbalance_factor( | 
| 95 | 
            +
            double imbalance_factor(int64_t n, int k, const int64_t* assign);
         | 
| 96 96 |  | 
| 97 97 | 
             
            /// same, takes a histogram as input
         | 
| 98 | 
            -
            double imbalance_factor(int k, const  | 
| 98 | 
            +
            double imbalance_factor(int k, const int64_t* hist);
         | 
| 99 99 |  | 
| 100 100 | 
             
            /// compute histogram on v
         | 
| 101 101 | 
             
            int ivec_hist(size_t n, const int* v, int vmax, int* hist);
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: faiss
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.4.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Andrew Kane
         | 
| 8 8 | 
             
            bindir: bin
         | 
| 9 9 | 
             
            cert_chain: []
         | 
| 10 | 
            -
            date:  | 
| 10 | 
            +
            date: 1980-01-02 00:00:00.000000000 Z
         | 
| 11 11 | 
             
            dependencies:
         | 
| 12 12 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 13 13 | 
             
              name: rice
         | 
| @@ -113,6 +113,8 @@ files: | |
| 113 113 | 
             
            - vendor/faiss/faiss/IndexIVFPQFastScan.h
         | 
| 114 114 | 
             
            - vendor/faiss/faiss/IndexIVFPQR.cpp
         | 
| 115 115 | 
             
            - vendor/faiss/faiss/IndexIVFPQR.h
         | 
| 116 | 
            +
            - vendor/faiss/faiss/IndexIVFRaBitQ.cpp
         | 
| 117 | 
            +
            - vendor/faiss/faiss/IndexIVFRaBitQ.h
         | 
| 116 118 | 
             
            - vendor/faiss/faiss/IndexIVFSpectralHash.cpp
         | 
| 117 119 | 
             
            - vendor/faiss/faiss/IndexIVFSpectralHash.h
         | 
| 118 120 | 
             
            - vendor/faiss/faiss/IndexLSH.cpp
         | 
| @@ -131,6 +133,8 @@ files: | |
| 131 133 | 
             
            - vendor/faiss/faiss/IndexPQFastScan.h
         | 
| 132 134 | 
             
            - vendor/faiss/faiss/IndexPreTransform.cpp
         | 
| 133 135 | 
             
            - vendor/faiss/faiss/IndexPreTransform.h
         | 
| 136 | 
            +
            - vendor/faiss/faiss/IndexRaBitQ.cpp
         | 
| 137 | 
            +
            - vendor/faiss/faiss/IndexRaBitQ.h
         | 
| 134 138 | 
             
            - vendor/faiss/faiss/IndexRefine.cpp
         | 
| 135 139 | 
             
            - vendor/faiss/faiss/IndexRefine.h
         | 
| 136 140 | 
             
            - vendor/faiss/faiss/IndexReplicas.cpp
         | 
| @@ -197,6 +201,7 @@ files: | |
| 197 201 | 
             
            - vendor/faiss/faiss/gpu/perf/PerfIVFPQAdd.cpp
         | 
| 198 202 | 
             
            - vendor/faiss/faiss/gpu/perf/WriteIndex.cpp
         | 
| 199 203 | 
             
            - vendor/faiss/faiss/gpu/test/TestCodePacking.cpp
         | 
| 204 | 
            +
            - vendor/faiss/faiss/gpu/test/TestGpuIcmEncoder.cpp
         | 
| 200 205 | 
             
            - vendor/faiss/faiss/gpu/test/TestGpuIndexBinaryFlat.cpp
         | 
| 201 206 | 
             
            - vendor/faiss/faiss/gpu/test/TestGpuIndexFlat.cpp
         | 
| 202 207 | 
             
            - vendor/faiss/faiss/gpu/test/TestGpuIndexIVFFlat.cpp
         | 
| @@ -243,6 +248,8 @@ files: | |
| 243 248 | 
             
            - vendor/faiss/faiss/impl/ProductQuantizer.cpp
         | 
| 244 249 | 
             
            - vendor/faiss/faiss/impl/ProductQuantizer.h
         | 
| 245 250 | 
             
            - vendor/faiss/faiss/impl/Quantizer.h
         | 
| 251 | 
            +
            - vendor/faiss/faiss/impl/RaBitQuantizer.cpp
         | 
| 252 | 
            +
            - vendor/faiss/faiss/impl/RaBitQuantizer.h
         | 
| 246 253 | 
             
            - vendor/faiss/faiss/impl/ResidualQuantizer.cpp
         | 
| 247 254 | 
             
            - vendor/faiss/faiss/impl/ResidualQuantizer.h
         | 
| 248 255 | 
             
            - vendor/faiss/faiss/impl/ResultHandler.h
         | 
| @@ -265,6 +272,9 @@ files: | |
| 265 272 | 
             
            - vendor/faiss/faiss/impl/kmeans1d.h
         | 
| 266 273 | 
             
            - vendor/faiss/faiss/impl/lattice_Zn.cpp
         | 
| 267 274 | 
             
            - vendor/faiss/faiss/impl/lattice_Zn.h
         | 
| 275 | 
            +
            - vendor/faiss/faiss/impl/mapped_io.cpp
         | 
| 276 | 
            +
            - vendor/faiss/faiss/impl/mapped_io.h
         | 
| 277 | 
            +
            - vendor/faiss/faiss/impl/maybe_owned_vector.h
         | 
| 268 278 | 
             
            - vendor/faiss/faiss/impl/platform_macros.h
         | 
| 269 279 | 
             
            - vendor/faiss/faiss/impl/pq4_fast_scan.cpp
         | 
| 270 280 | 
             
            - vendor/faiss/faiss/impl/pq4_fast_scan.h
         | 
| @@ -273,6 +283,8 @@ files: | |
| 273 283 | 
             
            - vendor/faiss/faiss/impl/residual_quantizer_encode_steps.cpp
         | 
| 274 284 | 
             
            - vendor/faiss/faiss/impl/residual_quantizer_encode_steps.h
         | 
| 275 285 | 
             
            - vendor/faiss/faiss/impl/simd_result_handlers.h
         | 
| 286 | 
            +
            - vendor/faiss/faiss/impl/zerocopy_io.cpp
         | 
| 287 | 
            +
            - vendor/faiss/faiss/impl/zerocopy_io.h
         | 
| 276 288 | 
             
            - vendor/faiss/faiss/index_factory.cpp
         | 
| 277 289 | 
             
            - vendor/faiss/faiss/index_factory.h
         | 
| 278 290 | 
             
            - vendor/faiss/faiss/index_io.h
         | 
| @@ -357,14 +369,14 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 357 369 | 
             
              requirements:
         | 
| 358 370 | 
             
              - - ">="
         | 
| 359 371 | 
             
                - !ruby/object:Gem::Version
         | 
| 360 | 
            -
                  version: '3'
         | 
| 372 | 
            +
                  version: '3.2'
         | 
| 361 373 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 362 374 | 
             
              requirements:
         | 
| 363 375 | 
             
              - - ">="
         | 
| 364 376 | 
             
                - !ruby/object:Gem::Version
         | 
| 365 377 | 
             
                  version: '0'
         | 
| 366 378 | 
             
            requirements: []
         | 
| 367 | 
            -
            rubygems_version: 3.6. | 
| 379 | 
            +
            rubygems_version: 3.6.7
         | 
| 368 380 | 
             
            specification_version: 4
         | 
| 369 381 | 
             
            summary: Efficient similarity search and clustering for Ruby
         | 
| 370 382 | 
             
            test_files: []
         |