faiss 0.3.0 → 0.3.2

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 (216) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +1 -1
  5. data/ext/faiss/extconf.rb +9 -2
  6. data/ext/faiss/index.cpp +1 -1
  7. data/ext/faiss/index_binary.cpp +2 -2
  8. data/ext/faiss/product_quantizer.cpp +1 -1
  9. data/lib/faiss/version.rb +1 -1
  10. data/vendor/faiss/faiss/AutoTune.cpp +7 -7
  11. data/vendor/faiss/faiss/AutoTune.h +1 -2
  12. data/vendor/faiss/faiss/Clustering.cpp +39 -22
  13. data/vendor/faiss/faiss/Clustering.h +40 -21
  14. data/vendor/faiss/faiss/IVFlib.cpp +26 -12
  15. data/vendor/faiss/faiss/Index.cpp +1 -1
  16. data/vendor/faiss/faiss/Index.h +40 -10
  17. data/vendor/faiss/faiss/Index2Layer.cpp +7 -7
  18. data/vendor/faiss/faiss/IndexAdditiveQuantizer.cpp +176 -166
  19. data/vendor/faiss/faiss/IndexAdditiveQuantizerFastScan.cpp +15 -15
  20. data/vendor/faiss/faiss/IndexBinary.cpp +9 -4
  21. data/vendor/faiss/faiss/IndexBinary.h +8 -19
  22. data/vendor/faiss/faiss/IndexBinaryFromFloat.cpp +2 -1
  23. data/vendor/faiss/faiss/IndexBinaryHNSW.cpp +24 -31
  24. data/vendor/faiss/faiss/IndexBinaryHNSW.h +1 -1
  25. data/vendor/faiss/faiss/IndexBinaryHash.cpp +25 -50
  26. data/vendor/faiss/faiss/IndexBinaryIVF.cpp +107 -188
  27. data/vendor/faiss/faiss/IndexFastScan.cpp +95 -146
  28. data/vendor/faiss/faiss/IndexFastScan.h +9 -8
  29. data/vendor/faiss/faiss/IndexFlat.cpp +206 -10
  30. data/vendor/faiss/faiss/IndexFlat.h +20 -1
  31. data/vendor/faiss/faiss/IndexFlatCodes.cpp +170 -5
  32. data/vendor/faiss/faiss/IndexFlatCodes.h +23 -4
  33. data/vendor/faiss/faiss/IndexHNSW.cpp +231 -382
  34. data/vendor/faiss/faiss/IndexHNSW.h +62 -49
  35. data/vendor/faiss/faiss/IndexIDMap.cpp +69 -28
  36. data/vendor/faiss/faiss/IndexIDMap.h +24 -2
  37. data/vendor/faiss/faiss/IndexIVF.cpp +162 -56
  38. data/vendor/faiss/faiss/IndexIVF.h +46 -6
  39. data/vendor/faiss/faiss/IndexIVFAdditiveQuantizer.cpp +33 -26
  40. data/vendor/faiss/faiss/IndexIVFAdditiveQuantizer.h +6 -2
  41. data/vendor/faiss/faiss/IndexIVFAdditiveQuantizerFastScan.cpp +19 -46
  42. data/vendor/faiss/faiss/IndexIVFAdditiveQuantizerFastScan.h +4 -3
  43. data/vendor/faiss/faiss/IndexIVFFastScan.cpp +502 -401
  44. data/vendor/faiss/faiss/IndexIVFFastScan.h +63 -26
  45. data/vendor/faiss/faiss/IndexIVFFlat.cpp +15 -5
  46. data/vendor/faiss/faiss/IndexIVFFlat.h +3 -2
  47. data/vendor/faiss/faiss/IndexIVFIndependentQuantizer.cpp +172 -0
  48. data/vendor/faiss/faiss/IndexIVFIndependentQuantizer.h +56 -0
  49. data/vendor/faiss/faiss/IndexIVFPQ.cpp +79 -125
  50. data/vendor/faiss/faiss/IndexIVFPQ.h +6 -7
  51. data/vendor/faiss/faiss/IndexIVFPQFastScan.cpp +39 -52
  52. data/vendor/faiss/faiss/IndexIVFPQFastScan.h +4 -3
  53. data/vendor/faiss/faiss/IndexIVFPQR.cpp +45 -29
  54. data/vendor/faiss/faiss/IndexIVFPQR.h +5 -2
  55. data/vendor/faiss/faiss/IndexIVFSpectralHash.cpp +25 -27
  56. data/vendor/faiss/faiss/IndexIVFSpectralHash.h +6 -6
  57. data/vendor/faiss/faiss/IndexLSH.cpp +14 -16
  58. data/vendor/faiss/faiss/IndexLattice.cpp +1 -19
  59. data/vendor/faiss/faiss/IndexLattice.h +3 -22
  60. data/vendor/faiss/faiss/IndexNNDescent.cpp +3 -33
  61. data/vendor/faiss/faiss/IndexNNDescent.h +1 -1
  62. data/vendor/faiss/faiss/IndexNSG.cpp +11 -27
  63. data/vendor/faiss/faiss/IndexNSG.h +11 -11
  64. data/vendor/faiss/faiss/IndexNeuralNetCodec.cpp +56 -0
  65. data/vendor/faiss/faiss/IndexNeuralNetCodec.h +49 -0
  66. data/vendor/faiss/faiss/IndexPQ.cpp +72 -88
  67. data/vendor/faiss/faiss/IndexPQ.h +1 -4
  68. data/vendor/faiss/faiss/IndexPQFastScan.cpp +1 -1
  69. data/vendor/faiss/faiss/IndexPreTransform.cpp +25 -31
  70. data/vendor/faiss/faiss/IndexPreTransform.h +1 -1
  71. data/vendor/faiss/faiss/IndexRefine.cpp +54 -24
  72. data/vendor/faiss/faiss/IndexRefine.h +7 -0
  73. data/vendor/faiss/faiss/IndexReplicas.cpp +23 -26
  74. data/vendor/faiss/faiss/IndexScalarQuantizer.cpp +25 -17
  75. data/vendor/faiss/faiss/IndexScalarQuantizer.h +6 -4
  76. data/vendor/faiss/faiss/IndexShards.cpp +21 -29
  77. data/vendor/faiss/faiss/IndexShardsIVF.cpp +1 -2
  78. data/vendor/faiss/faiss/MatrixStats.cpp +17 -32
  79. data/vendor/faiss/faiss/MatrixStats.h +21 -9
  80. data/vendor/faiss/faiss/MetaIndexes.cpp +35 -35
  81. data/vendor/faiss/faiss/MetricType.h +7 -2
  82. data/vendor/faiss/faiss/VectorTransform.cpp +13 -26
  83. data/vendor/faiss/faiss/VectorTransform.h +7 -7
  84. data/vendor/faiss/faiss/clone_index.cpp +15 -10
  85. data/vendor/faiss/faiss/clone_index.h +3 -0
  86. data/vendor/faiss/faiss/cppcontrib/detail/UintReader.h +95 -17
  87. data/vendor/faiss/faiss/cppcontrib/factory_tools.cpp +152 -0
  88. data/vendor/faiss/faiss/cppcontrib/factory_tools.h +24 -0
  89. data/vendor/faiss/faiss/cppcontrib/sa_decode/Level2-inl.h +83 -30
  90. data/vendor/faiss/faiss/gpu/GpuCloner.cpp +123 -8
  91. data/vendor/faiss/faiss/gpu/GpuCloner.h +22 -0
  92. data/vendor/faiss/faiss/gpu/GpuClonerOptions.h +13 -0
  93. data/vendor/faiss/faiss/gpu/GpuDistance.h +46 -38
  94. data/vendor/faiss/faiss/gpu/GpuFaissAssert.h +1 -1
  95. data/vendor/faiss/faiss/gpu/GpuIndex.h +30 -12
  96. data/vendor/faiss/faiss/gpu/GpuIndexCagra.h +282 -0
  97. data/vendor/faiss/faiss/gpu/GpuIndexFlat.h +4 -4
  98. data/vendor/faiss/faiss/gpu/GpuIndexIVF.h +14 -9
  99. data/vendor/faiss/faiss/gpu/GpuIndexIVFFlat.h +20 -3
  100. data/vendor/faiss/faiss/gpu/GpuIndexIVFPQ.h +22 -11
  101. data/vendor/faiss/faiss/gpu/GpuIndexIVFScalarQuantizer.h +1 -3
  102. data/vendor/faiss/faiss/gpu/GpuResources.cpp +24 -3
  103. data/vendor/faiss/faiss/gpu/GpuResources.h +39 -11
  104. data/vendor/faiss/faiss/gpu/StandardGpuResources.cpp +142 -17
  105. data/vendor/faiss/faiss/gpu/StandardGpuResources.h +57 -3
  106. data/vendor/faiss/faiss/gpu/impl/InterleavedCodes.cpp +26 -21
  107. data/vendor/faiss/faiss/gpu/perf/PerfClustering.cpp +7 -1
  108. data/vendor/faiss/faiss/gpu/test/TestCodePacking.cpp +8 -5
  109. data/vendor/faiss/faiss/gpu/test/TestGpuIndexBinaryFlat.cpp +25 -0
  110. data/vendor/faiss/faiss/gpu/test/TestGpuIndexFlat.cpp +129 -9
  111. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFFlat.cpp +332 -40
  112. data/vendor/faiss/faiss/gpu/test/TestGpuIndexIVFPQ.cpp +299 -208
  113. data/vendor/faiss/faiss/gpu/test/TestGpuMemoryException.cpp +1 -0
  114. data/vendor/faiss/faiss/gpu/test/demo_ivfpq_indexing_gpu.cpp +1 -1
  115. data/vendor/faiss/faiss/gpu/utils/DeviceUtils.h +6 -0
  116. data/vendor/faiss/faiss/gpu/utils/RaftUtils.h +75 -0
  117. data/vendor/faiss/faiss/gpu/utils/Timer.cpp +4 -1
  118. data/vendor/faiss/faiss/gpu/utils/Timer.h +1 -1
  119. data/vendor/faiss/faiss/impl/AdditiveQuantizer.cpp +3 -1
  120. data/vendor/faiss/faiss/impl/AdditiveQuantizer.h +5 -5
  121. data/vendor/faiss/faiss/impl/AuxIndexStructures.cpp +26 -1
  122. data/vendor/faiss/faiss/impl/AuxIndexStructures.h +10 -3
  123. data/vendor/faiss/faiss/impl/DistanceComputer.h +70 -1
  124. data/vendor/faiss/faiss/impl/FaissAssert.h +4 -2
  125. data/vendor/faiss/faiss/impl/FaissException.h +13 -34
  126. data/vendor/faiss/faiss/impl/HNSW.cpp +605 -186
  127. data/vendor/faiss/faiss/impl/HNSW.h +52 -30
  128. data/vendor/faiss/faiss/impl/IDSelector.h +4 -4
  129. data/vendor/faiss/faiss/impl/LocalSearchQuantizer.cpp +11 -9
  130. data/vendor/faiss/faiss/impl/LookupTableScaler.h +34 -0
  131. data/vendor/faiss/faiss/impl/NNDescent.cpp +42 -27
  132. data/vendor/faiss/faiss/impl/NSG.cpp +0 -29
  133. data/vendor/faiss/faiss/impl/NSG.h +1 -1
  134. data/vendor/faiss/faiss/impl/PolysemousTraining.cpp +14 -12
  135. data/vendor/faiss/faiss/impl/ProductAdditiveQuantizer.h +1 -1
  136. data/vendor/faiss/faiss/impl/ProductQuantizer.cpp +25 -22
  137. data/vendor/faiss/faiss/impl/ProductQuantizer.h +6 -2
  138. data/vendor/faiss/faiss/impl/Quantizer.h +1 -1
  139. data/vendor/faiss/faiss/impl/ResidualQuantizer.cpp +27 -1015
  140. data/vendor/faiss/faiss/impl/ResidualQuantizer.h +5 -63
  141. data/vendor/faiss/faiss/impl/ResultHandler.h +347 -172
  142. data/vendor/faiss/faiss/impl/ScalarQuantizer.cpp +1104 -147
  143. data/vendor/faiss/faiss/impl/ScalarQuantizer.h +3 -8
  144. data/vendor/faiss/faiss/impl/code_distance/code_distance-avx2.h +285 -42
  145. data/vendor/faiss/faiss/impl/code_distance/code_distance-avx512.h +248 -0
  146. data/vendor/faiss/faiss/impl/code_distance/code_distance-generic.h +21 -14
  147. data/vendor/faiss/faiss/impl/code_distance/code_distance.h +22 -12
  148. data/vendor/faiss/faiss/impl/index_read.cpp +74 -34
  149. data/vendor/faiss/faiss/impl/index_read_utils.h +37 -0
  150. data/vendor/faiss/faiss/impl/index_write.cpp +88 -51
  151. data/vendor/faiss/faiss/impl/io.cpp +23 -15
  152. data/vendor/faiss/faiss/impl/io.h +4 -4
  153. data/vendor/faiss/faiss/impl/io_macros.h +6 -0
  154. data/vendor/faiss/faiss/impl/lattice_Zn.cpp +1 -1
  155. data/vendor/faiss/faiss/impl/platform_macros.h +40 -1
  156. data/vendor/faiss/faiss/impl/pq4_fast_scan.cpp +14 -0
  157. data/vendor/faiss/faiss/impl/pq4_fast_scan.h +7 -6
  158. data/vendor/faiss/faiss/impl/pq4_fast_scan_search_1.cpp +52 -38
  159. data/vendor/faiss/faiss/impl/pq4_fast_scan_search_qbs.cpp +487 -49
  160. data/vendor/faiss/faiss/impl/residual_quantizer_encode_steps.cpp +960 -0
  161. data/vendor/faiss/faiss/impl/residual_quantizer_encode_steps.h +176 -0
  162. data/vendor/faiss/faiss/impl/simd_result_handlers.h +481 -225
  163. data/vendor/faiss/faiss/index_factory.cpp +41 -20
  164. data/vendor/faiss/faiss/index_io.h +12 -5
  165. data/vendor/faiss/faiss/invlists/BlockInvertedLists.cpp +28 -8
  166. data/vendor/faiss/faiss/invlists/BlockInvertedLists.h +3 -0
  167. data/vendor/faiss/faiss/invlists/DirectMap.cpp +10 -2
  168. data/vendor/faiss/faiss/invlists/InvertedLists.cpp +73 -17
  169. data/vendor/faiss/faiss/invlists/InvertedLists.h +26 -8
  170. data/vendor/faiss/faiss/invlists/OnDiskInvertedLists.cpp +24 -9
  171. data/vendor/faiss/faiss/invlists/OnDiskInvertedLists.h +2 -1
  172. data/vendor/faiss/faiss/python/python_callbacks.cpp +4 -4
  173. data/vendor/faiss/faiss/utils/Heap.cpp +3 -1
  174. data/vendor/faiss/faiss/utils/Heap.h +105 -0
  175. data/vendor/faiss/faiss/utils/NeuralNet.cpp +342 -0
  176. data/vendor/faiss/faiss/utils/NeuralNet.h +147 -0
  177. data/vendor/faiss/faiss/utils/WorkerThread.h +1 -0
  178. data/vendor/faiss/faiss/utils/bf16.h +36 -0
  179. data/vendor/faiss/faiss/utils/distances.cpp +147 -123
  180. data/vendor/faiss/faiss/utils/distances.h +86 -9
  181. data/vendor/faiss/faiss/utils/distances_fused/avx512.cpp +5 -5
  182. data/vendor/faiss/faiss/utils/distances_fused/avx512.h +2 -2
  183. data/vendor/faiss/faiss/utils/distances_fused/distances_fused.cpp +2 -2
  184. data/vendor/faiss/faiss/utils/distances_fused/distances_fused.h +1 -1
  185. data/vendor/faiss/faiss/utils/distances_fused/simdlib_based.cpp +5 -5
  186. data/vendor/faiss/faiss/utils/distances_fused/simdlib_based.h +1 -1
  187. data/vendor/faiss/faiss/utils/distances_simd.cpp +1589 -243
  188. data/vendor/faiss/faiss/utils/extra_distances-inl.h +70 -0
  189. data/vendor/faiss/faiss/utils/extra_distances.cpp +85 -137
  190. data/vendor/faiss/faiss/utils/extra_distances.h +3 -2
  191. data/vendor/faiss/faiss/utils/fp16-arm.h +29 -0
  192. data/vendor/faiss/faiss/utils/fp16.h +2 -0
  193. data/vendor/faiss/faiss/utils/hamming.cpp +163 -111
  194. data/vendor/faiss/faiss/utils/hamming.h +58 -0
  195. data/vendor/faiss/faiss/utils/hamming_distance/avx2-inl.h +16 -89
  196. data/vendor/faiss/faiss/utils/hamming_distance/common.h +1 -0
  197. data/vendor/faiss/faiss/utils/hamming_distance/generic-inl.h +19 -88
  198. data/vendor/faiss/faiss/utils/hamming_distance/hamdis-inl.h +58 -0
  199. data/vendor/faiss/faiss/utils/hamming_distance/neon-inl.h +14 -104
  200. data/vendor/faiss/faiss/utils/partitioning.cpp +3 -4
  201. data/vendor/faiss/faiss/utils/prefetch.h +77 -0
  202. data/vendor/faiss/faiss/utils/quantize_lut.cpp +0 -14
  203. data/vendor/faiss/faiss/utils/random.cpp +43 -0
  204. data/vendor/faiss/faiss/utils/random.h +25 -0
  205. data/vendor/faiss/faiss/utils/simdlib.h +10 -1
  206. data/vendor/faiss/faiss/utils/simdlib_avx2.h +0 -6
  207. data/vendor/faiss/faiss/utils/simdlib_avx512.h +296 -0
  208. data/vendor/faiss/faiss/utils/simdlib_neon.h +77 -79
  209. data/vendor/faiss/faiss/utils/simdlib_ppc64.h +1084 -0
  210. data/vendor/faiss/faiss/utils/sorting.cpp +140 -5
  211. data/vendor/faiss/faiss/utils/sorting.h +27 -0
  212. data/vendor/faiss/faiss/utils/transpose/transpose-avx512-inl.h +176 -0
  213. data/vendor/faiss/faiss/utils/utils.cpp +120 -7
  214. data/vendor/faiss/faiss/utils/utils.h +60 -20
  215. metadata +23 -4
  216. data/vendor/faiss/faiss/impl/code_distance/code_distance_avx512.h +0 -102
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.3.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-12 00:00:00.000000000 Z
11
+ date: 2024-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice
@@ -107,6 +107,8 @@ files:
107
107
  - vendor/faiss/faiss/IndexIVFFastScan.h
