faiss 0.1.3 → 0.1.4

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.
Files changed (184) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +1 -1
  5. data/ext/faiss/extconf.rb +1 -1
  6. data/lib/faiss/version.rb +1 -1
  7. data/vendor/faiss/faiss/AutoTune.cpp +36 -33
  8. data/vendor/faiss/faiss/AutoTune.h +6 -3
  9. data/vendor/faiss/faiss/Clustering.cpp +16 -12
  10. data/vendor/faiss/faiss/Index.cpp +3 -4
  11. data/vendor/faiss/faiss/Index.h +3 -3
  12. data/vendor/faiss/faiss/IndexBinary.cpp +3 -4
  13. data/vendor/faiss/faiss/IndexBinary.h +1 -1
  14. data/vendor/faiss/faiss/IndexBinaryHash.cpp +2 -12
  15. data/vendor/faiss/faiss/IndexBinaryIVF.cpp +1 -2
  16. data/vendor/faiss/faiss/IndexFlat.cpp +0 -148
  17. data/vendor/faiss/faiss/IndexFlat.h +0 -51
  18. data/vendor/faiss/faiss/IndexHNSW.cpp +4 -5
  19. data/vendor/faiss/faiss/IndexIVF.cpp +118 -31
  20. data/vendor/faiss/faiss/IndexIVF.h +22 -15
  21. data/vendor/faiss/faiss/IndexIVFFlat.cpp +3 -3
  22. data/vendor/faiss/faiss/IndexIVFFlat.h +2 -1
  23. data/vendor/faiss/faiss/IndexIVFPQ.cpp +39 -15
  24. data/vendor/faiss/faiss/IndexIVFPQ.h +25 -9
  25. data/vendor/faiss/faiss/IndexIVFPQFastScan.cpp +1116 -0
  26. data/vendor/faiss/faiss/IndexIVFPQFastScan.h +166 -0
  27. data/vendor/faiss/faiss/IndexIVFPQR.cpp +8 -9
  28. data/vendor/faiss/faiss/IndexIVFPQR.h +2 -1
  29. data/vendor/faiss/faiss/IndexIVFSpectralHash.cpp +1 -2
  30. data/vendor/faiss/faiss/IndexPQ.cpp +34 -18
  31. data/vendor/faiss/faiss/IndexPQFastScan.cpp +536 -0
  32. data/vendor/faiss/faiss/IndexPQFastScan.h +111 -0
  33. data/vendor/faiss/faiss/IndexPreTransform.cpp +47 -0
  34. data/vendor/faiss/faiss/IndexPreTransform.h +2 -0
  35. data/vendor/faiss/faiss/IndexRefine.cpp +256 -0
  36. data/vendor/faiss/faiss/IndexRefine.h +73 -0
  37. data/vendor/faiss/faiss/IndexScalarQuantizer.cpp +2 -2
  38. data/vendor/faiss/faiss/IndexScalarQuantizer.h +1 -1
  39. data/vendor/faiss/faiss/gpu/GpuDistance.h +1 -1
  40. data/vendor/faiss/faiss/gpu/GpuIndex.h +16 -9
  41. data/vendor/faiss/faiss/gpu/GpuIndexBinaryFlat.h +8 -1
  42. data/vendor/faiss/faiss/gpu/GpuIndexFlat.h +11 -11
  43. data/vendor/faiss/faiss/gpu/GpuIndexIVF.h +19 -2
  44. data/vendor/faiss/faiss/gpu/GpuIndexIVFFlat.h +28 -2
  45. data/vendor/faiss/faiss/gpu/GpuIndexIVFPQ.h +24 -14
  46. data/vendor/faiss/faiss/gpu/GpuIndexIVFScalarQuantizer.h +29 -2
  47. data/vendor/faiss/faiss/gpu/GpuResources.h +4 -0
  48. data/vendor/faiss/faiss/gpu/StandardGpuResources.cpp +60 -27
  49. data/vendor/faiss/faiss/gpu/StandardGpuResources.h +28 -6
  50. data/vendor/faiss/faiss/gpu/impl/InterleavedCodes.cpp +547 -0
  51. data/vendor/faiss/faiss/gpu/impl/InterleavedCodes.h +51 -0
  52. data/vendor/faiss/faiss/gpu/impl/RemapIndices.cpp +3 -3
  53. data/vendor/faiss/faiss/gpu/impl/RemapIndices.h +3 -2
  54. data/vendor/faiss/faiss/gpu/test/TestCodePacking.cpp +274 -0
  55. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFFlat.cpp +7 -2
  56. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFPQ.cpp +5 -1
  57. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFScalarQuantizer.cpp +231 -0
  58. data/vendor/faiss/faiss/gpu/test/TestUtils.h +33 -0
  59. data/vendor/faiss/faiss/gpu/utils/StackDeviceMemory.cpp +1 -0
  60. data/vendor/faiss/faiss/gpu/utils/StaticUtils.h +6 -0
  61. data/vendor/faiss/faiss/gpu/utils/Timer.cpp +5 -6
  62. data/vendor/faiss/faiss/gpu/utils/Timer.h +2 -2
  63. data/vendor/faiss/faiss/impl/AuxIndexStructures.h +5 -4
  64. data/vendor/faiss/faiss/impl/HNSW.cpp +2 -4
  65. data/vendor/faiss/faiss/impl/PolysemousTraining.h +4 -4
  66. data/vendor/faiss/faiss/impl/ProductQuantizer.cpp +22 -12
  67. data/vendor/faiss/faiss/impl/ProductQuantizer.h +2 -0
  68. data/vendor/faiss/faiss/impl/ResultHandler.h +452 -0
  69. data/vendor/faiss/faiss/impl/ScalarQuantizer.cpp +29 -19
  70. data/vendor/faiss/faiss/impl/ScalarQuantizer.h +6 -0
  71. data/vendor/faiss/faiss/impl/index_read.cpp +64 -96
  72. data/vendor/faiss/faiss/impl/index_write.cpp +34 -25
  73. data/vendor/faiss/faiss/impl/io.cpp +33 -2
  74. data/vendor/faiss/faiss/impl/io.h +7 -2
  75. data/vendor/faiss/faiss/impl/lattice_Zn.cpp +1 -15
  76. data/vendor/faiss/faiss/impl/platform_macros.h +44 -0
  77. data/vendor/faiss/faiss/impl/pq4_fast_scan.cpp +272 -0
  78. data/vendor/faiss/faiss/impl/pq4_fast_scan.h +169 -0
  79. data/vendor/faiss/faiss/impl/pq4_fast_scan_search_1.cpp +180 -0
  80. data/vendor/faiss/faiss/impl/pq4_fast_scan_search_qbs.cpp +354 -0
  81. data/vendor/faiss/faiss/impl/simd_result_handlers.h +559 -0
  82. data/vendor/faiss/faiss/index_factory.cpp +112 -7
  83. data/vendor/faiss/faiss/index_io.h +1 -48
  84. data/vendor/faiss/faiss/invlists/BlockInvertedLists.cpp +151 -0
  85. data/vendor/faiss/faiss/invlists/BlockInvertedLists.h +76 -0
  86. data/vendor/faiss/faiss/{DirectMap.cpp → invlists/DirectMap.cpp} +1 -1
  87. data/vendor/faiss/faiss/{DirectMap.h → invlists/DirectMap.h} +1 -1
  88. data/vendor/faiss/faiss/{InvertedLists.cpp → invlists/InvertedLists.cpp} +72 -1
  89. data/vendor/faiss/faiss/{InvertedLists.h → invlists/InvertedLists.h} +32 -1
  90. data/vendor/faiss/faiss/invlists/InvertedListsIOHook.cpp +107 -0
  91. data/vendor/faiss/faiss/invlists/InvertedListsIOHook.h +63 -0
  92. data/vendor/faiss/faiss/{OnDiskInvertedLists.cpp → invlists/OnDiskInvertedLists.cpp} +21 -6
  93. data/vendor/faiss/faiss/{OnDiskInvertedLists.h → invlists/OnDiskInvertedLists.h} +5 -2
  94. data/vendor/faiss/faiss/python/python_callbacks.h +8 -1
  95. data/vendor/faiss/faiss/utils/AlignedTable.h +141 -0
  96. data/vendor/faiss/faiss/utils/Heap.cpp +2 -4
  97. data/vendor/faiss/faiss/utils/Heap.h +61 -50
  98. data/vendor/faiss/faiss/utils/distances.cpp +164 -319
  99. data/vendor/faiss/faiss/utils/distances.h +28 -20
  100. data/vendor/faiss/faiss/utils/distances_simd.cpp +277 -49
  101. data/vendor/faiss/faiss/utils/extra_distances.cpp +1 -2
  102. data/vendor/faiss/faiss/utils/hamming-inl.h +4 -4
  103. data/vendor/faiss/faiss/utils/hamming.cpp +3 -6
  104. data/vendor/faiss/faiss/utils/hamming.h +2 -7
  105. data/vendor/faiss/faiss/utils/ordered_key_value.h +98 -0
  106. data/vendor/faiss/faiss/utils/partitioning.cpp +1256 -0
  107. data/vendor/faiss/faiss/utils/partitioning.h +69 -0
  108. data/vendor/faiss/faiss/utils/quantize_lut.cpp +277 -0
  109. data/vendor/faiss/faiss/utils/quantize_lut.h +80 -0
  110. data/vendor/faiss/faiss/utils/simdlib.h +31 -0
  111. data/vendor/faiss/faiss/utils/simdlib_avx2.h +461 -0
  112. data/vendor/faiss/faiss/utils/simdlib_emulated.h +589 -0
  113. metadata +43 -141
  114. data/vendor/faiss/benchs/bench_6bit_codec.cpp +0 -80
  115. data/vendor/faiss/c_api/AutoTune_c.cpp +0 -83
  116. data/vendor/faiss/c_api/AutoTune_c.h +0 -66
  117. data/vendor/faiss/c_api/Clustering_c.cpp +0 -145
  118. data/vendor/faiss/c_api/Clustering_c.h +0 -123
  119. data/vendor/faiss/c_api/IndexFlat_c.cpp +0 -140
  120. data/vendor/faiss/c_api/IndexFlat_c.h +0 -115
  121. data/vendor/faiss/c_api/IndexIVFFlat_c.cpp +0 -64
  122. data/vendor/faiss/c_api/IndexIVFFlat_c.h +0 -58
  123. data/vendor/faiss/c_api/IndexIVF_c.cpp +0 -99
  124. data/vendor/faiss/c_api/IndexIVF_c.h +0 -142
  125. data/vendor/faiss/c_api/IndexLSH_c.cpp +0 -37
  126. data/vendor/faiss/c_api/IndexLSH_c.h +0 -40
  127. data/vendor/faiss/c_api/IndexPreTransform_c.cpp +0 -21
  128. data/vendor/faiss/c_api/IndexPreTransform_c.h +0 -32
  129. data/vendor/faiss/c_api/IndexShards_c.cpp +0 -38
  130. data/vendor/faiss/c_api/IndexShards_c.h +0 -39
  131. data/vendor/faiss/c_api/Index_c.cpp +0 -105
  132. data/vendor/faiss/c_api/Index_c.h +0 -183
  133. data/vendor/faiss/c_api/MetaIndexes_c.cpp +0 -49
  134. data/vendor/faiss/c_api/MetaIndexes_c.h +0 -49
  135. data/vendor/faiss/c_api/clone_index_c.cpp +0 -23
  136. data/vendor/faiss/c_api/clone_index_c.h +0 -32
  137. data/vendor/faiss/c_api/error_c.h +0 -42
  138. data/vendor/faiss/c_api/error_impl.cpp +0 -27
  139. data/vendor/faiss/c_api/error_impl.h +0 -16
  140. data/vendor/faiss/c_api/faiss_c.h +0 -58
  141. data/vendor/faiss/c_api/gpu/GpuAutoTune_c.cpp +0 -98
  142. data/vendor/faiss/c_api/gpu/GpuAutoTune_c.h +0 -56
  143. data/vendor/faiss/c_api/gpu/GpuClonerOptions_c.cpp +0 -52
  144. data/vendor/faiss/c_api/gpu/GpuClonerOptions_c.h +0 -68
  145. data/vendor/faiss/c_api/gpu/GpuIndex_c.cpp +0 -17
  146. data/vendor/faiss/c_api/gpu/GpuIndex_c.h +0 -30
  147. data/vendor/faiss/c_api/gpu/GpuIndicesOptions_c.h +0 -38
  148. data/vendor/faiss/c_api/gpu/GpuResources_c.cpp +0 -86
  149. data/vendor/faiss/c_api/gpu/GpuResources_c.h +0 -66
  150. data/vendor/faiss/c_api/gpu/StandardGpuResources_c.cpp +0 -54
  151. data/vendor/faiss/c_api/gpu/StandardGpuResources_c.h +0 -53
  152. data/vendor/faiss/c_api/gpu/macros_impl.h +0 -42
  153. data/vendor/faiss/c_api/impl/AuxIndexStructures_c.cpp +0 -220
  154. data/vendor/faiss/c_api/impl/AuxIndexStructures_c.h +0 -149
  155. data/vendor/faiss/c_api/index_factory_c.cpp +0 -26
  156. data/vendor/faiss/c_api/index_factory_c.h +0 -30
  157. data/vendor/faiss/c_api/index_io_c.cpp +0 -42
  158. data/vendor/faiss/c_api/index_io_c.h +0 -50
  159. data/vendor/faiss/c_api/macros_impl.h +0 -110
  160. data/vendor/faiss/demos/demo_imi_flat.cpp +0 -154
  161. data/vendor/faiss/demos/demo_imi_pq.cpp +0 -203
  162. data/vendor/faiss/demos/demo_ivfpq_indexing.cpp +0 -151
  163. data/vendor/faiss/demos/demo_sift1M.cpp +0 -252
  164. data/vendor/faiss/demos/demo_weighted_kmeans.cpp +0 -185
  165. data/vendor/faiss/misc/test_blas.cpp +0 -87
  166. data/vendor/faiss/tests/test_binary_flat.cpp +0 -62
  167. data/vendor/faiss/tests/test_dealloc_invlists.cpp +0 -188
  168. data/vendor/faiss/tests/test_ivfpq_codec.cpp +0 -70
  169. data/vendor/faiss/tests/test_ivfpq_indexing.cpp +0 -100
  170. data/vendor/faiss/tests/test_lowlevel_ivf.cpp +0 -573
  171. data/vendor/faiss/tests/test_merge.cpp +0 -260
  172. data/vendor/faiss/tests/test_omp_threads.cpp +0 -14
  173. data/vendor/faiss/tests/test_ondisk_ivf.cpp +0 -225
  174. data/vendor/faiss/tests/test_pairs_decoding.cpp +0 -193
  175. data/vendor/faiss/tests/test_params_override.cpp +0 -236
  176. data/vendor/faiss/tests/test_pq_encoding.cpp +0 -98
  177. data/vendor/faiss/tests/test_sliding_ivf.cpp +0 -246
  178. data/vendor/faiss/tests/test_threaded_index.cpp +0 -253
  179. data/vendor/faiss/tests/test_transfer_invlists.cpp +0 -159
  180. data/vendor/faiss/tutorial/cpp/1-Flat.cpp +0 -104
  181. data/vendor/faiss/tutorial/cpp/2-IVFFlat.cpp +0 -85
  182. data/vendor/faiss/tutorial/cpp/3-IVFPQ.cpp +0 -98
  183. data/vendor/faiss/tutorial/cpp/4-GPU.cpp +0 -122
  184. data/vendor/faiss/tutorial/cpp/5-Multiple-GPUs.cpp +0 -104
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faiss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-22 00:00:00.000000000 Z
11
+ date: 2021-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice
@@ -38,64 +38,8 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rake-compiler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: minitest
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '5'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '5'
97
- description:
98
- email: andrew@chartkick.com
41
+ description:
42
+ email: andrew@ankane.org
99
43
  executables: []
