From b7c7bc38b4878983599bb963364127beed65555c Mon Sep 17 00:00:00 2001 From: Mengdi Lin Date: Wed, 25 Sep 2024 11:46:15 -0700 Subject: [PATCH] huh Differential Revision: D63404074 --- faiss/impl/ScalarQuantizer.cpp | 60 ++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/faiss/impl/ScalarQuantizer.cpp b/faiss/impl/ScalarQuantizer.cpp index bf991ed58f..91e00ee032 100644 --- a/faiss/impl/ScalarQuantizer.cpp +++ b/faiss/impl/ScalarQuantizer.cpp @@ -487,7 +487,7 @@ struct QuantizerTemplate } }; -#elif defined(__AVX2__) +#else template struct QuantizerTemplate @@ -510,34 +510,36 @@ struct QuantizerTemplate #endif -#ifdef __aarch64__ - - template - struct QuantizerTemplate - : QuantizerTemplate< - Codec, - QuantizerTemplateScaling::NON_UNIFORM, - 1> { - QuantizerTemplate(size_t d, const std::vector& trained) - : QuantizerTemplate< - Codec, - QuantizerTemplateScaling::NON_UNIFORM, - 1>(d, trained) {} - - FAISS_ALWAYS_INLINE simd8float32 - reconstruct_8_components(const uint8_t* code, int i) const { - float32x4x2_t xi = Codec::decode_8_components(code, i).data; - - float32x4x2_t vmin_8 = vld1q_f32_x2(this->vmin + i); - float32x4x2_t vdiff_8 = vld1q_f32_x2(this->vdiff + i); - - return simd8float32( - {vfmaq_f32(vmin_8.val[0], xi.val[0], vdiff_8.val[0]), - vfmaq_f32(vmin_8.val[1], xi.val[1], vdiff_8.val[1])}); - } - }; - -#endif + // #ifdef __aarch64__ + + // template + // struct QuantizerTemplate + // : QuantizerTemplate< + // Codec, + // QuantizerTemplateScaling::NON_UNIFORM, + // 1> { + // QuantizerTemplate(size_t d, const std::vector& trained) + // : QuantizerTemplate< + // Codec, + // QuantizerTemplateScaling::NON_UNIFORM, + // 1>(d, trained) {} + + // FAISS_ALWAYS_INLINE simd8float32 + // reconstruct_8_components(const uint8_t* code, int i) const { + // simd8float32 xi = Codec::decode_8_components(code, i); + + // float32x4x2_t vmin_8 = vld1q_f32_x2(this->vmin + i); + // float32x4x2_t vdiff_8 = vld1q_f32_x2(this->vdiff + i); + // // why is this flipped? + // return simd8float32( + // {vfmaq_f32(vmin_8.val[0], xi.val[0], vdiff_8.val[0]), + // vfmaq_f32(vmin_8.val[1], xi.val[1], + // vdiff_8.val[1])}); + // } + // }; + + // #endif /******************************************************************* * FP16 quantizer