108
108
  - vendor/faiss/faiss/IndexIVFFlat.cpp
109
109
  - vendor/faiss/faiss/IndexIVFFlat.h
110
+ - vendor/faiss/faiss/IndexIVFIndependentQuantizer.cpp
111
+ - vendor/faiss/faiss/IndexIVFIndependentQuantizer.h
110
112
  - vendor/faiss/faiss/IndexIVFPQ.cpp
111
113
  - vendor/faiss/faiss/IndexIVFPQ.h
112
114
  - vendor/faiss/faiss/IndexIVFPQFastScan.cpp
@@ -123,6 +125,8 @@ files:
123
125
  - vendor/faiss/faiss/IndexNNDescent.h
124
126
  - vendor/faiss/faiss/IndexNSG.cpp
125
127
  - vendor/faiss/faiss/IndexNSG.h
128
+ - vendor/faiss/faiss/IndexNeuralNetCodec.cpp
129
+ - vendor/faiss/faiss/IndexNeuralNetCodec.h
126
130
  - vendor/faiss/faiss/IndexPQ.cpp
127
131
  - vendor/faiss/faiss/IndexPQ.h
128
132
  - vendor/faiss/faiss/IndexPQFastScan.cpp
@@ -153,6 +157,8 @@ files:
153
157
  - vendor/faiss/faiss/cppcontrib/SaDecodeKernels.h
