Description
Compiling knowhere on riscv64 (SG2044 server) fails with:
ScalarQuantizerCodec.h:744:36: error: 'simdwidth' is not a member of 'faiss::SimilarityL2_rvv<0>'
744 | constexpr int SIMDWIDTH = Sim::simdwidth;
Root Cause
Commit 55c18bb ("Add fallback and uts for sq4u #1421") added a QT_4bit_uniform case in select_distance_computer_rvv that falls back to the base select_distance_computer. The base function requires Sim::simdwidth, but SimilarityL2_rvv<0> and SimilarityIP_rvv<0> only define metric_type, missing the simdwidth member.
Steps to Reproduce
Build knowhere on riscv64, or cross-compile with riscv64-linux-gnu-g++:
riscv64-linux-gnu-g++-12 -std=c++17 -c ScalarQuantizerDC_rvv.cpp
Expected Behavior
Compilation succeeds on riscv64.
Description
Compiling knowhere on riscv64 (SG2044 server) fails with:
Root Cause
Commit 55c18bb ("Add fallback and uts for sq4u #1421") added a
QT_4bit_uniformcase inselect_distance_computer_rvvthat falls back to the baseselect_distance_computer. The base function requiresSim::simdwidth, butSimilarityL2_rvv<0>andSimilarityIP_rvv<0>only definemetric_type, missing thesimdwidthmember.Steps to Reproduce
Build knowhere on riscv64, or cross-compile with
riscv64-linux-gnu-g++:Expected Behavior
Compilation succeeds on riscv64.