Skip to content

Latest commit

 

History

History
50 lines (36 loc) · 2.56 KB

File metadata and controls

50 lines (36 loc) · 2.56 KB

DEG Examples

This directory contains standalone Python projects demonstrating various features and benchmark workflows of the Dynamic Exploration Graph (DEG).

Each directory inside examples/ is a self-contained uv project with its own pyproject.toml.

Note

All runtime and throughput results published in our papers were evaluated using the native C++ implementation (cpp/). Due to language bindings and runtime dynamics, Python executions may have a small overhead.

Prerequisites & UV Setup

We use uv for fast Python environment and dependency management.

1. Install uv

  • macOS / Linux:
    curl -LsSf https://astral.sh/uv/install.sh | sh
  • Windows (PowerShell):
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • Via Pip:
    pip install uv

2. Environment Setup

Navigating into any example directory and running uv sync or uv run will automatically set up a isolated Python virtual environment, build the local deglib C++ bindings, and install all required dependencies:

cd examples/knng
uv sync

# If C++ code or pybind11 bindings were modified, force rebuilding the extension:
uv sync --reinstall-package deglib

Projects

  • graph_2d: interactive 2D explorer — builds a DEG on a synthetic cloud, traces a traversal on screen and compares the result against the Delaunay graph, RNG and MRNG.
  • knng: k-Nearest Neighbor Graph (k-NNG) construction benchmark using EVP quantization and FP16 reranking (SISAP 2026 Challenge Task 1).
  • mips: Maximum Inner Product Search (MIPS) benchmark using $(d+1)$-dimensional $L_2$ transformation, FLAS pre-sorting, and SIMD FP16 inner products (SISAP 2026 Challenge Task 2).
  • static_data: DEG paper search benchmark reproduction (Recall vs. QPS) on static datasets (sift1m, deep1m, glove-100, audio, enron).
  • vibe: Vector Index Benchmark for Embeddings (VIBE) ANNS top-100 benchmark on modern embedding datasets (agnews-mxbai, arxiv-nomic, landmark-dino, msmarco-qwen, gooaq-distilroberta, laion-clip, imagenet-align, imagenet-clip, yandex, yahoo-minilm).
  • dynamic_data: DEG dynamic data streaming benchmark (AddHalf, AddHalfRemoveAndAddOneAtATime, AddAllRemoveHalf).
  • sliding_window: DEG sliding window benchmark reproducing the dynamic continuous update experiment against DEG from the CleANN paper.