Skip to content

MB-59670: GPU-Accelerated Vector Search#392

Open
capemox wants to merge 7 commits intobatcherfrom
master-gpu
Open

MB-59670: GPU-Accelerated Vector Search#392
capemox wants to merge 7 commits intobatcherfrom
master-gpu

Conversation

@capemox
Copy link
Copy Markdown
Member

@capemox capemox commented Apr 9, 2026

Added new GPU float32 vector index type which supports training and search on GPU indexes

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Introduces optional GPU acceleration for Faiss float32 vector indexes, enabling GPU-backed training/index build and GPU-accelerated unfiltered search while keeping CPU compatibility for filtered and advanced operations.

Changes:

  • Plumbs a new UseGPU field option through indexing, merging, and runtime index loading paths.
  • Adds a GPU-backed float32 Faiss index wrapper with asynchronous GPU cloning and batched GPU search.
  • Updates Faiss index training APIs to a trainAndAdd flow to support GPU sync behavior, and bumps bleve_index_api to a newer pseudo-version.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
section_faiss_vector_index.go Threads useGPU into index creation/merge and adjusts training/add ordering for GPU-backed IVF indexes.
faiss_vector_posting.go Passes useGPU into vector index cache load/create for runtime search.
faiss_vector_index.go Updates Faiss IVF/SQ interfaces from train to trainAndAdd with GPU-related semantics.
faiss_vector_index_gpu_float32.go Adds the GPU-backed float32 index wrapper (CPU+GPU, batched GPU search, CPU fallbacks).
faiss_vector_index_float32.go Implements trainAndAdd for the CPU float32 index.
faiss_vector_index_bivf.go Implements trainAndAdd for the binary IVF index.
faiss_vector_cache.go Extends cache load/create to optionally wrap loaded float32 indexes with the GPU wrapper.
go.mod Pins bleve_index_api to a newer pseudo-version via replace.
go.sum Updates module checksums for the bleve_index_api version change.
Comments suppressed due to low confidence (1)

go.mod:25

  • The module is still require-ing github.com/blevesearch/bleve_index_api v1.3.9 while a replace forces a newer pseudo-version. If the intent is to pin to that commit, prefer updating the require version directly and dropping the replace (unless you specifically need a local fork or a temporary override), since replace directives can make dependency management and downstream builds harder to reason about.
	github.com/spf13/pflag v1.0.9 // indirect
	golang.org/x/sys v0.40.0 // indirect
)

replace github.com/blevesearch/bleve_index_api => github.com/blevesearch/bleve_index_api v1.3.10-0.20260403181255-6dc4a7ba4807


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@CascadingRadium
Copy link
Copy Markdown
Member

hey @capemox, please resolve merge conflicts due to the fileCallback feature getting merged in. Also need to update the go.mod for pulling in go-faiss.

@CascadingRadium CascadingRadium moved this from Todo to In Progress in GPU-Accelerated Vector Search Apr 10, 2026
@abhinavdangeti
Copy link
Copy Markdown
Member

@capemox Let's merge this to create a separate commit after the upstream change has been merged.

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

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

4 participants