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
faissPython package, GPU-enabled, built against FAISS upstream v1.14.1.- Default (
faiss-cuda, CUDA 13) built for arch75;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 for75;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 asnvidia-*-cu12packages, 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
- Build wheels on RAILS:
sbatch scripts/rails.sbatch(~30 min cold, ~5 min cached). - Tag and create a GitHub release, attaching every
.whlfromwheelhouse/:gh release create v1.14.1.post0 wheelhouse/*.whl --notes "..."
- The
release.ymlworkflow fires onrelease: published, downloads the wheel assets, and runsuv publishwith OIDC trusted publishing into thepypienvironment. Bothfaiss-cudaandfaiss-cuda-cu128need trusted-publisher configs on PyPI pointing atrelease.yml+ environmentpypi.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d87bc63f090ec277bec95860f0bd6d0dc67ebd29082c240ead4ab19545141a9b
|
|
| MD5 |
99f69451f741559188db6635447d1f9f
|
|
| BLAKE2b-256 |
ad19a898e5a280c4fbcc68ed6a04aa43a4d1d7d175010d70248d20de7adadbbd
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5902295fd999ee44bf1856e379fbb51a2216481ee318dfeef6bcecbfe1b8b09e
|
|
| MD5 |
80239c1ebd4f4a96436427a985900042
|
|
| BLAKE2b-256 |
223dfb3ae024bfa1667ed724eed4b66b57551c371dcd4b300da13da364fc764a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1589a399d224e2916a9217314c24911952b126d60c925b4647b7e3f3cca2186b
|
|
| MD5 |
a86f83ca1962898132ebfbffbc65882f
|
|
| BLAKE2b-256 |
b583f6a14d95a1733e698887a41f40cf5c03720c75dc474fef9f0cb7d7c7cdc4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9d885acfe2aa318b246af8f3732b86dad962fde3c89bcd4c66b7c818dd1dcf6
|
|
| MD5 |
43620829c441daea9af3ab56b2f66067
|
|
| BLAKE2b-256 |
acb7c253bebbcb8d9cb656b5a03da00ada6990593b60f3defe774e96c8d0fd3d
|