100
44
  extensions:
101
45
  - ext/faiss/extconf.rb
@@ -114,63 +58,10 @@ files:
114
58
  - lib/faiss/product_quantizer.rb
115
59
  - lib/faiss/version.rb
116
60
  - vendor/faiss/LICENSE
117
- - vendor/faiss/benchs/bench_6bit_codec.cpp
118
- - vendor/faiss/c_api/AutoTune_c.cpp
119
- - vendor/faiss/c_api/AutoTune_c.h
120
- - vendor/faiss/c_api/Clustering_c.cpp
121
- - vendor/faiss/c_api/Clustering_c.h
122
- - vendor/faiss/c_api/IndexFlat_c.cpp
123
- - vendor/faiss/c_api/IndexFlat_c.h
124
- - vendor/faiss/c_api/IndexIVFFlat_c.cpp
125
- - vendor/faiss/c_api/IndexIVFFlat_c.h
126
- - vendor/faiss/c_api/IndexIVF_c.cpp
127
- - vendor/faiss/c_api/IndexIVF_c.h
128
- - vendor/faiss/c_api/IndexLSH_c.cpp
129
- - vendor/faiss/c_api/IndexLSH_c.h
130
- - vendor/faiss/c_api/IndexPreTransform_c.cpp
131
- - vendor/faiss/c_api/IndexPreTransform_c.h
132
- - vendor/faiss/c_api/IndexShards_c.cpp
133
- - vendor/faiss/c_api/IndexShards_c.h
134
- - vendor/faiss/c_api/Index_c.cpp
135
- - vendor/faiss/c_api/Index_c.h
136
- - vendor/faiss/c_api/MetaIndexes_c.cpp
137
- - vendor/faiss/c_api/MetaIndexes_c.h
138
- - vendor/faiss/c_api/clone_index_c.cpp
139
- - vendor/faiss/c_api/clone_index_c.h
140
- - vendor/faiss/c_api/error_c.h
141
- - vendor/faiss/c_api/error_impl.cpp
142
- - vendor/faiss/c_api/error_impl.h
143
- - vendor/faiss/c_api/faiss_c.h
144
- - vendor/faiss/c_api/gpu/GpuAutoTune_c.cpp
145
- - vendor/faiss/c_api/gpu/GpuAutoTune_c.h
146
- - vendor/faiss/c_api/gpu/GpuClonerOptions_c.cpp
147
- - vendor/faiss/c_api/gpu/GpuClonerOptions_c.h
148
- - vendor/faiss/c_api/gpu/GpuIndex_c.cpp
149
- - vendor/faiss/c_api/gpu/GpuIndex_c.h
150
- - vendor/faiss/c_api/gpu/GpuIndicesOptions_c.h
151
- - vendor/faiss/c_api/gpu/GpuResources_c.cpp
152
- - vendor/faiss/c_api/gpu/GpuResources_c.h
153
- - vendor/faiss/c_api/gpu/StandardGpuResources_c.cpp
154
- - vendor/faiss/c_api/gpu/StandardGpuResources_c.h
155
- - vendor/faiss/c_api/gpu/macros_impl.h
156
- - vendor/faiss/c_api/impl/AuxIndexStructures_c.cpp
157
- - vendor/faiss/c_api/impl/AuxIndexStructures_c.h
158
- - vendor/faiss/c_api/index_factory_c.cpp
159
- - vendor/faiss/c_api/index_factory_c.h
160
- - vendor/faiss/c_api/index_io_c.cpp
161
- - vendor/faiss/c_api/index_io_c.h
162
- - vendor/faiss/c_api/macros_impl.h
163
- - vendor/faiss/demos/demo_imi_flat.cpp
164
- - vendor/faiss/demos/demo_imi_pq.cpp
165
- - vendor/faiss/demos/demo_ivfpq_indexing.cpp
166
- - vendor/faiss/demos/demo_sift1M.cpp
167
- - vendor/faiss/demos/demo_weighted_kmeans.cpp
168
61
  - vendor/faiss/faiss/AutoTune.cpp