154
158
  - vendor/faiss/faiss/cppcontrib/detail/CoarseBitType.h
155
159
  - vendor/faiss/faiss/cppcontrib/detail/UintReader.h
160
+ - vendor/faiss/faiss/cppcontrib/factory_tools.cpp
161
+ - vendor/faiss/faiss/cppcontrib/factory_tools.h
156
162
  - vendor/faiss/faiss/cppcontrib/sa_decode/Level2-avx2-inl.h
157
163
  - vendor/faiss/faiss/cppcontrib/sa_decode/Level2-inl.h
158
164
  - vendor/faiss/faiss/cppcontrib/sa_decode/Level2-neon-inl.h
@@ -171,6 +177,7 @@ files:
171
177
  - vendor/faiss/faiss/gpu/GpuIcmEncoder.h
172
178
  - vendor/faiss/faiss/gpu/GpuIndex.h
173
179
  - vendor/faiss/faiss/gpu/GpuIndexBinaryFlat.h
180
+ - vendor/faiss/faiss/gpu/GpuIndexCagra.h
174
181
  - vendor/faiss/faiss/gpu/GpuIndexFlat.h
175
182
  - vendor/faiss/faiss/gpu/GpuIndexIVF.h
176
183
  - vendor/faiss/faiss/gpu/GpuIndexIVFFlat.h
