Recent Releases of qsim

qsim - qsim v0.22.0

This is a minor release that brings with it a number of updates:

  • Compatibility with NumPy 2
  • Compatibility with Cirq 1.5.0
  • Compatibility with Python 3.12–3.13
  • Compatibility with newer versions of CMake
  • Improvements and simplifications to the build and installation process. For example, the CMake configuration system will detect the availability of CUDA libraries automatically and build for the detected GPU hardware by default, even if environment variables like CUDAARCHS are not set.

Backward compatibility notes:

  • This release drops support for Python version lower than 3.10. This change is necessary to support NumPy versions 2.1 and higher.
  • The handling of Bazel configuration options has changed. qsim's behavior was previously inconsistent with the documentation about whether bazel build would use hardware vector optimization features by default. In this qsim release, support for those instruction set features is not compiled in by default; enabling them requires adding the appropriate Bazel config options. The options are documented in docs/bazel.md. (Note that this is specifically about Bazel and not the CMake configuration or the Makefiles.)

Apple Silicon note:

  • The ARM64/AArch64 architecture does not natively support the AVX or SSE instruction sets that qsim uses for vector optimizations. Consequently, on Apple Silicon, qsim will only build in the qsim_basic variant; i.e., without vector instructions. Being able to use those hardware features is a major element of qsim's performance advantages on other hardware, and its lack limits qsim's performance on Apple Silicon. Rewriting qsim to take advantage of ARM-specific SIMD features would require a substantial effort, and is not planned.

Finally, we thank Joseph Weston, the original owner of https://pypi.org/project/qsim, for letting us take over the qsim project name on PyPI and use it as an alias for qsimcirq going forward.

What's Changed

New Contributors

  • @mhucka made their first contribution in https://github.com/quantumlib/qsim/pull/671
  • @dougthor42 made their first contribution in https://github.com/quantumlib/qsim/pull/665

Full Changelog: https://github.com/quantumlib/qsim/compare/v0.21.0...v0.22.0

- C++
Published by mhucka 6 months ago

qsim - qsim v0.21.0

This is a minor release that adds support for matrix gates see https://github.com/quantumlib/qsim/pull/660

What's Changed

  • Add note to example about using with cuQuantum Appliance by @eliottrosenberg in https://github.com/quantumlib/qsim/pull/659
  • Add method for adding to opstring. by @sergeisakov in https://github.com/quantumlib/qsim/pull/660
  • Update _version.py by @NoureldinYosri in https://github.com/quantumlib/qsim/pull/661

Full Changelog: https://github.com/quantumlib/qsim/compare/v0.20.2...v0.21.0

- C++
Published by NoureldinYosri almost 2 years ago

qsim - qsim v0.20.2

What's Changed

  • Update _version.py by @NoureldinYosri in https://github.com/quantumlib/qsim/pull/658

Full Changelog: https://github.com/quantumlib/qsim/compare/v0.20.1...v0.20.2

- C++
Published by NoureldinYosri almost 2 years ago

qsim - qsim v0.20.1

This is a supor minor release that fixes an issue with the build wheels workflow.

What's Changed

  • Add conda installation instructions by @basnijholt in https://github.com/quantumlib/qsim/pull/654
  • Update docs: Add option to use image with CUDA preinstalled by @eliottrosenberg in https://github.com/quantumlib/qsim/pull/657
  • build wheel for 3.12 by @NoureldinYosri in https://github.com/quantumlib/qsim/pull/656

Full Changelog: https://github.com/quantumlib/qsim/compare/v0.20.0...v0.20.1

- C++
Published by NoureldinYosri almost 2 years ago

qsim - qsim v0.20.0

This version adds support for python3.12 and improves CUDA build.

What's Changed

  • Drop dependency on distutils by @NoureldinYosri in https://github.com/quantumlib/qsim/pull/651
  • Apply suggestions from CommonTypos checker by @pavoljuhas in https://github.com/quantumlib/qsim/pull/650
  • Allow installing for Python 3.12 by @basnijholt in https://github.com/quantumlib/qsim/pull/649
  • Set PYTHON_INCLUDE_DIR in setup.py and pass it to CMake by @basnijholt in https://github.com/quantumlib/qsim/pull/647
  • Fix: Consistent Usage of target_link_libraries for CUDA Targets by @basnijholt in https://github.com/quantumlib/qsim/pull/646
  • CUDA build improvements by @basnijholt in https://github.com/quantumlib/qsim/pull/645
  • Use CMAKESYSTEMNAME and CMAKESYSTEMPROCESSOR for cross-compiling by @basnijholt in https://github.com/quantumlib/qsim/pull/652
  • update version to 0.20.0 by @NoureldinYosri in https://github.com/quantumlib/qsim/pull/653

