Release Notes

cuQuantum Appliance 23.10

The following components included in the container are updated:

New Features

  • Support for Arm (aarch64) architecture.

  • Support for Ubuntu 22.04 including Python 3.10.

  • Support expectation value calculations with the cusvaer backend in Qiskit Aer.

  • A new option cusvaer_diagonal_fusion_max_qubit, in the cusvaer backend to enable gate fusion for diagonal gates.

Driver Requirements

This cuQuantum Appliance 23.10 container release is based on multiple CUDA Toolkit versions. Below we provide a support matrix for minimum required driver versions.

Based CUDA Toolkit version

11.8.0

12.2.0

Minimum driver version

470.57.02+ (Linux)

525.60.13+ (Linux)

cuQuantum Appliance 23.06

The following components included in the container are updated:

Resolved issues

  • Fixed memory deallocation errors during noisy simulations in the qsim multi-GPU backend.

Driver requirements

This cuQuantum Appliance 23.06 container release is based on NVIDIA CUDA 11.8.0. The minimum driver requirement is 470.57.02 to run the Cirq/qsim and Qiskit/cusvaer simulators.

cuQuantum Appliance 23.03

The following components included in the container are updated:

Resolved issues

  • Fixed an issue that qsim can return incorrect results when multiple GPUs are used for simulation.

  • Fixed a qsim multi-GPU backend issue that the order of state vector elements copied to host numpy array can be disordered. This symptom was observed when using eight or larger number of sub state vectors.

  • Fixed a qsim multi-GPU backend issue that the active device can be changed after the simulation.

  • Fixed an issue that the qsim multi-GPU backend can return an error when a sequence of integers is given to the gpu_mode option.

  • Fixed memory allocation errors when running the cusvaer backend repeatedly.

  • Fixed a cusvaer issue of a possible stall and disordered state vector elements when copying the state vector from GPU to a numpy array on host.

New sample

  • qiskit_ghz.py example is added to try Qiskit-based multi-node state vector simulator.

Driver requirements

This cuQuantum Appliance 23.03 container release is based on NVIDIA CUDA 11.8.0. The minimum driver requirement is 470.57.02 to run the Cirq/qsim and Qiskit/cusvaer simulators.

cuQuantum Appliance 22.11

The following components included in the container are updated:

New features

  • The first release of Qiskit-based multi-node state vector simulator. Please refer to Qiskit and cusvaer.

Driver requirements

This cuQuantum Appliance 22.11 container release is based on NVIDIA CUDA 11.8.0. The minimum driver requirement is 470.57.02 to run the Cirq/qsim and Qiskit/cusvaer simulators.

cuQuantum Appliance 22.07-Cirq

The following components included in the container are updated:

New features

  • Add a new option gpu_network to specify the topology of GPU data transfer network. By specifying this option, data transfers between GPUs are optimally scheduled for either networks with switch (DGX A100/DGX-2) or full mesh networks (DGX Station A100/V100).

  • Add a new option max_fused_diagonal_gate_size to enable gate fusion for diagonal gates.

  • Support multi-GPU noisy circuit simulation.

Driver requirements

This cuQuantum Appliance 22.07-Cirq container release is based on NVIDIA CUDA 11.5.1. The minimum driver requirement is 470.52 to run the Cirq/qsim simulator.

cuQuantum Appliance 22.03-Cirq

The following components included in the container are updated:

Resolved issues

  • Multi-GPU expectation value computation with 4 GPUs (thanks to the BNL/CERN team for reporting)

cuQuantum Appliance 22.02-Cirq

The container image for NVIDIA cuQuantum Appliance 22.02 Cirq is available on NGC.

  • A new multi-GPU simulator backend optimized for NVIDIA DGX A100 with the following features:

    • Sampling the state vector

    • Performing a measurement on the state vector

    • Full state vector simulation

Contents of the cuQuantum Appliance 22.02-Cirq container

This container contains a modified version of Google’s qsim. It is pre-built and install in the default conda environment at the following location in the container:

/opt/conda/lib/python3.8/site-packages/qsimcirq

The container also includes the following:

Driver requirements

This cuQuantum Appliance 22.02-Cirq container release is based on NVIDIA CUDA 11.5.1, which requires NVIDIA Driver release 450 or later.

GPU Requirements

This cuQuantum Appliance 22.02-Cirq container release supports CUDA compute capability 7.0 and higher. This corresponds to GPUs in the NVIDIA Volta, Turing, and Ampere GPU architecture families. For a list of CUDA GPUs and their compute capabilities, please refer to this page. When using the multi-GPU backend, all GPUs involved must be mutually peer-accessible.

Known Limitations

When using the multi-GPU backend:

  • Results from the multi-GPU backend may be aggregated in Python using a single thread. In some cases, this leads to longer-than-expected runtimes.

  • The largest gate or observable in a quantum circuit must not exceed the size of the smallest state-vector partition (e.g.) a 3-qubit circuit with a 3-qubit gate where n_subsvs > 1 will produce an error.

  • Noisy elements of a quantum circuit are ignored. The corresponding noiseless circuit is passed to the simulator backend.

  • Hybrid simulation is disabled.

The NVIDIA cuQuantum Appliance is based on the NVIDIA CUDA base container, and the NVIDIA container relies on constraints using the NVIDIA_REQUIRE_* to support CUDA compatibility checks. There is a known issue with how the variable is defined in CUDA 11.5 and users may encounter the following error:

nvidia-container-cli: requirement error: unsatisfied condition: cuda>=11.5, please update your driver to a newer version ...
  • The suggested workaround is to disable the constraint checks either by defining the following environment variable:

    • NVIDIA_DISABLE_REQUIRE=1

  • or by using an additional option to Docker’s CLI when running the container:

    • --env NVIDIA_DISABLE_REQUIRE=1