************* Release Notes ************* ========================= cuQuantum Python v22.07.1 ========================= * Bugs fixed: * The 22.07.0 ``cuquantum`` wheel had a wrong file layout. (If you are using the ``cuqauntum`` 22.07.0.1 or 22.07.0.2 hot-fix wheel, they will work fine.) ========================= cuQuantum Python v22.07.0 ========================= * Add new APIs and functionalities: * For low-level APIs, please refer to the release notes of :ref:`cuStateVec v1.1.0 ` and :ref:`cuTensorNet v1.1.0 `. * New high-level API :class:`cuquantum.CircuitToEinsum` that supports conversion of :class:`qiskit.QuantumCircuit` and :class:`cirq.Circuit` to tensor network contraction: - Support state coefficient - Support bitstring amplitude - Support reduced density matrix - Backend support on NumPy, CuPy and PyTorch * Add a keyword-only argument ``slices`` to the :meth:`cuquantum.Network.contract` method to support contracting an arbitrary subset of the slices. * Add a new attribute ``intermediate_modes`` to the :class:`cuquantum.OptimizerInfo` object for retrieving the mode labels of all intermediate tensors. * Add a new attribute ``num_slices`` to the :class:`cuquantum.OptimizerInfo` object for querying the total number of slices. * Functionality/performance improvements: * Improve the einsum expression parser. * Bugs fixed: * An exception mistakenly raised in :func:`cuquantum.einsum` when ``optimize`` is set to `False`. * Missing f-specifier in the string representation of :class:`cuquantum.OptimizerInfo`. * Other changes: * Drop the dependency on ``typing_extensions``. * Provide distributed (MPI-based) Python samples that show how easy it is to use cuTensorNet and create parallelism. ``mpi4py`` is required for running these samples. * Update the low-level, non-distributed sample ``tensornet_example.py`` by improving memory usage and switching to the new contraction API :func:`~cuquantum.cutensornet.contract_slices`. * Provide Jupyter notebooks to show how to convert a quantum circuit to a tensor network contraction. * Add a Python sample to illustrate the usage of the new multi-device bit-swapping :func:`~cuquantum.custatevec.multi_device_swap_index_bits` API. * Restructure the ``samples`` folder to separate cuStateVec and cuTensorNet samples. *Compatibility notes*: * cuQuantum Python now requires cuQuantum v22.07. * cuQuantum Python now requires Python 3.8+. * cuQuantum Python now requires NumPy v1.19+. * cuQuantum Python supports Cirq v0.6.0+. * cuQuantum Python supports Qiskit v0.24.0+. ========================= cuQuantum Python v22.05.0 ========================= * Bugs fixed: * Make ``typing_extensions`` a required dependency (`NVIDIA/cuQuantum#3 `_) * Fix issues in the test suite * Other changes: * The Python sample (`python/samples/tensornet_example.py `_) is updated to include a correctness check ========================= cuQuantum Python v22.03.0 ========================= * Stable release: * Starting this release, cuQuantum Python switches to the CalVer versioning scheme, following cuQuantum SDK * ``pip`` wheels are released on PyPI: ``pip install cuquantum-python`` * Functionality/performance improvements: * High-level tensor network APIs are now fully NumPy compliant: - Support generalized einsum expressions - Support ellipsis - Support broadcasting * Add new APIs and functionalities for: * For low-level APIs, please refer to the release notes of :ref:`cuStateVec v1.0.0 ` and :ref:`cuTensorNet v1.0.0 `. * The high-level APIs support an EMM-like memory plugin interface (see :ref:`high-level memory management`). * API changes: * For low-level APIs, please refer to the release notes of :ref:`cuStateVec v1.0.0 ` and :ref:`cuTensorNet v1.0.0 `. * No API breaking changes for the high-level APIs. *Compatibility notes*: * cuQuantum Python requires cuQuantum v22.03 * cuQuantum Python requires Python 3.7+ - In the next release, Python 3.7 will be dropped to follow `NEP-29`_. * cuQuantum Python requires NumPy v1.17+ - In the next release, NumPy 1.17 & 1.18 will be dropped to follow `NEP-29`_. * cuQuantum Python requires CuPy v9.5+ * cuQuantum Python supports PyTorch v1.10+ .. _NEP-29: https://numpy.org/neps/nep-0029-deprecation_policy.html *Known issues*: * If you install cuQuantum Python from PyPI (``pip install cuquantum-python``), make sure you also install ``typing_extensions`` (via ``pip`` or ``conda``). This only affects the wheel installation and will be fixed in the next release. (`NVIDIA/cuQuantum#3 `_) ========================= cuQuantum Python v0.1.0.1 ========================= * Patch release: - Add a ``__version__`` string ========================= cuQuantum Python v0.1.0.0 ========================= * Initial release (beta 2) *Compatibility notes*: * cuQuantum Python requires cuQuantum v0.1.0 * cuQuantum Python requires NumPy v1.17+ * cuQuantum Python requires CuPy v9.5+ * cuQuantum Python supports PyTorch v1.10+ *Limitation notes*: * 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``.