169
62
  - vendor/faiss/faiss/AutoTune.h
170
63
  - vendor/faiss/faiss/Clustering.cpp
171
64
  - vendor/faiss/faiss/Clustering.h
172
- - vendor/faiss/faiss/DirectMap.cpp
173
- - vendor/faiss/faiss/DirectMap.h
174
65
  - vendor/faiss/faiss/IVFlib.cpp
175
66
  - vendor/faiss/faiss/IVFlib.h
176
67
  - vendor/faiss/faiss/Index.cpp
@@ -199,6 +90,8 @@ files:
199
90
  - vendor/faiss/faiss/IndexIVFFlat.h
200
91
  - vendor/faiss/faiss/IndexIVFPQ.cpp
201
92
  - vendor/faiss/faiss/IndexIVFPQ.h
93
+ - vendor/faiss/faiss/IndexIVFPQFastScan.cpp
94
+ - vendor/faiss/faiss/IndexIVFPQFastScan.h
202
95
  - vendor/faiss/faiss/IndexIVFPQR.cpp
203
96
  - vendor/faiss/faiss/IndexIVFPQR.h
204
97
  - vendor/faiss/faiss/IndexIVFSpectralHash.cpp
@@ -209,23 +102,23 @@ files:
209
102
  - vendor/faiss/faiss/IndexLattice.h
