Skip to main content

faiss-cuda

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

pip install faiss-cuda

Built against CUDA 12.8. Your only host prerequisite is an NVIDIA driver (R525+). No system CUDA toolkit required — the CUDA runtime libraries install from PyPI (nvidia-cuda-runtime-cu12, nvidia-cublas-cu12) and are preloaded by a small loader shipped in the wheel.

What's in the wheel

  • faiss Python package, GPU-enabled, built against FAISS upstream v1.14.3.
  • CUDA arch 70;80;86;89;90 — V100, A100, A10/A30/RTX-30, RTX-40, H100/H200. T4 (sm_75), B100/B200 (sm_100) and RTX-50 (sm_120) return in the next .post release once PyPI grants a larger file limit (pypi/support#11444).
  • Works on GPU-less machines too: the wheel contains the full CPU implementation of FAISS and loading the CUDA runtime does not require a driver.
  • manylinux_2_28_x86_64, CPython 3.11–3.14. libstdc++ is statically linked so no GCC 11+ runtime is required on the host — works on RHEL 8 / glibc 2.28 out of the box.
  • CUDA libs (libcudart, libcublas, libcublasLt) are excluded from the wheel — they install transitively from PyPI as nvidia-* packages, which keeps the wheel small and avoids ABI clashes if you also have PyTorch installed.

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

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

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)

CUDA 13

A CUDA 13 variant (packages/cuda13, arch 75;80;86;89;90;100;103;120) is maintained in this repo but not published to PyPI — CUDA 12.8 already covers V100 through Blackwell B200/RTX-50, and CUDA 13 dropped Volta/V100 support entirely. Build it from source if you need sm_103 (GB300) or a pure cu13 dependency stack.

Deprecated: faiss-cuda-cu128

Before 1.14.3, faiss-cuda shipped CUDA 13 and faiss-cuda-cu128 carried the CUDA 12.8 build. faiss-cuda is now the CUDA 12.8 build; faiss-cuda-cu128 remains on PyPI only as an empty shim depending on faiss-cuda>=1.14.3 so old pins keep resolving.

Build from source

Wheels are built natively on TGI RAILS (no container). The build script uses the cluster CUDA toolkit and system gcc 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: CUDA 12.8 toolkit (13.x for the cuda13 variant), RHEL 8 / glibc 2.28 baseline, gcc 11+, uv, openblas-devel.

scripts/submit_matrix.sh --account <PROJECT>   # all (variant, python) pairs
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: scripts/submit_matrix.sh --account <PROJECT>.
  2. Build the cu128 shim: python -m build --wheel packages/cu128-shim -o wheelhouse/.
  3. Tag and create a GitHub release, attaching every .whl from wheelhouse/:
    gh release create v1.14.3 wheelhouse/*.whl --notes "..."
    
  4. 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> on a fresh upstream bump, then <faiss_version>.postN for packaging-only changes (e.g. FAISS 1.14.3 → 1.14.3, next packaging fix → 1.14.3.post0). 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.

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.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (106.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

faiss_cuda-1.14.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (106.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

faiss_cuda-1.14.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (106.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

faiss_cuda-1.14.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (106.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file faiss_cuda-1.14.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: faiss_cuda-1.14.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 106.5 MB
  • Tags: CPython 3.14, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ 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.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e0e1bc92d8e1abf95abf14ab9699e664d289aa5155a3564223dbdfdcf1052401
MD5 ce5c2c040e0ec573fa6e7d8af0e2331e
BLAKE2b-256 323a49f1c7d85223c1d72955ffabed93c48ad75fa3b78b2de7af8cbe4095a54b

See more details on using hashes here.

File details

Details for the file faiss_cuda-1.14.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: faiss_cuda-1.14.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 106.5 MB
  • Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ 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.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 46b62de62e5b66fd528f1c87ca6f079bb5442f85645d49c05d158b777a016697
MD5 8ecc6b2bcc837a410338d52f208eb338
BLAKE2b-256 3bd3690fab2ebb739d61749b3c245621b969af656e21fb3adc97064be885ecd1

See more details on using hashes here.

File details

Details for the file faiss_cuda-1.14.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: faiss_cuda-1.14.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 106.5 MB
  • Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ 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.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 db5a321c590be2bd5286dd8dc3d68f5279ebd5f23f0d35f4d57fbf904d87fb5c
MD5 d19a7c45cdcb7dacb5d36b8f8f5cad81
BLAKE2b-256 06a003a0067f6678684e673be4285c3ebc837afcdd97fada1ccb3d6cbeacc7e8

See more details on using hashes here.

File details

Details for the file faiss_cuda-1.14.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: faiss_cuda-1.14.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 106.5 MB
  • Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ 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.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 45fe3674a56a6e1514fa19c720a249b94ba6dc4572321b8f48332e5ce771ddd9
MD5 5001e144055431677a8b3adaa0d58a01
BLAKE2b-256 ac99577f1157a14e28073e45922274c14a397cb15ca07c564285d24e0c76f1c7

See more details on using hashes here.

Release history Release notifications | RSS feed

1.14.3.post0

4 files

This release

1.14.3 This release

4 files

1.14.1.post4

4 files

1.14.1.post3

4 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page