Repository navigation
Point release on top of 4.0.0 that makes the CUDA 13 build real and modernizes wheel packaging.
Changes since 4.0.0
- CUDA 13 build fixes (#142): CUDA 13 ships a newer Thrust and cuFFT that removed several identifiers the code still used (
thrust::unary_function; the cuFFT result codesCUFFT_PARSE_ERROR,CUFFT_LICENSE_ERROR,CUFFT_INCOMPLETE_PARAMETER_LIST). These are now handled, so the source compiles cleanly under CUDA 13.0. (In 4.0.0 the CUDA-13 wheel needed an out-of-tree patch; in 4.0.1 it builds from the tagged source.) - Modernized Docker wheel packaging (#141): a single parameterized
packaging/Dockerfile(CUDA/FAISS/arch via build-args) replacing the nine stale per-CUDA Dockerfiles, and a CUDA 11.8→13.0 build matrix.
Everything from 4.0.0 carries over: modern datacenter GPU support (A100/H100/H200/B200), the ~6x MNIST speedup from removing per-iteration synchronization, and the streamlined build (no gflags/gtest/CPU-BLAS/CLI/ZMQ).
Prebuilt wheels
Attached below, one per CUDA runtime. They are py3-none-any — a single wheel works on any Python 3.x (the library is loaded via ctypes). Install the one matching your CUDA; you also need a GPU FAISS available at runtime (conda install -c conda-forge libfaiss).
| wheel | CUDA | GPUs |
|---|---|---|
tsnecuda-4.0.1+cu118 |
11.8 | A100, H100/H200 |
tsnecuda-4.0.1+cu124 |
12.4 | A100, H100/H200 |
tsnecuda-4.0.1+cu126 |
12.6 | A100, H100/H200 |
tsnecuda-4.0.1+cu129 |
12.9 | A100, H100/H200, B200 |
tsnecuda-4.0.1+cu130 |
13.0 | A100, H100/H200, B200 |
pip install https://github.com/CannyLab/tsne-cuda/releases/download/4.0.1/tsnecuda-4.0.1+cu129-py3-none-any.whlAlso served from the stable index: pip install tsnecuda --find-links https://tsnecuda.isx.ai/tsnecuda_stable.
Each wheel was validated by running MNIST (60k, 1000 iters) end-to-end on an A100 (kNN digit-label accuracy ~0.955).