Getting Started
This guide walks you through installing the XVector suite and running your first vector search.
The suite ships two libraries that install together:
- XVector — the host-side vector search library (IVF-Flat, IVF-RaBitQ, HNSW-Flat (experimental), KNN exact).
- XArith — the device-side compute library XVector builds on, providing VPE vector primitives for custom MU kernels. Install and use it directly only if you are writing your own device kernels.
Note: XArith is planned to be integrated into the MU library (
mu_lib) in a future release.
Prerequisites
- Ubuntu 24.04
- XCENA SDK — provides the PXL runtime for device offloading, plus the MU library and MU LLVM toolchain
- CMake 3.11 or higher (to build the examples or your own device kernels)
Installation
From Release Tarball (Recommended)
Download the release tarball and run the included setup script. It installs both libraries:
wget https://github.com/xcena-dev/public-xvector-suite/releases/download/release-1787633643/xvector-suite-0.2.2-dist.tar.gz
tar xzf xvector-suite-0.2.2-dist.tar.gz
cd xvector-suite-0.2.2
./setup.sh
Manual Installation
The tarball contains individual .deb packages that can be installed directly:
sudo dpkg -i libxvector-dev_0.2.2_amd64.deb
sudo dpkg -i libxarith-dev_0.2.2_amd64.deb
libxvector-dev installs:
| Path | Contents |
|---|---|
/opt/xvector/include/xvector/ | Public C headers |
/opt/xvector/include/xvector_cpp/ | C++ convenience wrapper headers |
/opt/xvector/lib/ | libxvector.a static library and CMake config |
/opt/xvector/bin/ | Device kernel binary (xvector_kernel.mubin) |
libxarith-dev installs:
| Path | Contents |
|---|---|
/opt/xarith/include/xarith/ | XArith C++ headers |
/opt/xarith/lib/ | libxarith.a static library and CMake config |
Next Steps
- XFaiss — Faiss drop-in replacement with MU acceleration
- Examples — KNN exact search with the XVector C API, and XArith device-kernel examples
- XVector API — XVector C API reference
- XArith API — XArith C++ API reference