mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-23 14:47:31 -04:00
This commit adds an optimised int8 vector distance implementation for aarch64. Additional platforms like, say, x64, will be added as a follow-up. The vector distance implementation outperforms Lucene's Pamana Vector implementation for binary comparisons by approx 5x (depending on the number of dimensions). It does so by means of compiler intrinsics built into a separate native library and link by Panama's FFI. Comparisons are performed on off-heap mmap'ed vector data. The implementation is currently only used during merging of scalar quantized segments, through a custom format ES814HnswScalarQuantizedVectorsFormat, but its usage will likely be expanded over time. Co-authored-by: Benjamin Trent <ben.w.trent@gmail.com> Co-authored-by: Lorenzo Dematté <lorenzo.dematte@elastic.co> Co-authored-by: Mark Vieira <portugee@gmail.com> Co-authored-by: Ryan Ernst <ryan@iernst.net>
11 lines
324 B
Docker
11 lines
324 B
Docker
FROM centos:7
|
|
ARG ZSTD_VERSION
|
|
|
|
RUN yum install -y git gcc gcc-c++ make
|
|
RUN git clone --depth 1 --branch v${ZSTD_VERSION} https://github.com/facebook/zstd.git
|
|
WORKDIR zstd
|
|
RUN make lib-release && strip --strip-unneeded lib/libzstd.so.${ZSTD_VERSION}
|
|
|
|
ENV ZSTD_VERSION=${ZSTD_VERSION}
|
|
|
|
CMD cat lib/libzstd.so.${ZSTD_VERSION}
|