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

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