Release Notes¶
cuQuantum Python v22.07.1¶
Bugs fixed:
The 22.07.0
cuquantum
wheel had a wrong file layout. (If you are using thecuqauntum
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 cuStateVec v1.1.0 and cuTensorNet v1.1.0.
New high-level API
cuquantum.CircuitToEinsum
that supports conversion ofqiskit.QuantumCircuit
andcirq.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 thecuquantum.Network.contract()
method to support contracting an arbitrary subset of the slices.Add a new attribute
intermediate_modes
to thecuquantum.OptimizerInfo
object for retrieving the mode labels of all intermediate tensors.Add a new attribute
num_slices
to thecuquantum.OptimizerInfo
object for querying the total number of slices.
Functionality/performance improvements:
Improve the einsum expression parser.
Bugs fixed:
An exception mistakenly raised in
cuquantum.einsum()
whenoptimize
is set toFalse
.Missing f-specifier in the string representation of
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 APIcontract_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
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 cuStateVec v1.0.0 and cuTensorNet v1.0.0.
The high-level APIs support an EMM-like memory plugin interface (see Memory management).
API changes:
For low-level APIs, please refer to the release notes of cuStateVec v1.0.0 and 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+
Known issues:
If you install cuQuantum Python from PyPI (
pip install cuquantum-python
), make sure you also installtyping_extensions
(viapip
orconda
). 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 importtorch
before importingcuquantum
.