🎇 Plasma: A Layout-Aware Benchmark Reveals Memory Layout Matters for Graph-based ANNS on GPU
VecDB@VLDB2026
TL;DR Decoupling graph topology from memory layout on GPU. Vertex reordering alone yields up to 80% QPS gain at equal recall.
We propose Plasma, a Platform for Layout-Aware Search and Memory Arrangement: a unified evaluation framework for graph-based Approximate Nearest Neighbor Search (ANNS) on GPU that isolates the effects of graph index topology and memory layout. Graph-based ANNS is essential in modern AI applications such as RAG, and GPU utilization is attracting attention for datasets of millions or more vectors. Our framework extracts the topology of arbitrary graph-based indices and enables execution under a unified, GPU-optimized search algorithm, specifying the correspondence between vertex IDs and positions on memory to allow arbitrary vertex orderings. Through comprehensive experiments, we demonstrate that vertex reordering yields up to 80% (typically 10–30%) QPS improvement while preserving search accuracy.
GPUs have a hierarchical memory system: global memory (DRAM) provides large capacity but high latency, while L1/L2 caches and shared memory offer low latency with limited capacity. GPUs execute instructions in groups of 32 threads called warps. When threads in a warp access consecutive global-memory addresses, the hardware combines them into fewer transactions, a pattern known as coalesced access. Because graph traversal involves irregular access patterns, coalescing efficiency and cache utilization in global memory can dominate overall search throughput.
Plasma has three components. The graph adapter takes an index in any format (Faiss, DiskANN) and converts its topology into a common GPU format, so even a CPU-oriented index runs on GPU. The reordering module applies a permutation to vertex IDs. The unified traversal engine runs one beam-search kernel for every condition, so a performance difference reflects topology or layout, never the search implementation.
Vertex IDs index the underlying arrays directly, so reordering is what physically moves data: the dataset region stores vectors of elements each, the graph region neighbor lists of up to IDs. Giving co-accessed vertices consecutive IDs promotes coalesced access and cuts DRAM traffic. Plasma supports GOrder, RCM, Degree Sort, and Hub Sort as .
Other ANNS benchmarks compare libraries end to end, so a win can come from the graph, the search algorithm, or the implementation, and none of them can say which. Plasma fixes the kernel and varies only topology and layout, reads GPU hardware counters alongside Recall and QPS, and pins the whole CUDA stack in a pixi lockfile, so pixi install reproduces the environment exactly.
| ANN-Benchmarks | BigANN | VDBBench | VIBE | 🎇 Plasma | |
|---|---|---|---|---|---|
| Platform | CPU | CPU | CPU | CPU+GPU | GPU |
| Target | General | General | General | General | Graph index |
| Modern embeddings | — | partial | partial | ✅ | ✅ |
| HW profiling | — | — | — | — | ✅ |
| Memory-layout aware | — | — | — | — | ✅ |
| Reproducible env. | 🐳 docker | 🐳 docker | 🐳 docker | 📦 apptainer | 🪄 pixi |
The trade-off between Recall (accuracy) and QPS (queries per second). Upper-right is better. Pick a dataset and a reordering algorithm, or compare two datasets side by side.
QPS improvement over the un-reordered baseline, per reordering algorithm. Above the zero line means reordering paid off.
Benchmarking CAGRA, NSG, Vamana, and NN-Descent across 12 datasets on a single NVIDIA A100, all under the same kernel and their original vertex ordering, shows that topology differences are often minor. To the best of our knowledge, this is the first work to run CPU-oriented indices such as NSG, Vamana, and NN-Descent on a GPU, and NSG outperforms the GPU-optimized CAGRA by up to 1.2× on C4 5M. Differences are small on classical datasets such as SIFT and Deep, and more pronounced on modern high-dimensional ones such as Wikipedia 10M and BioASQ 10M.
Applying reordering to the same four indices yields up to 80% QPS improvement while preserving search accuracy, with typical gains of 10–30%. C4 5M improves by 60–80% for every index; BioASQ gains less than 10% except for NN-Descent. GOrder is consistently unstable, dropping sharply in the high-recall region, and no single reordering algorithm wins across the board, so the right choice depends on the workload.
Profiling with Nsight Compute at attributes the gain to bandwidth rather than caching. L1 hit rates sit near zero (0.007% to 0.025%) regardless of reordering, and L2 hit rates stay between 8% and 28% and move by less than one percentage point. DRAM bandwidth utilization, in contrast, changes substantially: for NSG on SIFT 1M it rises from 39.4% to 44.2% under Hub Sort, a 4.8 point gain that corresponds to roughly 15% more QPS. The correlation between bandwidth-utilization change and execution-time change is overall and for the search kernel alone.
The effect is architecture-dependent. On the A100 (HBM2e, 2,039 GB/s) improvements reach 80%, whereas on an RTX 6000 Ada (GDDR6, 960 GB/s) they stay below 15%, so reordering pays off most on high-bandwidth-memory GPUs.
@inproceedings{oguri2026plasma,
author = {Yutaro Oguri and
Mai Nishimura and
Yusuke Matsui},
title = {Plasma: A Layout-Aware Benchmark Reveals Memory Layout Matters
for Graph-based ANNS on GPU},
booktitle = {The 2nd Workshop on Vector Databases (VecDB) at
Very Large Data Bases (VLDB)},
year = {2026},
url = {https://vecdb-ws.github.io/vldb2026/}
}