knowhere  by zilliztech

Vector search engine for Milvus

created 2 years ago
268 stars

Top 95.6% on SourcePulse

GitHubView on GitHub
Project Summary

Knowhere is a C++ vector search engine designed as the core component for Milvus, offering integrations with FAISS, HNSW, and DiskANN. It targets developers building large-scale similarity search systems who need a high-performance, embeddable vector index library.

How It Works

Knowhere leverages C++ for performance and provides a flexible architecture that can be compiled with various backends, including FAISS, HNSW, and DiskANN. It supports CPU and GPU (via cuVS) acceleration, as well as disk-based ANN indexing with DiskANN, allowing users to choose the optimal configuration for their hardware and performance requirements.

Quick Start & Requirements

  • Installation: Build from source using Conan.
  • Prerequisites: Linux (Ubuntu 20.04, CentOS verified) or macOS (x86_64, Apple Silicon). Requires build-essential, libopenblas-openmp-dev, libaio-dev, python3-dev, python3-pip, and conan==1.61.0. GPU builds require CUDA.
  • Setup: Building from source involves Conan package installation and compilation, with GPU and DiskANN support requiring specific Conan flags. Python wheel generation is also supported.
  • Docs: Milvus Main Project (Knowhere is built implicitly within Milvus).

Highlighted Details

  • Integrates multiple ANN libraries: FAISS, HNSW, DiskANN.
  • Supports CPU, GPU (cuVS), and DiskANN indexing.
  • Written in C++ for performance.
  • Includes unit tests for verification.

Maintenance & Community

Knowhere is a core component of the Milvus project. Contributions are managed via pull requests and pre-commit hooks for code quality.

Licensing & Compatibility

Apache License 2.0. Compatible with commercial and closed-source applications.

Limitations & Caveats

The README focuses on building from source and does not detail API usage or provide high-level documentation for direct integration outside of the Milvus ecosystem. Pre-commit hooks require clang-format and clang-tidy, which may need separate installation.

Health Check
Last commit

1 day ago

Responsiveness

Inactive

Pull Requests (30d)
26
Issues (30d)
15
Star History
11 stars in the last 30 days

Explore Similar Projects

Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Jason Knight Jason Knight(Director AI Compilers at NVIDIA; Cofounder of OctoML), and
3 more.

gpu.cpp by AnswerDotAI

0.1%
4k
C++ library for portable GPU computation using WebGPU
created 1 year ago
updated 1 month ago
Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Nat Friedman Nat Friedman(Former CEO of GitHub), and
41 more.

llama.cpp by ggml-org

0.7%
85k
C/C++ library for local LLM inference
created 2 years ago
updated 1 day ago
Feedback? Help us improve.