/root/doris/contrib/faiss/faiss/impl/ScalarQuantizer.cpp
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) Meta Platforms, Inc. and 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 | | // -*- c++ -*- |
9 | | |
10 | | #include <faiss/impl/ScalarQuantizer.h> |
11 | | |
12 | | #include <algorithm> |
13 | | #include <cstdio> |
14 | | |
15 | | #include <faiss/impl/platform_macros.h> |
16 | | #include <omp.h> |
17 | | |
18 | | #ifdef __SSE__ |
19 | | #include <immintrin.h> |
20 | | #endif |
21 | | |
22 | | #include <faiss/IndexIVF.h> |
23 | | #include <faiss/impl/AuxIndexStructures.h> |
24 | | #include <faiss/impl/FaissAssert.h> |
25 | | #include <faiss/impl/IDSelector.h> |
26 | | #include <faiss/utils/bf16.h> |
27 | | #include <faiss/utils/fp16.h> |
28 | | #include <faiss/utils/utils.h> |
29 | | |
30 | | namespace faiss { |
31 | | |
32 | | /******************************************************************* |
33 | | * ScalarQuantizer implementation |
34 | | * |
35 | | * The main source of complexity is to support combinations of 4 |
36 | | * variants without incurring runtime tests or virtual function calls: |
37 | | * |
38 | | * - 4 / 8 bits per code component |
39 | | * - uniform / non-uniform |
40 | | * - IP / L2 distance search |
41 | | * - scalar / AVX distance computation |
42 | | * |
43 | | * The appropriate Quantizer object is returned via select_quantizer |
44 | | * that hides the template mess. |
45 | | ********************************************************************/ |
46 | | |
47 | | #if defined(__AVX512F__) && defined(__F16C__) |
48 | | #define USE_AVX512_F16C |
49 | | #elif defined(__AVX2__) |
50 | | #ifdef __F16C__ |
51 | | #define USE_F16C |
52 | | #else |
53 | | #warning \ |
54 | | "Cannot enable AVX optimizations in scalar quantizer if -mf16c is not set as well" |
55 | | #endif |
56 | | #endif |
57 | | |
58 | | #if defined(__aarch64__) |
59 | | #if defined(__GNUC__) && __GNUC__ < 8 |
60 | | #warning \ |
61 | | "Cannot enable NEON optimizations in scalar quantizer if the compiler is GCC<8" |
62 | | #else |
63 | | #define USE_NEON |
64 | | #endif |
65 | | #endif |
66 | | |
67 | | namespace { |
68 | | |
69 | | typedef ScalarQuantizer::QuantizerType QuantizerType; |
70 | | typedef ScalarQuantizer::RangeStat RangeStat; |
71 | | using SQDistanceComputer = ScalarQuantizer::SQDistanceComputer; |
72 | | |
73 | | /******************************************************************* |
74 | | * Codec: converts between values in [0, 1] and an index in a code |
75 | | * array. The "i" parameter is the vector component index (not byte |
76 | | * index). |
77 | | */ |
78 | | |
79 | | struct Codec8bit { |
80 | | static FAISS_ALWAYS_INLINE void encode_component( |
81 | | float x, |
82 | | uint8_t* code, |
83 | 11.6k | int i) { |
84 | 11.6k | code[i] = (int)(255 * x); |
85 | 11.6k | } |
86 | | |
87 | | static FAISS_ALWAYS_INLINE float decode_component( |
88 | | const uint8_t* code, |
89 | 3.12M | int i) { |
90 | 3.12M | return (code[i] + 0.5f) / 255.0f; |
91 | 3.12M | } |
92 | | |
93 | | #if defined(__AVX512F__) |
94 | | static FAISS_ALWAYS_INLINE __m512 |
95 | | decode_16_components(const uint8_t* code, int i) { |
96 | | const __m128i c16 = _mm_loadu_si128((__m128i*)(code + i)); |
97 | | const __m512i i32 = _mm512_cvtepu8_epi32(c16); |
98 | | const __m512 f16 = _mm512_cvtepi32_ps(i32); |
99 | | const __m512 half_one_255 = _mm512_set1_ps(0.5f / 255.f); |
100 | | const __m512 one_255 = _mm512_set1_ps(1.f / 255.f); |
101 | | return _mm512_fmadd_ps(f16, one_255, half_one_255); |
102 | | } |
103 | | #elif defined(__AVX2__) |
104 | | static FAISS_ALWAYS_INLINE __m256 |
105 | 0 | decode_8_components(const uint8_t* code, int i) { |
106 | 0 | const uint64_t c8 = *(uint64_t*)(code + i); |
107 | 0 |
|
108 | 0 | const __m128i i8 = _mm_set1_epi64x(c8); |
109 | 0 | const __m256i i32 = _mm256_cvtepu8_epi32(i8); |
110 | 0 | const __m256 f8 = _mm256_cvtepi32_ps(i32); |
111 | 0 | const __m256 half_one_255 = _mm256_set1_ps(0.5f / 255.f); |
112 | 0 | const __m256 one_255 = _mm256_set1_ps(1.f / 255.f); |
113 | 0 | return _mm256_fmadd_ps(f8, one_255, half_one_255); |
114 | 0 | } |
115 | | #endif |
116 | | |
117 | | #ifdef USE_NEON |
118 | | static FAISS_ALWAYS_INLINE float32x4x2_t |
119 | | decode_8_components(const uint8_t* code, int i) { |
120 | | float32_t result[8] = {}; |
121 | | for (size_t j = 0; j < 8; j++) { |
122 | | result[j] = decode_component(code, i + j); |
123 | | } |
124 | | float32x4_t res1 = vld1q_f32(result); |
125 | | float32x4_t res2 = vld1q_f32(result + 4); |
126 | | return {res1, res2}; |
127 | | } |
128 | | #endif |
129 | | }; |
130 | | |
131 | | struct Codec4bit { |
132 | | static FAISS_ALWAYS_INLINE void encode_component( |
133 | | float x, |
134 | | uint8_t* code, |
135 | 12.2k | int i) { |
136 | 12.2k | code[i / 2] |= (int)(x * 15.0) << ((i & 1) << 2); |
137 | 12.2k | } |
138 | | |
139 | | static FAISS_ALWAYS_INLINE float decode_component( |
140 | | const uint8_t* code, |
141 | 2.92M | int i) { |
142 | 2.92M | return (((code[i / 2] >> ((i & 1) << 2)) & 0xf) + 0.5f) / 15.0f; |
143 | 2.92M | } |
144 | | |
145 | | #if defined(__AVX512F__) |
146 | | static FAISS_ALWAYS_INLINE __m512 |
147 | | decode_16_components(const uint8_t* code, int i) { |
148 | | uint64_t c8 = *(uint64_t*)(code + (i >> 1)); |
149 | | uint64_t mask = 0x0f0f0f0f0f0f0f0f; |
150 | | uint64_t c8ev = c8 & mask; |
151 | | uint64_t c8od = (c8 >> 4) & mask; |
152 | | |
153 | | __m128i c16 = |
154 | | _mm_unpacklo_epi8(_mm_set1_epi64x(c8ev), _mm_set1_epi64x(c8od)); |
155 | | __m256i c8lo = _mm256_cvtepu8_epi32(c16); |
156 | | __m256i c8hi = _mm256_cvtepu8_epi32(_mm_srli_si128(c16, 8)); |
157 | | __m512i i16 = _mm512_castsi256_si512(c8lo); |
158 | | i16 = _mm512_inserti32x8(i16, c8hi, 1); |
159 | | __m512 f16 = _mm512_cvtepi32_ps(i16); |
160 | | const __m512 half_one_255 = _mm512_set1_ps(0.5f / 15.f); |
161 | | const __m512 one_255 = _mm512_set1_ps(1.f / 15.f); |
162 | | return _mm512_fmadd_ps(f16, one_255, half_one_255); |
163 | | } |
164 | | #elif defined(__AVX2__) |
165 | | static FAISS_ALWAYS_INLINE __m256 |
166 | 0 | decode_8_components(const uint8_t* code, int i) { |
167 | 0 | uint32_t c4 = *(uint32_t*)(code + (i >> 1)); |
168 | 0 | uint32_t mask = 0x0f0f0f0f; |
169 | 0 | uint32_t c4ev = c4 & mask; |
170 | 0 | uint32_t c4od = (c4 >> 4) & mask; |
171 | 0 |
|
172 | 0 | // the 8 lower bytes of c8 contain the values |
173 | 0 | __m128i c8 = |
174 | 0 | _mm_unpacklo_epi8(_mm_set1_epi32(c4ev), _mm_set1_epi32(c4od)); |
175 | 0 | __m128i c4lo = _mm_cvtepu8_epi32(c8); |
176 | 0 | __m128i c4hi = _mm_cvtepu8_epi32(_mm_srli_si128(c8, 4)); |
177 | 0 | __m256i i8 = _mm256_castsi128_si256(c4lo); |
178 | 0 | i8 = _mm256_insertf128_si256(i8, c4hi, 1); |
179 | 0 | __m256 f8 = _mm256_cvtepi32_ps(i8); |
180 | 0 | __m256 half = _mm256_set1_ps(0.5f); |
181 | 0 | f8 = _mm256_add_ps(f8, half); |
182 | 0 | __m256 one_255 = _mm256_set1_ps(1.f / 15.f); |
183 | 0 | return _mm256_mul_ps(f8, one_255); |
184 | 0 | } |
185 | | #endif |
186 | | |
187 | | #ifdef USE_NEON |
188 | | static FAISS_ALWAYS_INLINE float32x4x2_t |
189 | | decode_8_components(const uint8_t* code, int i) { |
190 | | float32_t result[8] = {}; |
191 | | for (size_t j = 0; j < 8; j++) { |
192 | | result[j] = decode_component(code, i + j); |
193 | | } |
194 | | float32x4_t res1 = vld1q_f32(result); |
195 | | float32x4_t res2 = vld1q_f32(result + 4); |
196 | | return {res1, res2}; |
197 | | } |
198 | | #endif |
199 | | }; |
200 | | |
201 | | struct Codec6bit { |
202 | | static FAISS_ALWAYS_INLINE void encode_component( |
203 | | float x, |
204 | | uint8_t* code, |
205 | 0 | int i) { |
206 | 0 | int bits = (int)(x * 63.0); |
207 | 0 | code += (i >> 2) * 3; |
208 | 0 | switch (i & 3) { |
209 | 0 | case 0: |
210 | 0 | code[0] |= bits; |
211 | 0 | break; |
212 | 0 | case 1: |
213 | 0 | code[0] |= bits << 6; |
214 | 0 | code[1] |= bits >> 2; |
215 | 0 | break; |
216 | 0 | case 2: |
217 | 0 | code[1] |= bits << 4; |
218 | 0 | code[2] |= bits >> 4; |
219 | 0 | break; |
220 | 0 | case 3: |
221 | 0 | code[2] |= bits << 2; |
222 | 0 | break; |
223 | 0 | } |
224 | 0 | } |
225 | | |
226 | | static FAISS_ALWAYS_INLINE float decode_component( |
227 | | const uint8_t* code, |
228 | 0 | int i) { |
229 | 0 | uint8_t bits; |
230 | 0 | code += (i >> 2) * 3; |
231 | 0 | switch (i & 3) { |
232 | 0 | case 0: |
233 | 0 | bits = code[0] & 0x3f; |
234 | 0 | break; |
235 | 0 | case 1: |
236 | 0 | bits = code[0] >> 6; |
237 | 0 | bits |= (code[1] & 0xf) << 2; |
238 | 0 | break; |
239 | 0 | case 2: |
240 | 0 | bits = code[1] >> 4; |
241 | 0 | bits |= (code[2] & 3) << 4; |
242 | 0 | break; |
243 | 0 | case 3: |
244 | 0 | bits = code[2] >> 2; |
245 | 0 | break; |
246 | 0 | } |
247 | 0 | return (bits + 0.5f) / 63.0f; |
248 | 0 | } |
249 | | |
250 | | #if defined(__AVX512F__) |
251 | | |
252 | | static FAISS_ALWAYS_INLINE __m512 |
253 | | decode_16_components(const uint8_t* code, int i) { |
254 | | // pure AVX512 implementation (not necessarily the fastest). |
255 | | // see: |
256 | | // https://github.com/zilliztech/knowhere/blob/main/thirdparty/faiss/faiss/impl/ScalarQuantizerCodec_avx512.h |
257 | | |
258 | | // clang-format off |
259 | | |
260 | | // 16 components, 16x6 bit=12 bytes |
261 | | const __m128i bit_6v = |
262 | | _mm_maskz_loadu_epi8(0b0000111111111111, code + (i >> 2) * 3); |
263 | | const __m256i bit_6v_256 = _mm256_broadcast_i32x4(bit_6v); |
264 | | |
265 | | // 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |
266 | | // 00 01 02 03 |
267 | | const __m256i shuffle_mask = _mm256_setr_epi16( |
268 | | 0xFF00, 0x0100, 0x0201, 0xFF02, |
269 | | 0xFF03, 0x0403, 0x0504, 0xFF05, |
270 | | 0xFF06, 0x0706, 0x0807, 0xFF08, |
271 | | 0xFF09, 0x0A09, 0x0B0A, 0xFF0B); |
272 | | const __m256i shuffled = _mm256_shuffle_epi8(bit_6v_256, shuffle_mask); |
273 | | |
274 | | // 0: xxxxxxxx xx543210 |
275 | | // 1: xxxx5432 10xxxxxx |
276 | | // 2: xxxxxx54 3210xxxx |
277 | | // 3: xxxxxxxx 543210xx |
278 | | const __m256i shift_right_v = _mm256_setr_epi16( |
279 | | 0x0U, 0x6U, 0x4U, 0x2U, |
280 | | 0x0U, 0x6U, 0x4U, 0x2U, |
281 | | 0x0U, 0x6U, 0x4U, 0x2U, |
282 | | 0x0U, 0x6U, 0x4U, 0x2U); |
283 | | __m256i shuffled_shifted = _mm256_srlv_epi16(shuffled, shift_right_v); |
284 | | |
285 | | // remove unneeded bits |
286 | | shuffled_shifted = |
287 | | _mm256_and_si256(shuffled_shifted, _mm256_set1_epi16(0x003F)); |
288 | | |
289 | | // scale |
290 | | const __m512 f8 = |
291 | | _mm512_cvtepi32_ps(_mm512_cvtepi16_epi32(shuffled_shifted)); |
292 | | const __m512 half_one_255 = _mm512_set1_ps(0.5f / 63.f); |
293 | | const __m512 one_255 = _mm512_set1_ps(1.f / 63.f); |
294 | | return _mm512_fmadd_ps(f8, one_255, half_one_255); |
295 | | |
296 | | // clang-format on |
297 | | } |
298 | | |
299 | | #elif defined(__AVX2__) |
300 | | |
301 | | /* Load 6 bytes that represent 8 6-bit values, return them as a |
302 | | * 8*32 bit vector register */ |
303 | 0 | static FAISS_ALWAYS_INLINE __m256i load6(const uint16_t* code16) { |
304 | 0 | const __m128i perm = _mm_set_epi8( |
305 | 0 | -1, 5, 5, 4, 4, 3, -1, 3, -1, 2, 2, 1, 1, 0, -1, 0); |
306 | 0 | const __m256i shifts = _mm256_set_epi32(2, 4, 6, 0, 2, 4, 6, 0); |
307 | 0 |
|
308 | 0 | // load 6 bytes |
309 | 0 | __m128i c1 = |
310 | 0 | _mm_set_epi16(0, 0, 0, 0, 0, code16[2], code16[1], code16[0]); |
311 | 0 |
|
312 | 0 | // put in 8 * 32 bits |
313 | 0 | __m128i c2 = _mm_shuffle_epi8(c1, perm); |
314 | 0 | __m256i c3 = _mm256_cvtepi16_epi32(c2); |
315 | 0 |
|
316 | 0 | // shift and mask out useless bits |
317 | 0 | __m256i c4 = _mm256_srlv_epi32(c3, shifts); |
318 | 0 | __m256i c5 = _mm256_and_si256(_mm256_set1_epi32(63), c4); |
319 | 0 | return c5; |
320 | 0 | } |
321 | | |
322 | | static FAISS_ALWAYS_INLINE __m256 |
323 | 0 | decode_8_components(const uint8_t* code, int i) { |
324 | 0 | // // Faster code for Intel CPUs or AMD Zen3+, just keeping it here |
325 | 0 | // // for the reference, maybe, it becomes used oned day. |
326 | 0 | // const uint16_t* data16 = (const uint16_t*)(code + (i >> 2) * 3); |
327 | 0 | // const uint32_t* data32 = (const uint32_t*)data16; |
328 | 0 | // const uint64_t val = *data32 + ((uint64_t)data16[2] << 32); |
329 | 0 | // const uint64_t vext = _pdep_u64(val, 0x3F3F3F3F3F3F3F3FULL); |
330 | 0 | // const __m128i i8 = _mm_set1_epi64x(vext); |
331 | 0 | // const __m256i i32 = _mm256_cvtepi8_epi32(i8); |
332 | 0 | // const __m256 f8 = _mm256_cvtepi32_ps(i32); |
333 | 0 | // const __m256 half_one_255 = _mm256_set1_ps(0.5f / 63.f); |
334 | 0 | // const __m256 one_255 = _mm256_set1_ps(1.f / 63.f); |
335 | 0 | // return _mm256_fmadd_ps(f8, one_255, half_one_255); |
336 | 0 |
|
337 | 0 | __m256i i8 = load6((const uint16_t*)(code + (i >> 2) * 3)); |
338 | 0 | __m256 f8 = _mm256_cvtepi32_ps(i8); |
339 | 0 | // this could also be done with bit manipulations but it is |
340 | 0 | // not obviously faster |
341 | 0 | const __m256 half_one_255 = _mm256_set1_ps(0.5f / 63.f); |
342 | 0 | const __m256 one_255 = _mm256_set1_ps(1.f / 63.f); |
343 | 0 | return _mm256_fmadd_ps(f8, one_255, half_one_255); |
344 | 0 | } |
345 | | |
346 | | #endif |
347 | | |
348 | | #ifdef USE_NEON |
349 | | static FAISS_ALWAYS_INLINE float32x4x2_t |
350 | | decode_8_components(const uint8_t* code, int i) { |
351 | | float32_t result[8] = {}; |
352 | | for (size_t j = 0; j < 8; j++) { |
353 | | result[j] = decode_component(code, i + j); |
354 | | } |
355 | | float32x4_t res1 = vld1q_f32(result); |
356 | | float32x4_t res2 = vld1q_f32(result + 4); |
357 | | return {res1, res2}; |
358 | | } |
359 | | #endif |
360 | | }; |
361 | | |
362 | | /******************************************************************* |
363 | | * Quantizer: normalizes scalar vector components, then passes them |
364 | | * through a codec |
365 | | *******************************************************************/ |
366 | | |
367 | | enum class QuantizerTemplateScaling { UNIFORM = 0, NON_UNIFORM = 1 }; |
368 | | |
369 | | template <class Codec, QuantizerTemplateScaling SCALING, int SIMD> |
370 | | struct QuantizerTemplate {}; |
371 | | |
372 | | template <class Codec> |
373 | | struct QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1> |
374 | | : ScalarQuantizer::SQuantizer { |
375 | | const size_t d; |
376 | | const float vmin, vdiff; |
377 | | |
378 | | QuantizerTemplate(size_t d, const std::vector<float>& trained) |
379 | 0 | : d(d), vmin(trained[0]), vdiff(trained[1]) {}Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEC2EmRKSt6vectorIfSaIfEE |
380 | | |
381 | 0 | void encode_vector(const float* x, uint8_t* code) const final { |
382 | 0 | for (size_t i = 0; i < d; i++) { |
383 | 0 | float xi = 0; |
384 | 0 | if (vdiff != 0) { |
385 | 0 | xi = (x[i] - vmin) / vdiff; |
386 | 0 | if (xi < 0) { |
387 | 0 | xi = 0; |
388 | 0 | } |
389 | 0 | if (xi > 1.0) { |
390 | 0 | xi = 1.0; |
391 | 0 | } |
392 | 0 | } |
393 | 0 | Codec::encode_component(xi, code, i); |
394 | 0 | } |
395 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EE13encode_vectorEPKfPh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EE13encode_vectorEPKfPh |
396 | | |
397 | 0 | void decode_vector(const uint8_t* code, float* x) const final { |
398 | 0 | for (size_t i = 0; i < d; i++) { |
399 | 0 | float xi = Codec::decode_component(code, i); |
400 | 0 | x[i] = vmin + xi * vdiff; |
401 | 0 | } |
402 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EE13decode_vectorEPKhPf Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EE13decode_vectorEPKhPf |
403 | | |
404 | | FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i) |
405 | 0 | const { |
406 | 0 | float xi = Codec::decode_component(code, i); |
407 | 0 | return vmin + xi * vdiff; |
408 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EE21reconstruct_componentEPKhi Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EE21reconstruct_componentEPKhi |
409 | | }; |
410 | | |
411 | | #if defined(__AVX512F__) |
412 | | |
413 | | template <class Codec> |
414 | | struct QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 16> |
415 | | : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1> { |
416 | | QuantizerTemplate(size_t d, const std::vector<float>& trained) |
417 | | : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1>( |
418 | | d, |
419 | | trained) {} |
420 | | |
421 | | FAISS_ALWAYS_INLINE __m512 |
422 | | reconstruct_16_components(const uint8_t* code, int i) const { |
423 | | __m512 xi = Codec::decode_16_components(code, i); |
424 | | return _mm512_fmadd_ps( |
425 | | xi, _mm512_set1_ps(this->vdiff), _mm512_set1_ps(this->vmin)); |
426 | | } |
427 | | }; |
428 | | |
429 | | #elif defined(__AVX2__) |
430 | | |
431 | | template <class Codec> |
432 | | struct QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 8> |
433 | | : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1> { |
434 | | QuantizerTemplate(size_t d, const std::vector<float>& trained) |
435 | | : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1>( |
436 | | d, |
437 | | trained) {} |
438 | | |
439 | | FAISS_ALWAYS_INLINE __m256 |
440 | | reconstruct_8_components(const uint8_t* code, int i) const { |
441 | | __m256 xi = Codec::decode_8_components(code, i); |
442 | | return _mm256_fmadd_ps( |
443 | | xi, _mm256_set1_ps(this->vdiff), _mm256_set1_ps(this->vmin)); |
444 | | } |
445 | | }; |
446 | | |
447 | | #endif |
448 | | |
449 | | #ifdef USE_NEON |
450 | | |
451 | | template <class Codec> |
452 | | struct QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 8> |
453 | | : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1> { |
454 | | QuantizerTemplate(size_t d, const std::vector<float>& trained) |
455 | | : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1>( |
456 | | d, |
457 | | trained) {} |
458 | | |
459 | | FAISS_ALWAYS_INLINE float32x4x2_t |
460 | | reconstruct_8_components(const uint8_t* code, int i) const { |
461 | | float32x4x2_t xi = Codec::decode_8_components(code, i); |
462 | | return {vfmaq_f32( |
463 | | vdupq_n_f32(this->vmin), |
464 | | xi.val[0], |
465 | | vdupq_n_f32(this->vdiff)), |
466 | | vfmaq_f32( |
467 | | vdupq_n_f32(this->vmin), |
468 | | xi.val[1], |
469 | | vdupq_n_f32(this->vdiff))}; |
470 | | } |
471 | | }; |
472 | | |
473 | | #endif |
474 | | |
475 | | template <class Codec> |
476 | | struct QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 1> |
477 | | : ScalarQuantizer::SQuantizer { |
478 | | const size_t d; |
479 | | const float *vmin, *vdiff; |
480 | | |
481 | | QuantizerTemplate(size_t d, const std::vector<float>& trained) |
482 | 24 | : d(d), vmin(trained.data()), vdiff(trained.data() + d) {}ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEC2EmRKSt6vectorIfSaIfEE Line | Count | Source | 482 | 12 | : d(d), vmin(trained.data()), vdiff(trained.data() + d) {} |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEC2EmRKSt6vectorIfSaIfEE ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEC2EmRKSt6vectorIfSaIfEE Line | Count | Source | 482 | 12 | : d(d), vmin(trained.data()), vdiff(trained.data() + d) {} |
|
483 | | |
484 | 395 | void encode_vector(const float* x, uint8_t* code) const final { |
485 | 24.2k | for (size_t i = 0; i < d; i++) { |
486 | 23.8k | float xi = 0; |
487 | 23.8k | if (vdiff[i] != 0) { |
488 | 23.8k | xi = (x[i] - vmin[i]) / vdiff[i]; |
489 | 23.8k | if (xi < 0) { |
490 | 0 | xi = 0; |
491 | 0 | } |
492 | 23.8k | if (xi > 1.0) { |
493 | 0 | xi = 1.0; |
494 | 0 | } |
495 | 23.8k | } |
496 | 23.8k | Codec::encode_component(xi, code, i); |
497 | 23.8k | } |
498 | 395 | } ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EE13encode_vectorEPKfPh Line | Count | Source | 484 | 198 | void encode_vector(const float* x, uint8_t* code) const final { | 485 | 11.8k | for (size_t i = 0; i < d; i++) { | 486 | 11.6k | float xi = 0; | 487 | 11.6k | if (vdiff[i] != 0) { | 488 | 11.6k | xi = (x[i] - vmin[i]) / vdiff[i]; | 489 | 11.6k | if (xi < 0) { | 490 | 0 | xi = 0; | 491 | 0 | } | 492 | 11.6k | if (xi > 1.0) { | 493 | 0 | xi = 1.0; | 494 | 0 | } | 495 | 11.6k | } | 496 | 11.6k | Codec::encode_component(xi, code, i); | 497 | 11.6k | } | 498 | 198 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EE13encode_vectorEPKfPh ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EE13encode_vectorEPKfPh Line | Count | Source | 484 | 197 | void encode_vector(const float* x, uint8_t* code) const final { | 485 | 12.4k | for (size_t i = 0; i < d; i++) { | 486 | 12.2k | float xi = 0; | 487 | 12.2k | if (vdiff[i] != 0) { | 488 | 12.2k | xi = (x[i] - vmin[i]) / vdiff[i]; | 489 | 12.2k | if (xi < 0) { | 490 | 0 | xi = 0; | 491 | 0 | } | 492 | 12.2k | if (xi > 1.0) { | 493 | 0 | xi = 1.0; | 494 | 0 | } | 495 | 12.2k | } | 496 | 12.2k | Codec::encode_component(xi, code, i); | 497 | 12.2k | } | 498 | 197 | } |
|
499 | | |
500 | 0 | void decode_vector(const uint8_t* code, float* x) const final { |
501 | 0 | for (size_t i = 0; i < d; i++) { |
502 | 0 | float xi = Codec::decode_component(code, i); |
503 | 0 | x[i] = vmin[i] + xi * vdiff[i]; |
504 | 0 | } |
505 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EE13decode_vectorEPKhPf Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EE13decode_vectorEPKhPf Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EE13decode_vectorEPKhPf |
506 | | |
507 | | FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i) |
508 | 6.05M | const { |
509 | 6.05M | float xi = Codec::decode_component(code, i); |
510 | 6.05M | return vmin[i] + xi * vdiff[i]; |
511 | 6.05M | } ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EE21reconstruct_componentEPKhi Line | Count | Source | 508 | 3.12M | const { | 509 | 3.12M | float xi = Codec::decode_component(code, i); | 510 | 3.12M | return vmin[i] + xi * vdiff[i]; | 511 | 3.12M | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EE21reconstruct_componentEPKhi ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EE21reconstruct_componentEPKhi Line | Count | Source | 508 | 2.92M | const { | 509 | 2.92M | float xi = Codec::decode_component(code, i); | 510 | 2.92M | return vmin[i] + xi * vdiff[i]; | 511 | 2.92M | } |
|
512 | | }; |
513 | | |
514 | | #if defined(__AVX512F__) |
515 | | |
516 | | template <class Codec> |
517 | | struct QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 16> |
518 | | : QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 1> { |
519 | | QuantizerTemplate(size_t d, const std::vector<float>& trained) |
520 | | : QuantizerTemplate< |
521 | | Codec, |
522 | | QuantizerTemplateScaling::NON_UNIFORM, |
523 | | 1>(d, trained) {} |
524 | | |
525 | | FAISS_ALWAYS_INLINE __m512 |
526 | | reconstruct_16_components(const uint8_t* code, int i) const { |
527 | | __m512 xi = Codec::decode_16_components(code, i); |
528 | | return _mm512_fmadd_ps( |
529 | | xi, |
530 | | _mm512_loadu_ps(this->vdiff + i), |
531 | | _mm512_loadu_ps(this->vmin + i)); |
532 | | } |
533 | | }; |
534 | | |
535 | | #elif defined(__AVX2__) |
536 | | |
537 | | template <class Codec> |
538 | | struct QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 8> |
539 | | : QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 1> { |
540 | | QuantizerTemplate(size_t d, const std::vector<float>& trained) |
541 | | : QuantizerTemplate< |
542 | | Codec, |
543 | | QuantizerTemplateScaling::NON_UNIFORM, |
544 | | 1>(d, trained) {} |
545 | | |
546 | | FAISS_ALWAYS_INLINE __m256 |
547 | | reconstruct_8_components(const uint8_t* code, int i) const { |
548 | | __m256 xi = Codec::decode_8_components(code, i); |
549 | | return _mm256_fmadd_ps( |
550 | | xi, |
551 | | _mm256_loadu_ps(this->vdiff + i), |
552 | | _mm256_loadu_ps(this->vmin + i)); |
553 | | } |
554 | | }; |
555 | | |
556 | | #endif |
557 | | |
558 | | #ifdef USE_NEON |
559 | | |
560 | | template <class Codec> |
561 | | struct QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 8> |
562 | | : QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 1> { |
563 | | QuantizerTemplate(size_t d, const std::vector<float>& trained) |
564 | | : QuantizerTemplate< |
565 | | Codec, |
566 | | QuantizerTemplateScaling::NON_UNIFORM, |
567 | | 1>(d, trained) {} |
568 | | |
569 | | FAISS_ALWAYS_INLINE float32x4x2_t |
570 | | reconstruct_8_components(const uint8_t* code, int i) const { |
571 | | float32x4x2_t xi = Codec::decode_8_components(code, i); |
572 | | |
573 | | float32x4x2_t vmin_8 = vld1q_f32_x2(this->vmin + i); |
574 | | float32x4x2_t vdiff_8 = vld1q_f32_x2(this->vdiff + i); |
575 | | |
576 | | return {vfmaq_f32(vmin_8.val[0], xi.val[0], vdiff_8.val[0]), |
577 | | vfmaq_f32(vmin_8.val[1], xi.val[1], vdiff_8.val[1])}; |
578 | | } |
579 | | }; |
580 | | |
581 | | #endif |
582 | | |
583 | | /******************************************************************* |
584 | | * FP16 quantizer |
585 | | *******************************************************************/ |
586 | | |
587 | | template <int SIMDWIDTH> |
588 | | struct QuantizerFP16 {}; |
589 | | |
590 | | template <> |
591 | | struct QuantizerFP16<1> : ScalarQuantizer::SQuantizer { |
592 | | const size_t d; |
593 | | |
594 | 0 | QuantizerFP16(size_t d, const std::vector<float>& /* unused */) : d(d) {} |
595 | | |
596 | 0 | void encode_vector(const float* x, uint8_t* code) const final { |
597 | 0 | for (size_t i = 0; i < d; i++) { |
598 | 0 | ((uint16_t*)code)[i] = encode_fp16(x[i]); |
599 | 0 | } |
600 | 0 | } |
601 | | |
602 | 0 | void decode_vector(const uint8_t* code, float* x) const final { |
603 | 0 | for (size_t i = 0; i < d; i++) { |
604 | 0 | x[i] = decode_fp16(((uint16_t*)code)[i]); |
605 | 0 | } |
606 | 0 | } |
607 | | |
608 | | FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i) |
609 | 0 | const { |
610 | 0 | return decode_fp16(((uint16_t*)code)[i]); |
611 | 0 | } |
612 | | }; |
613 | | |
614 | | #if defined(USE_AVX512_F16C) |
615 | | |
616 | | template <> |
617 | | struct QuantizerFP16<16> : QuantizerFP16<1> { |
618 | | QuantizerFP16(size_t d, const std::vector<float>& trained) |
619 | | : QuantizerFP16<1>(d, trained) {} |
620 | | |
621 | | FAISS_ALWAYS_INLINE __m512 |
622 | | reconstruct_16_components(const uint8_t* code, int i) const { |
623 | | __m256i codei = _mm256_loadu_si256((const __m256i*)(code + 2 * i)); |
624 | | return _mm512_cvtph_ps(codei); |
625 | | } |
626 | | }; |
627 | | |
628 | | #endif |
629 | | |
630 | | #if defined(USE_F16C) |
631 | | |
632 | | template <> |
633 | | struct QuantizerFP16<8> : QuantizerFP16<1> { |
634 | | QuantizerFP16(size_t d, const std::vector<float>& trained) |
635 | | : QuantizerFP16<1>(d, trained) {} |
636 | | |
637 | | FAISS_ALWAYS_INLINE __m256 |
638 | | reconstruct_8_components(const uint8_t* code, int i) const { |
639 | | __m128i codei = _mm_loadu_si128((const __m128i*)(code + 2 * i)); |
640 | | return _mm256_cvtph_ps(codei); |
641 | | } |
642 | | }; |
643 | | |
644 | | #endif |
645 | | |
646 | | #ifdef USE_NEON |
647 | | |
648 | | template <> |
649 | | struct QuantizerFP16<8> : QuantizerFP16<1> { |
650 | | QuantizerFP16(size_t d, const std::vector<float>& trained) |
651 | | : QuantizerFP16<1>(d, trained) {} |
652 | | |
653 | | FAISS_ALWAYS_INLINE float32x4x2_t |
654 | | reconstruct_8_components(const uint8_t* code, int i) const { |
655 | | uint16x4x2_t codei = vld1_u16_x2((const uint16_t*)(code + 2 * i)); |
656 | | return {vcvt_f32_f16(vreinterpret_f16_u16(codei.val[0])), |
657 | | vcvt_f32_f16(vreinterpret_f16_u16(codei.val[1]))}; |
658 | | } |
659 | | }; |
660 | | #endif |
661 | | |
662 | | /******************************************************************* |
663 | | * BF16 quantizer |
664 | | *******************************************************************/ |
665 | | |
666 | | template <int SIMDWIDTH> |
667 | | struct QuantizerBF16 {}; |
668 | | |
669 | | template <> |
670 | | struct QuantizerBF16<1> : ScalarQuantizer::SQuantizer { |
671 | | const size_t d; |
672 | | |
673 | 0 | QuantizerBF16(size_t d, const std::vector<float>& /* unused */) : d(d) {} |
674 | | |
675 | 0 | void encode_vector(const float* x, uint8_t* code) const final { |
676 | 0 | for (size_t i = 0; i < d; i++) { |
677 | 0 | ((uint16_t*)code)[i] = encode_bf16(x[i]); |
678 | 0 | } |
679 | 0 | } |
680 | | |
681 | 0 | void decode_vector(const uint8_t* code, float* x) const final { |
682 | 0 | for (size_t i = 0; i < d; i++) { |
683 | 0 | x[i] = decode_bf16(((uint16_t*)code)[i]); |
684 | 0 | } |
685 | 0 | } |
686 | | |
687 | | FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i) |
688 | 0 | const { |
689 | 0 | return decode_bf16(((uint16_t*)code)[i]); |
690 | 0 | } |
691 | | }; |
692 | | |
693 | | #if defined(__AVX512F__) |
694 | | |
695 | | template <> |
696 | | struct QuantizerBF16<16> : QuantizerBF16<1> { |
697 | | QuantizerBF16(size_t d, const std::vector<float>& trained) |
698 | | : QuantizerBF16<1>(d, trained) {} |
699 | | FAISS_ALWAYS_INLINE __m512 |
700 | | reconstruct_16_components(const uint8_t* code, int i) const { |
701 | | __m256i code_256i = _mm256_loadu_si256((const __m256i*)(code + 2 * i)); |
702 | | __m512i code_512i = _mm512_cvtepu16_epi32(code_256i); |
703 | | code_512i = _mm512_slli_epi32(code_512i, 16); |
704 | | return _mm512_castsi512_ps(code_512i); |
705 | | } |
706 | | }; |
707 | | |
708 | | #elif defined(__AVX2__) |
709 | | |
710 | | template <> |
711 | | struct QuantizerBF16<8> : QuantizerBF16<1> { |
712 | | QuantizerBF16(size_t d, const std::vector<float>& trained) |
713 | 0 | : QuantizerBF16<1>(d, trained) {} |
714 | | |
715 | | FAISS_ALWAYS_INLINE __m256 |
716 | 0 | reconstruct_8_components(const uint8_t* code, int i) const { |
717 | 0 | __m128i code_128i = _mm_loadu_si128((const __m128i*)(code + 2 * i)); |
718 | 0 | __m256i code_256i = _mm256_cvtepu16_epi32(code_128i); |
719 | 0 | code_256i = _mm256_slli_epi32(code_256i, 16); |
720 | 0 | return _mm256_castsi256_ps(code_256i); |
721 | 0 | } |
722 | | }; |
723 | | |
724 | | #endif |
725 | | |
726 | | #ifdef USE_NEON |
727 | | |
728 | | template <> |
729 | | struct QuantizerBF16<8> : QuantizerBF16<1> { |
730 | | QuantizerBF16(size_t d, const std::vector<float>& trained) |
731 | | : QuantizerBF16<1>(d, trained) {} |
732 | | |
733 | | FAISS_ALWAYS_INLINE float32x4x2_t |
734 | | reconstruct_8_components(const uint8_t* code, int i) const { |
735 | | uint16x4x2_t codei = vld1_u16_x2((const uint16_t*)(code + 2 * i)); |
736 | | return {vreinterpretq_f32_u32(vshlq_n_u32(vmovl_u16(codei.val[0]), 16)), |
737 | | vreinterpretq_f32_u32( |
738 | | vshlq_n_u32(vmovl_u16(codei.val[1]), 16))}; |
739 | | } |
740 | | }; |
741 | | #endif |
742 | | |
743 | | /******************************************************************* |
744 | | * 8bit_direct quantizer |
745 | | *******************************************************************/ |
746 | | |
747 | | template <int SIMDWIDTH> |
748 | | struct Quantizer8bitDirect {}; |
749 | | |
750 | | template <> |
751 | | struct Quantizer8bitDirect<1> : ScalarQuantizer::SQuantizer { |
752 | | const size_t d; |
753 | | |
754 | | Quantizer8bitDirect(size_t d, const std::vector<float>& /* unused */) |
755 | 0 | : d(d) {} |
756 | | |
757 | 0 | void encode_vector(const float* x, uint8_t* code) const final { |
758 | 0 | for (size_t i = 0; i < d; i++) { |
759 | 0 | code[i] = (uint8_t)x[i]; |
760 | 0 | } |
761 | 0 | } |
762 | | |
763 | 0 | void decode_vector(const uint8_t* code, float* x) const final { |
764 | 0 | for (size_t i = 0; i < d; i++) { |
765 | 0 | x[i] = code[i]; |
766 | 0 | } |
767 | 0 | } |
768 | | |
769 | | FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i) |
770 | 0 | const { |
771 | 0 | return code[i]; |
772 | 0 | } |
773 | | }; |
774 | | |
775 | | #if defined(__AVX512F__) |
776 | | |
777 | | template <> |
778 | | struct Quantizer8bitDirect<16> : Quantizer8bitDirect<1> { |
779 | | Quantizer8bitDirect(size_t d, const std::vector<float>& trained) |
780 | | : Quantizer8bitDirect<1>(d, trained) {} |
781 | | |
782 | | FAISS_ALWAYS_INLINE __m512 |
783 | | reconstruct_16_components(const uint8_t* code, int i) const { |
784 | | __m128i x16 = _mm_loadu_si128((__m128i*)(code + i)); // 16 * int8 |
785 | | __m512i y16 = _mm512_cvtepu8_epi32(x16); // 16 * int32 |
786 | | return _mm512_cvtepi32_ps(y16); // 16 * float32 |
787 | | } |
788 | | }; |
789 | | |
790 | | #elif defined(__AVX2__) |
791 | | |
792 | | template <> |
793 | | struct Quantizer8bitDirect<8> : Quantizer8bitDirect<1> { |
794 | | Quantizer8bitDirect(size_t d, const std::vector<float>& trained) |
795 | 0 | : Quantizer8bitDirect<1>(d, trained) {} |
796 | | |
797 | | FAISS_ALWAYS_INLINE __m256 |
798 | 0 | reconstruct_8_components(const uint8_t* code, int i) const { |
799 | 0 | __m128i x8 = _mm_loadl_epi64((__m128i*)(code + i)); // 8 * int8 |
800 | 0 | __m256i y8 = _mm256_cvtepu8_epi32(x8); // 8 * int32 |
801 | 0 | return _mm256_cvtepi32_ps(y8); // 8 * float32 |
802 | 0 | } |
803 | | }; |
804 | | |
805 | | #endif |
806 | | |
807 | | #ifdef USE_NEON |
808 | | |
809 | | template <> |
810 | | struct Quantizer8bitDirect<8> : Quantizer8bitDirect<1> { |
811 | | Quantizer8bitDirect(size_t d, const std::vector<float>& trained) |
812 | | : Quantizer8bitDirect<1>(d, trained) {} |
813 | | |
814 | | FAISS_ALWAYS_INLINE float32x4x2_t |
815 | | reconstruct_8_components(const uint8_t* code, int i) const { |
816 | | uint8x8_t x8 = vld1_u8((const uint8_t*)(code + i)); |
817 | | uint16x8_t y8 = vmovl_u8(x8); |
818 | | uint16x4_t y8_0 = vget_low_u16(y8); |
819 | | uint16x4_t y8_1 = vget_high_u16(y8); |
820 | | |
821 | | // convert uint16 -> uint32 -> fp32 |
822 | | return {vcvtq_f32_u32(vmovl_u16(y8_0)), vcvtq_f32_u32(vmovl_u16(y8_1))}; |
823 | | } |
824 | | }; |
825 | | |
826 | | #endif |
827 | | |
828 | | /******************************************************************* |
829 | | * 8bit_direct_signed quantizer |
830 | | *******************************************************************/ |
831 | | |
832 | | template <int SIMDWIDTH> |
833 | | struct Quantizer8bitDirectSigned {}; |
834 | | |
835 | | template <> |
836 | | struct Quantizer8bitDirectSigned<1> : ScalarQuantizer::SQuantizer { |
837 | | const size_t d; |
838 | | |
839 | | Quantizer8bitDirectSigned(size_t d, const std::vector<float>& /* unused */) |
840 | 0 | : d(d) {} |
841 | | |
842 | 0 | void encode_vector(const float* x, uint8_t* code) const final { |
843 | 0 | for (size_t i = 0; i < d; i++) { |
844 | 0 | code[i] = (uint8_t)(x[i] + 128); |
845 | 0 | } |
846 | 0 | } |
847 | | |
848 | 0 | void decode_vector(const uint8_t* code, float* x) const final { |
849 | 0 | for (size_t i = 0; i < d; i++) { |
850 | 0 | x[i] = code[i] - 128; |
851 | 0 | } |
852 | 0 | } |
853 | | |
854 | | FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i) |
855 | 0 | const { |
856 | 0 | return code[i] - 128; |
857 | 0 | } |
858 | | }; |
859 | | |
860 | | #if defined(__AVX512F__) |
861 | | |
862 | | template <> |
863 | | struct Quantizer8bitDirectSigned<16> : Quantizer8bitDirectSigned<1> { |
864 | | Quantizer8bitDirectSigned(size_t d, const std::vector<float>& trained) |
865 | | : Quantizer8bitDirectSigned<1>(d, trained) {} |
866 | | |
867 | | FAISS_ALWAYS_INLINE __m512 |
868 | | reconstruct_16_components(const uint8_t* code, int i) const { |
869 | | __m128i x16 = _mm_loadu_si128((__m128i*)(code + i)); // 16 * int8 |
870 | | __m512i y16 = _mm512_cvtepu8_epi32(x16); // 16 * int32 |
871 | | __m512i c16 = _mm512_set1_epi32(128); |
872 | | __m512i z16 = _mm512_sub_epi32(y16, c16); // subtract 128 from all lanes |
873 | | return _mm512_cvtepi32_ps(z16); // 16 * float32 |
874 | | } |
875 | | }; |
876 | | |
877 | | #elif defined(__AVX2__) |
878 | | |
879 | | template <> |
880 | | struct Quantizer8bitDirectSigned<8> : Quantizer8bitDirectSigned<1> { |
881 | | Quantizer8bitDirectSigned(size_t d, const std::vector<float>& trained) |
882 | 0 | : Quantizer8bitDirectSigned<1>(d, trained) {} |
883 | | |
884 | | FAISS_ALWAYS_INLINE __m256 |
885 | 0 | reconstruct_8_components(const uint8_t* code, int i) const { |
886 | 0 | __m128i x8 = _mm_loadl_epi64((__m128i*)(code + i)); // 8 * int8 |
887 | 0 | __m256i y8 = _mm256_cvtepu8_epi32(x8); // 8 * int32 |
888 | 0 | __m256i c8 = _mm256_set1_epi32(128); |
889 | 0 | __m256i z8 = _mm256_sub_epi32(y8, c8); // subtract 128 from all lanes |
890 | 0 | return _mm256_cvtepi32_ps(z8); // 8 * float32 |
891 | 0 | } |
892 | | }; |
893 | | |
894 | | #endif |
895 | | |
896 | | #ifdef USE_NEON |
897 | | |
898 | | template <> |
899 | | struct Quantizer8bitDirectSigned<8> : Quantizer8bitDirectSigned<1> { |
900 | | Quantizer8bitDirectSigned(size_t d, const std::vector<float>& trained) |
901 | | : Quantizer8bitDirectSigned<1>(d, trained) {} |
902 | | |
903 | | FAISS_ALWAYS_INLINE float32x4x2_t |
904 | | reconstruct_8_components(const uint8_t* code, int i) const { |
905 | | uint8x8_t x8 = vld1_u8((const uint8_t*)(code + i)); |
906 | | uint16x8_t y8 = vmovl_u8(x8); // convert uint8 -> uint16 |
907 | | uint16x4_t y8_0 = vget_low_u16(y8); |
908 | | uint16x4_t y8_1 = vget_high_u16(y8); |
909 | | |
910 | | float32x4_t z8_0 = vcvtq_f32_u32( |
911 | | vmovl_u16(y8_0)); // convert uint16 -> uint32 -> fp32 |
912 | | float32x4_t z8_1 = vcvtq_f32_u32(vmovl_u16(y8_1)); |
913 | | |
914 | | // subtract 128 to convert into signed numbers |
915 | | return {vsubq_f32(z8_0, vmovq_n_f32(128.0)), |
916 | | vsubq_f32(z8_1, vmovq_n_f32(128.0))}; |
917 | | } |
918 | | }; |
919 | | |
920 | | #endif |
921 | | |
922 | | template <int SIMDWIDTH> |
923 | | ScalarQuantizer::SQuantizer* select_quantizer_1( |
924 | | QuantizerType qtype, |
925 | | size_t d, |
926 | 4 | const std::vector<float>& trained) { |
927 | 4 | switch (qtype) { |
928 | 2 | case ScalarQuantizer::QT_8bit: |
929 | 2 | return new QuantizerTemplate< |
930 | 2 | Codec8bit, |
931 | 2 | QuantizerTemplateScaling::NON_UNIFORM, |
932 | 2 | SIMDWIDTH>(d, trained); |
933 | 0 | case ScalarQuantizer::QT_6bit: |
934 | 0 | return new QuantizerTemplate< |
935 | 0 | Codec6bit, |
936 | 0 | QuantizerTemplateScaling::NON_UNIFORM, |
937 | 0 | SIMDWIDTH>(d, trained); |
938 | 2 | case ScalarQuantizer::QT_4bit: |
939 | 2 | return new QuantizerTemplate< |
940 | 2 | Codec4bit, |
941 | 2 | QuantizerTemplateScaling::NON_UNIFORM, |
942 | 2 | SIMDWIDTH>(d, trained); |
943 | 0 | case ScalarQuantizer::QT_8bit_uniform: |
944 | 0 | return new QuantizerTemplate< |
945 | 0 | Codec8bit, |
946 | 0 | QuantizerTemplateScaling::UNIFORM, |
947 | 0 | SIMDWIDTH>(d, trained); |
948 | 0 | case ScalarQuantizer::QT_4bit_uniform: |
949 | 0 | return new QuantizerTemplate< |
950 | 0 | Codec4bit, |
951 | 0 | QuantizerTemplateScaling::UNIFORM, |
952 | 0 | SIMDWIDTH>(d, trained); |
953 | 0 | case ScalarQuantizer::QT_fp16: |
954 | 0 | return new QuantizerFP16<SIMDWIDTH>(d, trained); |
955 | 0 | case ScalarQuantizer::QT_bf16: |
956 | 0 | return new QuantizerBF16<SIMDWIDTH>(d, trained); |
957 | 0 | case ScalarQuantizer::QT_8bit_direct: |
958 | 0 | return new Quantizer8bitDirect<SIMDWIDTH>(d, trained); |
959 | 0 | case ScalarQuantizer::QT_8bit_direct_signed: |
960 | 0 | return new Quantizer8bitDirectSigned<SIMDWIDTH>(d, trained); |
961 | 4 | } |
962 | 0 | FAISS_THROW_MSG("unknown qtype"); |
963 | 0 | } |
964 | | |
965 | | /******************************************************************* |
966 | | * Quantizer range training |
967 | | */ |
968 | | |
969 | 0 | static float sqr(float x) { |
970 | 0 | return x * x; |
971 | 0 | } |
972 | | |
973 | | void train_Uniform( |
974 | | RangeStat rs, |
975 | | float rs_arg, |
976 | | idx_t n, |
977 | | int k, |
978 | | const float* x, |
979 | 0 | std::vector<float>& trained) { |
980 | 0 | trained.resize(2); |
981 | 0 | float& vmin = trained[0]; |
982 | 0 | float& vmax = trained[1]; |
983 | |
|
984 | 0 | if (rs == ScalarQuantizer::RS_minmax) { |
985 | 0 | vmin = HUGE_VAL; |
986 | 0 | vmax = -HUGE_VAL; |
987 | 0 | for (size_t i = 0; i < n; i++) { |
988 | 0 | if (x[i] < vmin) |
989 | 0 | vmin = x[i]; |
990 | 0 | if (x[i] > vmax) |
991 | 0 | vmax = x[i]; |
992 | 0 | } |
993 | 0 | float vexp = (vmax - vmin) * rs_arg; |
994 | 0 | vmin -= vexp; |
995 | 0 | vmax += vexp; |
996 | 0 | } else if (rs == ScalarQuantizer::RS_meanstd) { |
997 | 0 | double sum = 0, sum2 = 0; |
998 | 0 | for (size_t i = 0; i < n; i++) { |
999 | 0 | sum += x[i]; |
1000 | 0 | sum2 += x[i] * x[i]; |
1001 | 0 | } |
1002 | 0 | float mean = sum / n; |
1003 | 0 | float var = sum2 / n - mean * mean; |
1004 | 0 | float std = var <= 0 ? 1.0 : sqrt(var); |
1005 | |
|
1006 | 0 | vmin = mean - std * rs_arg; |
1007 | 0 | vmax = mean + std * rs_arg; |
1008 | 0 | } else if (rs == ScalarQuantizer::RS_quantiles) { |
1009 | 0 | std::vector<float> x_copy(n); |
1010 | 0 | memcpy(x_copy.data(), x, n * sizeof(*x)); |
1011 | | // TODO just do a quickselect |
1012 | 0 | std::sort(x_copy.begin(), x_copy.end()); |
1013 | 0 | int o = int(rs_arg * n); |
1014 | 0 | if (o < 0) |
1015 | 0 | o = 0; |
1016 | 0 | if (o > n - o) |
1017 | 0 | o = n / 2; |
1018 | 0 | vmin = x_copy[o]; |
1019 | 0 | vmax = x_copy[n - 1 - o]; |
1020 | |
|
1021 | 0 | } else if (rs == ScalarQuantizer::RS_optim) { |
1022 | 0 | float a, b; |
1023 | 0 | float sx = 0; |
1024 | 0 | { |
1025 | 0 | vmin = HUGE_VAL, vmax = -HUGE_VAL; |
1026 | 0 | for (size_t i = 0; i < n; i++) { |
1027 | 0 | if (x[i] < vmin) |
1028 | 0 | vmin = x[i]; |
1029 | 0 | if (x[i] > vmax) |
1030 | 0 | vmax = x[i]; |
1031 | 0 | sx += x[i]; |
1032 | 0 | } |
1033 | 0 | b = vmin; |
1034 | 0 | a = (vmax - vmin) / (k - 1); |
1035 | 0 | } |
1036 | 0 | int verbose = false; |
1037 | 0 | int niter = 2000; |
1038 | 0 | float last_err = -1; |
1039 | 0 | int iter_last_err = 0; |
1040 | 0 | for (int it = 0; it < niter; it++) { |
1041 | 0 | float sn = 0, sn2 = 0, sxn = 0, err1 = 0; |
1042 | |
|
1043 | 0 | for (idx_t i = 0; i < n; i++) { |
1044 | 0 | float xi = x[i]; |
1045 | 0 | float ni = floor((xi - b) / a + 0.5); |
1046 | 0 | if (ni < 0) |
1047 | 0 | ni = 0; |
1048 | 0 | if (ni >= k) |
1049 | 0 | ni = k - 1; |
1050 | 0 | err1 += sqr(xi - (ni * a + b)); |
1051 | 0 | sn += ni; |
1052 | 0 | sn2 += ni * ni; |
1053 | 0 | sxn += ni * xi; |
1054 | 0 | } |
1055 | |
|
1056 | 0 | if (err1 == last_err) { |
1057 | 0 | iter_last_err++; |
1058 | 0 | if (iter_last_err == 16) |
1059 | 0 | break; |
1060 | 0 | } else { |
1061 | 0 | last_err = err1; |
1062 | 0 | iter_last_err = 0; |
1063 | 0 | } |
1064 | | |
1065 | 0 | float det = sqr(sn) - sn2 * n; |
1066 | |
|
1067 | 0 | b = (sn * sxn - sn2 * sx) / det; |
1068 | 0 | a = (sn * sx - n * sxn) / det; |
1069 | 0 | if (verbose) { |
1070 | 0 | printf("it %d, err1=%g \r", it, err1); |
1071 | 0 | fflush(stdout); |
1072 | 0 | } |
1073 | 0 | } |
1074 | 0 | if (verbose) |
1075 | 0 | printf("\n"); |
1076 | |
|
1077 | 0 | vmin = b; |
1078 | 0 | vmax = b + a * (k - 1); |
1079 | |
|
1080 | 0 | } else { |
1081 | 0 | FAISS_THROW_MSG("Invalid qtype"); |
1082 | 0 | } |
1083 | 0 | vmax -= vmin; |
1084 | 0 | } |
1085 | | |
1086 | | void train_NonUniform( |
1087 | | RangeStat rs, |
1088 | | float rs_arg, |
1089 | | idx_t n, |
1090 | | int d, |
1091 | | int k, |
1092 | | const float* x, |
1093 | 4 | std::vector<float>& trained) { |
1094 | 4 | trained.resize(2 * d); |
1095 | 4 | float* vmin = trained.data(); |
1096 | 4 | float* vmax = trained.data() + d; |
1097 | 4 | if (rs == ScalarQuantizer::RS_minmax) { |
1098 | 4 | memcpy(vmin, x, sizeof(*x) * d); |
1099 | 4 | memcpy(vmax, x, sizeof(*x) * d); |
1100 | 400 | for (size_t i = 1; i < n; i++) { |
1101 | 396 | const float* xi = x + i * d; |
1102 | 51.0k | for (size_t j = 0; j < d; j++) { |
1103 | 50.6k | if (xi[j] < vmin[j]) |
1104 | 2.16k | vmin[j] = xi[j]; |
1105 | 50.6k | if (xi[j] > vmax[j]) |
1106 | 2.14k | vmax[j] = xi[j]; |
1107 | 50.6k | } |
1108 | 396 | } |
1109 | 4 | float* vdiff = vmax; |
1110 | 516 | for (size_t j = 0; j < d; j++) { |
1111 | 512 | float vexp = (vmax[j] - vmin[j]) * rs_arg; |
1112 | 512 | vmin[j] -= vexp; |
1113 | 512 | vmax[j] += vexp; |
1114 | 512 | vdiff[j] = vmax[j] - vmin[j]; |
1115 | 512 | } |
1116 | 4 | } else { |
1117 | | // transpose |
1118 | 0 | std::vector<float> xt(n * d); |
1119 | 0 | for (size_t i = 1; i < n; i++) { |
1120 | 0 | const float* xi = x + i * d; |
1121 | 0 | for (size_t j = 0; j < d; j++) { |
1122 | 0 | xt[j * n + i] = xi[j]; |
1123 | 0 | } |
1124 | 0 | } |
1125 | 0 | std::vector<float> trained_d(2); |
1126 | 0 | #pragma omp parallel for |
1127 | 0 | for (int j = 0; j < d; j++) { |
1128 | 0 | train_Uniform(rs, rs_arg, n, k, xt.data() + j * n, trained_d); |
1129 | 0 | vmin[j] = trained_d[0]; |
1130 | 0 | vmax[j] = trained_d[1]; |
1131 | 0 | } |
1132 | 0 | } |
1133 | 4 | } |
1134 | | |
1135 | | /******************************************************************* |
1136 | | * Similarity: gets vector components and computes a similarity wrt. a |
1137 | | * query vector stored in the object. The data fields just encapsulate |
1138 | | * an accumulator. |
1139 | | */ |
1140 | | |
1141 | | template <int SIMDWIDTH> |
1142 | | struct SimilarityL2 {}; |
1143 | | |
1144 | | template <> |
1145 | | struct SimilarityL2<1> { |
1146 | | static constexpr int simdwidth = 1; |
1147 | | static constexpr MetricType metric_type = METRIC_L2; |
1148 | | |
1149 | | const float *y, *yi; |
1150 | | |
1151 | 30.1k | explicit SimilarityL2(const float* y) : y(y) {} |
1152 | | |
1153 | | /******* scalar accumulator *******/ |
1154 | | |
1155 | | float accu; |
1156 | | |
1157 | 30.1k | FAISS_ALWAYS_INLINE void begin() { |
1158 | 30.1k | accu = 0; |
1159 | 30.1k | yi = y; |
1160 | 30.1k | } |
1161 | | |
1162 | 1.65M | FAISS_ALWAYS_INLINE void add_component(float x) { |
1163 | 1.65M | float tmp = *yi++ - x; |
1164 | 1.65M | accu += tmp * tmp; |
1165 | 1.65M | } |
1166 | | |
1167 | 2.20M | FAISS_ALWAYS_INLINE void add_component_2(float x1, float x2) { |
1168 | 2.20M | float tmp = x1 - x2; |
1169 | 2.20M | accu += tmp * tmp; |
1170 | 2.20M | } |
1171 | | |
1172 | 30.1k | FAISS_ALWAYS_INLINE float result() { |
1173 | 30.1k | return accu; |
1174 | 30.1k | } |
1175 | | }; |
1176 | | |
1177 | | #if defined(__AVX512F__) |
1178 | | |
1179 | | template <> |
1180 | | struct SimilarityL2<16> { |
1181 | | static constexpr int simdwidth = 16; |
1182 | | static constexpr MetricType metric_type = METRIC_L2; |
1183 | | |
1184 | | const float *y, *yi; |
1185 | | |
1186 | | explicit SimilarityL2(const float* y) : y(y) {} |
1187 | | __m512 accu16; |
1188 | | |
1189 | | FAISS_ALWAYS_INLINE void begin_16() { |
1190 | | accu16 = _mm512_setzero_ps(); |
1191 | | yi = y; |
1192 | | } |
1193 | | |
1194 | | FAISS_ALWAYS_INLINE void add_16_components(__m512 x) { |
1195 | | __m512 yiv = _mm512_loadu_ps(yi); |
1196 | | yi += 16; |
1197 | | __m512 tmp = _mm512_sub_ps(yiv, x); |
1198 | | accu16 = _mm512_fmadd_ps(tmp, tmp, accu16); |
1199 | | } |
1200 | | |
1201 | | FAISS_ALWAYS_INLINE void add_16_components_2(__m512 x, __m512 y_2) { |
1202 | | __m512 tmp = _mm512_sub_ps(y_2, x); |
1203 | | accu16 = _mm512_fmadd_ps(tmp, tmp, accu16); |
1204 | | } |
1205 | | |
1206 | | FAISS_ALWAYS_INLINE float result_16() { |
1207 | | // performs better than dividing into _mm256 and adding |
1208 | | return _mm512_reduce_add_ps(accu16); |
1209 | | } |
1210 | | }; |
1211 | | |
1212 | | #elif defined(__AVX2__) |
1213 | | |
1214 | | template <> |
1215 | | struct SimilarityL2<8> { |
1216 | | static constexpr int simdwidth = 8; |
1217 | | static constexpr MetricType metric_type = METRIC_L2; |
1218 | | |
1219 | | const float *y, *yi; |
1220 | | |
1221 | 0 | explicit SimilarityL2(const float* y) : y(y) {} |
1222 | | __m256 accu8; |
1223 | | |
1224 | 0 | FAISS_ALWAYS_INLINE void begin_8() { |
1225 | 0 | accu8 = _mm256_setzero_ps(); |
1226 | 0 | yi = y; |
1227 | 0 | } |
1228 | | |
1229 | 0 | FAISS_ALWAYS_INLINE void add_8_components(__m256 x) { |
1230 | 0 | __m256 yiv = _mm256_loadu_ps(yi); |
1231 | 0 | yi += 8; |
1232 | 0 | __m256 tmp = _mm256_sub_ps(yiv, x); |
1233 | 0 | accu8 = _mm256_fmadd_ps(tmp, tmp, accu8); |
1234 | 0 | } |
1235 | | |
1236 | 0 | FAISS_ALWAYS_INLINE void add_8_components_2(__m256 x, __m256 y_2) { |
1237 | 0 | __m256 tmp = _mm256_sub_ps(y_2, x); |
1238 | 0 | accu8 = _mm256_fmadd_ps(tmp, tmp, accu8); |
1239 | 0 | } |
1240 | | |
1241 | 0 | FAISS_ALWAYS_INLINE float result_8() { |
1242 | 0 | const __m128 sum = _mm_add_ps( |
1243 | 0 | _mm256_castps256_ps128(accu8), _mm256_extractf128_ps(accu8, 1)); |
1244 | 0 | const __m128 v0 = _mm_shuffle_ps(sum, sum, _MM_SHUFFLE(0, 0, 3, 2)); |
1245 | 0 | const __m128 v1 = _mm_add_ps(sum, v0); |
1246 | 0 | __m128 v2 = _mm_shuffle_ps(v1, v1, _MM_SHUFFLE(0, 0, 0, 1)); |
1247 | 0 | const __m128 v3 = _mm_add_ps(v1, v2); |
1248 | 0 | return _mm_cvtss_f32(v3); |
1249 | 0 | } |
1250 | | }; |
1251 | | |
1252 | | #endif |
1253 | | |
1254 | | #ifdef USE_NEON |
1255 | | template <> |
1256 | | struct SimilarityL2<8> { |
1257 | | static constexpr int simdwidth = 8; |
1258 | | static constexpr MetricType metric_type = METRIC_L2; |
1259 | | |
1260 | | const float *y, *yi; |
1261 | | explicit SimilarityL2(const float* y) : y(y) {} |
1262 | | float32x4x2_t accu8; |
1263 | | |
1264 | | FAISS_ALWAYS_INLINE void begin_8() { |
1265 | | accu8 = {vdupq_n_f32(0.0f), vdupq_n_f32(0.0f)}; |
1266 | | yi = y; |
1267 | | } |
1268 | | |
1269 | | FAISS_ALWAYS_INLINE void add_8_components(float32x4x2_t x) { |
1270 | | float32x4x2_t yiv = vld1q_f32_x2(yi); |
1271 | | yi += 8; |
1272 | | |
1273 | | float32x4_t sub0 = vsubq_f32(yiv.val[0], x.val[0]); |
1274 | | float32x4_t sub1 = vsubq_f32(yiv.val[1], x.val[1]); |
1275 | | |
1276 | | float32x4_t accu8_0 = vfmaq_f32(accu8.val[0], sub0, sub0); |
1277 | | float32x4_t accu8_1 = vfmaq_f32(accu8.val[1], sub1, sub1); |
1278 | | |
1279 | | accu8 = {accu8_0, accu8_1}; |
1280 | | } |
1281 | | |
1282 | | FAISS_ALWAYS_INLINE void add_8_components_2( |
1283 | | float32x4x2_t x, |
1284 | | float32x4x2_t y) { |
1285 | | float32x4_t sub0 = vsubq_f32(y.val[0], x.val[0]); |
1286 | | float32x4_t sub1 = vsubq_f32(y.val[1], x.val[1]); |
1287 | | |
1288 | | float32x4_t accu8_0 = vfmaq_f32(accu8.val[0], sub0, sub0); |
1289 | | float32x4_t accu8_1 = vfmaq_f32(accu8.val[1], sub1, sub1); |
1290 | | |
1291 | | accu8 = {accu8_0, accu8_1}; |
1292 | | } |
1293 | | |
1294 | | FAISS_ALWAYS_INLINE float result_8() { |
1295 | | float32x4_t sum_0 = vpaddq_f32(accu8.val[0], accu8.val[0]); |
1296 | | float32x4_t sum_1 = vpaddq_f32(accu8.val[1], accu8.val[1]); |
1297 | | |
1298 | | float32x4_t sum2_0 = vpaddq_f32(sum_0, sum_0); |
1299 | | float32x4_t sum2_1 = vpaddq_f32(sum_1, sum_1); |
1300 | | return vgetq_lane_f32(sum2_0, 0) + vgetq_lane_f32(sum2_1, 0); |
1301 | | } |
1302 | | }; |
1303 | | #endif |
1304 | | |
1305 | | template <int SIMDWIDTH> |
1306 | | struct SimilarityIP {}; |
1307 | | |
1308 | | template <> |
1309 | | struct SimilarityIP<1> { |
1310 | | static constexpr int simdwidth = 1; |
1311 | | static constexpr MetricType metric_type = METRIC_INNER_PRODUCT; |
1312 | | const float *y, *yi; |
1313 | | |
1314 | | float accu; |
1315 | | |
1316 | 0 | explicit SimilarityIP(const float* y) : y(y) {} |
1317 | | |
1318 | 0 | FAISS_ALWAYS_INLINE void begin() { |
1319 | 0 | accu = 0; |
1320 | 0 | yi = y; |
1321 | 0 | } |
1322 | | |
1323 | 0 | FAISS_ALWAYS_INLINE void add_component(float x) { |
1324 | 0 | accu += *yi++ * x; |
1325 | 0 | } |
1326 | | |
1327 | 0 | FAISS_ALWAYS_INLINE void add_component_2(float x1, float x2) { |
1328 | 0 | accu += x1 * x2; |
1329 | 0 | } |
1330 | | |
1331 | 0 | FAISS_ALWAYS_INLINE float result() { |
1332 | 0 | return accu; |
1333 | 0 | } |
1334 | | }; |
1335 | | |
1336 | | #if defined(__AVX512F__) |
1337 | | |
1338 | | template <> |
1339 | | struct SimilarityIP<16> { |
1340 | | static constexpr int simdwidth = 16; |
1341 | | static constexpr MetricType metric_type = METRIC_INNER_PRODUCT; |
1342 | | |
1343 | | const float *y, *yi; |
1344 | | |
1345 | | float accu; |
1346 | | |
1347 | | explicit SimilarityIP(const float* y) : y(y) {} |
1348 | | |
1349 | | __m512 accu16; |
1350 | | |
1351 | | FAISS_ALWAYS_INLINE void begin_16() { |
1352 | | accu16 = _mm512_setzero_ps(); |
1353 | | yi = y; |
1354 | | } |
1355 | | |
1356 | | FAISS_ALWAYS_INLINE void add_16_components(__m512 x) { |
1357 | | __m512 yiv = _mm512_loadu_ps(yi); |
1358 | | yi += 16; |
1359 | | accu16 = _mm512_fmadd_ps(yiv, x, accu16); |
1360 | | } |
1361 | | |
1362 | | FAISS_ALWAYS_INLINE void add_16_components_2(__m512 x1, __m512 x2) { |
1363 | | accu16 = _mm512_fmadd_ps(x1, x2, accu16); |
1364 | | } |
1365 | | |
1366 | | FAISS_ALWAYS_INLINE float result_16() { |
1367 | | // performs better than dividing into _mm256 and adding |
1368 | | return _mm512_reduce_add_ps(accu16); |
1369 | | } |
1370 | | }; |
1371 | | |
1372 | | #elif defined(__AVX2__) |
1373 | | |
1374 | | template <> |
1375 | | struct SimilarityIP<8> { |
1376 | | static constexpr int simdwidth = 8; |
1377 | | static constexpr MetricType metric_type = METRIC_INNER_PRODUCT; |
1378 | | |
1379 | | const float *y, *yi; |
1380 | | |
1381 | | float accu; |
1382 | | |
1383 | 0 | explicit SimilarityIP(const float* y) : y(y) {} |
1384 | | |
1385 | | __m256 accu8; |
1386 | | |
1387 | 0 | FAISS_ALWAYS_INLINE void begin_8() { |
1388 | 0 | accu8 = _mm256_setzero_ps(); |
1389 | 0 | yi = y; |
1390 | 0 | } |
1391 | | |
1392 | 0 | FAISS_ALWAYS_INLINE void add_8_components(__m256 x) { |
1393 | 0 | __m256 yiv = _mm256_loadu_ps(yi); |
1394 | 0 | yi += 8; |
1395 | 0 | accu8 = _mm256_fmadd_ps(yiv, x, accu8); |
1396 | 0 | } |
1397 | | |
1398 | 0 | FAISS_ALWAYS_INLINE void add_8_components_2(__m256 x1, __m256 x2) { |
1399 | 0 | accu8 = _mm256_fmadd_ps(x1, x2, accu8); |
1400 | 0 | } |
1401 | | |
1402 | 0 | FAISS_ALWAYS_INLINE float result_8() { |
1403 | 0 | const __m128 sum = _mm_add_ps( |
1404 | 0 | _mm256_castps256_ps128(accu8), _mm256_extractf128_ps(accu8, 1)); |
1405 | 0 | const __m128 v0 = _mm_shuffle_ps(sum, sum, _MM_SHUFFLE(0, 0, 3, 2)); |
1406 | 0 | const __m128 v1 = _mm_add_ps(sum, v0); |
1407 | 0 | __m128 v2 = _mm_shuffle_ps(v1, v1, _MM_SHUFFLE(0, 0, 0, 1)); |
1408 | 0 | const __m128 v3 = _mm_add_ps(v1, v2); |
1409 | 0 | return _mm_cvtss_f32(v3); |
1410 | 0 | } |
1411 | | }; |
1412 | | #endif |
1413 | | |
1414 | | #ifdef USE_NEON |
1415 | | |
1416 | | template <> |
1417 | | struct SimilarityIP<8> { |
1418 | | static constexpr int simdwidth = 8; |
1419 | | static constexpr MetricType metric_type = METRIC_INNER_PRODUCT; |
1420 | | |
1421 | | const float *y, *yi; |
1422 | | |
1423 | | explicit SimilarityIP(const float* y) : y(y) {} |
1424 | | float32x4x2_t accu8; |
1425 | | |
1426 | | FAISS_ALWAYS_INLINE void begin_8() { |
1427 | | accu8 = {vdupq_n_f32(0.0f), vdupq_n_f32(0.0f)}; |
1428 | | yi = y; |
1429 | | } |
1430 | | |
1431 | | FAISS_ALWAYS_INLINE void add_8_components(float32x4x2_t x) { |
1432 | | float32x4x2_t yiv = vld1q_f32_x2(yi); |
1433 | | yi += 8; |
1434 | | |
1435 | | float32x4_t accu8_0 = vfmaq_f32(accu8.val[0], yiv.val[0], x.val[0]); |
1436 | | float32x4_t accu8_1 = vfmaq_f32(accu8.val[1], yiv.val[1], x.val[1]); |
1437 | | accu8 = {accu8_0, accu8_1}; |
1438 | | } |
1439 | | |
1440 | | FAISS_ALWAYS_INLINE void add_8_components_2( |
1441 | | float32x4x2_t x1, |
1442 | | float32x4x2_t x2) { |
1443 | | float32x4_t accu8_0 = vfmaq_f32(accu8.val[0], x1.val[0], x2.val[0]); |
1444 | | float32x4_t accu8_1 = vfmaq_f32(accu8.val[1], x1.val[1], x2.val[1]); |
1445 | | accu8 = {accu8_0, accu8_1}; |
1446 | | } |
1447 | | |
1448 | | FAISS_ALWAYS_INLINE float result_8() { |
1449 | | float32x4x2_t sum = { |
1450 | | vpaddq_f32(accu8.val[0], accu8.val[0]), |
1451 | | vpaddq_f32(accu8.val[1], accu8.val[1])}; |
1452 | | |
1453 | | float32x4x2_t sum2 = { |
1454 | | vpaddq_f32(sum.val[0], sum.val[0]), |
1455 | | vpaddq_f32(sum.val[1], sum.val[1])}; |
1456 | | return vgetq_lane_f32(sum2.val[0], 0) + vgetq_lane_f32(sum2.val[1], 0); |
1457 | | } |
1458 | | }; |
1459 | | #endif |
1460 | | |
1461 | | /******************************************************************* |
1462 | | * DistanceComputer: combines a similarity and a quantizer to do |
1463 | | * code-to-vector or code-to-code comparisons |
1464 | | *******************************************************************/ |
1465 | | |
1466 | | template <class Quantizer, class Similarity, int SIMDWIDTH> |
1467 | | struct DCTemplate : SQDistanceComputer {}; |
1468 | | |
1469 | | template <class Quantizer, class Similarity> |
1470 | | struct DCTemplate<Quantizer, Similarity, 1> : SQDistanceComputer { |
1471 | | using Sim = Similarity; |
1472 | | |
1473 | | Quantizer quant; |
1474 | | |
1475 | | DCTemplate(size_t d, const std::vector<float>& trained) |
1476 | 20 | : quant(d, trained) {}Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Line | Count | Source | 1476 | 10 | : quant(d, trained) {} |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Line | Count | Source | 1476 | 10 | : quant(d, trained) {} |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE |
1477 | | |
1478 | 12.9k | float compute_distance(const float* x, const uint8_t* code) const { |
1479 | 12.9k | Similarity sim(x); |
1480 | 12.9k | sim.begin(); |
1481 | 1.66M | for (size_t i = 0; i < quant.d; i++) { |
1482 | 1.65M | float xi = quant.reconstruct_component(code, i); |
1483 | 1.65M | sim.add_component(xi); |
1484 | 1.65M | } |
1485 | 12.9k | return sim.result(); |
1486 | 12.9k | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh Line | Count | Source | 1478 | 6.49k | float compute_distance(const float* x, const uint8_t* code) const { | 1479 | 6.49k | Similarity sim(x); | 1480 | 6.49k | sim.begin(); | 1481 | 838k | for (size_t i = 0; i < quant.d; i++) { | 1482 | 831k | float xi = quant.reconstruct_component(code, i); | 1483 | 831k | sim.add_component(xi); | 1484 | 831k | } | 1485 | 6.49k | return sim.result(); | 1486 | 6.49k | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh Line | Count | Source | 1478 | 6.41k | float compute_distance(const float* x, const uint8_t* code) const { | 1479 | 6.41k | Similarity sim(x); | 1480 | 6.41k | sim.begin(); | 1481 | 828k | for (size_t i = 0; i < quant.d; i++) { | 1482 | 821k | float xi = quant.reconstruct_component(code, i); | 1483 | 821k | sim.add_component(xi); | 1484 | 821k | } | 1485 | 6.41k | return sim.result(); | 1486 | 6.41k | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh |
1487 | | |
1488 | | float compute_code_distance(const uint8_t* code1, const uint8_t* code2) |
1489 | 17.1k | const { |
1490 | 17.1k | Similarity sim(nullptr); |
1491 | 17.1k | sim.begin(); |
1492 | 2.21M | for (size_t i = 0; i < quant.d; i++) { |
1493 | 2.20M | float x1 = quant.reconstruct_component(code1, i); |
1494 | 2.20M | float x2 = quant.reconstruct_component(code2, i); |
1495 | 2.20M | sim.add_component_2(x1, x2); |
1496 | 2.20M | } |
1497 | 17.1k | return sim.result(); |
1498 | 17.1k | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhSA_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhSA_ ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhSA_ Line | Count | Source | 1489 | 8.95k | const { | 1490 | 8.95k | Similarity sim(nullptr); | 1491 | 8.95k | sim.begin(); | 1492 | 1.15M | for (size_t i = 0; i < quant.d; i++) { | 1493 | 1.14M | float x1 = quant.reconstruct_component(code1, i); | 1494 | 1.14M | float x2 = quant.reconstruct_component(code2, i); | 1495 | 1.14M | sim.add_component_2(x1, x2); | 1496 | 1.14M | } | 1497 | 8.95k | return sim.result(); | 1498 | 8.95k | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhSA_ ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhSA_ Line | Count | Source | 1489 | 8.23k | const { | 1490 | 8.23k | Similarity sim(nullptr); | 1491 | 8.23k | sim.begin(); | 1492 | 1.06M | for (size_t i = 0; i < quant.d; i++) { | 1493 | 1.05M | float x1 = quant.reconstruct_component(code1, i); | 1494 | 1.05M | float x2 = quant.reconstruct_component(code2, i); | 1495 | 1.05M | sim.add_component_2(x1, x2); | 1496 | 1.05M | } | 1497 | 8.23k | return sim.result(); | 1498 | 8.23k | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhS8_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhS8_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhS8_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhS8_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhSA_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhSA_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhSA_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhSA_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhSA_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhS8_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhS8_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhS8_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhS8_ |
1499 | | |
1500 | 228 | void set_query(const float* x) final { |
1501 | 228 | q = x; |
1502 | 228 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf Line | Count | Source | 1500 | 114 | void set_query(const float* x) final { | 1501 | 114 | q = x; | 1502 | 114 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf Line | Count | Source | 1500 | 114 | void set_query(const float* x) final { | 1501 | 114 | q = x; | 1502 | 114 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf |
1503 | | |
1504 | 17.1k | float symmetric_dis(idx_t i, idx_t j) override { |
1505 | 17.1k | return compute_code_distance( |
1506 | 17.1k | codes + i * code_size, codes + j * code_size); |
1507 | 17.1k | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll Line | Count | Source | 1504 | 8.95k | float symmetric_dis(idx_t i, idx_t j) override { | 1505 | 8.95k | return compute_code_distance( | 1506 | 8.95k | codes + i * code_size, codes + j * code_size); | 1507 | 8.95k | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll Line | Count | Source | 1504 | 8.23k | float symmetric_dis(idx_t i, idx_t j) override { | 1505 | 8.23k | return compute_code_distance( | 1506 | 8.23k | codes + i * code_size, codes + j * code_size); | 1507 | 8.23k | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll |
1508 | | |
1509 | 12.9k | float query_to_code(const uint8_t* code) const final { |
1510 | 12.9k | return compute_distance(q, code); |
1511 | 12.9k | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh Line | Count | Source | 1509 | 6.49k | float query_to_code(const uint8_t* code) const final { | 1510 | 6.49k | return compute_distance(q, code); | 1511 | 6.49k | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh Line | Count | Source | 1509 | 6.41k | float query_to_code(const uint8_t* code) const final { | 1510 | 6.41k | return compute_distance(q, code); | 1511 | 6.41k | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh |
1512 | | }; |
1513 | | |
1514 | | #if defined(USE_AVX512_F16C) |
1515 | | |
1516 | | template <class Quantizer, class Similarity> |
1517 | | struct DCTemplate<Quantizer, Similarity, 16> |
1518 | | : SQDistanceComputer { // Update to handle 16 lanes |
1519 | | using Sim = Similarity; |
1520 | | |
1521 | | Quantizer quant; |
1522 | | |
1523 | | DCTemplate(size_t d, const std::vector<float>& trained) |
1524 | | : quant(d, trained) {} |
1525 | | |
1526 | | float compute_distance(const float* x, const uint8_t* code) const { |
1527 | | Similarity sim(x); |
1528 | | sim.begin_16(); |
1529 | | for (size_t i = 0; i < quant.d; i += 16) { |
1530 | | __m512 xi = quant.reconstruct_16_components(code, i); |
1531 | | sim.add_16_components(xi); |
1532 | | } |
1533 | | return sim.result_16(); |
1534 | | } |
1535 | | |
1536 | | float compute_code_distance(const uint8_t* code1, const uint8_t* code2) |
1537 | | const { |
1538 | | Similarity sim(nullptr); |
1539 | | sim.begin_16(); |
1540 | | for (size_t i = 0; i < quant.d; i += 16) { |
1541 | | __m512 x1 = quant.reconstruct_16_components(code1, i); |
1542 | | __m512 x2 = quant.reconstruct_16_components(code2, i); |
1543 | | sim.add_16_components_2(x1, x2); |
1544 | | } |
1545 | | return sim.result_16(); |
1546 | | } |
1547 | | |
1548 | | void set_query(const float* x) final { |
1549 | | q = x; |
1550 | | } |
1551 | | |
1552 | | float symmetric_dis(idx_t i, idx_t j) override { |
1553 | | return compute_code_distance( |
1554 | | codes + i * code_size, codes + j * code_size); |
1555 | | } |
1556 | | |
1557 | | float query_to_code(const uint8_t* code) const final { |
1558 | | return compute_distance(q, code); |
1559 | | } |
1560 | | }; |
1561 | | |
1562 | | #elif defined(USE_F16C) |
1563 | | |
1564 | | template <class Quantizer, class Similarity> |
1565 | | struct DCTemplate<Quantizer, Similarity, 8> : SQDistanceComputer { |
1566 | | using Sim = Similarity; |
1567 | | |
1568 | | Quantizer quant; |
1569 | | |
1570 | | DCTemplate(size_t d, const std::vector<float>& trained) |
1571 | | : quant(d, trained) {} |
1572 | | |
1573 | | float compute_distance(const float* x, const uint8_t* code) const { |
1574 | | Similarity sim(x); |
1575 | | sim.begin_8(); |
1576 | | for (size_t i = 0; i < quant.d; i += 8) { |
1577 | | __m256 xi = quant.reconstruct_8_components(code, i); |
1578 | | sim.add_8_components(xi); |
1579 | | } |
1580 | | return sim.result_8(); |
1581 | | } |
1582 | | |
1583 | | float compute_code_distance(const uint8_t* code1, const uint8_t* code2) |
1584 | | const { |
1585 | | Similarity sim(nullptr); |
1586 | | sim.begin_8(); |
1587 | | for (size_t i = 0; i < quant.d; i += 8) { |
1588 | | __m256 x1 = quant.reconstruct_8_components(code1, i); |
1589 | | __m256 x2 = quant.reconstruct_8_components(code2, i); |
1590 | | sim.add_8_components_2(x1, x2); |
1591 | | } |
1592 | | return sim.result_8(); |
1593 | | } |
1594 | | |
1595 | | void set_query(const float* x) final { |
1596 | | q = x; |
1597 | | } |
1598 | | |
1599 | | float symmetric_dis(idx_t i, idx_t j) override { |
1600 | | return compute_code_distance( |
1601 | | codes + i * code_size, codes + j * code_size); |
1602 | | } |
1603 | | |
1604 | | float query_to_code(const uint8_t* code) const final { |
1605 | | return compute_distance(q, code); |
1606 | | } |
1607 | | }; |
1608 | | |
1609 | | #endif |
1610 | | |
1611 | | #ifdef USE_NEON |
1612 | | |
1613 | | template <class Quantizer, class Similarity> |
1614 | | struct DCTemplate<Quantizer, Similarity, 8> : SQDistanceComputer { |
1615 | | using Sim = Similarity; |
1616 | | |
1617 | | Quantizer quant; |
1618 | | |
1619 | | DCTemplate(size_t d, const std::vector<float>& trained) |
1620 | | : quant(d, trained) {} |
1621 | | float compute_distance(const float* x, const uint8_t* code) const { |
1622 | | Similarity sim(x); |
1623 | | sim.begin_8(); |
1624 | | for (size_t i = 0; i < quant.d; i += 8) { |
1625 | | float32x4x2_t xi = quant.reconstruct_8_components(code, i); |
1626 | | sim.add_8_components(xi); |
1627 | | } |
1628 | | return sim.result_8(); |
1629 | | } |
1630 | | |
1631 | | float compute_code_distance(const uint8_t* code1, const uint8_t* code2) |
1632 | | const { |
1633 | | Similarity sim(nullptr); |
1634 | | sim.begin_8(); |
1635 | | for (size_t i = 0; i < quant.d; i += 8) { |
1636 | | float32x4x2_t x1 = quant.reconstruct_8_components(code1, i); |
1637 | | float32x4x2_t x2 = quant.reconstruct_8_components(code2, i); |
1638 | | sim.add_8_components_2(x1, x2); |
1639 | | } |
1640 | | return sim.result_8(); |
1641 | | } |
1642 | | |
1643 | | void set_query(const float* x) final { |
1644 | | q = x; |
1645 | | } |
1646 | | |
1647 | | float symmetric_dis(idx_t i, idx_t j) override { |
1648 | | return compute_code_distance( |
1649 | | codes + i * code_size, codes + j * code_size); |
1650 | | } |
1651 | | |
1652 | | float query_to_code(const uint8_t* code) const final { |
1653 | | return compute_distance(q, code); |
1654 | | } |
1655 | | }; |
1656 | | #endif |
1657 | | |
1658 | | /******************************************************************* |
1659 | | * DistanceComputerByte: computes distances in the integer domain |
1660 | | *******************************************************************/ |
1661 | | |
1662 | | template <class Similarity, int SIMDWIDTH> |
1663 | | struct DistanceComputerByte : SQDistanceComputer {}; |
1664 | | |
1665 | | template <class Similarity> |
1666 | | struct DistanceComputerByte<Similarity, 1> : SQDistanceComputer { |
1667 | | using Sim = Similarity; |
1668 | | |
1669 | | int d; |
1670 | | std::vector<uint8_t> tmp; |
1671 | | |
1672 | 0 | DistanceComputerByte(int d, const std::vector<float>&) : d(d), tmp(d) {}Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEC2EiRKSt6vectorIfSaIfEE Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEC2EiRKSt6vectorIfSaIfEE |
1673 | | |
1674 | | int compute_code_distance(const uint8_t* code1, const uint8_t* code2) |
1675 | 0 | const { |
1676 | 0 | int accu = 0; |
1677 | 0 | for (int i = 0; i < d; i++) { |
1678 | 0 | if (Sim::metric_type == METRIC_INNER_PRODUCT) { |
1679 | 0 | accu += int(code1[i]) * code2[i]; |
1680 | 0 | } else { |
1681 | 0 | int diff = int(code1[i]) - code2[i]; |
1682 | 0 | accu += diff * diff; |
1683 | 0 | } |
1684 | 0 | } |
1685 | 0 | return accu; |
1686 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhS6_ Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhS6_ |
1687 | | |
1688 | 0 | void set_query(const float* x) final { |
1689 | 0 | for (int i = 0; i < d; i++) { |
1690 | 0 | tmp[i] = int(x[i]); |
1691 | 0 | } |
1692 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf |
1693 | | |
1694 | | int compute_distance(const float* x, const uint8_t* code) { |
1695 | | set_query(x); |
1696 | | return compute_code_distance(tmp.data(), code); |
1697 | | } |
1698 | | |
1699 | 0 | float symmetric_dis(idx_t i, idx_t j) override { |
1700 | 0 | return compute_code_distance( |
1701 | 0 | codes + i * code_size, codes + j * code_size); |
1702 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll |
1703 | | |
1704 | 0 | float query_to_code(const uint8_t* code) const final { |
1705 | 0 | return compute_code_distance(tmp.data(), code); |
1706 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh |
1707 | | }; |
1708 | | |
1709 | | #if defined(__AVX512F__) |
1710 | | |
1711 | | template <class Similarity> |
1712 | | struct DistanceComputerByte<Similarity, 16> : SQDistanceComputer { |
1713 | | using Sim = Similarity; |
1714 | | |
1715 | | int d; |
1716 | | std::vector<uint8_t> tmp; |
1717 | | |
1718 | | DistanceComputerByte(int d, const std::vector<float>&) : d(d), tmp(d) {} |
1719 | | |
1720 | | int compute_code_distance(const uint8_t* code1, const uint8_t* code2) |
1721 | | const { |
1722 | | __m512i accu = _mm512_setzero_si512(); |
1723 | | for (int i = 0; i < d; i += 32) { // Process 32 bytes at a time |
1724 | | __m512i c1 = _mm512_cvtepu8_epi16( |
1725 | | _mm256_loadu_si256((__m256i*)(code1 + i))); |
1726 | | __m512i c2 = _mm512_cvtepu8_epi16( |
1727 | | _mm256_loadu_si256((__m256i*)(code2 + i))); |
1728 | | __m512i prod32; |
1729 | | if (Sim::metric_type == METRIC_INNER_PRODUCT) { |
1730 | | prod32 = _mm512_madd_epi16(c1, c2); |
1731 | | } else { |
1732 | | __m512i diff = _mm512_sub_epi16(c1, c2); |
1733 | | prod32 = _mm512_madd_epi16(diff, diff); |
1734 | | } |
1735 | | accu = _mm512_add_epi32(accu, prod32); |
1736 | | } |
1737 | | // Horizontally add elements of accu |
1738 | | return _mm512_reduce_add_epi32(accu); |
1739 | | } |
1740 | | |
1741 | | void set_query(const float* x) final { |
1742 | | for (int i = 0; i < d; i++) { |
1743 | | tmp[i] = int(x[i]); |
1744 | | } |
1745 | | } |
1746 | | |
1747 | | int compute_distance(const float* x, const uint8_t* code) { |
1748 | | set_query(x); |
1749 | | return compute_code_distance(tmp.data(), code); |
1750 | | } |
1751 | | |
1752 | | float symmetric_dis(idx_t i, idx_t j) override { |
1753 | | return compute_code_distance( |
1754 | | codes + i * code_size, codes + j * code_size); |
1755 | | } |
1756 | | |
1757 | | float query_to_code(const uint8_t* code) const final { |
1758 | | return compute_code_distance(tmp.data(), code); |
1759 | | } |
1760 | | }; |
1761 | | |
1762 | | #elif defined(__AVX2__) |
1763 | | |
1764 | | template <class Similarity> |
1765 | | struct DistanceComputerByte<Similarity, 8> : SQDistanceComputer { |
1766 | | using Sim = Similarity; |
1767 | | |
1768 | | int d; |
1769 | | std::vector<uint8_t> tmp; |
1770 | | |
1771 | | DistanceComputerByte(int d, const std::vector<float>&) : d(d), tmp(d) {} |
1772 | | |
1773 | | int compute_code_distance(const uint8_t* code1, const uint8_t* code2) |
1774 | | const { |
1775 | | // __m256i accu = _mm256_setzero_ps (); |
1776 | | __m256i accu = _mm256_setzero_si256(); |
1777 | | for (int i = 0; i < d; i += 16) { |
1778 | | // load 16 bytes, convert to 16 uint16_t |
1779 | | __m256i c1 = _mm256_cvtepu8_epi16( |
1780 | | _mm_loadu_si128((__m128i*)(code1 + i))); |
1781 | | __m256i c2 = _mm256_cvtepu8_epi16( |
1782 | | _mm_loadu_si128((__m128i*)(code2 + i))); |
1783 | | __m256i prod32; |
1784 | | if (Sim::metric_type == METRIC_INNER_PRODUCT) { |
1785 | | prod32 = _mm256_madd_epi16(c1, c2); |
1786 | | } else { |
1787 | | __m256i diff = _mm256_sub_epi16(c1, c2); |
1788 | | prod32 = _mm256_madd_epi16(diff, diff); |
1789 | | } |
1790 | | accu = _mm256_add_epi32(accu, prod32); |
1791 | | } |
1792 | | __m128i sum = _mm256_extractf128_si256(accu, 0); |
1793 | | sum = _mm_add_epi32(sum, _mm256_extractf128_si256(accu, 1)); |
1794 | | sum = _mm_hadd_epi32(sum, sum); |
1795 | | sum = _mm_hadd_epi32(sum, sum); |
1796 | | return _mm_cvtsi128_si32(sum); |
1797 | | } |
1798 | | |
1799 | | void set_query(const float* x) final { |
1800 | | /* |
1801 | | for (int i = 0; i < d; i += 8) { |
1802 | | __m256 xi = _mm256_loadu_ps (x + i); |
1803 | | __m256i ci = _mm256_cvtps_epi32(xi); |
1804 | | */ |
1805 | | for (int i = 0; i < d; i++) { |
1806 | | tmp[i] = int(x[i]); |
1807 | | } |
1808 | | } |
1809 | | |
1810 | | int compute_distance(const float* x, const uint8_t* code) { |
1811 | | set_query(x); |
1812 | | return compute_code_distance(tmp.data(), code); |
1813 | | } |
1814 | | |
1815 | | float symmetric_dis(idx_t i, idx_t j) override { |
1816 | | return compute_code_distance( |
1817 | | codes + i * code_size, codes + j * code_size); |
1818 | | } |
1819 | | |
1820 | | float query_to_code(const uint8_t* code) const final { |
1821 | | return compute_code_distance(tmp.data(), code); |
1822 | | } |
1823 | | }; |
1824 | | |
1825 | | #endif |
1826 | | |
1827 | | #ifdef USE_NEON |
1828 | | |
1829 | | template <class Similarity> |
1830 | | struct DistanceComputerByte<Similarity, 8> : SQDistanceComputer { |
1831 | | using Sim = Similarity; |
1832 | | |
1833 | | int d; |
1834 | | std::vector<uint8_t> tmp; |
1835 | | |
1836 | | DistanceComputerByte(int d, const std::vector<float>&) : d(d), tmp(d) {} |
1837 | | |
1838 | | int compute_code_distance(const uint8_t* code1, const uint8_t* code2) |
1839 | | const { |
1840 | | int accu = 0; |
1841 | | for (int i = 0; i < d; i++) { |
1842 | | if (Sim::metric_type == METRIC_INNER_PRODUCT) { |
1843 | | accu += int(code1[i]) * code2[i]; |
1844 | | } else { |
1845 | | int diff = int(code1[i]) - code2[i]; |
1846 | | accu += diff * diff; |
1847 | | } |
1848 | | } |
1849 | | return accu; |
1850 | | } |
1851 | | |
1852 | | void set_query(const float* x) final { |
1853 | | for (int i = 0; i < d; i++) { |
1854 | | tmp[i] = int(x[i]); |
1855 | | } |
1856 | | } |
1857 | | |
1858 | | int compute_distance(const float* x, const uint8_t* code) { |
1859 | | set_query(x); |
1860 | | return compute_code_distance(tmp.data(), code); |
1861 | | } |
1862 | | |
1863 | | float symmetric_dis(idx_t i, idx_t j) override { |
1864 | | return compute_code_distance( |
1865 | | codes + i * code_size, codes + j * code_size); |
1866 | | } |
1867 | | |
1868 | | float query_to_code(const uint8_t* code) const final { |
1869 | | return compute_code_distance(tmp.data(), code); |
1870 | | } |
1871 | | }; |
1872 | | |
1873 | | #endif |
1874 | | |
1875 | | /******************************************************************* |
1876 | | * select_distance_computer: runtime selection of template |
1877 | | * specialization |
1878 | | *******************************************************************/ |
1879 | | |
1880 | | template <class Sim> |
1881 | | SQDistanceComputer* select_distance_computer( |
1882 | | QuantizerType qtype, |
1883 | | size_t d, |
1884 | 12 | const std::vector<float>& trained) { |
1885 | 12 | constexpr int SIMDWIDTH = Sim::simdwidth; |
1886 | 12 | switch (qtype) { |
1887 | 0 | case ScalarQuantizer::QT_8bit_uniform: |
1888 | 0 | return new DCTemplate< |
1889 | 0 | QuantizerTemplate< |
1890 | 0 | Codec8bit, |
1891 | 0 | QuantizerTemplateScaling::UNIFORM, |
1892 | 0 | SIMDWIDTH>, |
1893 | 0 | Sim, |
1894 | 0 | SIMDWIDTH>(d, trained); |
1895 | | |
1896 | 0 | case ScalarQuantizer::QT_4bit_uniform: |
1897 | 0 | return new DCTemplate< |
1898 | 0 | QuantizerTemplate< |
1899 | 0 | Codec4bit, |
1900 | 0 | QuantizerTemplateScaling::UNIFORM, |
1901 | 0 | SIMDWIDTH>, |
1902 | 0 | Sim, |
1903 | 0 | SIMDWIDTH>(d, trained); |
1904 | | |
1905 | 6 | case ScalarQuantizer::QT_8bit: |
1906 | 6 | return new DCTemplate< |
1907 | 6 | QuantizerTemplate< |
1908 | 6 | Codec8bit, |
1909 | 6 | QuantizerTemplateScaling::NON_UNIFORM, |
1910 | 6 | SIMDWIDTH>, |
1911 | 6 | Sim, |
1912 | 6 | SIMDWIDTH>(d, trained); |
1913 | | |
1914 | 0 | case ScalarQuantizer::QT_6bit: |
1915 | 0 | return new DCTemplate< |
1916 | 0 | QuantizerTemplate< |
1917 | 0 | Codec6bit, |
1918 | 0 | QuantizerTemplateScaling::NON_UNIFORM, |
1919 | 0 | SIMDWIDTH>, |
1920 | 0 | Sim, |
1921 | 0 | SIMDWIDTH>(d, trained); |
1922 | | |
1923 | 6 | case ScalarQuantizer::QT_4bit: |
1924 | 6 | return new DCTemplate< |
1925 | 6 | QuantizerTemplate< |
1926 | 6 | Codec4bit, |
1927 | 6 | QuantizerTemplateScaling::NON_UNIFORM, |
1928 | 6 | SIMDWIDTH>, |
1929 | 6 | Sim, |
1930 | 6 | SIMDWIDTH>(d, trained); |
1931 | | |
1932 | 0 | case ScalarQuantizer::QT_fp16: |
1933 | 0 | return new DCTemplate<QuantizerFP16<SIMDWIDTH>, Sim, SIMDWIDTH>( |
1934 | 0 | d, trained); |
1935 | | |
1936 | 0 | case ScalarQuantizer::QT_bf16: |
1937 | 0 | return new DCTemplate<QuantizerBF16<SIMDWIDTH>, Sim, SIMDWIDTH>( |
1938 | 0 | d, trained); |
1939 | | |
1940 | 0 | case ScalarQuantizer::QT_8bit_direct: |
1941 | | #if defined(__AVX512F__) |
1942 | | if (d % 32 == 0) { |
1943 | | return new DistanceComputerByte<Sim, SIMDWIDTH>(d, trained); |
1944 | | } else |
1945 | | #elif defined(__AVX2__) |
1946 | 0 | if (d % 16 == 0) { |
1947 | 0 | return new DistanceComputerByte<Sim, SIMDWIDTH>(d, trained); |
1948 | 0 | } else |
1949 | 0 | #endif |
1950 | 0 | { |
1951 | 0 | return new DCTemplate< |
1952 | 0 | Quantizer8bitDirect<SIMDWIDTH>, |
1953 | 0 | Sim, |
1954 | 0 | SIMDWIDTH>(d, trained); |
1955 | 0 | } |
1956 | 0 | case ScalarQuantizer::QT_8bit_direct_signed: |
1957 | 0 | return new DCTemplate< |
1958 | 0 | Quantizer8bitDirectSigned<SIMDWIDTH>, |
1959 | 0 | Sim, |
1960 | 0 | SIMDWIDTH>(d, trained); |
1961 | 12 | } |
1962 | 0 | FAISS_THROW_MSG("unknown qtype"); |
1963 | 0 | return nullptr; |
1964 | 0 | } ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124select_distance_computerINS0_12SimilarityL2ILi1EEEEEPNS_15ScalarQuantizer18SQDistanceComputerENS4_13QuantizerTypeEmRKSt6vectorIfSaIfEE Line | Count | Source | 1884 | 12 | const std::vector<float>& trained) { | 1885 | 12 | constexpr int SIMDWIDTH = Sim::simdwidth; | 1886 | 12 | switch (qtype) { | 1887 | 0 | case ScalarQuantizer::QT_8bit_uniform: | 1888 | 0 | return new DCTemplate< | 1889 | 0 | QuantizerTemplate< | 1890 | 0 | Codec8bit, | 1891 | 0 | QuantizerTemplateScaling::UNIFORM, | 1892 | 0 | SIMDWIDTH>, | 1893 | 0 | Sim, | 1894 | 0 | SIMDWIDTH>(d, trained); | 1895 | | | 1896 | 0 | case ScalarQuantizer::QT_4bit_uniform: | 1897 | 0 | return new DCTemplate< | 1898 | 0 | QuantizerTemplate< | 1899 | 0 | Codec4bit, | 1900 | 0 | QuantizerTemplateScaling::UNIFORM, | 1901 | 0 | SIMDWIDTH>, | 1902 | 0 | Sim, | 1903 | 0 | SIMDWIDTH>(d, trained); | 1904 | | | 1905 | 6 | case ScalarQuantizer::QT_8bit: | 1906 | 6 | return new DCTemplate< | 1907 | 6 | QuantizerTemplate< | 1908 | 6 | Codec8bit, | 1909 | 6 | QuantizerTemplateScaling::NON_UNIFORM, | 1910 | 6 | SIMDWIDTH>, | 1911 | 6 | Sim, | 1912 | 6 | SIMDWIDTH>(d, trained); | 1913 | | | 1914 | 0 | case ScalarQuantizer::QT_6bit: | 1915 | 0 | return new DCTemplate< | 1916 | 0 | QuantizerTemplate< | 1917 | 0 | Codec6bit, | 1918 | 0 | QuantizerTemplateScaling::NON_UNIFORM, | 1919 | 0 | SIMDWIDTH>, | 1920 | 0 | Sim, | 1921 | 0 | SIMDWIDTH>(d, trained); | 1922 | | | 1923 | 6 | case ScalarQuantizer::QT_4bit: | 1924 | 6 | return new DCTemplate< | 1925 | 6 | QuantizerTemplate< | 1926 | 6 | Codec4bit, | 1927 | 6 | QuantizerTemplateScaling::NON_UNIFORM, | 1928 | 6 | SIMDWIDTH>, | 1929 | 6 | Sim, | 1930 | 6 | SIMDWIDTH>(d, trained); | 1931 | | | 1932 | 0 | case ScalarQuantizer::QT_fp16: | 1933 | 0 | return new DCTemplate<QuantizerFP16<SIMDWIDTH>, Sim, SIMDWIDTH>( | 1934 | 0 | d, trained); | 1935 | | | 1936 | 0 | case ScalarQuantizer::QT_bf16: | 1937 | 0 | return new DCTemplate<QuantizerBF16<SIMDWIDTH>, Sim, SIMDWIDTH>( | 1938 | 0 | d, trained); | 1939 | | | 1940 | 0 | case ScalarQuantizer::QT_8bit_direct: | 1941 | | #if defined(__AVX512F__) | 1942 | | if (d % 32 == 0) { | 1943 | | return new DistanceComputerByte<Sim, SIMDWIDTH>(d, trained); | 1944 | | } else | 1945 | | #elif defined(__AVX2__) | 1946 | 0 | if (d % 16 == 0) { | 1947 | 0 | return new DistanceComputerByte<Sim, SIMDWIDTH>(d, trained); | 1948 | 0 | } else | 1949 | 0 | #endif | 1950 | 0 | { | 1951 | 0 | return new DCTemplate< | 1952 | 0 | Quantizer8bitDirect<SIMDWIDTH>, | 1953 | 0 | Sim, | 1954 | 0 | SIMDWIDTH>(d, trained); | 1955 | 0 | } | 1956 | 0 | case ScalarQuantizer::QT_8bit_direct_signed: | 1957 | 0 | return new DCTemplate< | 1958 | 0 | Quantizer8bitDirectSigned<SIMDWIDTH>, | 1959 | 0 | Sim, | 1960 | 0 | SIMDWIDTH>(d, trained); | 1961 | 12 | } | 1962 | 0 | FAISS_THROW_MSG("unknown qtype"); | 1963 | 0 | return nullptr; | 1964 | 0 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124select_distance_computerINS0_12SimilarityIPILi1EEEEEPNS_15ScalarQuantizer18SQDistanceComputerENS4_13QuantizerTypeEmRKSt6vectorIfSaIfEE |
1965 | | |
1966 | | } // anonymous namespace |
1967 | | |
1968 | | /******************************************************************* |
1969 | | * ScalarQuantizer implementation |
1970 | | ********************************************************************/ |
1971 | | |
1972 | | ScalarQuantizer::ScalarQuantizer(size_t d, QuantizerType qtype) |
1973 | 7 | : Quantizer(d), qtype(qtype) { |
1974 | 7 | set_derived_sizes(); |
1975 | 7 | } |
1976 | | |
1977 | 2 | ScalarQuantizer::ScalarQuantizer() {} |
1978 | | |
1979 | 11 | void ScalarQuantizer::set_derived_sizes() { |
1980 | 11 | switch (qtype) { |
1981 | 6 | case QT_8bit: |
1982 | 6 | case QT_8bit_uniform: |
1983 | 6 | case QT_8bit_direct: |
1984 | 6 | case QT_8bit_direct_signed: |
1985 | 6 | code_size = d; |
1986 | 6 | bits = 8; |
1987 | 6 | break; |
1988 | 5 | case QT_4bit: |
1989 | 5 | case QT_4bit_uniform: |
1990 | 5 | code_size = (d + 1) / 2; |
1991 | 5 | bits = 4; |
1992 | 5 | break; |
1993 | 0 | case QT_6bit: |
1994 | 0 | code_size = (d * 6 + 7) / 8; |
1995 | 0 | bits = 6; |
1996 | 0 | break; |
1997 | 0 | case QT_fp16: |
1998 | 0 | code_size = d * 2; |
1999 | 0 | bits = 16; |
2000 | 0 | break; |
2001 | 0 | case QT_bf16: |
2002 | 0 | code_size = d * 2; |
2003 | 0 | bits = 16; |
2004 | 0 | break; |
2005 | 11 | } |
2006 | 11 | } |
2007 | | |
2008 | 4 | void ScalarQuantizer::train(size_t n, const float* x) { |
2009 | 4 | int bit_per_dim = qtype == QT_4bit_uniform ? 4 |
2010 | 4 | : qtype == QT_4bit ? 4 |
2011 | 4 | : qtype == QT_6bit ? 6 |
2012 | 2 | : qtype == QT_8bit_uniform ? 8 |
2013 | 2 | : qtype == QT_8bit ? 8 |
2014 | 2 | : -1; |
2015 | | |
2016 | 4 | switch (qtype) { |
2017 | 0 | case QT_4bit_uniform: |
2018 | 0 | case QT_8bit_uniform: |
2019 | 0 | train_Uniform( |
2020 | 0 | rangestat, |
2021 | 0 | rangestat_arg, |
2022 | 0 | n * d, |
2023 | 0 | 1 << bit_per_dim, |
2024 | 0 | x, |
2025 | 0 | trained); |
2026 | 0 | break; |
2027 | 2 | case QT_4bit: |
2028 | 4 | case QT_8bit: |
2029 | 4 | case QT_6bit: |
2030 | 4 | train_NonUniform( |
2031 | 4 | rangestat, |
2032 | 4 | rangestat_arg, |
2033 | 4 | n, |
2034 | 4 | d, |
2035 | 4 | 1 << bit_per_dim, |
2036 | 4 | x, |
2037 | 4 | trained); |
2038 | 4 | break; |
2039 | 0 | case QT_fp16: |
2040 | 0 | case QT_8bit_direct: |
2041 | 0 | case QT_bf16: |
2042 | 0 | case QT_8bit_direct_signed: |
2043 | | // no training necessary |
2044 | 0 | break; |
2045 | 4 | } |
2046 | 4 | } |
2047 | | |
2048 | 4 | ScalarQuantizer::SQuantizer* ScalarQuantizer::select_quantizer() const { |
2049 | | #if defined(USE_AVX512_F16C) |
2050 | | if (d % 16 == 0) { |
2051 | | return select_quantizer_1<16>(qtype, d, trained); |
2052 | | } else |
2053 | | #elif defined(USE_F16C) || defined(USE_NEON) |
2054 | | if (d % 8 == 0) { |
2055 | | return select_quantizer_1<8>(qtype, d, trained); |
2056 | | } else |
2057 | | #endif |
2058 | 4 | { |
2059 | 4 | return select_quantizer_1<1>(qtype, d, trained); |
2060 | 4 | } |
2061 | 4 | } |
2062 | | |
2063 | | void ScalarQuantizer::compute_codes(const float* x, uint8_t* codes, size_t n) |
2064 | 2 | const { |
2065 | 2 | std::unique_ptr<SQuantizer> squant(select_quantizer()); |
2066 | | |
2067 | 2 | memset(codes, 0, code_size * n); |
2068 | 2 | #pragma omp parallel for |
2069 | 16 | for (int64_t i = 0; i < n; i++) |
2070 | 8 | squant->encode_vector(x + i * d, codes + i * code_size); |
2071 | 2 | } |
2072 | | |
2073 | 0 | void ScalarQuantizer::decode(const uint8_t* codes, float* x, size_t n) const { |
2074 | 0 | std::unique_ptr<SQuantizer> squant(select_quantizer()); |
2075 | |
|
2076 | 0 | #pragma omp parallel for |
2077 | 0 | for (int64_t i = 0; i < n; i++) |
2078 | 0 | squant->decode_vector(codes + i * code_size, x + i * d); |
2079 | 0 | } |
2080 | | |
2081 | | SQDistanceComputer* ScalarQuantizer::get_distance_computer( |
2082 | 12 | MetricType metric) const { |
2083 | 12 | FAISS_THROW_IF_NOT(metric == METRIC_L2 || metric == METRIC_INNER_PRODUCT); |
2084 | | #if defined(USE_AVX512_F16C) |
2085 | | if (d % 16 == 0) { |
2086 | | if (metric == METRIC_L2) { |
2087 | | return select_distance_computer<SimilarityL2<16>>( |
2088 | | qtype, d, trained); |
2089 | | } else { |
2090 | | return select_distance_computer<SimilarityIP<16>>( |
2091 | | qtype, d, trained); |
2092 | | } |
2093 | | } else |
2094 | | #elif defined(USE_F16C) || defined(USE_NEON) |
2095 | | if (d % 8 == 0) { |
2096 | | if (metric == METRIC_L2) { |
2097 | | return select_distance_computer<SimilarityL2<8>>(qtype, d, trained); |
2098 | | } else { |
2099 | | return select_distance_computer<SimilarityIP<8>>(qtype, d, trained); |
2100 | | } |
2101 | | } else |
2102 | | #endif |
2103 | 12 | { |
2104 | 12 | if (metric == METRIC_L2) { |
2105 | 12 | return select_distance_computer<SimilarityL2<1>>(qtype, d, trained); |
2106 | 12 | } else { |
2107 | 0 | return select_distance_computer<SimilarityIP<1>>(qtype, d, trained); |
2108 | 0 | } |
2109 | 12 | } |
2110 | 12 | } |
2111 | | |
2112 | | /******************************************************************* |
2113 | | * IndexScalarQuantizer/IndexIVFScalarQuantizer scanner object |
2114 | | * |
2115 | | * It is an InvertedListScanner, but is designed to work with |
2116 | | * IndexScalarQuantizer as well. |
2117 | | ********************************************************************/ |
2118 | | |
2119 | | namespace { |
2120 | | |
2121 | | template <class DCClass, int use_sel> |
2122 | | struct IVFSQScannerIP : InvertedListScanner { |
2123 | | DCClass dc; |
2124 | | bool by_residual; |
2125 | | |
2126 | | float accu0; /// added to all distances |
2127 | | |
2128 | | IVFSQScannerIP( |
2129 | | int d, |
2130 | | const std::vector<float>& trained, |
2131 | | size_t code_size, |
2132 | | bool store_pairs, |
2133 | | const IDSelector* sel, |
2134 | | bool by_residual) |
2135 | 0 | : dc(d, trained), by_residual(by_residual), accu0(0) { |
2136 | 0 | this->store_pairs = store_pairs; |
2137 | 0 | this->sel = sel; |
2138 | 0 | this->code_size = code_size; |
2139 | 0 | this->keep_max = true; |
2140 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb |
2141 | | |
2142 | 0 | void set_query(const float* query) override { |
2143 | 0 | dc.set_query(query); |
2144 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf |
2145 | | |
2146 | 0 | void set_list(idx_t list_no, float coarse_dis) override { |
2147 | 0 | this->list_no = list_no; |
2148 | 0 | accu0 = by_residual ? coarse_dis : 0; |
2149 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf |
2150 | | |
2151 | 0 | float distance_to_code(const uint8_t* code) const final { |
2152 | 0 | return accu0 + dc.query_to_code(code); |
2153 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh |
2154 | | |
2155 | | size_t scan_codes( |
2156 | | size_t list_size, |
2157 | | const uint8_t* codes, |
2158 | | const idx_t* ids, |
2159 | | float* simi, |
2160 | | idx_t* idxi, |
2161 | 0 | size_t k) const override { |
2162 | 0 | size_t nup = 0; |
2163 | |
|
2164 | 0 | for (size_t j = 0; j < list_size; j++, codes += code_size) { |
2165 | 0 | if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) { |
2166 | 0 | continue; |
2167 | 0 | } |
2168 | | |
2169 | 0 | float accu = accu0 + dc.query_to_code(codes); |
2170 | |
|
2171 | 0 | if (accu > simi[0]) { |
2172 | 0 | int64_t id = store_pairs ? (list_no << 32 | j) : ids[j]; |
2173 | 0 | minheap_replace_top(k, simi, idxi, accu, id); |
2174 | 0 | nup++; |
2175 | 0 | } |
2176 | 0 | } |
2177 | 0 | return nup; |
2178 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm |
2179 | | |
2180 | | void scan_codes_range( |
2181 | | size_t list_size, |
2182 | | const uint8_t* codes, |
2183 | | const idx_t* ids, |
2184 | | float radius, |
2185 | 0 | RangeQueryResult& res) const override { |
2186 | 0 | for (size_t j = 0; j < list_size; j++, codes += code_size) { |
2187 | 0 | if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) { |
2188 | 0 | continue; |
2189 | 0 | } |
2190 | | |
2191 | 0 | float accu = accu0 + dc.query_to_code(codes); |
2192 | 0 | if (accu > radius) { |
2193 | 0 | int64_t id = store_pairs ? (list_no << 32 | j) : ids[j]; |
2194 | 0 | res.add(accu, id); |
2195 | 0 | } |
2196 | 0 | } |
2197 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE |
2198 | | }; |
2199 | | |
2200 | | /* use_sel = 0: don't check selector |
2201 | | * = 1: check on ids[j] |
2202 | | * = 2: check in j directly (normally ids is nullptr and store_pairs) |
2203 | | */ |
2204 | | template <class DCClass, int use_sel> |
2205 | | struct IVFSQScannerL2 : InvertedListScanner { |
2206 | | DCClass dc; |
2207 | | |
2208 | | bool by_residual; |
2209 | | const Index* quantizer; |
2210 | | const float* x; /// current query |
2211 | | |
2212 | | std::vector<float> tmp; |
2213 | | |
2214 | | IVFSQScannerL2( |
2215 | | int d, |
2216 | | const std::vector<float>& trained, |
2217 | | size_t code_size, |
2218 | | const Index* quantizer, |
2219 | | bool store_pairs, |
2220 | | const IDSelector* sel, |
2221 | | bool by_residual) |
2222 | 8 | : dc(d, trained), |
2223 | 8 | by_residual(by_residual), |
2224 | 8 | quantizer(quantizer), |
2225 | 8 | x(nullptr), |
2226 | 8 | tmp(d) { |
2227 | 8 | this->store_pairs = store_pairs; |
2228 | 8 | this->sel = sel; |
2229 | 8 | this->code_size = code_size; |
2230 | 8 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2222 | 2 | : dc(d, trained), | 2223 | 2 | by_residual(by_residual), | 2224 | 2 | quantizer(quantizer), | 2225 | 2 | x(nullptr), | 2226 | 2 | tmp(d) { | 2227 | 2 | this->store_pairs = store_pairs; | 2228 | 2 | this->sel = sel; | 2229 | 2 | this->code_size = code_size; | 2230 | 2 | } |
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2222 | 2 | : dc(d, trained), | 2223 | 2 | by_residual(by_residual), | 2224 | 2 | quantizer(quantizer), | 2225 | 2 | x(nullptr), | 2226 | 2 | tmp(d) { | 2227 | 2 | this->store_pairs = store_pairs; | 2228 | 2 | this->sel = sel; | 2229 | 2 | this->code_size = code_size; | 2230 | 2 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2222 | 2 | : dc(d, trained), | 2223 | 2 | by_residual(by_residual), | 2224 | 2 | quantizer(quantizer), | 2225 | 2 | x(nullptr), | 2226 | 2 | tmp(d) { | 2227 | 2 | this->store_pairs = store_pairs; | 2228 | 2 | this->sel = sel; | 2229 | 2 | this->code_size = code_size; | 2230 | 2 | } |
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2222 | 2 | : dc(d, trained), | 2223 | 2 | by_residual(by_residual), | 2224 | 2 | quantizer(quantizer), | 2225 | 2 | x(nullptr), | 2226 | 2 | tmp(d) { | 2227 | 2 | this->store_pairs = store_pairs; | 2228 | 2 | this->sel = sel; | 2229 | 2 | this->code_size = code_size; | 2230 | 2 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb |
2231 | | |
2232 | 8 | void set_query(const float* query) override { |
2233 | 8 | x = query; |
2234 | 8 | if (!quantizer) { |
2235 | 0 | dc.set_query(query); |
2236 | 0 | } |
2237 | 8 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Line | Count | Source | 2232 | 2 | void set_query(const float* query) override { | 2233 | 2 | x = query; | 2234 | 2 | if (!quantizer) { | 2235 | 0 | dc.set_query(query); | 2236 | 0 | } | 2237 | 2 | } |
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Line | Count | Source | 2232 | 2 | void set_query(const float* query) override { | 2233 | 2 | x = query; | 2234 | 2 | if (!quantizer) { | 2235 | 0 | dc.set_query(query); | 2236 | 0 | } | 2237 | 2 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Line | Count | Source | 2232 | 2 | void set_query(const float* query) override { | 2233 | 2 | x = query; | 2234 | 2 | if (!quantizer) { | 2235 | 0 | dc.set_query(query); | 2236 | 0 | } | 2237 | 2 | } |
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Line | Count | Source | 2232 | 2 | void set_query(const float* query) override { | 2233 | 2 | x = query; | 2234 | 2 | if (!quantizer) { | 2235 | 0 | dc.set_query(query); | 2236 | 0 | } | 2237 | 2 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf |
2238 | | |
2239 | 20 | void set_list(idx_t list_no, float /*coarse_dis*/) override { |
2240 | 20 | this->list_no = list_no; |
2241 | 20 | if (by_residual) { |
2242 | | // shift of x_in wrt centroid |
2243 | 20 | quantizer->compute_residual(x, tmp.data(), list_no); |
2244 | 20 | dc.set_query(tmp.data()); |
2245 | 20 | } else { |
2246 | 0 | dc.set_query(x); |
2247 | 0 | } |
2248 | 20 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Line | Count | Source | 2239 | 2 | void set_list(idx_t list_no, float /*coarse_dis*/) override { | 2240 | 2 | this->list_no = list_no; | 2241 | 2 | if (by_residual) { | 2242 | | // shift of x_in wrt centroid | 2243 | 2 | quantizer->compute_residual(x, tmp.data(), list_no); | 2244 | 2 | dc.set_query(tmp.data()); | 2245 | 2 | } else { | 2246 | 0 | dc.set_query(x); | 2247 | 0 | } | 2248 | 2 | } |
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Line | Count | Source | 2239 | 8 | void set_list(idx_t list_no, float /*coarse_dis*/) override { | 2240 | 8 | this->list_no = list_no; | 2241 | 8 | if (by_residual) { | 2242 | | // shift of x_in wrt centroid | 2243 | 8 | quantizer->compute_residual(x, tmp.data(), list_no); | 2244 | 8 | dc.set_query(tmp.data()); | 2245 | 8 | } else { | 2246 | 0 | dc.set_query(x); | 2247 | 0 | } | 2248 | 8 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Line | Count | Source | 2239 | 2 | void set_list(idx_t list_no, float /*coarse_dis*/) override { | 2240 | 2 | this->list_no = list_no; | 2241 | 2 | if (by_residual) { | 2242 | | // shift of x_in wrt centroid | 2243 | 2 | quantizer->compute_residual(x, tmp.data(), list_no); | 2244 | 2 | dc.set_query(tmp.data()); | 2245 | 2 | } else { | 2246 | 0 | dc.set_query(x); | 2247 | 0 | } | 2248 | 2 | } |
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Line | Count | Source | 2239 | 8 | void set_list(idx_t list_no, float /*coarse_dis*/) override { | 2240 | 8 | this->list_no = list_no; | 2241 | 8 | if (by_residual) { | 2242 | | // shift of x_in wrt centroid | 2243 | 8 | quantizer->compute_residual(x, tmp.data(), list_no); | 2244 | 8 | dc.set_query(tmp.data()); | 2245 | 8 | } else { | 2246 | 0 | dc.set_query(x); | 2247 | 0 | } | 2248 | 8 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf |
2249 | | |
2250 | 0 | float distance_to_code(const uint8_t* code) const final { |
2251 | 0 | return dc.query_to_code(code); |
2252 | 0 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh |
2253 | | |
2254 | | size_t scan_codes( |
2255 | | size_t list_size, |
2256 | | const uint8_t* codes, |
2257 | | const idx_t* ids, |
2258 | | float* simi, |
2259 | | idx_t* idxi, |
2260 | 16 | size_t k) const override { |
2261 | 16 | size_t nup = 0; |
2262 | 416 | for (size_t j = 0; j < list_size; j++, codes += code_size) { |
2263 | 400 | if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) { |
2264 | 0 | continue; |
2265 | 0 | } |
2266 | | |
2267 | 400 | float dis = dc.query_to_code(codes); |
2268 | | |
2269 | 400 | if (dis < simi[0]) { |
2270 | 110 | int64_t id = store_pairs ? (list_no << 32 | j) : ids[j]; |
2271 | 110 | maxheap_replace_top(k, simi, idxi, dis, id); |
2272 | 110 | nup++; |
2273 | 110 | } |
2274 | 400 | } |
2275 | 16 | return nup; |
2276 | 16 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Line | Count | Source | 2260 | 8 | size_t k) const override { | 2261 | 8 | size_t nup = 0; | 2262 | 208 | for (size_t j = 0; j < list_size; j++, codes += code_size) { | 2263 | 200 | if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) { | 2264 | 0 | continue; | 2265 | 0 | } | 2266 | | | 2267 | 200 | float dis = dc.query_to_code(codes); | 2268 | | | 2269 | 200 | if (dis < simi[0]) { | 2270 | 46 | int64_t id = store_pairs ? (list_no << 32 | j) : ids[j]; | 2271 | 46 | maxheap_replace_top(k, simi, idxi, dis, id); | 2272 | 46 | nup++; | 2273 | 46 | } | 2274 | 200 | } | 2275 | 8 | return nup; | 2276 | 8 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Line | Count | Source | 2260 | 8 | size_t k) const override { | 2261 | 8 | size_t nup = 0; | 2262 | 208 | for (size_t j = 0; j < list_size; j++, codes += code_size) { | 2263 | 200 | if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) { | 2264 | 0 | continue; | 2265 | 0 | } | 2266 | | | 2267 | 200 | float dis = dc.query_to_code(codes); | 2268 | | | 2269 | 200 | if (dis < simi[0]) { | 2270 | 64 | int64_t id = store_pairs ? (list_no << 32 | j) : ids[j]; | 2271 | 64 | maxheap_replace_top(k, simi, idxi, dis, id); | 2272 | 64 | nup++; | 2273 | 64 | } | 2274 | 200 | } | 2275 | 8 | return nup; | 2276 | 8 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm |
2277 | | |
2278 | | void scan_codes_range( |
2279 | | size_t list_size, |
2280 | | const uint8_t* codes, |
2281 | | const idx_t* ids, |
2282 | | float radius, |
2283 | 4 | RangeQueryResult& res) const override { |
2284 | 114 | for (size_t j = 0; j < list_size; j++, codes += code_size) { |
2285 | 110 | if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) { |
2286 | 0 | continue; |
2287 | 0 | } |
2288 | | |
2289 | 110 | float dis = dc.query_to_code(codes); |
2290 | 110 | if (dis < radius) { |
2291 | 108 | int64_t id = store_pairs ? (list_no << 32 | j) : ids[j]; |
2292 | 108 | res.add(dis, id); |
2293 | 108 | } |
2294 | 110 | } |
2295 | 4 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Line | Count | Source | 2283 | 2 | RangeQueryResult& res) const override { | 2284 | 32 | for (size_t j = 0; j < list_size; j++, codes += code_size) { | 2285 | 30 | if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) { | 2286 | 0 | continue; | 2287 | 0 | } | 2288 | | | 2289 | 30 | float dis = dc.query_to_code(codes); | 2290 | 30 | if (dis < radius) { | 2291 | 30 | int64_t id = store_pairs ? (list_no << 32 | j) : ids[j]; | 2292 | 30 | res.add(dis, id); | 2293 | 30 | } | 2294 | 30 | } | 2295 | 2 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Line | Count | Source | 2283 | 2 | RangeQueryResult& res) const override { | 2284 | 82 | for (size_t j = 0; j < list_size; j++, codes += code_size) { | 2285 | 80 | if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) { | 2286 | 0 | continue; | 2287 | 0 | } | 2288 | | | 2289 | 80 | float dis = dc.query_to_code(codes); | 2290 | 80 | if (dis < radius) { | 2291 | 78 | int64_t id = store_pairs ? (list_no << 32 | j) : ids[j]; | 2292 | 78 | res.add(dis, id); | 2293 | 78 | } | 2294 | 80 | } | 2295 | 2 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE |
2296 | | }; |
2297 | | |
2298 | | template <class DCClass, int use_sel> |
2299 | | InvertedListScanner* sel3_InvertedListScanner( |
2300 | | const ScalarQuantizer* sq, |
2301 | | const Index* quantizer, |
2302 | | bool store_pairs, |
2303 | | const IDSelector* sel, |
2304 | 8 | bool r) { |
2305 | 8 | if (DCClass::Sim::metric_type == METRIC_L2) { |
2306 | 8 | return new IVFSQScannerL2<DCClass, use_sel>( |
2307 | 8 | sq->d, |
2308 | 8 | sq->trained, |
2309 | 8 | sq->code_size, |
2310 | 8 | quantizer, |
2311 | 8 | store_pairs, |
2312 | 8 | sel, |
2313 | 8 | r); |
2314 | 8 | } else if (DCClass::Sim::metric_type == METRIC_INNER_PRODUCT) { |
2315 | 0 | return new IVFSQScannerIP<DCClass, use_sel>( |
2316 | 0 | sq->d, sq->trained, sq->code_size, store_pairs, sel, r); |
2317 | 0 | } else { |
2318 | 0 | FAISS_THROW_MSG("unsupported metric type"); |
2319 | 0 | } |
2320 | 8 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2304 | 2 | bool r) { | 2305 | 2 | if (DCClass::Sim::metric_type == METRIC_L2) { | 2306 | 2 | return new IVFSQScannerL2<DCClass, use_sel>( | 2307 | 2 | sq->d, | 2308 | 2 | sq->trained, | 2309 | 2 | sq->code_size, | 2310 | 2 | quantizer, | 2311 | 2 | store_pairs, | 2312 | 2 | sel, | 2313 | 2 | r); | 2314 | 2 | } else if (DCClass::Sim::metric_type == METRIC_INNER_PRODUCT) { | 2315 | 0 | return new IVFSQScannerIP<DCClass, use_sel>( | 2316 | 0 | sq->d, sq->trained, sq->code_size, store_pairs, sel, r); | 2317 | 0 | } else { | 2318 | 0 | FAISS_THROW_MSG("unsupported metric type"); | 2319 | 0 | } | 2320 | 2 | } |
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2304 | 2 | bool r) { | 2305 | 2 | if (DCClass::Sim::metric_type == METRIC_L2) { | 2306 | 2 | return new IVFSQScannerL2<DCClass, use_sel>( | 2307 | 2 | sq->d, | 2308 | 2 | sq->trained, | 2309 | 2 | sq->code_size, | 2310 | 2 | quantizer, | 2311 | 2 | store_pairs, | 2312 | 2 | sel, | 2313 | 2 | r); | 2314 | 2 | } else if (DCClass::Sim::metric_type == METRIC_INNER_PRODUCT) { | 2315 | 0 | return new IVFSQScannerIP<DCClass, use_sel>( | 2316 | 0 | sq->d, sq->trained, sq->code_size, store_pairs, sel, r); | 2317 | 0 | } else { | 2318 | 0 | FAISS_THROW_MSG("unsupported metric type"); | 2319 | 0 | } | 2320 | 2 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2304 | 2 | bool r) { | 2305 | 2 | if (DCClass::Sim::metric_type == METRIC_L2) { | 2306 | 2 | return new IVFSQScannerL2<DCClass, use_sel>( | 2307 | 2 | sq->d, | 2308 | 2 | sq->trained, | 2309 | 2 | sq->code_size, | 2310 | 2 | quantizer, | 2311 | 2 | store_pairs, | 2312 | 2 | sel, | 2313 | 2 | r); | 2314 | 2 | } else if (DCClass::Sim::metric_type == METRIC_INNER_PRODUCT) { | 2315 | 0 | return new IVFSQScannerIP<DCClass, use_sel>( | 2316 | 0 | sq->d, sq->trained, sq->code_size, store_pairs, sel, r); | 2317 | 0 | } else { | 2318 | 0 | FAISS_THROW_MSG("unsupported metric type"); | 2319 | 0 | } | 2320 | 2 | } |
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2304 | 2 | bool r) { | 2305 | 2 | if (DCClass::Sim::metric_type == METRIC_L2) { | 2306 | 2 | return new IVFSQScannerL2<DCClass, use_sel>( | 2307 | 2 | sq->d, | 2308 | 2 | sq->trained, | 2309 | 2 | sq->code_size, | 2310 | 2 | quantizer, | 2311 | 2 | store_pairs, | 2312 | 2 | sel, | 2313 | 2 | r); | 2314 | 2 | } else if (DCClass::Sim::metric_type == METRIC_INNER_PRODUCT) { | 2315 | 0 | return new IVFSQScannerIP<DCClass, use_sel>( | 2316 | 0 | sq->d, sq->trained, sq->code_size, store_pairs, sel, r); | 2317 | 0 | } else { | 2318 | 0 | FAISS_THROW_MSG("unsupported metric type"); | 2319 | 0 | } | 2320 | 2 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb |
2321 | | |
2322 | | template <class DCClass> |
2323 | | InvertedListScanner* sel2_InvertedListScanner( |
2324 | | const ScalarQuantizer* sq, |
2325 | | const Index* quantizer, |
2326 | | bool store_pairs, |
2327 | | const IDSelector* sel, |
2328 | 8 | bool r) { |
2329 | 8 | if (sel) { |
2330 | 4 | if (store_pairs) { |
2331 | 0 | return sel3_InvertedListScanner<DCClass, 2>( |
2332 | 0 | sq, quantizer, store_pairs, sel, r); |
2333 | 4 | } else { |
2334 | 4 | return sel3_InvertedListScanner<DCClass, 1>( |
2335 | 4 | sq, quantizer, store_pairs, sel, r); |
2336 | 4 | } |
2337 | 4 | } else { |
2338 | 4 | return sel3_InvertedListScanner<DCClass, 0>( |
2339 | 4 | sq, quantizer, store_pairs, sel, r); |
2340 | 4 | } |
2341 | 8 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2328 | 4 | bool r) { | 2329 | 4 | if (sel) { | 2330 | 2 | if (store_pairs) { | 2331 | 0 | return sel3_InvertedListScanner<DCClass, 2>( | 2332 | 0 | sq, quantizer, store_pairs, sel, r); | 2333 | 2 | } else { | 2334 | 2 | return sel3_InvertedListScanner<DCClass, 1>( | 2335 | 2 | sq, quantizer, store_pairs, sel, r); | 2336 | 2 | } | 2337 | 2 | } else { | 2338 | 2 | return sel3_InvertedListScanner<DCClass, 0>( | 2339 | 2 | sq, quantizer, store_pairs, sel, r); | 2340 | 2 | } | 2341 | 4 | } |
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2328 | 4 | bool r) { | 2329 | 4 | if (sel) { | 2330 | 2 | if (store_pairs) { | 2331 | 0 | return sel3_InvertedListScanner<DCClass, 2>( | 2332 | 0 | sq, quantizer, store_pairs, sel, r); | 2333 | 2 | } else { | 2334 | 2 | return sel3_InvertedListScanner<DCClass, 1>( | 2335 | 2 | sq, quantizer, store_pairs, sel, r); | 2336 | 2 | } | 2337 | 2 | } else { | 2338 | 2 | return sel3_InvertedListScanner<DCClass, 0>( | 2339 | 2 | sq, quantizer, store_pairs, sel, r); | 2340 | 2 | } | 2341 | 4 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb |
2342 | | |
2343 | | template <class Similarity, class Codec, QuantizerTemplateScaling SCALING> |
2344 | | InvertedListScanner* sel12_InvertedListScanner( |
2345 | | const ScalarQuantizer* sq, |
2346 | | const Index* quantizer, |
2347 | | bool store_pairs, |
2348 | | const IDSelector* sel, |
2349 | 8 | bool r) { |
2350 | 8 | constexpr int SIMDWIDTH = Similarity::simdwidth; |
2351 | 8 | using QuantizerClass = QuantizerTemplate<Codec, SCALING, SIMDWIDTH>; |
2352 | 8 | using DCClass = DCTemplate<QuantizerClass, Similarity, SIMDWIDTH>; |
2353 | 8 | return sel2_InvertedListScanner<DCClass>( |
2354 | 8 | sq, quantizer, store_pairs, sel, r); |
2355 | 8 | } Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityL2ILi1EEENS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityL2ILi1EEENS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityL2ILi1EEENS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2349 | 4 | bool r) { | 2350 | 4 | constexpr int SIMDWIDTH = Similarity::simdwidth; | 2351 | 4 | using QuantizerClass = QuantizerTemplate<Codec, SCALING, SIMDWIDTH>; | 2352 | 4 | using DCClass = DCTemplate<QuantizerClass, Similarity, SIMDWIDTH>; | 2353 | 4 | return sel2_InvertedListScanner<DCClass>( | 2354 | 4 | sq, quantizer, store_pairs, sel, r); | 2355 | 4 | } |
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityL2ILi1EEENS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2349 | 4 | bool r) { | 2350 | 4 | constexpr int SIMDWIDTH = Similarity::simdwidth; | 2351 | 4 | using QuantizerClass = QuantizerTemplate<Codec, SCALING, SIMDWIDTH>; | 2352 | 4 | using DCClass = DCTemplate<QuantizerClass, Similarity, SIMDWIDTH>; | 2353 | 4 | return sel2_InvertedListScanner<DCClass>( | 2354 | 4 | sq, quantizer, store_pairs, sel, r); | 2355 | 4 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityL2ILi1EEENS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityIPILi1EEENS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityIPILi1EEENS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityIPILi1EEENS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityIPILi1EEENS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityIPILi1EEENS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb |
2356 | | |
2357 | | template <class Similarity> |
2358 | | InvertedListScanner* sel1_InvertedListScanner( |
2359 | | const ScalarQuantizer* sq, |
2360 | | const Index* quantizer, |
2361 | | bool store_pairs, |
2362 | | const IDSelector* sel, |
2363 | 8 | bool r) { |
2364 | 8 | constexpr int SIMDWIDTH = Similarity::simdwidth; |
2365 | 8 | switch (sq->qtype) { |
2366 | 0 | case ScalarQuantizer::QT_8bit_uniform: |
2367 | 0 | return sel12_InvertedListScanner< |
2368 | 0 | Similarity, |
2369 | 0 | Codec8bit, |
2370 | 0 | QuantizerTemplateScaling::UNIFORM>( |
2371 | 0 | sq, quantizer, store_pairs, sel, r); |
2372 | 0 | case ScalarQuantizer::QT_4bit_uniform: |
2373 | 0 | return sel12_InvertedListScanner< |
2374 | 0 | Similarity, |
2375 | 0 | Codec4bit, |
2376 | 0 | QuantizerTemplateScaling::UNIFORM>( |
2377 | 0 | sq, quantizer, store_pairs, sel, r); |
2378 | 4 | case ScalarQuantizer::QT_8bit: |
2379 | 4 | return sel12_InvertedListScanner< |
2380 | 4 | Similarity, |
2381 | 4 | Codec8bit, |
2382 | 4 | QuantizerTemplateScaling::NON_UNIFORM>( |
2383 | 4 | sq, quantizer, store_pairs, sel, r); |
2384 | 4 | case ScalarQuantizer::QT_4bit: |
2385 | 4 | return sel12_InvertedListScanner< |
2386 | 4 | Similarity, |
2387 | 4 | Codec4bit, |
2388 | 4 | QuantizerTemplateScaling::NON_UNIFORM>( |
2389 | 4 | sq, quantizer, store_pairs, sel, r); |
2390 | 0 | case ScalarQuantizer::QT_6bit: |
2391 | 0 | return sel12_InvertedListScanner< |
2392 | 0 | Similarity, |
2393 | 0 | Codec6bit, |
2394 | 0 | QuantizerTemplateScaling::NON_UNIFORM>( |
2395 | 0 | sq, quantizer, store_pairs, sel, r); |
2396 | 0 | case ScalarQuantizer::QT_fp16: |
2397 | 0 | return sel2_InvertedListScanner<DCTemplate< |
2398 | 0 | QuantizerFP16<SIMDWIDTH>, |
2399 | 0 | Similarity, |
2400 | 0 | SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r); |
2401 | 0 | case ScalarQuantizer::QT_bf16: |
2402 | 0 | return sel2_InvertedListScanner<DCTemplate< |
2403 | 0 | QuantizerBF16<SIMDWIDTH>, |
2404 | 0 | Similarity, |
2405 | 0 | SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r); |
2406 | 0 | case ScalarQuantizer::QT_8bit_direct: |
2407 | | #if defined(__AVX512F__) |
2408 | | if (sq->d % 32 == 0) { |
2409 | | return sel2_InvertedListScanner< |
2410 | | DistanceComputerByte<Similarity, SIMDWIDTH>>( |
2411 | | sq, quantizer, store_pairs, sel, r); |
2412 | | } else |
2413 | | #elif defined(__AVX2__) |
2414 | 0 | if (sq->d % 16 == 0) { |
2415 | 0 | return sel2_InvertedListScanner< |
2416 | 0 | DistanceComputerByte<Similarity, SIMDWIDTH>>( |
2417 | 0 | sq, quantizer, store_pairs, sel, r); |
2418 | 0 | } else |
2419 | 0 | #endif |
2420 | 0 | { |
2421 | 0 | return sel2_InvertedListScanner<DCTemplate< |
2422 | 0 | Quantizer8bitDirect<SIMDWIDTH>, |
2423 | 0 | Similarity, |
2424 | 0 | SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r); |
2425 | 0 | } |
2426 | 0 | case ScalarQuantizer::QT_8bit_direct_signed: |
2427 | 0 | return sel2_InvertedListScanner<DCTemplate< |
2428 | 0 | Quantizer8bitDirectSigned<SIMDWIDTH>, |
2429 | 0 | Similarity, |
2430 | 0 | SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r); |
2431 | 8 | } |
2432 | | |
2433 | 0 | FAISS_THROW_MSG("unknown qtype"); |
2434 | 0 | return nullptr; |
2435 | 0 | } ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel1_InvertedListScannerINS0_12SimilarityL2ILi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb Line | Count | Source | 2363 | 8 | bool r) { | 2364 | 8 | constexpr int SIMDWIDTH = Similarity::simdwidth; | 2365 | 8 | switch (sq->qtype) { | 2366 | 0 | case ScalarQuantizer::QT_8bit_uniform: | 2367 | 0 | return sel12_InvertedListScanner< | 2368 | 0 | Similarity, | 2369 | 0 | Codec8bit, | 2370 | 0 | QuantizerTemplateScaling::UNIFORM>( | 2371 | 0 | sq, quantizer, store_pairs, sel, r); | 2372 | 0 | case ScalarQuantizer::QT_4bit_uniform: | 2373 | 0 | return sel12_InvertedListScanner< | 2374 | 0 | Similarity, | 2375 | 0 | Codec4bit, | 2376 | 0 | QuantizerTemplateScaling::UNIFORM>( | 2377 | 0 | sq, quantizer, store_pairs, sel, r); | 2378 | 4 | case ScalarQuantizer::QT_8bit: | 2379 | 4 | return sel12_InvertedListScanner< | 2380 | 4 | Similarity, | 2381 | 4 | Codec8bit, | 2382 | 4 | QuantizerTemplateScaling::NON_UNIFORM>( | 2383 | 4 | sq, quantizer, store_pairs, sel, r); | 2384 | 4 | case ScalarQuantizer::QT_4bit: | 2385 | 4 | return sel12_InvertedListScanner< | 2386 | 4 | Similarity, | 2387 | 4 | Codec4bit, | 2388 | 4 | QuantizerTemplateScaling::NON_UNIFORM>( | 2389 | 4 | sq, quantizer, store_pairs, sel, r); | 2390 | 0 | case ScalarQuantizer::QT_6bit: | 2391 | 0 | return sel12_InvertedListScanner< | 2392 | 0 | Similarity, | 2393 | 0 | Codec6bit, | 2394 | 0 | QuantizerTemplateScaling::NON_UNIFORM>( | 2395 | 0 | sq, quantizer, store_pairs, sel, r); | 2396 | 0 | case ScalarQuantizer::QT_fp16: | 2397 | 0 | return sel2_InvertedListScanner<DCTemplate< | 2398 | 0 | QuantizerFP16<SIMDWIDTH>, | 2399 | 0 | Similarity, | 2400 | 0 | SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r); | 2401 | 0 | case ScalarQuantizer::QT_bf16: | 2402 | 0 | return sel2_InvertedListScanner<DCTemplate< | 2403 | 0 | QuantizerBF16<SIMDWIDTH>, | 2404 | 0 | Similarity, | 2405 | 0 | SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r); | 2406 | 0 | case ScalarQuantizer::QT_8bit_direct: | 2407 | | #if defined(__AVX512F__) | 2408 | | if (sq->d % 32 == 0) { | 2409 | | return sel2_InvertedListScanner< | 2410 | | DistanceComputerByte<Similarity, SIMDWIDTH>>( | 2411 | | sq, quantizer, store_pairs, sel, r); | 2412 | | } else | 2413 | | #elif defined(__AVX2__) | 2414 | 0 | if (sq->d % 16 == 0) { | 2415 | 0 | return sel2_InvertedListScanner< | 2416 | 0 | DistanceComputerByte<Similarity, SIMDWIDTH>>( | 2417 | 0 | sq, quantizer, store_pairs, sel, r); | 2418 | 0 | } else | 2419 | 0 | #endif | 2420 | 0 | { | 2421 | 0 | return sel2_InvertedListScanner<DCTemplate< | 2422 | 0 | Quantizer8bitDirect<SIMDWIDTH>, | 2423 | 0 | Similarity, | 2424 | 0 | SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r); | 2425 | 0 | } | 2426 | 0 | case ScalarQuantizer::QT_8bit_direct_signed: | 2427 | 0 | return sel2_InvertedListScanner<DCTemplate< | 2428 | 0 | Quantizer8bitDirectSigned<SIMDWIDTH>, | 2429 | 0 | Similarity, | 2430 | 0 | SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r); | 2431 | 8 | } | 2432 | | | 2433 | 0 | FAISS_THROW_MSG("unknown qtype"); | 2434 | 0 | return nullptr; | 2435 | 0 | } |
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel1_InvertedListScannerINS0_12SimilarityIPILi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb |
2436 | | |
2437 | | template <int SIMDWIDTH> |
2438 | | InvertedListScanner* sel0_InvertedListScanner( |
2439 | | MetricType mt, |
2440 | | const ScalarQuantizer* sq, |
2441 | | const Index* quantizer, |
2442 | | bool store_pairs, |
2443 | | const IDSelector* sel, |
2444 | 8 | bool by_residual) { |
2445 | 8 | if (mt == METRIC_L2) { |
2446 | 8 | return sel1_InvertedListScanner<SimilarityL2<SIMDWIDTH>>( |
2447 | 8 | sq, quantizer, store_pairs, sel, by_residual); |
2448 | 8 | } else if (mt == METRIC_INNER_PRODUCT) { |
2449 | 0 | return sel1_InvertedListScanner<SimilarityIP<SIMDWIDTH>>( |
2450 | 0 | sq, quantizer, store_pairs, sel, by_residual); |
2451 | 0 | } else { |
2452 | 0 | FAISS_THROW_MSG("unsupported metric type"); |
2453 | 0 | } |
2454 | 8 | } |
2455 | | |
2456 | | } // anonymous namespace |
2457 | | |
2458 | | InvertedListScanner* ScalarQuantizer::select_InvertedListScanner( |
2459 | | MetricType mt, |
2460 | | const Index* quantizer, |
2461 | | bool store_pairs, |
2462 | | const IDSelector* sel, |
2463 | 8 | bool by_residual) const { |
2464 | | #if defined(USE_AVX512_F16C) |
2465 | | if (d % 16 == 0) { |
2466 | | return sel0_InvertedListScanner<16>( |
2467 | | mt, this, quantizer, store_pairs, sel, by_residual); |
2468 | | } else |
2469 | | #elif defined(USE_F16C) || defined(USE_NEON) |
2470 | | if (d % 8 == 0) { |
2471 | | return sel0_InvertedListScanner<8>( |
2472 | | mt, this, quantizer, store_pairs, sel, by_residual); |
2473 | | } else |
2474 | | #endif |
2475 | 8 | { |
2476 | 8 | return sel0_InvertedListScanner<1>( |
2477 | 8 | mt, this, quantizer, store_pairs, sel, by_residual); |
2478 | 8 | } |
2479 | 8 | } |
2480 | | |
2481 | | } // namespace faiss |