Skip to content

DiskANN v0.61.0

Latest

Choose a tag to compare

@hildebrandmw hildebrandmw released this 26 Oct 15:36
· 11 commits to main since this release
8376a57

DiskANN v0.61.0

Highlights

  • Quantization: Added 3-bit spherical quantization with AVX2 acceleration, faster
    spherical encoding, and NEON float32 MinMax kernels.
  • In-memory indexing (experimental): Added product quantization and 1-8-bit scalar
    quantization, unified quantized representations, and AArch64 prefetching.
  • Multi-vector search: Added i8 x i8 and MinMax8 x MinMax4 MaxSim kernels.
  • Fixes: Preserve virtual start-point out-edges when writing disk indexes, correctly
    round-trip scalar quantization configurations without standard deviation, and support
    zero-column mutable matrix iterators.

Breaking changes and upgrading

Changes are concentrated in quantization APIs and experimental/tooling crates.

  • PQ training (#1467) - Training now returns BasicTable. SimplePivots was removed.
    Replace flatten() with view_pivots().as_slice() and use pivots_for(chunk) for
    per-chunk access.
  • PQ distance tables (#1458) - Change ProcessInto bounds to ProcessInto<f32> and calls
    from process_into::<Metric>(...) to process_into::<Metric, f32>(...).
  • MaxSim kernels (#1429) - Generic kernel/erasure code now requires T: MaxSimElement and
    score buffers of T::Score (f32 for floats, i32 for i8). Update build_max_sim
    error handling from NotSupported to BuildMaxSimError.
  • diskann-inmem (#1485) - Replace repr::Spherical with repr::Quantized. Wrap the
    quantizer in repr::quantized::spherical::Spherical::new(...) when configuring it.
    Configuration and Rerank types now live under repr::quantized.
  • diskann-benchmark-runner (#1475) - input::Registered and public Registry::input were
    removed. Use the concrete Input implementation's tag() and example() methods instead.

All Changes

New Contributors

Full Changelog: v0.60.0...v0.61.0