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.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.14.0+
  • cuTensorNet 2.13.0+
  • cuDensityMat >=0.6.0, <0.7.0
  • cuPauliProp >=0.4.0, <0.5.0
  • cuStabilizer >=0.4.0, <0.5.0
  • Python >=3.11, <3.15
  • NumPy v1.21+
  • nvmath-python >=0.7.0, <1.0.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)
  • nccl4py (optional)

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_cu13-26.6.0-cp314-cp314-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu13-26.6.0-cp314-cp314-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 96e9c68db0bd563bd6a1acae1847b60dadcff9bc0827266d1bf00f5939607fed
MD5 09d3b64cdb3e924f68976b82496c0283
BLAKE2b-256 7cccd274d398e74dbceeab7c4c919682ffb7f1469f710e179ffb027139aceca4

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu13-26.6.0-cp314-cp314-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu13-26.6.0-cp314-cp314-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ff7ecddb69ee946f46cf9eaf22d7b80a1c24ea7be4e31504a13320853645d4c4
MD5 0ea9478edfa722eaaee45f782820d7b1
BLAKE2b-256 62b06946249747fb37bddf959eebc40ac1f2feb4010b8d9cf6c4b34c20eda7f4

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu13-26.6.0-cp313-cp313-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu13-26.6.0-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ed027c3543324e2b7623bc6ac9cf7f88310704c5eac054c0948272cdbd5ff256
MD5 671bcc4470fb2bc86edad171432da9b0
BLAKE2b-256 cc49ac5acb631fdd1132a41df14f30f95716df6ee00f53b7c96a9145da072bc5

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu13-26.6.0-cp313-cp313-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu13-26.6.0-cp313-cp313-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c58b7e6265fd3938b4d3d80412300983bbc743cafdd22fd85ec7414a0aa01bec
MD5 7de494075f71ffa7a53c939c19654c06
BLAKE2b-256 08d1bfd85b1eb34c9fd351d8e86b791d04e9a2fa749466d4555961f9a591c0da

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu13-26.6.0-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu13-26.6.0-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d4a7f19b1e34291ed399e5e584807d707e2981cfcb1df870c22249884a055c0d
MD5 7164104f09a48167cb32be278fa399e5
BLAKE2b-256 349a348437d16d5feb071036637cc06681aaf1cc6367e1dc1fad231b930b516d

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu13-26.6.0-cp312-cp312-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu13-26.6.0-cp312-cp312-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9b1ed0f9de6af606a6f5e03a19d08ac4d3bbc012892e6001a974023f1bb3bbd7
MD5 ddb93049ba6bb37eb1c8b65f34f2e7ef
BLAKE2b-256 19541546bffb037888466c1bdcea862fb3116a5397fec13d7c54275d58414511

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu13-26.6.0-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu13-26.6.0-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 25440539950788c1637d3626f98838b47f242ddea7a7652de9d731211e913a8a
MD5 8dee774aad0c69f1569d2343de36eee7
BLAKE2b-256 71a0420c07062a5b5c0b3096ce0d0390e7d25e0c92621c0347e3cbe3a8875f28

See more details on using hashes here.

File details

Details for the file cuquantum_python_cu13-26.6.0-cp311-cp311-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuquantum_python_cu13-26.6.0-cp311-cp311-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7e95efe754defa3e340b683c5ef26667b0c4254cd8692dc71172e8104dcf3b31
MD5 dae21466aad503c5637e1d458d07e253
BLAKE2b-256 aad7912e65a4b0f6e50d4b9cf51eec5b51614cb550e70715c3f8b13a004ddc9a

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