-
git checkout -B ann origin/main - Cherry-pick
624f998(vec0_distance_full shared distance dispatch) - Cherry-pick stdint.h fix for test header
- Pull NEON cosine optimization from ivf-yolo3 into shared code
- Currently only in ivf branch but is general-purpose (benefits all distance calcs)
- Lives in
distance_cosine_float()— ~57 lines of ARM NEON vectorized cosine
- Seed data pipeline (
seed/Makefile,seed/build_base_db.py) - Ground truth generator (
ground_truth.py) - Results schema (
schema.sql) - Benchmark runner with
INDEX_REGISTRYextension point (bench.py)- Baseline configs (float, int8-rescore, bit-rescore) implemented
- Index branches register their types via
INDEX_REGISTRYdict
- Makefile with baseline targets
- README
- Rebase
diskann-yolo2ontoann(1 commit: DiskANN implementation) - Rebase
ivf-yolo3ontoann(1 commit: IVF implementation) - Rebase
annoy-yolo2ontoann(2 commits: Annoy implementation + schema fix) - Verify each branch has only its index-specific commits remaining
- Force-push all 4 branches to origin
Each index branch should add to benchmarks-ann/ when rebased onto ann:
Add an INDEX_REGISTRY entry. Each entry provides:
defaults— default param valuescreate_table_sql(params)— CREATE VIRTUAL TABLE with INDEXED BY clauseinsert_sql(params)— custom insert SQL, or None for defaultpost_insert_hook(conn, params)— training/building step, returns timerun_query(conn, params, query, k)— custom query, or None for default MATCHdescribe(params)— one-line description for report output
Append index-specific config variables and targets. Example pattern:
DISKANN_CONFIGS = \
"diskann-R48-binary:type=diskann,R=48,L=128,quantizer=binary" \
...
ALL_CONFIGS += $(DISKANN_CONFIGS)
bench-diskann: seed
$(BENCH) --subset-size 10000 -k 10 -o runs/diskann $(BASELINES) $(DISKANN_CONFIGS)
...- Move useful results docs (RESULTS.md, etc.) into
benchmarks-ann/results/ - Delete redundant per-branch benchmark directories once consolidated infra is proven
- Reporting script (
report.py) — query results.db, produce markdown comparison tables - Profiling targets in Makefile (lift from ivf-yolo3's Instruments/perf wrappers)
- Pre-computed ground truth integration (use GT DB files instead of on-the-fly brute-force)