Skip to main content

cuQuantum Python

Documentation

Please visit the NVIDIA cuQuantum Python documentation.

For instructions on installing cuQuantum Python, refer to our getting started section

Building and installing cuQuantum Python from source

Requirements

The build-time dependencies of the cuQuantum Python package include:

  • CUDA Toolkit 12.x or 13.x
  • Python >=3.11, <3.15
  • Cython >=3.0.4,!=3.1.0,!=3.1.1 (>=3.1.3 for Python 3.14)
  • pip 21.3.1+
  • packaging
  • setuptools 77.0.3+
  • wheel 0.34.0+

Note: Starting with cuQuantum Python v25.06, cuQuantum C libraries including cuDensityMat, cuStateVec and cuTensorNet are no longer build-time dependencies. However, they are still required at runtime.

Except for CUDA and Python, the rest of the build-time dependencies are handled by the new PEP-517-based build system (see Step 7 below).

To compile and install cuQuantum Python from source, please follow the steps below:

  1. Clone the NVIDIA/cuQuantum repository: git clone https://github.com/NVIDIA/cuQuantum
  2. Set CUDA_PATH to point to your CUDA installation
  3. [optional] Make sure cuQuantum and cuTENSOR are visible in your LD_LIBRARY_PATH
  4. Switch to the directory containing the Python implementation: cd cuQuantum/python
  5. Build and install:
    • Run pip install . if you skip Step 3 above
    • Run pip install -v --no-deps --no-build-isolation . otherwise (advanced)

Notes:

  • For Step 5, if you are building from source for testing/developing purposes you'd likely want to insert a -e flag before the last period (so pip ... . becomes pip ... -e .):
    • -e: use the "editable" (in-place) mode
    • -v: enable more verbose output
    • --no-deps: avoid installing the run-time dependencies
    • --no-build-isolation: reuse the current Python environment instead of creating a new one for building the package (this avoids installing any build-time dependencies)
  • Please ensure that you use consistent binaries and packages for either CUDA 12 or 13. Mixing-and-matching will result in undefined behavior.

Running

Requirements

Runtime dependencies of the cuQuantum Python package include:

  • An NVIDIA GPU with compute capability 7.5+
  • Driver: Linux (525.60.13+ for CUDA 12, 580.65.06+ for CUDA 13)
  • CUDA Toolkit 12.x or 13.x
  • cuStateVec 1.15.0+
  • cuTensorNet 2.14.0+
  • cuDensityMat >=0.7.0, <0.8.0
  • cuPauliProp >=0.5.0, <0.6.0
  • cuStabilizer >=0.5.0, <0.6.0
  • Python >=3.11, <3.15
  • NumPy v1.21+
  • nvmath-python >=1.0.0, <2.0.0
  • cuda-pathfinder >=1.6.0, <2
  • cuda-bindings >=12.9.4, <13.0.0 for CUDA 12 or cuda-bindings >=13.0.3, <14.0.0
  • CuPy v13.0.0+ (see installation guide)
  • PyTorch v1.10+ (optional, see installation guide)
  • Qiskit v1.4.2+ (optional, see installation guide)
  • Cirq v0.6.0+ (optional, see installation guide)
  • mpi4py v3.1.0+ (optional, see installation guide)
  • cuSolverMp >=0.9.1, <0.10.0 (optional, see installation guide)
  • NCCL >=2.29, <3.0 (optional, see installation guide)

If you install everything from conda-forge, all the required dependencies are taken care for you (except for the driver).

If you install the pip wheels, CuPy, cuTENSOR and cuQuantum (but not CUDA Toolkit or the driver, please make sure the CUDA libraries are visible through your LD_LIBRARY_PATH) are installed for you.

If you build cuQuantum Python from source, please make sure that the paths to the CUDA, cuQuantum, and cuTENSOR libraries are added to your LD_LIBRARY_PATH environment variable, and that a compatible CuPy is installed.

Known issues:

  • If a system has multiple copies of cuTENSOR, one of which is installed in a default system path, the Python runtime could pick it up despite cuQuantum Python is linked to another copy installed elsewhere, potentially causing a version-mismatch error. The proper fix is to remove cuTENSOR from the system paths to ensure the visibility of the proper copy. DO NOT ATTEMPT to use LD_PRELOAD to overwrite it --- it could cause hard to debug behaviors!
  • Please ensure that you use consistent binaries and packages for either CUDA 12 or 13. Mixing-and-matching will result in undefined behavior.

Samples

Samples for demonstrating the usage of both low-level and high-level Python APIs are available in the samples directory. The low-level API samples are 1:1 translations of the corresponding samples written in C. The high-level API samples demonstrate pythonic usages of the cuTensorNet and cuDensityMat library in Python.

Testing

If pytest is installed, typing pytest tests at the command prompt in the Python source root directory will run all tests. Some tests would be skipped if cffi is not installed or if the environment variable CUDA_PATH is not set.

Citing cuQuantum

