Skip to content

Docs feature matrix#1995

Open
aamijar wants to merge 6 commits into
rapidsai:mainfrom
aamijar:docs-feature-matrix
Open

Docs feature matrix#1995
aamijar wants to merge 6 commits into
rapidsai:mainfrom
aamijar:docs-feature-matrix

Conversation

@aamijar
Copy link
Copy Markdown
Member

@aamijar aamijar commented Apr 6, 2026

This PR adds a page under getting started which shows a table of vector search indexes with supported language APIs and multi-gpu availability.

@aamijar aamijar requested a review from a team as a code owner April 6, 2026 23:55
@aamijar aamijar self-assigned this Apr 6, 2026
@aamijar aamijar added non-breaking Introduces a non-breaking change doc Improvements or additions to documentation labels Apr 6, 2026
@aamijar aamijar moved this to In Progress in Unstructured Data Processing Apr 6, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 11, 2026

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • Documentation
    • Added a new Vector Search Index Feature Matrix providing comprehensive documentation of language API support (C++, C, Python, Rust, Java, and Go) and multi-GPU execution capabilities.
    • Updated Getting Started guide with a link to the feature matrix, giving users a quick overview of supported indexes and their features before exploring detailed tuning guides.

Walkthrough

This PR adds a comprehensive feature matrix document that displays vector search index availability across six language APIs (C++, C, Python, Rust, Java, Go) and multi-GPU support status. The getting started guide is updated to reference this matrix and position it as the entry point for understanding index support before consulting detailed index guides.

Changes

Vector Search Index Feature Matrix