210
103
  - vendor/faiss/faiss/IndexPQ.cpp
211
104
  - vendor/faiss/faiss/IndexPQ.h
105
+ - vendor/faiss/faiss/IndexPQFastScan.cpp
106
+ - vendor/faiss/faiss/IndexPQFastScan.h
212
107
  - vendor/faiss/faiss/IndexPreTransform.cpp
213
108
  - vendor/faiss/faiss/IndexPreTransform.h
109
+ - vendor/faiss/faiss/IndexRefine.cpp
110
+ - vendor/faiss/faiss/IndexRefine.h
214
111
  - vendor/faiss/faiss/IndexReplicas.cpp
215
112
  - vendor/faiss/faiss/IndexReplicas.h
216
113
  - vendor/faiss/faiss/IndexScalarQuantizer.cpp
217
114
  - vendor/faiss/faiss/IndexScalarQuantizer.h
218
115
  - vendor/faiss/faiss/IndexShards.cpp
219
116
  - vendor/faiss/faiss/IndexShards.h
220
- - vendor/faiss/faiss/InvertedLists.cpp
221
- - vendor/faiss/faiss/InvertedLists.h
222
117
  - vendor/faiss/faiss/MatrixStats.cpp
223
118
  - vendor/faiss/faiss/MatrixStats.h
