faiss 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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
- }