Skip to main content

GPU-enabled FAISS wheels (CUDA 13, 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, nvidia-cublas for the default CUDA 13 package — NVIDIA dropped the -cuXX suffix at CUDA 13; *-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-1.14.1.post3-cp314-cp314-manylinux_2_34_x86_64.whl (95.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

faiss_cuda-1.14.1.post3-cp313-cp313-manylinux_2_34_x86_64.whl (95.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

faiss_cuda-1.14.1.post3-cp312-cp312-manylinux_2_34_x86_64.whl (95.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

faiss_cuda-1.14.1.post3-cp311-cp311-manylinux_2_34_x86_64.whl (95.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

File details

Details for the file faiss_cuda-1.14.1.post3-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: faiss_cuda-1.14.1.post3-cp314-cp314-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 95.4 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-1.14.1.post3-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d87bc63f090ec277bec95860f0bd6d0dc67ebd29082c240ead4ab19545141a9b
MD5 99f69451f741559188db6635447d1f9f
BLAKE2b-256 ad19a898e5a280c4fbcc68ed6a04aa43a4d1d7d175010d70248d20de7adadbbd

See more details on using hashes here.

File details

Details for the file faiss_cuda-1.14.1.post3-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: faiss_cuda-1.14.1.post3-cp313-cp313-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 95.4 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-1.14.1.post3-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5902295fd999ee44bf1856e379fbb51a2216481ee318dfeef6bcecbfe1b8b09e
MD5 80239c1ebd4f4a96436427a985900042
BLAKE2b-256 223dfb3ae024bfa1667ed724eed4b66b57551c371dcd4b300da13da364fc764a

See more details on using hashes here.

File details

Details for the file faiss_cuda-1.14.1.post3-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: faiss_cuda-1.14.1.post3-cp312-cp312-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 95.4 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-1.14.1.post3-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1589a399d224e2916a9217314c24911952b126d60c925b4647b7e3f3cca2186b
MD5 a86f83ca1962898132ebfbffbc65882f
BLAKE2b-256 b583f6a14d95a1733e698887a41f40cf5c03720c75dc474fef9f0cb7d7c7cdc4

See more details on using hashes here.

File details

Details for the file faiss_cuda-1.14.1.post3-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: faiss_cuda-1.14.1.post3-cp311-cp311-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 95.4 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-1.14.1.post3-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e9d885acfe2aa318b246af8f3732b86dad962fde3c89bcd4c66b7c818dd1dcf6
MD5 43620829c441daea9af3ab56b2f66067
BLAKE2b-256 acb7c253bebbcb8d9cb656b5a03da00ada6990593b60f3defe774e96c8d0fd3d

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