224
119
  - vendor/faiss/faiss/MetaIndexes.cpp
225
120
  - vendor/faiss/faiss/MetaIndexes.h
226
121
  - vendor/faiss/faiss/MetricType.h
227
- - vendor/faiss/faiss/OnDiskInvertedLists.cpp
228
- - vendor/faiss/faiss/OnDiskInvertedLists.h
229
122
  - vendor/faiss/faiss/VectorTransform.cpp
230
123
  - vendor/faiss/faiss/VectorTransform.h
231
124
  - vendor/faiss/faiss/clone_index.cpp
@@ -250,6 +143,8 @@ files:
250
143
  - vendor/faiss/faiss/gpu/GpuResources.h
251
144
  - vendor/faiss/faiss/gpu/StandardGpuResources.cpp
252
145
  - vendor/faiss/faiss/gpu/StandardGpuResources.h
146
+ - vendor/faiss/faiss/gpu/impl/InterleavedCodes.cpp
147
+ - vendor/faiss/faiss/gpu/impl/InterleavedCodes.h
253
148
  - vendor/faiss/faiss/gpu/impl/RemapIndices.cpp
254
149
  - vendor/faiss/faiss/gpu/impl/RemapIndices.h
255
150
  - vendor/faiss/faiss/gpu/perf/IndexWrapper-inl.h