Full Changelog: https://github.com/quantumlib/qsim/compare/v0.19.0...v0.20.0

- C++
Published by NoureldinYosri almost 2 years ago

qsim - qsim v0.19.0

This minor release introduces support for qsim-basic on Apple Silicon (#643).

Note that qsim-basic lacks vector optimizations found in the SSE and AVX variants of qsim available on other platforms. Users interested in maximizing performance may wish to consider a different platform to get the most out of qsim.

- C++
Published by 95-martin-orion about 2 years ago

qsim - qsim v0.18.0

This minor version includes support for AMD GPUs (#619) and better errors for unsupported Cirq features (#630).

- C++
Published by 95-martin-orion about 2 years ago

qsim - qsim v0.17.0

This release captures a build-pipeline fix (https://github.com/quantumlib/qsim/pull/628) and a new feature to support large state vectors (https://github.com/quantumlib/qsim/pull/623).

- C++
Published by 95-martin-orion about 2 years ago

qsim - qsim v0.16.3

This patch release updates pybind and cibuildwheel to work with Python 3.11 (#610) and includes wheels to match.

- C++
Published by 95-martin-orion over 2 years ago

qsim - qsim v0.16.2

This patch release adds Python 3.11 wheels for qsim (#603).

- C++
Published by 95-martin-orion over 2 years ago

qsim - qsim v0.16.1

This patch release of qsim fixes an issue with cuQuantum integration (#607).

- C++
Published by 95-martin-orion over 2 years ago

qsim - qsim v0.16.0

This minor version update is for cuQuantum / custatevec support in bazel, implemented in #593 - #600.

- C++
Published by 95-martin-orion over 2 years ago

qsim - qsim v0.15.0

This minor version update is for the new global phase gate feature, added in #579.

Additionally, there have been a number of small patch fixes since 0.14.1: - Fix array overflow for small input vectors (#572 and #582) - Fix weighted-identity expectation values (#577 and #578) - Fix custatevec not being enabled on request (#580)

- C++
Published by 95-martin-orion almost 3 years ago

qsim - qsim v0.14.1

This patch release of qsim includes the following bug fixes: - Prevent array overflow for small input vectors (#572) - Resolve bazel build issues from https://github.com/bazelbuild/bazel/issues/8622 (#575)

- C++
Published by 95-martin-orion about 3 years ago

qsim - qsim v0.14.1-dev+20220804

Dev release for backtracking numpy version requirement to numpy~=1.16.

- C++
Published by 95-martin-orion over 3 years ago

qsim - qsim v0.14.0

This release of qsim is compatible with Cirq 1.0.

No major features have been added since 0.13, but thanks to Cirq's backwards-compatibility policy this version should remain stable for longer than previous qsim releases.

- C++
Published by 95-martin-orion over 3 years ago

qsim - qsim v0.13.3

This patch release fixes qsim compatibility with Python 3.10 and includes wheels to match.

- C++
Published by 95-martin-orion over 3 years ago

qsim - qsim v0.13.1

This patch release adds a Python 3.10 wheel for qsim.

- C++
Published by 95-martin-orion over 3 years ago

qsim - qsim v0.13.0

This release brings qsim up to date with Cirq v0.15.0. Other notable changes include:

  • Support for repeated measurement keys (#531)
  • Minor Cirq-to-qsim translation improvements (#525)

Note that #419 is part of this release despite merging after #534.

- C++
Published by 95-martin-orion over 3 years ago

qsim - qsim v0.12.2-dev+20220422

This is a dev release for the Cirq v0.15 compatibility fixes added in #521.

- C++
Published by 95-martin-orion over 3 years ago

qsim - qsim v0.12.1

This patch release fixes a number of outstanding build issues: - Building with cuQuantum (#507) - Separate dev and "main" requirements (#516 and #518) - Assorted fixes for internal build processes

- C++
Published by 95-martin-orion almost 4 years ago

qsim - qsim v0.12.1-dev+20220314

This is a dev release for testing interaction of #516 with the release pipeline.

- C++
Published by 95-martin-orion almost 4 years ago

qsim - qsim v0.12.0

This release captures the following changes:

  • Replace generated simulators / calculators with handwritten versions
  • qsimcirq optimizations for invert_mask and repeated sampling
  • MPS sampling improvements
  • Trajectory optimizations, reducing space requirements and allowing reuse of results
  • Various smaller bug fixes and cleanup items

- C++
Published by 95-martin-orion almost 4 years ago

qsim - qsim v0.11.2-dev+20220104

This is a dev release to capture MPS sampling behavior for TFQ.

- C++
Published by 95-martin-orion almost 4 years ago

qsim - qsim v0.11.1

This release includes a patch fix to resolve issues found in v0.11.0 that prevented a full PyPI release.

- C++
Published by 95-martin-orion about 4 years ago

qsim - qsim v0.11.0

This release adds support and documentation for using the NVIDIA cuQuantum SDK with qsim.

- C++
Published by 95-martin-orion about 4 years ago

qsim - qsim v0.10.3

This release brings qsim up to date with Cirq v0.13.1 and updates documentation.

- C++
Published by 95-martin-orion about 4 years ago

qsim - qsim v0.10.3-dev+20211001

This is a dev release to capture #437 for MPS compatibility with TFQ.

There is no corresponding PyPI release.

- C++
Published by 95-martin-orion about 4 years ago

qsim - qsim v0.10.2

This release primarily serves to fix the release pipeline.

- C++
Published by 95-martin-orion over 4 years ago

qsim - qsim v0.10.1

This release bundles several minor fixes, including: * Fix for qsimcirq integration with Cirq v0.12 * Memoization of translated circuits in qsimcirq * Improved GPU testing and support * Automated wheel publishing and Windows wheels

- C++
Published by 95-martin-orion over 4 years ago

qsim - qsim v0.10.0

This version introduces the following features to C++ qsim:

  • Support for simulation on GPU with CUDA
  • Support for MPS-style simulation

These features have not yet been surfaced to qsimcirq (i.e. Python).

- C++
Published by 95-martin-orion over 4 years ago

qsim - qsim v0.10.0-dev+20210623

This is a dev release to resolve #349. The fix (#367) is included in this release.

- C++
Published by 95-martin-orion over 4 years ago

qsim - qsim v0.9.5

This patch release reverts the Python version upgrade in v0.9.4, as the release pipeline currently uses Python 3.5.

As a temporary workaround, flynt has been disabled for setup.py to prevent backwards-compatibility issues.

- C++
Published by 95-martin-orion over 4 years ago

qsim - qsim v0.9.4

This patch release fixes a compatibility issue with f-strings by enforcing the use of Python 3.6 or later.

- C++
Published by 95-martin-orion over 4 years ago

qsim - qsim v0.9.3

This patch release includes the following fixes:

  • QSimSimulator now implements SimulatesExpectationValues, and can use the simulate_expectation_values method
  • Controlled gates support up to 4 target qubits and any number of control qubits (as opposed to 4 qubits total)
  • Automated code-formatting in Python with black (using check/format-incremental)
  • Assorted sanitization fixes in C++

- C++
Published by 95-martin-orion over 4 years ago

qsim - qsim v0.9.2

This patch release includes the following fixes: - controlled gate behavior for SSE simulators is fixed - iterable qubit_order for QSimSimulator methods is handled correctly

It also adds py.typed for inline type annotations in the Python code.

- C++
Published by 95-martin-orion over 4 years ago

qsim - qsim v0.9.2-dev+20210317

This is a dev release for TFQ support, with cherrypicked changes from #312.

- C++
Published by 95-martin-orion almost 5 years ago

qsim - qsim v0.9.1

This patch release resolves a source of ODR violations in noisy circuits (#308). There is no associated pypi release.

- C++
Published by 95-martin-orion almost 5 years ago

qsim - qsim v0.9.0

This version adds the following features: - Definitions for common Cirq channels in core qsim - Support for aggregated expectation values in qsimcirq

- C++
Published by 95-martin-orion almost 5 years ago

qsim - qsim v0.8.0

This version adds the following features: - Trajectory simulation support in qsimcirq - Initial expectation value support in qsimcirq

Additionally, the following issues are resolved in this version: - Removed calls to private _resolve_parameters_ methods in qsimcirq* - Picked up TFQ fixes in #272 and #274 - Relaxes gate time-order constraints in circuit creation

*This item is the primary purpose for this release, as without it the upcoming Cirq release would render qsimcirq incompatible with Cirq. A new release with features currently in development is expected to supersede this release within the next few weeks.

- C++
Published by 95-martin-orion almost 5 years ago

qsim - qsim v0.7.1-dev+20210126

This is a dev release for TFQ fixes in #272 and #274. There is no associated pypi release.

Once the behavior of the TFQ integration is confirmed, we will release v0.7.2.

- C++
Published by 95-martin-orion almost 5 years ago

qsim - qsim v0.7.1

This patch release adds the "bulk set" convenience operators from #268 for TFQ.

- C++
Published by 95-martin-orion almost 5 years ago

qsim - qsim v0.7.0

This version adds the following features: - Trajectory simulation for noisy circuits (core qsim only) - Arbitrary controlled gates in unitarycalculator - initialstate support in qsimcirq

Additionally, the following issues are resolved in this version: - Fixed numpy compatibility issue in qsimcirq - Faster sampling in qsimcirq

- C++
Published by 95-martin-orion almost 5 years ago

qsim - qsim v0.6.0

This version adds the following features to core qsim:

  • Gates can now have more than two qubits
  • Arbitrary controlled gates are now supported
  • Users can specify the maximum fused-gate size to tune performance

In addition, qsimcirq can now parse cirq.ControlledGate and any gate that defines its matrix representation.

- C++
Published by 95-martin-orion about 5 years ago

qsim - qsim v0.6.0-dev+20201103

This is a dev release for testing TFQ integration (https://github.com/tensorflow/quantum). There is no associated pypi release.

The full 0.6.0 release is waiting on full-stack support (C++ and Python) for: - arbitrary controlled gates (multiple control qubits targeting any valid gate) - support and improved fusion behavior for gates with more than 2 qubits

- C++
Published by 95-martin-orion about 5 years ago

qsim - qsim v0.5.1

Patches an issue with global_shift in qsimcirq (#214) and adds documentation fixes (#213).

- C++
Published by 95-martin-orion about 5 years ago

qsim - qsim v0.5.0

This version refactors core qsim components in preparation for upcoming support of 3+ qubit gates; it also adds config files for displaying documentation on the upcoming devsite.

- C++
Published by 95-martin-orion about 5 years ago

qsim - qsim v0.4.1

Identical to 0.4.0, but with the Python __version__ updated correctly.

- C++
Published by 95-martin-orion over 5 years ago

qsim - qsim v0.4.0

This version primarily contains documentation improvements, along with the following features: - Parameters (named variables for gate arguments) can now be used in qsimcirq - QSimSimulator.run now defaults to QSimSimulator.simulate for circuits with only terminal measurements

- C++
Published by 95-martin-orion over 5 years ago

qsim - qsim v0.3.1

This point release annotates certain statespace methods as const. There are no changes to the behavior of the methods themselves.

- C++
Published by 95-martin-orion over 5 years ago

qsim - qsim v0.3.0

This version is compatible with TensorFlow Quantum, and includes the following features:

  • Unitary support for TFQ
  • Assorted utility methods
  • SimulatesSamples support in qsimcirq
  • Jupyter notebook tutorial for qsimcirq
  • Continuous sanitizer testing and verified support for tcmalloc

- C++
Published by 95-martin-orion over 5 years ago

qsim - qsim v0.2.0

The following features are added in this version:

  • Translation and decomposition support for most Cirq gates
  • User-defined measurement gates
  • Generalized For interface for complex parallelization schemes

- C++
Published by 95-martin-orion over 5 years ago

qsim - qsim v0.2.0-dev+20200708

This is a dev release for testing TFQ integration (https://github.com/tensorflow/quantum). There is no associated pypi release.

The full v0.2.0 release is currently waiting on:

  • Fixes for Kokoro build failures
  • Python version rename (0.1.0 -> 0.2.0)

- C++
Published by 95-martin-orion over 5 years ago

qsim - qsim v0.1.0

First explicit release of qsim.

This release aligns with qsimcirq v0.1.0 on PyPI, and is up to date with Cirq v0.8.0. As a development release, the public API provided by qsim should not be considered stable at this point.

- C++
Published by 95-martin-orion over 5 years ago