Skip to main content

GPU-enabled FAISS wheels (CUDA 12.8, Taylor Geospatial).

Project description

faiss-cuda

GPU-enabled FAISS wheels published to PyPI, maintained by Taylor Geospatial.

pip install faiss-cuda          # CUDA 13.x (default — driver R580+)
pip install faiss-cuda-cu128    # CUDA 12.8 (driver R570+)

No system CUDA toolkit required. The CUDA runtime libraries are pulled from PyPI at install time (nvidia-cuda-runtime-cu13, nvidia-cublas-cu13 for the default package; *-cu12 for faiss-cuda-cu128) and preloaded by a small loader shipped in the wheel. Your only host prerequisite is a recent NVIDIA driver.

What's in the wheel

  • faiss Python package, GPU-enabled, built against FAISS upstream v1.14.1.
  • Default (faiss-cuda, CUDA 13) built for arch 75;80;86;89;90;100 — T4 (incl. Colab Free), A100, A10/A30, RTX-40, H100/H200, Blackwell B100/B200.
  • faiss-cuda-cu128 (CUDA 12.8) built for 75;80;86;89;90 (Blackwell needs cu13).
  • manylinux2014_x86_64, CPython 3.12 and 3.13.
  • CUDA libs (libcudart, libcublas, libcublasLt) are excluded from the wheel — they install transitively from PyPI as nvidia-*-cu12 packages, which keeps the wheel small and avoids ABI clashes if you also have PyTorch installed.

Verify

import faiss, numpy as np
res = faiss.StandardGpuResources()
xb = np.random.random((10000, 64)).astype("float32")
xq = np.random.random((5,     64)).astype("float32")
index = faiss.GpuIndexFlatL2(res, 64)
index.add(xb)
D, I = index.search(xq, 4)
print("GPU OK", I.shape)

Variants

Package CUDA Driver sm archs
faiss-cuda 13.0 R580+ 75, 80, 86, 89, 90, 100
faiss-cuda-cu128 12.8 R570+ 75, 80, 86, 89, 90

To pin the runtime CUDA libs to the same minor as the build (reproducibility):

pip install 'faiss-cuda[fix-cuda]'

Build from source

Wheels are built natively on TGI RAILS (no container). The build script provisions CUDA toolkit via pip (nvidia-cuda-nvcc-cuXX), uses system gcc + openblas via modules, and runs auditwheel repair to certify the result as manylinux_2_28_x86_64. ccache persists builds across SLURM jobs.

Prereqs on the build host: NVIDIA GPU node with CUDA driver, RHEL 8 / glibc 2.28 baseline, gcc 11+, uv, openblas-devel.

sbatch --account=<PROJECT> scripts/rails.sbatch     # builds both cuda12 and cuda13
ls wheelhouse/

Or directly on a node:

scripts/rails_build.sh cuda12         # one package
scripts/rails_build.sh                # both

Releasing

  1. Build wheels on RAILS: sbatch scripts/rails.sbatch (~30 min cold, ~5 min cached).
  2. Tag and create a GitHub release, attaching every .whl from wheelhouse/:
    gh release create v1.14.1.post0 wheelhouse/*.whl --notes "..."
    
  3. The release.yml workflow fires on release: published, downloads the wheel assets, and runs uv publish with OIDC trusted publishing into the pypi environment. Both faiss-cuda and faiss-cuda-cu128 need trusted-publisher configs on PyPI pointing at release.yml + environment pypi.

Versioning

Package version follows upstream FAISS: <faiss_version>.postN (e.g. FAISS 1.14.1 → 1.14.1.post0). Bump postN on packaging-only changes. The faiss/ git submodule is the source of truth for the upstream version.

License

MIT. See LICENSE.

The wheels redistribute compiled binaries built from FAISS (Meta, MIT-licensed); the LICENSE file includes Meta's copyright and license text alongside ours.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

faiss_cuda_cu128-1.14.1.post1-cp314-cp314-manylinux_2_34_x86_64.whl (99.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

faiss_cuda_cu128-1.14.1.post1-cp313-cp313-manylinux_2_34_x86_64.whl (99.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

faiss_cuda_cu128-1.14.1.post1-cp312-cp312-manylinux_2_34_x86_64.whl (99.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

faiss_cuda_cu128-1.14.1.post1-cp311-cp311-manylinux_2_34_x86_64.whl (99.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

File details

Details for the file faiss_cuda_cu128-1.14.1.post1-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: faiss_cuda_cu128-1.14.1.post1-cp314-cp314-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 99.8 MB
  • Tags: CPython 3.14, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for faiss_cuda_cu128-1.14.1.post1-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 065c7268ab0a8c111a05ca39e1e8699d9f9dec1f5c2ac97fab96630b64dfc71f
MD5 692c285d642e2488a27a17c62695583e
BLAKE2b-256 7f821959fb1fa29c05919207128d534fa8dc024d0a8a602d61dc6679bd1fee27

See more details on using hashes here.

File details

Details for the file faiss_cuda_cu128-1.14.1.post1-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: faiss_cuda_cu128-1.14.1.post1-cp313-cp313-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 99.8 MB
  • Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for faiss_cuda_cu128-1.14.1.post1-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 54020a462d6daf33c8f7fa7f48e3838a4d38213a31b229057859517e627c4095
MD5 e12b45642cd2f76decb56de5a66b36da
BLAKE2b-256 aafbcb3ddc48a34900a19768cc36804aedea349d4807226fee33aee8dbe5c65b

See more details on using hashes here.

File details

Details for the file faiss_cuda_cu128-1.14.1.post1-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: faiss_cuda_cu128-1.14.1.post1-cp312-cp312-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 99.8 MB
  • Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for faiss_cuda_cu128-1.14.1.post1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a535f971df9bd2ecf0f2d9bb3d3229d5a86cda5abed0d8738873e2ca7e4ac96b
MD5 8a22de61fd6a057e54407e7d0a0e3d89
BLAKE2b-256 fa895749839df08a6a919d5f74d85d9ce69635a7043c9835bdafbc22670213e8

See more details on using hashes here.

File details

Details for the file faiss_cuda_cu128-1.14.1.post1-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: faiss_cuda_cu128-1.14.1.post1-cp311-cp311-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 99.7 MB
  • Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for faiss_cuda_cu128-1.14.1.post1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b2f0ea8cd2ffb4a4b46c7879d079bcb84220088e396a5917e539ec7bc9177068
MD5 a1738464056073ef549e2b5b732aa369
BLAKE2b-256 17fed207fc18f69bb310c69e8e75de2361b63c173f04c6b2c457c219d998e845

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page