@@ -257,10 +152,12 @@ files:
257
152
  - vendor/faiss/faiss/gpu/perf/PerfClustering.cpp
258
153
  - vendor/faiss/faiss/gpu/perf/PerfIVFPQAdd.cpp
259
154
  - vendor/faiss/faiss/gpu/perf/WriteIndex.cpp
155
+ - vendor/faiss/faiss/gpu/test/TestCodePacking.cpp
260
156
  - vendor/faiss/faiss/gpu/test/TestGpuIndexBinaryFlat.cpp
261
157
  - vendor/faiss/faiss/gpu/test/TestGpuIndexFlat.cpp
262
158
  - vendor/faiss/faiss/gpu/test/TestGpuIndexIVFFlat.cpp
263
159
  - vendor/faiss/faiss/gpu/test/TestGpuIndexIVFPQ.cpp
160
+ - vendor/faiss/faiss/gpu/test/TestGpuIndexIVFScalarQuantizer.cpp
264
161
  - vendor/faiss/faiss/gpu/test/TestGpuMemoryException.cpp
265
162
  - vendor/faiss/faiss/gpu/test/TestUtils.cpp
266
163
  - vendor/faiss/faiss/gpu/test/TestUtils.h
@@ -283,6 +180,7 @@ files:
283
180
  - vendor/faiss/faiss/impl/ProductQuantizer-inl.h
284
181
  - vendor/faiss/faiss/impl/ProductQuantizer.cpp
285
182
  - vendor/faiss/faiss/impl/ProductQuantizer.h
183
+ - vendor/faiss/faiss/impl/ResultHandler.h
286
184
  - vendor/faiss/faiss/impl/ScalarQuantizer.cpp
287
185
  - vendor/faiss/faiss/impl/ScalarQuantizer.h
288
186
  - vendor/faiss/faiss/impl/ThreadedIndex-inl.h
@@ -295,11 +193,27 @@ files:
295
193
  - vendor/faiss/faiss/impl/lattice_Zn.cpp
296
194
  - vendor/faiss/faiss/impl/lattice_Zn.h
297
195
  - vendor/faiss/faiss/impl/platform_macros.h
196
+ - vendor/faiss/faiss/impl/pq4_fast_scan.cpp
197
+ - vendor/faiss/faiss/impl/pq4_fast_scan.h
198
+ - vendor/faiss/faiss/impl/pq4_fast_scan_search_1.cpp
199
+ - vendor/faiss/faiss/impl/pq4_fast_scan_search_qbs.cpp
200
+ - vendor/faiss/faiss/impl/simd_result_handlers.h
298
201
  - vendor/faiss/faiss/index_factory.cpp
299
202
  - vendor/faiss/faiss/index_factory.h
300
203
  - vendor/faiss/faiss/index_io.h
204
+ - vendor/faiss/faiss/invlists/BlockInvertedLists.cpp
205
+ - vendor/faiss/faiss/invlists/BlockInvertedLists.h
206
+ - vendor/faiss/faiss/invlists/DirectMap.cpp
207
+ - vendor/faiss/faiss/invlists/DirectMap.h
208
+ - vendor/faiss/faiss/invlists/InvertedLists.cpp
209
+ - vendor/faiss/faiss/invlists/InvertedLists.h
210
+ - vendor/faiss/faiss/invlists/InvertedListsIOHook.cpp
211
+ - vendor/faiss/faiss/invlists/InvertedListsIOHook.h
212
+ - vendor/faiss/faiss/invlists/OnDiskInvertedLists.cpp
213
+ - vendor/faiss/faiss/invlists/OnDiskInvertedLists.h
301
214
  - vendor/faiss/faiss/python/python_callbacks.cpp
302
215
  - vendor/faiss/faiss/python/python_callbacks.h
216
+ - vendor/faiss/faiss/utils/AlignedTable.h
303
217
  - vendor/faiss/faiss/utils/Heap.cpp
304
218
  - vendor/faiss/faiss/utils/Heap.h
305
219
  - vendor/faiss/faiss/utils/WorkerThread.cpp