H. Bayraktar et al., "cuQuantum SDK: A High-Performance Library for Accelerating Quantum Science", 2023 IEEE International Conference on Quantum Computing and Engineering (QCE), Bellevue, WA, USA, 2023, pp. 1050-1061, doi: 10.1109/QCE57702.2023.00119

Metadata

Release files for cuquantum-python-cu13 26.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for cuquantum-python-cu13 26.9.0
File
cuquantum_python_cu13-26.9.0-cp314-cp314-manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
cuquantum_python_cu13-26.9.0-cp314-cp314-manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
cuquantum_python_cu13-26.9.0-cp313-cp313-manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
cuquantum_python_cu13-26.9.0-cp313-cp313-manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
cuquantum_python_cu13-26.9.0-cp312-cp312-manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
cuquantum_python_cu13-26.9.0-cp312-cp312-manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
cuquantum_python_cu13-26.9.0-cp311-cp311-manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
cuquantum_python_cu13-26.9.0-cp311-cp311-manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details

Total release size: 84.2 MB

Release files / cuquantum_python_cu13-26.9.0-cp314-cp314-manylinux2014_x86_64.whl

Download URL cuquantum_python_cu13-26.9.0-cp314-cp314-manylinux2014_x86_64.whl
Size 10.3 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c1cffc39ae90ea172f479bf897c9c637c36236297c04be377ddc2233089bc9c5
BLAKE2b-256 checksum
How to use checksums
4a52256c2ec5011b443eb6cf945a76a068c63ac50994487d5bdd697f0924701f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuquantum_python_cu13-26.9.0-cp314-cp314-manylinux2014_aarch64.whl

Download URL cuquantum_python_cu13-26.9.0-cp314-cp314-manylinux2014_aarch64.whl
Size 10.5 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
a9247ea002b132b3356627f624bad2e13a7f65d58a0bc3ad74a71b991db8fa9b
BLAKE2b-256 checksum
How to use checksums
940bac0f0df47a274481024e01a0580a9e412f76582d9110d2121b63bad47dea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuquantum_python_cu13-26.9.0-cp313-cp313-manylinux2014_x86_64.whl

Download URL cuquantum_python_cu13-26.9.0-cp313-cp313-manylinux2014_x86_64.whl
Size 10.5 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a17aae1b775aa99756c81348c76da0c772dd609e41ebcf116ae8933f906f6f47
BLAKE2b-256 checksum
How to use checksums
e06ce1cac940bee50f16c3d50d52af0417716fdc1d11a74e67b253fbf9283a55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuquantum_python_cu13-26.9.0-cp313-cp313-manylinux2014_aarch64.whl

Download URL cuquantum_python_cu13-26.9.0-cp313-cp313-manylinux2014_aarch64.whl
Size 10.6 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
c2a8b132ea268abf91620f4cf8325b9c52071fd01f2796464ff0759627cb44b0
BLAKE2b-256 checksum
How to use checksums
062dccfbaff9a68b55da114d038255a1c10caf3938cbce982af28d3f435a202a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuquantum_python_cu13-26.9.0-cp312-cp312-manylinux2014_x86_64.whl

Download URL cuquantum_python_cu13-26.9.0-cp312-cp312-manylinux2014_x86_64.whl
Size 10.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5189284f6c71b7d1227c1ebabe31cf987fb6bb8ce6440913d5b75875145c8205
BLAKE2b-256 checksum
How to use checksums
57502bdde4326b95ca57922c77bf0b7a8234909e1c4475c3bf2ad2ae77469e95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuquantum_python_cu13-26.9.0-cp312-cp312-manylinux2014_aarch64.whl

Download URL cuquantum_python_cu13-26.9.0-cp312-cp312-manylinux2014_aarch64.whl
Size 10.7 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
a0785e3f40fb4f960ad4054e7197e25d92504626aacf4eb913eef01bc4fd9219
BLAKE2b-256 checksum
How to use checksums
af08fc1e963b2634203b49caed2b78221ac4675ff4c4850ca43628efb7fa4fad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuquantum_python_cu13-26.9.0-cp311-cp311-manylinux2014_x86_64.whl

Download URL cuquantum_python_cu13-26.9.0-cp311-cp311-manylinux2014_x86_64.whl
Size 10.4 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
589a1a5d01ab5a9c1435404046745691ce93d61f324796130493a47f0c14a617
BLAKE2b-256 checksum
How to use checksums
ad0b40cfdbcc0dd0d46b4a7615f8262e5f8a8182d8c852f657490008c5794976
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / cuquantum_python_cu13-26.9.0-cp311-cp311-manylinux2014_aarch64.whl

Download URL cuquantum_python_cu13-26.9.0-cp311-cp311-manylinux2014_aarch64.whl
Size 10.7 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
0f94802c3b014ac2b91617f02da0ad28eb13f8df73ebd757c803a4e7c731b726
BLAKE2b-256 checksum
How to use checksums
eefe360b7a5bfe7f11edbf41b15a9b0bec27e91984673b9faec4805252e2ec29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

26.9.0 This release

8 release files

26.6.0

8 release files

26.3.2

6 release files

26.3.1

6 release files

26.3.0

6 release files

26.1.0

6 release 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