I created PDX, a transposed data layout that accelerates vector similarity search, and ALP, the state-of-the-art in lossless floating-point data compression.
PDX: A Data Layout for Vector Similarity Search
PDX is a transposed data layout for vectors that store the dimensions of different vectors together. In a nutshell, PDX is PAX for vector similarity search. You can read more about PDX in my blog-posts: Sub-millisecond similarity search on IVF indexes with PDX and What if we store vector embeddings vertically?
Bang for the Buck: Vector Search on Cloud CPUs
🎖️ Best paper award at DaMoN'25
Choosing the right CPU for vector search in the cloud can give you 3 times more performance. The latter is the case with AMD’s Zen4, which delivers nearly 3x the QPS over Intel’s Sapphire Rapids in IVF indexes. However, on HNSW indexes, the tables turn, and Intel comes out on top. In our publication, we delve into the reasons behind these performance differences and examine five microarchitectures under the microscope: Intel Sapphire Rapids, AMD Zen 4, AMD Zen 3, AWS Graviton 4, and AWS Graviton 3. Surprisingly, AWS Graviton 3 is the microarchitecture that almost always gives the best “bang for the buck”!
ALP: Adaptive Lossless floating-Point Compression
🎖️ Best artifact award at SIGMOD'24
ALP is an algorithm that compresses float
and double
data with an insane decompression speed (sub-cycle performance per tuple). ALP can compress better and faster than Chimp128, Patas, ELF, and even Zstd. ALP speed stems from its simple algorithm and its vectorized design (operates on 1024 tuples at a time). ALP is currently being used inside DuckDB, for which I contributed the implementation. Other systems that implement ALP are KuzuDB and SpiralDB, and many others are on their way to implementing ALP. There is also a YouTube video of me presenting the details of the algorithm.
Current Projects (looking for MSc. students!)
I am working on the PDX layout to turn it into a fully fledged library. We need to: (i) Support quantized vectors. (ii) Support predicated queries. (iii) Support HNSW indexes.
If you are an MSc. student in the EU looking for thesis projects and are interested in Vector Similarity Search, you can apply to CWI, Amsterdam, by writing to [email protected]. If accepted, you will be supervised by the one and only Peter Boncz.