~/talk

Building High Performance Search Indexes in Rust with SIMD

Talkat RustWeek 2025 · 2025-05-13..05-17· [rust, machine-learning]
slides:none on file

Claims state-of-the-art sparse and dense retrieval using Rust and careful SIMD work, combining IVF + product quantization to avoid exhaustive scans and hitting 40–50 ms on hundreds of millions of vectors. AVX2 auto-vectorization plus alignment and u8→u64 XOR/popcount give a 6x speedup; hand-tuned AVX‑512 intrinsics and register shuffles yield about a 3x improvement over naive PQ. Tooling includes Cargo Flamegraph, Rayon for parallelism, zero-copy blobs, per-CPU builds (Ice Lake vs Cascade Lake) and a note that AVX‑512 is still unstable in Rust while AMX support is desired.

AI-written summary · about

  1. 0:00Introduction
  2. 0:20About Jack
  3. 1:26What is a vector embedding
  4. 2:06What is a vector database
  5. 2:48Whats required for a vector database
  6. 3:58Existing Search Engines
  7. 4:31Choosing a Language
  8. 4:52Why Rust
  9. 5:33What my team does
  10. 5:48Dense vs sparse indexes
  11. 7:25How to optimize indexes
  12. 8:08Early termination
  13. 9:10Ignoring posting list
  14. 9:35Results
  15. 9:52CargoFlame Graph
  16. 10:44Release Mode
  17. 11:12SIMD is not a silver bullet
  18. 11:28Dense ANN algorithms
  19. 11:42Compression
  20. 13:16Query Execution
  21. 14:56Tools
  22. 16:33Interactive Code
  23. 17:09AVX2 Alignment
  24. 17:25Convert Slices to U64
  25. 17:48IVF
  26. 19:19Product Quantization
  27. 22:12Intrinsics
  28. 23:10Using Intrinsics
  29. 25:28How much does this help
  30. 26:04Is it maintainable
  31. 26:43Zerocopy data format
  32. 27:17Engineering team
  33. 27:53Rust struggles
  34. 28:17Rust is safe
  35. 28:41Memory utilization
  36. 29:13Questions
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.