Status: Early, minimal open-source drop intended to showcase the core code path. Interfaces and filenames may change.
This repository publishes the essential pieces of our GPU–SSD search pipeline. The focus is on clarity of the core execution and I/O path.
.
├─ FlashANNS/ # Search execution module (core query processing)
├─ IO_interface/ # CPU-side I/O submission that bypasses the filesystem
└─ SSD_write/ # Writing data to SSD under filesystem-bypass mode
- Implements the search runtime and the main query execution loop.
- Designed to interleave compute and storage access to keep the GPU busy.
- Serves as the reference path for integrating the I/O interfaces below.
-
Provides an interface to submit read requests without going through the OS filesystem stack.
-
Intended to reduce kernel overheads, avoid page cache side-effects, and enable finer-grained control of request batching and completion signaling.
-
Exposes a thin, explicit API for:
- Posting I/O requests (block-oriented),
- Polling/completing requests,
- Passing completion signals to the GPU-side runtime.
- Demonstrates how to write data to SSD with the same bypass model.
- Includes minimal examples for safe, aligned writes and buffer management.
- Useful for building/loading indices or preparing on-disk data layouts consistent with the search path.
⚠️ Safety note: Filesystem-bypass I/O can overwrite blocks and is not protected by the OS page cache or usual file semantics. Use on test devices/data. Double-check device paths, alignment, and offsets before running any write examples.