@@ -202,6 +209,7 @@ files:
202
209
  - vendor/faiss/faiss/gpu/test/TestUtils.h
203
210
  - vendor/faiss/faiss/gpu/test/demo_ivfpq_indexing_gpu.cpp
204
211
  - vendor/faiss/faiss/gpu/utils/DeviceUtils.h
212
+ - vendor/faiss/faiss/gpu/utils/RaftUtils.h
205
213
  - vendor/faiss/faiss/gpu/utils/StackDeviceMemory.cpp
206
214
  - vendor/faiss/faiss/gpu/utils/StackDeviceMemory.h
207
215
  - vendor/faiss/faiss/gpu/utils/StaticUtils.h
@@ -244,10 +252,11 @@ files:
244
252
  - vendor/faiss/faiss/impl/ThreadedIndex-inl.h
245
253
  - vendor/faiss/faiss/impl/ThreadedIndex.h
246
254
  - vendor/faiss/faiss/impl/code_distance/code_distance-avx2.h
255
+ - vendor/faiss/faiss/impl/code_distance/code_distance-avx512.h
247
256
  - vendor/faiss/faiss/impl/code_distance/code_distance-generic.h
248
257
  - vendor/faiss/faiss/impl/code_distance/code_distance.h
249
- - vendor/faiss/faiss/impl/code_distance/code_distance_avx512.h
250
258
  - vendor/faiss/faiss/impl/index_read.cpp
