Skip to content

Releases: CQCL/pytket-cutensornet

v0.10.0

25 Oct 15:15
ccdde8d
Compare
Choose a tag to compare

What's Changed

  • New API: GeneralBraOpKet for exact calculation of arbitrary <bra|op|ket> values. Can be used to calculate inner products, expectation values and arbitrary matrix elements.
  • New feature: both GeneralState and GeneralBraOpKet admit circuits with parameterised gates.
  • New feature: GeneralState has a new method get_amplitude to obtain the amplitude of computational basis states.
  • New feature: GeneralState and CuTensorNetShotsBackend now support RNG seeds for sampling.
  • Docs: three tutorials added to the documentation.
  • Deprecated TensorNetwork object. It is still available for the sake of backwards compatibility, but it has been removed from doc pages.

Full Changelog: v0.9.0...v0.10.0

v0.9.0

04 Oct 08:14
ec4f73e
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.8.0...v0.9.0

pytket-cutensornet 0.8.0

27 Sep 09:28
a4eade6
Compare
Choose a tag to compare
  • API breaking changes

    • Removed use_kahypar option from Config. It can still be set via the simulate option compilation_params.
  • New feature: simulate now accepts pytket circuits with Measure, Reset, Conditional, ClassicalExpBox and more classical operations. You can now retrieve classical bit values using get_bits.

  • When calling simulate, the gates on the circuit are no longer sorted by default. Use compilation_params["sort_gates"] = True to recover this behaviour, which is now deprecated.

  • StructuredState now supports simulation of single qubit circuits.

  • Some bugfixes on MPSxMPO relating to measurement and relabelling qubits. The bug was caused due to these functions not guaranteeing the MPO was applied before their action.

  • Documentation fixes:

    • apply_qubit_relabelling now appears in the documentation.
    • add_qubit removed from documentation of MPSxMPO, since it is not currently supported.

pytket-cutensornet 0.7.1

01 Aug 13:40
26ceff7
Compare
Choose a tag to compare
  • New official documentation site.
  • Backend methods can now be given a scratch_fraction argument to configure the amount of GPU memory allocated to cuTensorNet contraction. Users can also configure the values of the StateAttribute and SamplerAttribute from cuTensornet via the backend interface.
  • Fixed a bug causing the logger to fail displaying device properties.

pytket-cutensornet 0.7.0

11 Jul 09:33
0fa5f32
Compare
Choose a tag to compare
  • API breaking changes

    • Renamed CuTensorNetBackend to CuTensorNetStateBackend.
    • Moved get_operator_expectation_value and get_circuit_overlap from backends submodule to general_state submodule.
    • Warning TensorNetwork object will soon be deprecated in favour of the new GeneralState.
  • New API: GeneralState for exact simulation of circuits via contraction-path optimisation. Currently supports get_statevector(), expectation_value() and sample().

  • New feature: CuTensorNetShotsBackend for simulation of circuit shots.

  • New feature: MPS algorithms MPSxGate and MPSxMPO now support simulation of two-qubit gates acting on non-adjacent qubits.

  • New feature: add_qubit to add fresh qubits at specified positions in an MPS.

  • New feature: added an option to measure to toggle destructive measurement on/off. Currently only supported for MPS.

  • New feature: a seed can now be provided to Config objects, providing reproducibility across StructuredState simulations.

  • New feature: apply_unitary both for MPS and TTN to apply an arbitrary unitary matrix, rather than a pytket.Command.

  • New feature: apply_qubit_relabelling both for MPS and TTN to change the name of their qubits. This is now used within simulate to take into account the action of implicit SWAPs in pytket circuits (no additional SWAP gates are applied).

  • Updated pytket version requirement to 1.30.

pytket-cutensornet 0.6.1

17 Apr 14:34
b1ef075
Compare
Choose a tag to compare
  • When using simulate with TTNxGate algorithm, the initial partition is obtained using NetworkX instead of KaHyPar by default. This makes setup easier and means that TTNxGate can now be used when installing from PyPI. KaHyPar can still be used if use_kahypar from Config is set to True.
  • Updated pytket version requirement to 1.27.

pytket-cutensornet 0.6.0

12 Apr 13:17
46e573a
Compare
Choose a tag to compare

What's changed

  • New feature: Tree Tensor Network (TTN) simulator, supporting both fixed chi and truncation_fidelity. Calculation of single amplitudes is supported by get_amplitude and inner products by vdot. Measurement and postselection are not yet supported.

  • New API: both MPS and TTN share a common interface: StructuredState. Import paths have changed, multiple classes have been renamed: ConfigMPS is now Config, ContractionAlg is now SimulationAlgorithm. Documentation has been updated accordingly.

  • Canonicalisation of MPS is now always applied before a two-qubit gate. We found that this tends to reduce runtime due to canonicalisation decreasing virtual bond dimension.

  • Two-qubit gates are now decomposed (SVD) before applying them to remove null singular values (e.g. in XXPhase gates).

  • Fixed a bug on copying an MPS if truncation_fidelity was set.

  • Fixed a bug on CuTensorNetHandle that would prevent it from working when the device set was different from the default one (dev=0) and when using cuTensorNet>=2.3.0.

  • Fixed a bug on TensorNetwork due to unsupported Create operation.

  • Updated pytket version requirement to 1.26.

v0.5.4

23 Jan 15:06
072349f
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.5.3...v0.5.4

pytket-cutensornet 0.5.3

10 Jan 16:46
74401ec
Compare
Choose a tag to compare
  • Updated pytket version requirement to 1.23.

pytket-cutensornet 0.5.2

20 Dec 16:09
f23e982
Compare
Choose a tag to compare
  • Hotfix of release workflow.