@@ -312,35 +226,23 @@ files:
312
226
  - vendor/faiss/faiss/utils/hamming-inl.h
313
227
  - vendor/faiss/faiss/utils/hamming.cpp
314
228
  - vendor/faiss/faiss/utils/hamming.h
229
+ - vendor/faiss/faiss/utils/ordered_key_value.h
230
+ - vendor/faiss/faiss/utils/partitioning.cpp
231
+ - vendor/faiss/faiss/utils/partitioning.h
232
+ - vendor/faiss/faiss/utils/quantize_lut.cpp
233
+ - vendor/faiss/faiss/utils/quantize_lut.h
315
234
  - vendor/faiss/faiss/utils/random.cpp
316
235
  - vendor/faiss/faiss/utils/random.h
236
+ - vendor/faiss/faiss/utils/simdlib.h
237
+ - vendor/faiss/faiss/utils/simdlib_avx2.h
238
+ - vendor/faiss/faiss/utils/simdlib_emulated.h
317
239
  - vendor/faiss/faiss/utils/utils.cpp
318
240
  - vendor/faiss/faiss/utils/utils.h
319
- - vendor/faiss/misc/test_blas.cpp
320
- - vendor/faiss/tests/test_binary_flat.cpp
321
- - vendor/faiss/tests/test_dealloc_invlists.cpp
322
- - vendor/faiss/tests/test_ivfpq_codec.cpp
323
- - vendor/faiss/tests/test_ivfpq_indexing.cpp
324
- - vendor/faiss/tests/test_lowlevel_ivf.cpp
325
- - vendor/faiss/tests/test_merge.cpp
326
- - vendor/faiss/tests/test_omp_threads.cpp
327
- - vendor/faiss/tests/test_ondisk_ivf.cpp
328
- - vendor/faiss/tests/test_pairs_decoding.cpp
329
- - vendor/faiss/tests/test_params_override.cpp
330
- - vendor/faiss/tests/test_pq_encoding.cpp
331
- - vendor/faiss/tests/test_sliding_ivf.cpp
332
- - vendor/faiss/tests/test_threaded_index.cpp
333
- - vendor/faiss/tests/test_transfer_invlists.cpp
334
- - vendor/faiss/tutorial/cpp/1-Flat.cpp
335
- - vendor/faiss/tutorial/cpp/2-IVFFlat.cpp
336
- - vendor/faiss/tutorial/cpp/3-IVFPQ.cpp
337
- - vendor/faiss/tutorial/cpp/4-GPU.cpp
338
- - vendor/faiss/tutorial/cpp/5-Multiple-GPUs.cpp
339
241
  homepage: https://github.com/ankane/faiss
340
242
  licenses:
341
243
  - MIT
342
244
  metadata: {}
343
- post_install_message:
245
+ post_install_message:
344
246
  rdoc_options: []
345
247
  require_paths:
346
248
  - lib
@@ -355,8 +257,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
355
257
  - !ruby/object:Gem::Version
356
258
  version: '0'
357
259
  requirements: []
358
- rubygems_version: 3.1.2
359
- signing_key:
260
+ rubygems_version: 3.2.3
261
+ signing_key:
360
262
  specification_version: 4
361
263
  summary: Efficient similarity search and clustering for Ruby
362
264
  test_files: []