259
+ - vendor/faiss/faiss/impl/index_read_utils.h
251
260
  - vendor/faiss/faiss/impl/index_write.cpp
252
261
  - vendor/faiss/faiss/impl/io.cpp
253
262
  - vendor/faiss/faiss/impl/io.h
@@ -261,6 +270,8 @@ files:
261
270
  - vendor/faiss/faiss/impl/pq4_fast_scan.h
262
271
  - vendor/faiss/faiss/impl/pq4_fast_scan_search_1.cpp
263
272
  - vendor/faiss/faiss/impl/pq4_fast_scan_search_qbs.cpp
273
+ - vendor/faiss/faiss/impl/residual_quantizer_encode_steps.cpp
274
+ - vendor/faiss/faiss/impl/residual_quantizer_encode_steps.h
264
275
  - vendor/faiss/faiss/impl/simd_result_handlers.h
265
276
  - vendor/faiss/faiss/index_factory.cpp
266
277
  - vendor/faiss/faiss/index_factory.h
@@ -280,6 +291,8 @@ files:
280
291
  - vendor/faiss/faiss/utils/AlignedTable.h
281
292
  - vendor/faiss/faiss/utils/Heap.cpp
282
293
  - vendor/faiss/faiss/utils/Heap.h
294
+ - vendor/faiss/faiss/utils/NeuralNet.cpp
295
+ - vendor/faiss/faiss/utils/NeuralNet.h
283
296
  - vendor/faiss/faiss/utils/WorkerThread.cpp
