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.12.0+
  • cuTensorNet 2.11.0+
  • cuDensityMat >=0.4.0, <0.5.0
  • cuPauliProp >=0.2.0, <0.3.0
  • cuStabilizer >=0.2.0, <0.3.0
  • Python >=3.11, <3.14
  • NumPy v1.21+
  • nvmath-python ==0.7.0
  • 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)

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-26.1.0-cp313-cp313-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu12-26.1.0-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 553659c0884a28d49bc67ad62070f188875ebcf690c4fe72a009933f00706e50
MD5 a98006164f5b21582b267d8c79eeeb56
BLAKE2b-256 f9eb13556ec74aee25ec55ed6226970e2e7f9a17110f6e37382d1e6a1ea01e23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cuquantum_python_cu12-26.1.0-cp313-cp313-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c11f1581273e7e3bd5252740a80751fa15cb32963f13bbf1067be476fc0a4152
MD5 cae5555d57df0595ee533273448eb2b5
BLAKE2b-256 33fd91d75ed1c053f2536de543fa7ce9ec952d1fc3823c35e87be8a9059941aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cuquantum_python_cu12-26.1.0-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be617bc998a82df6c3cc7dfa9ea90846dc94c39a8f849ca6072869f90611b0ba
MD5 387679d439fbe5d4c0815d4407af8d4c
BLAKE2b-256 358796fcc1c910ecab671a5256acd3479e80af0a0c874aefbb97ce125899dfcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cuquantum_python_cu12-26.1.0-cp312-cp312-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d5056cbd0a57829c1c0d77063294a4efe2329bfcea13d7fd8bd3dc7a44b0285d
MD5 d5d3c02ec2bc8035f9945ff418f89680
BLAKE2b-256 1b51ae10b2c47982d546eff77b90f0ff63c90119b4129b0c2c2c6c6d9075b843

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cuquantum_python_cu12-26.1.0-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0a6fd78cb4e57d3f1c620a01811fe0f504e0236cd15f15b66bacf570020280ec
MD5 5d244b307f7d6377b64821d4bb2ab50f
BLAKE2b-256 e348d0e1d5ad170282d790e9228f8f6bd700803c3fc29a3f89e9a2ba27a3aad4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cuquantum_python_cu12-26.1.0-cp311-cp311-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7a01263340fb64475d0ccac283c77c4a31a20faf37f56989ba8ce4fad4483095
MD5 f474ec4ece768a4e1aa3168b7d6ddec4
BLAKE2b-256 a1d8956a48345aa65186b8cc138c795738427d6235e5b981de20a59cbb7be7ad

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