Skip to content

research(nightly): symphonyqg — co-designed 1-bit graph quantization (SIGMOD 2025)#428

Draft
ruvnet wants to merge 1 commit intomainfrom
research/nightly/2026-05-07-symphonyqg
Draft

research(nightly): symphonyqg — co-designed 1-bit graph quantization (SIGMOD 2025)#428
ruvnet wants to merge 1 commit intomainfrom
research/nightly/2026-05-07-symphonyqg

Conversation

@ruvnet
Copy link
Copy Markdown
Owner

@ruvnet ruvnet commented May 7, 2026

SymphonyQG: Co-Designed Quantization + Graph for In-Register ANN Search

Nightly research sprint 2026-05-07. Implements SymphonyQG (SIGMOD 2025, arXiv:2411.12229) as a new standalone workspace crate ruvector-symphonyqg.

Core innovation

Vertex out-degree padded to BATCH_SIZE=32 so every XNOR-popcount pass fills a complete SIMD register with no wasted lanes. 1-bit RaBitQ codes stored inline with adjacency list entries, eliminating the per-neighbour random cache miss.

Real benchmark numbers (x86_64 Linux, dim=128, n=5K, ef=100)

Variant Recall@10 QPS Speedup
GraphExact 97.2% 2,971 1.00×
SymphonyQG 97.6% 6,258 2.11×

Speedup grows to 3.61–4.14× at n=50K.

Files

  • crates/ruvector-symphonyqg/ — 7/7 tests pass, cargo build --release green
  • docs/research/nightly/2026-05-07-symphonyqg/README.md — full SOTA survey + results
  • docs/adr/ADR-191-symphonyqg-inline-fastscan-graph.md — decision record

Gist: https://gist.github.com/ruvnet/1788e3da38e5565353cc17fae9fe8a1a


Nightly research agent · 2026-05-07

…+quantization (SIGMOD 2025)

Implements SymphonyQG (arXiv:2411.12229) as a new standalone workspace crate.
Core innovation: vertex out-degree padded to BATCH_SIZE=32 so every XNOR-popcount
pass fills a complete SIMD register; 1-bit RaBitQ codes stored inline with
adjacency list entries, eliminating the per-neighbour random cache miss.

Deliverables:
- crates/ruvector-symphonyqg/ — working Rust PoC with 7/7 tests green
  - FlatExactIndex (oracle), GraphExactIndex (HNSW-style), SymphonyIndex
  - batch_hamming_dist() auto-vectorised by LLVM (VPXOR + VPOPCNTQ)
  - cargo build --release && cargo test both pass
- docs/research/nightly/2026-05-07-symphonyqg/README.md — full research doc
- docs/adr/ADR-191-symphonyqg-inline-fastscan-graph.md — ADR

Real benchmark numbers (x86_64 Linux, dim=128, n=5K, ef=100):
  GraphExact  97.2% recall  2,971 QPS
  SymphonyQG  97.6% recall  6,258 QPS  (+2.11×)
Speedup grows to 3.61-4.14× at n=50K.

https://claude.ai/code/session_01MCchHSG8iD1qRXEK1Gq3kc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants