Release Notes ************* cuQuantum Appliance 23.10 ========================= The following components included in the container are updated: * :ref:`NVIDIA cuQuantum SDK v23.10 ` 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. .. list-table:: :widths: 40 30 30 * - 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: * `Python 3.9 `_ * :ref:`NVIDIA cuQuantum SDK v23.06 ` 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: * `Cirq 1.1.0 `_ * :ref:`NVIDIA cuQuantum SDK v23.03 ` 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 ========================= * We are on `NVIDIA/cuQuantum GitHub Discussions `_! For any questions regarding (or exciting works built upon) cuQuantum, please feel free to reach out to us on GitHub Discussions. * Bug reports should still go to `our GitHub issue tracker `_. The following components included in the container are updated: * :ref:`NVIDIA cuQuantum SDK v22.11 ` New features ------------ * The first release of Qiskit-based multi-node state vector simulator. Please refer to :doc:`Qiskit ` and :doc:`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: * `Cirq 0.14.1 `_ * :ref:`NVIDIA cuQuantum SDK v22.07 ` 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: * :ref:`NVIDIA cuQuantum SDK v22.03 ` 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: .. code-block:: bash /opt/conda/lib/python3.8/site-packages/qsimcirq The container also includes the following: * `Cirq 0.13.1 `_ * `Numpy 1.22 `_ * `Ubuntu 20.04 `_ including `Python 3.8 `_ * `NVIDIA CUDA 11.5.1 `_ * :ref:`NVIDIA cuQuantum SDK 0.1.1 ` 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 :code:`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 :code:`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: .. code-block:: bash 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: * :code:`NVIDIA_DISABLE_REQUIRE=1` * or by using an additional option to Docker's CLI when running the container: * :code:`--env NVIDIA_DISABLE_REQUIRE=1`