Skip to main content

NVIDIA cuQuantum Python

Project description

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.14
  • Cython >=3.0.4,!=3.1.0,!=3.1.1
  • 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.10.1+
  • cuTensorNet 2.9.1+
  • cuDensityMat >=0.3.1, <0.4.0
  • Python >=3.11, <3.14
  • NumPy v1.21+
  • nvmath-python ==0.6.0
  • cuda-bindings >=12.9.2, <13.0.0 for CUDA 12 or cuda-bindings >=13.0.1, <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)

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

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.

File details

Details for the file cuquantum_python_cu12-25.9.1-cp313-cp313-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3d5d5485f8388ba2371531059c62abac54e4a4bc90d6304b25781c958bc42d15
MD5 655c94b89cd194d42c63b8268455a6a0
BLAKE2b-256 c871786122567cc20b986ac5b25eba79f418cbea6d51782e3ed946f2f19960fe

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu12-25.9.1-cp313-cp313-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-cp313-cp313-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f2911553522de446ad0a1025c94e17ea20dd19f3d46f2b6d99a62dc05d686f37
MD5 906bbd01d0422d926f42a4611986e263
BLAKE2b-256 e6966b91bf94d7e6dbea847f34940b8567133f7afd9af52503cbc2add0d67517

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu12-25.9.1-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b9518bae722384a476f818bed1fdeec7440937db5f7bd6920c367c0d8d84e4e
MD5 6d68db533332f70d5b39084ecdea2aea
BLAKE2b-256 f55af31c51ce7045f6e8f75ec135a445eb12623cd5365457b9c2fa3782f4893e

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu12-25.9.1-cp312-cp312-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-cp312-cp312-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2c139d074ed94626dbf379b38a89c2e9d4d51e7e22a6bc187c5af6e7036a1613
MD5 153ad158d514380742e586fcd529df01
BLAKE2b-256 f93dc979b44073bc3c674a1062d255a19530e5bde2276c708fb14c09f62541f7

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu12-25.9.1-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7ff32b3f6a6d30ffe705659e4a0bd71a8d5034ea74007f427f3f8f4cf07b2291
MD5 d5bc38ad47a7414028b1951e6936ac99
BLAKE2b-256 5ea0314b73415a73680a8e8ddddf4478eaa74a085aa2e6df1d19c3290a58e892

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu12-25.9.1-cp311-cp311-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-cp311-cp311-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6473c0925ce40821a4a0a9dc0d73616ee9ffeedda8303bb833d812b7b32fa64c
MD5 776b92d76810757a8ba74b8f3eda9c71
BLAKE2b-256 d0618ad3ab6b6e0302b9fc0f6a8208d9892b26adae8346ff96fb0eb055e04665

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu12-25.9.1-75-cp313-cp313-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-75-cp313-cp313-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d263023851ab9478206828783dfac501f7bbf78284dd2b4a535ae1abfcc1e475
MD5 239487725c2019cfb5e370a39a15a722
BLAKE2b-256 055a61ae07fecee61d8081e613480a5df78f5b18514c5ec59d1c3bab98de680f

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu12-25.9.1-75-cp312-cp312-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-75-cp312-cp312-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 afc75437f8f5821f2616d14014eeca325ccb37167e0e7f14087e4bc3c5c070af
MD5 b2e18c355435d12522d5b24d0226522d
BLAKE2b-256 714ff398644acf356eb11f43c983ee84a2f335f1bdb9e5217ad955b44697b6b5

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu12-25.9.1-75-cp311-cp311-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-75-cp311-cp311-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 86006f808e93eb169cf4eb0a0794541e04907787ae4a2f058dc2c783528b80b9
MD5 a42bf7524d7f30ee128fa972a8bb58dd
BLAKE2b-256 cf9579a50b0dc1b37c03d63024b4b0ca417d78eb33efe065dd5315f4005bc715

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu12-25.9.1-74-cp313-cp313-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-74-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4719c35f91b701df262de04cee6e729f134cc9f67f54fe88639a89830c68b3de
MD5 3aa3bb6421b24df4f8858c76bb442949
BLAKE2b-256 492dd1da6eb389707d6bb750577adfe399bb02523069e7188e17c26be15c7639

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu12-25.9.1-74-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-74-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c740154a002a208a941eb08e74b95b28f82c22a88c864216547c9f654423dff6
MD5 38e7aeb6e323965bb384822635d8275c
BLAKE2b-256 c6201069a90549d9c30f9b809af73ab21869f9b47b253a9a8cf5da71ef47c97a

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu12-25.9.1-74-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-25.9.1-74-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 afb471e0bfc5bfb0d28da9f4c4b2fac571c62dd5109d7134104c4db784701bcd
MD5 6563d22ef9dfc49f0162826d62c7cbce
BLAKE2b-256 913d58723578f3d63c93e7bc29197743959f6726e2f71c3a5fc06dc72cfdbc98

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