284
297
  - vendor/faiss/faiss/utils/WorkerThread.h
285
298
  - vendor/faiss/faiss/utils/approx_topk/approx_topk.h
@@ -287,6 +300,7 @@ files:
287
300
  - vendor/faiss/faiss/utils/approx_topk/generic.h
288
301
  - vendor/faiss/faiss/utils/approx_topk/mode.h
289
302
  - vendor/faiss/faiss/utils/approx_topk_hamming/approx_topk_hamming.h
303
+ - vendor/faiss/faiss/utils/bf16.h
290
304
  - vendor/faiss/faiss/utils/distances.cpp
291
305
  - vendor/faiss/faiss/utils/distances.h
292
306
  - vendor/faiss/faiss/utils/distances_fused/avx512.cpp
@@ -299,6 +313,7 @@ files:
299
313
  - vendor/faiss/faiss/utils/extra_distances-inl.h
300
314
  - vendor/faiss/faiss/utils/extra_distances.cpp
301
315
  - vendor/faiss/faiss/utils/extra_distances.h
316
+ - vendor/faiss/faiss/utils/fp16-arm.h
302
317
  - vendor/faiss/faiss/utils/fp16-fp16c.h
303
318
  - vendor/faiss/faiss/utils/fp16-inl.h
304
319
  - vendor/faiss/faiss/utils/fp16.h