@@ -1,80 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
-
9
- #include <cstdio>
10
- #include <omp.h>
11
-
12
- #include <faiss/impl/ScalarQuantizer.h>
13
- #include <faiss/utils/utils.h>
14
- #include <faiss/utils/random.h>
15
- #include <faiss/utils/distances.h>
16
-
17
- using namespace faiss;
18
-
19
- int main() {
20
-
21
- int d = 128;
22
- int n = 2000;
23
-
24
- std::vector<float> x(d * n);
25
-
26
- float_rand(x.data(), d * n, 12345);
27
-
28
- // make sure it's idempotent
29
- ScalarQuantizer sq(d, ScalarQuantizer::QT_6bit);
30
-
31
- omp_set_num_threads(1);
32
-
33
- sq.train(n, x.data());
34
-
35
- size_t code_size = sq.code_size;
36
- printf("code size: %ld\n", sq.code_size);
37
-
38
- // encode
39
- std::vector<uint8_t> codes(code_size * n);
40
- sq.compute_codes(x.data(), codes.data(), n);
41
-
42
- // decode
43
- std::vector<float> x2(d * n);
44
- sq.decode(codes.data(), x2.data(), n);
45
-
46
- printf("sqL2 recons error: %g\n",
47
- fvec_L2sqr(x.data(), x2.data(), n * d) / n);
48
-
49
- // encode again
50
- std::vector<uint8_t> codes2(code_size * n);
51
- sq.compute_codes(x2.data(), codes2.data(), n);
52
-
53
- size_t ndiff = 0;
54
- for (size_t i = 0; i < codes.size(); i++) {
55
- if (codes[i] != codes2[i]) ndiff++;
56
- }
57
-
58
- printf("ndiff for idempotence: %ld / %ld\n", ndiff, codes.size());
59
-
60
- std::unique_ptr<ScalarQuantizer::SQDistanceComputer>
61
- dc(sq.get_distance_computer());
62
- dc->codes = codes.data();
63
- dc->code_size = sq.code_size;
64
- printf("code size: %ld\n", dc->code_size);
65
-
66
- double sum_dis = 0;
67
- double t0 = getmillisecs();
68
- for (int i = 0; i < n; i++) {
69
- dc->set_query(&x[i * d]);
70
- for (int j = 0; j < n; j++) {
71
- sum_dis += (*dc)(j);
72
- }
73
- }
74
- printf("distances computed in %.3f ms, checksum=%g\n",
75
- getmillisecs() - t0, sum_dis);
76
-
77
-
78
-
79
- return 0;
80
- }
@@ -1,83 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- // Copyright 2004-present Facebook. All Rights Reserved.
9
- // -*- c++ -*-
10
-
11
- #include <cstring>
12
- #include "AutoTune.h"
13
- #include "AutoTune_c.h"
14
- #include "macros_impl.h"
15
-
16
- using faiss::Index;
17
- using faiss::ParameterRange;
18
- using faiss::ParameterSpace;
19
-
20
- const char* faiss_ParameterRange_name(const FaissParameterRange* range) {
21
- return reinterpret_cast<const ParameterRange*>(range)->name.c_str();
22
- }
23
-
24
- void faiss_ParameterRange_values(FaissParameterRange* range, double** p_values, size_t* p_size) {
25
- auto& values = reinterpret_cast<ParameterRange*>(range)->values;
26
- *p_values = values.data();
27
- *p_size = values.size();
28
- }
29
-
30
- int faiss_ParameterSpace_new(FaissParameterSpace** space) {
31
- try {
32
- auto new_space = new ParameterSpace();
33
- *space = reinterpret_cast<FaissParameterSpace*>(new_space);
34
- } CATCH_AND_HANDLE
35
- }
36
-
37
- DEFINE_DESTRUCTOR(ParameterSpace)
38
-
39
- size_t faiss_ParameterSpace_n_combinations(const FaissParameterSpace* space) {
40
- return reinterpret_cast<const ParameterSpace*>(space)->n_combinations();
41
- }
42
-
43
- int faiss_ParameterSpace_combination_name(const FaissParameterSpace* space, size_t cno, char* char_buffer, size_t size) {
44
- try {
45
- auto rep = reinterpret_cast<const ParameterSpace*>(space)->combination_name(cno);
46
- strncpy(char_buffer, rep.c_str(), size);
47
- } CATCH_AND_HANDLE
48
- }
49
-
50
- int faiss_ParameterSpace_set_index_parameters(const FaissParameterSpace* space, FaissIndex* cindex, const char* param_string) {
51
- try {
52
- auto index = reinterpret_cast<Index*>(cindex);
53
- reinterpret_cast<const ParameterSpace*>(space)->set_index_parameters(index, param_string);
54
- } CATCH_AND_HANDLE
55
- }
56
-
57
- /// set a combination of parameters on an index
58
- int faiss_ParameterSpace_set_index_parameters_cno(const FaissParameterSpace* space, FaissIndex* cindex, size_t cno) {
59
- try {
60
- auto index = reinterpret_cast<Index*>(cindex);
61
- reinterpret_cast<const ParameterSpace*>(space)->set_index_parameters(index, cno);
62
- } CATCH_AND_HANDLE
63
- }
64
-
65
- int faiss_ParameterSpace_set_index_parameter(const FaissParameterSpace* space, FaissIndex* cindex, const char * name, double value) {
66
- try {
67
- auto index = reinterpret_cast<Index*>(cindex);
68
- reinterpret_cast<const ParameterSpace*>(space)->set_index_parameter(index, name, value);
69
- } CATCH_AND_HANDLE
70
- }
71
-
72
- void faiss_ParameterSpace_display(const FaissParameterSpace* space) {
73
- reinterpret_cast<const ParameterSpace*>(space)->display();
74
- }
75
-
76
- int faiss_ParameterSpace_add_range(FaissParameterSpace* space, const char* name, FaissParameterRange** p_range) {
77
- try {
78
- ParameterRange& range = reinterpret_cast<ParameterSpace*>(space)->add_range(name);
79
- if (p_range) {
80
- *p_range = reinterpret_cast<FaissParameterRange*>(&range);
81
- }
82
- } CATCH_AND_HANDLE
83
- }