项目作者: finalfusion

项目描述 :
Vector quantization
高级语言: Rust
项目地址: git://github.com/finalfusion/reductive.git
创建时间: 2019-09-04T09:48:00Z
项目社区:https://github.com/finalfusion/reductive

开源协议:Apache License 2.0

下载


Reductive

Training of optimized product quantizers

Training of optimized product quantizers requires a LAPACK implementation. For
this reason, training of the Opq and GaussianOpq quantizers is feature-gated
by the opq-train feature. This feature must be enabled if you want to use
Opq or GaussianOpq:

  1. [dependencies]
  2. reductive = { version = "0.7", features = ["opq-train"] }

This also requires that a crate that links a LAPACK library is added as a
dependency, e.g. accelerate-src, intel-mkl-src, openblas-src, or
netlib-src.

Running tests

Linux

You can run all tests on Linux, including tests for optimized product
quantizers, using the intel-mkl-test feature:

  1. $ cargo test --features intel-mkl-test

macOS

All tests can be run on macOS with the accelerate-test feature:

  1. $ cargo test --features accelerate-test

Multi-threaded OpenBLAS

reductive uses Rayon to parallelize quantizer training. However,
multi-threaded OpenBLAS is known to
conflict

with application threading. Is you use OpenBLAS, ensure that threading
is disabled, for instance by setting the number of threads to 1:

  1. $ export OPENBLAS_NUM_THREADS=1