@@ -313,17 +328,21 @@ files:
313
328
  - vendor/faiss/faiss/utils/ordered_key_value.h
314
329
  - vendor/faiss/faiss/utils/partitioning.cpp
315
330
  - vendor/faiss/faiss/utils/partitioning.h
331
+ - vendor/faiss/faiss/utils/prefetch.h
316
332
  - vendor/faiss/faiss/utils/quantize_lut.cpp
317
333
  - vendor/faiss/faiss/utils/quantize_lut.h
318
334
  - vendor/faiss/faiss/utils/random.cpp
319
335
  - vendor/faiss/faiss/utils/random.h
320
336
  - vendor/faiss/faiss/utils/simdlib.h
321
337
  - vendor/faiss/faiss/utils/simdlib_avx2.h
338
+ - vendor/faiss/faiss/utils/simdlib_avx512.h
322
339
  - vendor/faiss/faiss/utils/simdlib_emulated.h
323
340
  - vendor/faiss/faiss/utils/simdlib_neon.h
341
+ - vendor/faiss/faiss/utils/simdlib_ppc64.h
324
342
  - vendor/faiss/faiss/utils/sorting.cpp
325
343
  - vendor/faiss/faiss/utils/sorting.h
326
344
  - vendor/faiss/faiss/utils/transpose/transpose-avx2-inl.h
345
+ - vendor/faiss/faiss/utils/transpose/transpose-avx512-inl.h
327
346
  - vendor/faiss/faiss/utils/utils.cpp
328
347
  - vendor/faiss/faiss/utils/utils.h
329
348
  homepage: https://github.com/ankane/faiss-ruby
@@ -345,7 +364,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
345
364
  - !ruby/object:Gem::Version
346
365
  version: '0'
347
366
  requirements: []
348
- rubygems_version: 3.4.10
367
+ rubygems_version: 3.5.16
349
368
  signing_key:
350
369
  specification_version: 4
351
370
  summary: Efficient similarity search and clustering for Ruby
