Skip to main content

NVIDIA cuQuantum Python

Project description

cuQuantum Python

Documentation

Please visit the NVIDIA cuQuantum Python documentation.

Installation

Install cuQuantum Python from conda-forge

If you already have a Conda environment set up, it is the easiest to install cuQuantum Python from the conda-forge channel:

conda install -c conda-forge cuquantum-python

The Conda solver will install all required dependencies for you.

Install cuQuantum Python from PyPI

Alternatively, assuming you already have a Python environment set up (it doesn't matter if it's a Conda env or not), you can also install cuQuantum Python this way:

pip install cuquantum-python-cu11

The pip solver will also install all dependencies for you (including both cuTENSOR and cuQuantum wheels).

Notes:

  • User can still install cuQuantum Python using pip install cuquantum-python, which currently points to the cuquantum-python-cu11 wheel that is subject to change in the future. Installing wheels with the -cuXX suffix is encouraged.
  • To manually manage all Python dependencies, append --no-deps to pip install to bypass the pip solver, see below.

Building and installing cuQuantum Python from source

Requirements

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

  • CUDA Toolkit 11.x
  • cuStateVec 1.1.0+
  • cuTensorNet 2.0.0+
  • cuTENSOR 1.5.0+
  • Python 3.8+
  • Cython >=0.29.22,<3
  • pip 21.3.1+
  • packaging
  • setuptools 61.0.0+
  • wheel 0.34.0+

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 and CUTENSORNET_ROOT can be set to point to the cuStateVec and the cuTensorNet libraries, respectively. The latter two environment variables take precedence if defined.

Running

Requirements

Runtime dependencies of the cuQuantum Python package include:

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

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

If you build cuQuantum Python from source, please make sure the paths to the cuQuantum and cuTENSOR libraries are added to your LD_LIBRARY_PATH environment variable.

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!
  • In certain environments, if PyTorch is installed import cuquantum could fail (with a segmentation fault). It is currently under investigation and a temporary workaround is to import torch before importing cuquantum.

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

Pleae click this Zenodo badge to see the citation format: DOI

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-22.11.0-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-22.11.0-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 24c9ce049688daa940ac463141e5366df3500f14ec465f6c20e628748c77e4e1
MD5 0466959c7e0e17be521f1500f829231f
BLAKE2b-256 9b34363fe92a8e809c6222cd5e7417eaa315846a137a5e71ac7e084ff56b6125

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu11-22.11.0-cp310-cp310-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-22.11.0-cp310-cp310-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 992dbc2d0a50ad2418f9e485d9a2a08294ea5b5170da025ca550bbc23aba9c49
MD5 8cac7ef3f992c62f5a275ad1846bfc26
BLAKE2b-256 d7480664a6b23ff1619129e4f64cf745abbe663ca5d12c256db10250a36ff2af

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu11-22.11.0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-22.11.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a631b4fd5e67dabd19580e33868a90163cfb6a9c93f1de4929575b9ef5ae2da6
MD5 45b167b5b2926efa426409adde6e9f6c
BLAKE2b-256 709617a24cb21d1751db862ab543706dfeea87a117abe0caaaf60c4ab1b1e58f

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu11-22.11.0-cp39-cp39-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-22.11.0-cp39-cp39-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9b1010fc45f901715813c6376e8b8711849f26bb9939eb41096f84a990aa862e
MD5 614e601708883f60d214ffaea3387007
BLAKE2b-256 6b38cb3917a019174d3ae9f2396fd0ed4bb788315146cbe5f9214f00ed20e512

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu11-22.11.0-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-22.11.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40f45017340b3dd24eca7bc85ece6a1366f5263a17dd6b456235dae0e021c13c
MD5 95840e7d48dabc8697701ea3dd2907dd
BLAKE2b-256 135db9333dcb571e8e28e52e0bf515430b23cea7370c2f5c0ce3b2f9a0c5f704

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu11-22.11.0-cp38-cp38-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu11-22.11.0-cp38-cp38-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 29fc62dd2e34d89dcebfc0095ca435b4584ac1f00d9dd4a752b39c700dafdbca
MD5 10ae18ccb26000e9cf83555383f87c42
BLAKE2b-256 06d2161e1af57b48d4569e5ff0820290aa4317dffa1377db632d744cbcfec02d

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