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 11.x or 12.x
  • Python >=3.11, <3.14
  • Cython >=0.29.22
  • pip 21.3.1+
  • packaging
  • setuptools 61.0.0+
  • 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] Set CUQUANTUM_ROOT to point to your cuQuantum installation
  4. [optional] Set CUTENSOR_ROOT to point to your cuTENSOR installation
  5. [optional] Make sure cuQuantum and cuTENSOR are visible in your LD_LIBRARY_PATH
  6. Switch to the directory containing the Python implementation: cd cuQuantum/python
  7. Build and install:
    • Run pip install . if you skip Step 3-5 above
    • Run pip install -v --no-deps --no-build-isolation . otherwise (advanced)

Notes:

  • For Step 7, 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)
  • As an alternative to setting CUQUANTUM_ROOT, CUSTATEVEC_ROOT, CUTENSORNET_ROOT and CUDENSITYMAT_ROOT can be set to point to the cuStateVec, cuTensorNet and cuDensityMat libraries, respectively. The latter three environment variables take precedence if defined.
  • Please ensure that you use consistent binaries and packages for either CUDA 11 or 12. 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.0+
  • Driver: Linux (450.80.02+ for CUDA 11, 525.60.13+ for CUDA 12)
  • CUDA Toolkit 11.x or 12.x
  • cuStateVec 1.9.0+
  • cuTensorNet 2.8.0+
  • cuDensityMat >=0.2.0, <0.3.0
  • Python >=3.11, <3.14
  • NumPy v1.21+
  • 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 11 or 12. 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

File details

Details for the file cuquantum_python_cu11-25.6.0-cp313-cp313-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-25.6.0-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6cc6f64b2b636829035b8eb4c9d912bcbe3496945b43b9fd081bb5582ccc1eec
MD5 9e50745c06d166870e4876a706589b64
BLAKE2b-256 8b9aa0037d0a863a87ae213f1f53c4b5a71360dc988e4f1516d99b1417613bdb

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu11-25.6.0-cp313-cp313-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-25.6.0-cp313-cp313-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0e07f451a51f6109c58f870161a64c2572277085603af46e818fd14a91d0e95a
MD5 7dacc4976612f291fac4c6473418ade2
BLAKE2b-256 84b9211d8948ddbc42055a31e80ffd12b316ce0f35932041f5e09e77fb7b6235

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu11-25.6.0-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-25.6.0-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2031f38a8328b3681ee73473f671382879d86b3bff8a7d052ed676d1c06ff68a
MD5 2a549471956ead57cf338d2685c9bbce
BLAKE2b-256 4f39d670d4968aa2ec36c057596d586506c1f3893a0ff1f8df2c1174a21ff789

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu11-25.6.0-cp312-cp312-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-25.6.0-cp312-cp312-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ed9e69f77380d62abcbfc106771df9df273eac6ac3ade963c6e385958fe03ca6
MD5 260fa900a6a607cd99785e8b350c55e0
BLAKE2b-256 20a5d8bce62afe2c4bff8784a5cfb3ae31bd41404e3199b004ef7d2e1d1647e9

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu11-25.6.0-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-25.6.0-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea4d4e08c615878aea905115a46b7ebfa97fc60b81074ef620215b6f52dec03c
MD5 6fa104f778896f29e84b94f296deac97
BLAKE2b-256 9ab9badbf40beba7e4b0f4af39f56b0926b6042b0f758028b7e54a209c55d32d

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu11-25.6.0-cp311-cp311-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-25.6.0-cp311-cp311-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ce5645a16c31f2560f29458325b921e8116d75226aa2b15ed3fb7da6db54a796
MD5 86c04cf87698a714521de4b4d980e5b0
BLAKE2b-256 1b4b4d85650a1b0e862cc859e4a456eaac14fc9d7287d0bb5e5160dbc0b5452f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page