@@ -1,102 +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
- // // // AVX-512 version. It is not used, but let it be for the future
9
- // // // needs.
10
- // // template <class SearchResultType, typename T = PQDecoder>
11
- // // typename std::enable_if<(std::is_same<T, PQDecoder8>::value), void>::
12
- // // type distance_four_codes(
13
- // // const uint8_t* __restrict code0,
14
- // // const uint8_t* __restrict code1,
15
- // // const uint8_t* __restrict code2,
16
- // // const uint8_t* __restrict code3,
17
- // // float& result0,
18
- // // float& result1,
19
- // // float& result2,
20
- // // float& result3
21
- // // ) const {
22
- // // result0 = 0;
23
- // // result1 = 0;
24
- // // result2 = 0;
25
- // // result3 = 0;
26
-
27
- // // size_t m = 0;
28
- // // const size_t pqM16 = pq.M / 16;
29
-
30
- // // constexpr intptr_t N = 4;
31
-
32
- // // const float* tab = sim_table;
33
-
34
- // // if (pqM16 > 0) {
35
- // // // process 16 values per loop
36
- // // const __m512i ksub = _mm512_set1_epi32(pq.ksub);
37
- // // __m512i offsets_0 = _mm512_setr_epi32(0, 1, 2, 3, 4, 5, 6, 7,
38
- // // 8, 9, 10, 11, 12, 13, 14, 15);
39
- // // offsets_0 = _mm512_mullo_epi32(offsets_0, ksub);
40
-
41
- // // // accumulators of partial sums
42
- // // __m512 partialSums[N];
43
- // // for (intptr_t j = 0; j < N; j++) {
44
- // // partialSums[j] = _mm512_setzero_ps();
45
- // // }
46
-
47
- // // // loop
48
- // // for (m = 0; m < pqM16 * 16; m += 16) {
49
- // // // load 16 uint8 values
50
- // // __m128i mm1[N];
51
- // // mm1[0] = _mm_loadu_si128((const __m128i_u*)(code0 + m));
52
- // // mm1[1] = _mm_loadu_si128((const __m128i_u*)(code1 + m));
53
- // // mm1[2] = _mm_loadu_si128((const __m128i_u*)(code2 + m));
54
- // // mm1[3] = _mm_loadu_si128((const __m128i_u*)(code3 + m));
55
-
56
- // // // process first 8 codes
57
- // // for (intptr_t j = 0; j < N; j++) {
58
- // // // convert uint8 values (low part of __m128i) to int32
59
- // // // values
60
- // // const __m512i idx1 = _mm512_cvtepu8_epi32(mm1[j]);
61
-
62
- // // // add offsets
63
- // // const __m512i indices_to_read_from =
64
- // // _mm512_add_epi32(idx1, offsets_0);
65
-
66
- // // // gather 8 values, similar to 8 operations of
67
- // // // tab[idx]
68
- // // __m512 collected =
69
- // // _mm512_i32gather_ps(
70
- // // indices_to_read_from, tab, sizeof(float));
71
-
72
- // // // collect partial sums
73
- // // partialSums[j] = _mm512_add_ps(partialSums[j],
74
- // // collected);
75
- // // }
76
- // // tab += pq.ksub * 16;
77
-
78
- // // }
79
-
80
- // // // horizontal sum for partialSum
81
- // // result0 += _mm512_reduce_add_ps(partialSums[0]);
82
- // // result1 += _mm512_reduce_add_ps(partialSums[1]);
83
- // // result2 += _mm512_reduce_add_ps(partialSums[2]);
84
- // // result3 += _mm512_reduce_add_ps(partialSums[3]);
85
- // // }
86
-
87
- // // //
88
- // // if (m < pq.M) {
89
- // // // process leftovers
90
- // // PQDecoder decoder0(code0 + m, pq.nbits);
91
- // // PQDecoder decoder1(code1 + m, pq.nbits);
92
- // // PQDecoder decoder2(code2 + m, pq.nbits);
93
- // // PQDecoder decoder3(code3 + m, pq.nbits);
94
- // // for (; m < pq.M; m++) {
95
- // // result0 += tab[decoder0.decode()];
96
- // // result1 += tab[decoder1.decode()];
97
- // // result2 += tab[decoder2.decode()];
98
- // // result3 += tab[decoder3.decode()];
99
- // // tab += pq.ksub;
100
- // // }
101
- // // }
102
- // // }