Layer / File(s) Summary
Feature Matrix Document
docs/source/feature_matrix.rst
New page presents title, a reStructuredText list-table enumerating eight index types (All-Neighbors, Brute-Force, CAGRA, HNSW, IVF-Flat, IVF-PQ, NN Descent, Vamana) with per-language API support indicators and multi-GPU column, plus footnote restricting multi-GPU to C++, C, and Python.
Getting Started Integration
docs/source/getting_started.rst
"Supported indexes" section adds a new link to the feature matrix, the supporting paragraph is rewritten to reference the feature matrix first for availability overview, then individual guides for details, and the hidden toctree is extended to include feature_matrix.rst.

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Docs feature matrix' directly and accurately summarizes the main change: adding documentation for a feature matrix showing vector search indexes.
Description check ✅ Passed The description is clearly related to the changeset, explaining the addition of a feature matrix page documenting vector search indexes with supported language APIs and multi-GPU availability.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/source/feature_matrix.rst`:
- Around line 4-83: Remove the incorrect checkmarks: clear the Brute-Force
checkmark under the Rust column and clear the IVF-Flat checkmark under the Java
column in the feature matrix table (rows labeled "Brute-Force" and "IVF-Flat").
Then add a clarifying sentence or row note near the table (e.g., immediately
before the table or replace the existing footnote) stating: "The Multi-GPU
column indicates whether the index algorithm (e.g., CAGRA, IVF-Flat, IVF-PQ)
supports multi-GPU execution; multi-GPU functionality is only accessible via the
C++, C, and Python APIs." Ensure the new note references "Multi-GPU" and the
index names so readers understand the distinction between algorithm capability
and API availability.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: d2583644-e283-449b-9820-b81edb330e39

📥 Commits

Reviewing files that changed from the base of the PR and between 90c18a8 and 075682a.

📒 Files selected for processing (2)
  • docs/source/feature_matrix.rst
  • docs/source/getting_started.rst

Comment on lines +4 to +83
The following table shows which vector search indexes are available in each language API and whether they support multi-GPU execution.

.. list-table::
:widths: 20 8 8 8 8 8 8 12
:header-rows: 1

* - Index
- C++
- C
- Python
- Rust
- Java
- Go
- Multi-GPU*
* - All-Neighbors
- ✅
- ✅
- ✅
-
-
-
- ✅
* - Brute-Force
- ✅
- ✅
- ✅
- ✅
- ✅
- ✅
-
* - CAGRA
- ✅
- ✅
- ✅
- ✅
- ✅
- ✅
- ✅
* - HNSW
- ✅
- ✅
- ✅
-
- ✅
-
-
* - IVF-Flat
- ✅
- ✅
- ✅
- ✅
-
- ✅
- ✅
* - IVF-PQ
- ✅
- ✅
- ✅
- ✅
- ✅
- ✅
- ✅
* - NN Descent
- ✅
- ✅
- ✅
-
-
-
-
* - Vamana
- ✅
- ✅
-
- ✅
-
-
-

\* Multi-GPU support is available in C++, C, and Python only.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify index availability across language APIs and multi-GPU support

echo "=== Checking C++ API index availability ==="
# Look for index implementations in C++ headers/source
fd -e hpp -e h -e cu -e cuh . cpp/include cpp/src | head -20

echo -e "\n=== Checking C API bindings ==="
# Look for C API wrapper files
fd -e h . cpp/include/cuvs/neighbors/

echo -e "\n=== Checking Python API bindings ==="
# Look for Python index modules
fd -e py -e pyx . python/cuvs/cuvs/neighbors/ | grep -E "(brute_force|cagra|hnsw|ivf|nn_descent|vamana)" | head -20

echo -e "\n=== Checking Rust API bindings ==="
# Look for Rust index modules
fd . rust/cuvs/src/ -e rs | xargs rg -l "pub.*Index|impl.*Index" 2>/dev/null | head -10

echo -e "\n=== Checking Java API bindings ==="
# Look for Java index classes
fd -e java . java/ 2>/dev/null | head -10

echo -e "\n=== Checking Go API bindings ==="
# Look for Go index packages
fd -e go . go/ 2>/dev/null | head -10

echo -e "\n=== Checking multi-GPU references ==="
# Search for multi-GPU support indicators
rg -i "multi.gpu|multigpu|multi_gpu" --type rst --type md docs/

Repository: rapidsai/cuvs

Length of output: 10259


🏁 Script executed:

#!/bin/bash
# Comprehensive verification of index support across all language APIs

echo "=== Rust: All index implementations ==="
find rust/cuvs/src -name "mod.rs" -o -name "index.rs" | xargs grep -l "pub" | sort

echo -e "\n=== Java: All index classes ==="
find java/cuvs-java/src -name "*Index*.java" | grep -v Benchmark | sort

echo -e "\n=== Go: All index packages ==="
find go -maxdepth 1 -type d | tail -n +2 | sort

echo -e "\n=== C++: Index headers in neighbors ==="
find cpp/include/cuvs/neighbors -name "*.hpp" | sort

echo -e "\n=== Python: All non-mg neighbors packages ==="
ls -d python/cuvs/cuvs/neighbors/*/  | grep -v mg | sort

echo -e "\n=== Python: All mg (multi-GPU) packages ==="
ls -d python/cuvs/cuvs/neighbors/mg/*/ 2>/dev/null | sort

Repository: rapidsai/cuvs

Length of output: 2902


Update the feature matrix to correct Rust and Java index availability and clarify Multi-GPU support limitation.

The table contains two inaccuracies:

  1. Rust does not have a Brute-Force implementation—this checkmark should be blank
  2. Java does not have an IVF-Flat implementation—this checkmark should be blank

Additionally, the table's Multi-GPU column creates potential confusion. Readers may interpret checkmarks for CAGRA, IVF-Flat, and IVF-PQ in the Rust, Java, and Go columns combined with checkmarks in the Multi-GPU column as indicating multi-GPU support is available through those language APIs. However, the footnote states multi-GPU is only accessible via C++, C, and Python.

Recommend: Add a row note or introductory sentence clarifying that the Multi-GPU column indicates algorithm capability only, not language API availability. For example: "The Multi-GPU column indicates whether the index algorithm supports multi-GPU execution, which is accessible only through C++, C, and Python APIs."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/source/feature_matrix.rst` around lines 4 - 83, Remove the incorrect
checkmarks: clear the Brute-Force checkmark under the Rust column and clear the
IVF-Flat checkmark under the Java column in the feature matrix table (rows
labeled "Brute-Force" and "IVF-Flat"). Then add a clarifying sentence or row
note near the table (e.g., immediately before the table or replace the existing
footnote) stating: "The Multi-GPU column indicates whether the index algorithm
(e.g., CAGRA, IVF-Flat, IVF-PQ) supports multi-GPU execution; multi-GPU
functionality is only accessible via the C++, C, and Python APIs." Ensure the
new note references "Multi-GPU" and the index names so readers understand the
distinction between algorithm capability and API availability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

doc Improvements or additions to documentation non-breaking Introduces a non-breaking change

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant