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, 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.post0-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.post0-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.post0-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.post0-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.post0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: faiss_cuda_cu128-1.14.1.post0-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.post0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c4e3195f267a209cf2a3d3dab884431ed4b413abf2e27b7ec61666d6eb36c321
MD5 0841623d37485c93e93bd8db0f660887
BLAKE2b-256 63089416ab93a5ac71d972498fbfe51dcd5fb8f931af0fddae369a5ffcdbad8b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: faiss_cuda_cu128-1.14.1.post0-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.post0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e3e0d6b61d24b042c63a186f8d2e1cc9ab599f404a6ba41c0264ff1f29904fdd
MD5 fd75adf347017eec196c18f3509e5fc2
BLAKE2b-256 eb9fa4fc8629cc3a4f802c2f00ae2aba08395d81ec344ded3943102f026a888b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: faiss_cuda_cu128-1.14.1.post0-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.post0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7c951bb6af3bf6e090a8f76843f22879201a7532e43a2e3e9ef8333ce66a5353
MD5 9c88a9406bab8b501ab36d2f0199f10b
BLAKE2b-256 b32a5bd6763908782483423f11b62d1a8f681c59bfdc46b3689788f1acc97740

See more details on using hashes here.

File details

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

File metadata

  • Download URL: faiss_cuda_cu128-1.14.1.post0-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.post0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a194ebd49f2dfa5dcf965e0e361590c3a116d29ad75bbd9bd9dd41e013dc815a
MD5 052a559e7e76ffe1cbe5d761e0c54b1c
BLAKE2b-256 11f5f5104a6ae022104208b98174ed273dc22d7ef53edbcf95a0522e06b22e35

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