{"id":21522,"library":"libcuvs-cu12","title":"libcuvs-cu12","description":"cuVS C++ shared library for GPU-accelerated vector search (includes CAGRA, IVF-PQ, HNSW). Version 26.4.0. Released as part of RAPIDS monthly releases.","status":"active","version":"26.4.0","language":"python","source_language":"en","source_url":"https://github.com/rapidsai/cuvs","tags":["vector-search","gpu","cuda","rapids","cagra","hnsw","ann"],"install":[{"cmd":"pip install libcuvs-cu12","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Required for GPU operations and data transfer","package":"cupy-cuda12x","optional":false},{"reason":"CUDA runtime shared library","package":"nvidia-cuda-runtime-cu12","optional":false}],"imports":[{"note":"libcuvs-cu12 is a C++ backend; the Python API is in the `cuvs` package.","wrong":"import libcuvs_cu12","symbol":"cuvs","correct":"import cuvs"},{"note":"CAGRA index is accessed via the `cuvs` Python package.","wrong":"from libcuvs_cu12 import CagraIndex","symbol":"CagraIndex","correct":"from cuvs.neighbors import cagra"}],"quickstart":{"code":"import cupy as cp\nimport cuvs\nfrom cuvs.neighbors import cagra\n\nrs = cuvs.raft.RaftResourceManager()\ndata = cp.random.random((1000, 128))\nindex = cagra.build(rs, data)\nqueries = cp.random.random((10, 128))\ndistances, neighbors = cagra.search(index, queries, k=10)","lang":"python","description":"Build a CAGRA index and search using the `cuvs` Python package. libcuvs-cu12 is the C++ backend installed automatically."},"warnings":[{"fix":"Review HNSW build parameters; refer to migration guide.","message":"HNSW GPU hierarchy is now default as of v26.04.00. Existing HNSW parameters may need adjustment.","severity":"breaking","affected_versions":">=26.4.0"},{"fix":"Set CUDA dynamic linking if needed; see RAPIDS docs.","message":"Static linking of libcudart is now default (v26.04.00). May conflict with existing CUDA runtime libraries.","severity":"breaking","affected_versions":">=26.4.0"},{"fix":"Update enum usage to match new C API header.","message":"CAGRA C API enums changed to stable values (v25.12.00). Old enum values no longer work.","severity":"breaking","affected_versions":">=25.12.0,<26.0.0"},{"fix":"Use `close()` method instead of `destroyIndex()`.","message":"Java bindings: `destroyIndex()` replaced by `close()` (v25.10.00).","severity":"deprecated","affected_versions":">=25.10.0"},{"fix":"Install `cuvs` (pip install cuvs) which depends on libcuvs-cu12.","message":"libcuvs-cu12 is a C++ library; do not import directly in Python. Instead, use the `cuvs` Python package.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Install and import the `cuvs` package: pip install cuvs ; import cuvs","cause":"Importing the C++ backend directly instead of the Python wrapper.","error":"ModuleNotFoundError: No module named 'libcuvs_cu12'"},{"fix":"Reinstall libcuvs-cu12: pip install --upgrade libcuvs-cu12","cause":"Missing libcuvs-cu12 installation or broken environment.","error":"ImportError: libcuvs_c.so: cannot open shared object file"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}