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
CUDAARCHSare 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 buildwould 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 indocs/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_basicvariant; 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
- Fix samplinghttps://github.com/quantumlib/qsim/pull/663
- Use bazel-contrib/setup-bazel instead of manually installing a deb during CI https://github.com/quantumlib/qsim/pull/665
- Slightly relax tolerance in a test case of Apply1InteriorArbitrary https://github.com/quantumlib/qsim/pull/671
- Fix CI actions on GitHub https://github.com/quantumlib/qsim/pull/672
- CI - test cirq compatibility under Python 3.10 https://github.com/quantumlib/qsim/pull/673
- Update runner versions https://github.com/quantumlib/qsim/pull/689
- Fix #692: add common repo files https://github.com/quantumlib/qsim/pull/696
- Increment version number in master https://github.com/quantumlib/qsim/pull/699
- Add custom Dependabot configuration https://github.com/quantumlib/qsim/pull/702
- Add issue forms https://github.com/quantumlib/qsim/pull/704
- Tag tests with size and "avx" where appropriate https://github.com/quantumlib/qsim/pull/709
- Rewrite devtools/testlibs.sh https://github.com/quantumlib/qsim/pull/710
- Increase Bazel version to 6.5.0 https://github.com/quantumlib/qsim/pull/711
- Update versions of black and flynt https://github.com/quantumlib/qsim/pull/712
- Update submodule googletest to latest version https://github.com/quantumlib/qsim/pull/713
- Update min version specification in CMakeLists.txt https://github.com/quantumlib/qsim/pull/714
- Update paths to llvm on MacOS https://github.com/quantumlib/qsim/pull/715
- Increase pybind11 version to the latest https://github.com/quantumlib/qsim/pull/716
- Update versions of TensorFlow and platforms packages https://github.com/quantumlib/qsim/pull/717
- Rename buildtools directory to devtools https://github.com/quantumlib/qsim/pull/719
- Add options to, and slightly reorganize, .bazelrc https://github.com/quantumlib/qsim/pull/720
- Add common configuration files for linters and other programs https://github.com/quantumlib/qsim/pull/721
- Add pytest-xdist to dev-requirements https://github.com/quantumlib/qsim/pull/724
- Add optional verbose configuration to .bazelrc https://github.com/quantumlib/qsim/pull/737
- Add tags for SSE test cases https://github.com/quantumlib/qsim/pull/738
- Update some CMake files to add missing constructs & remove obsolete ones https://github.com/quantumlib/qsim/pull/739
- Fix googletest CMake build https://github.com/quantumlib/qsim/pull/740
- Update version of Googletest to latest https://github.com/quantumlib/qsim/pull/741
- Update Dockerfiles and docker-compose.yml files https://github.com/quantumlib/qsim/pull/742
- Overhaul GitHub Actions workflows https://github.com/quantumlib/qsim/pull/747
- Move most cibuildwheel options to pyproject.toml https://github.com/quantumlib/qsim/pull/748
- Slightly reduce tolerance on 2 expection value tests https://github.com/quantumlib/qsim/pull/755
- Set copt in platform-specific way & increase bazel test timeouts https://github.com/quantumlib/qsim/pull/756
- Add cmake to dev-requirements https://github.com/quantumlib/qsim/pull/757
- Check cpu features more portably in test_libs.sh https://github.com/quantumlib/qsim/pull/758
- Use pybind11-config to get pybind11 config info https://github.com/quantumlib/qsim/pull/759
- Further update CMake files https://github.com/quantumlib/qsim/pull/760
- Add back missing global option to pybind11 requirement https://github.com/quantumlib/qsim/pull/762
- Loosen NumPy version requirement to allow version 2 https://github.com/quantumlib/qsim/pull/763
- Update disclaimer and contact info in README file https://github.com/quantumlib/qsim/pull/764
- Require that version of setuptools be recent https://github.com/quantumlib/qsim/pull/766
- Update setup.py https://github.com/quantumlib/qsim/pull/767
- Slightly update README file and spiff up formatting https://github.com/quantumlib/qsim/pull/768
- Don't use Python 3.12 with Black (in ciformatchecks.yml) https://github.com/quantumlib/qsim/pull/769
- Update issue template forms https://github.com/quantumlib/qsim/pull/770
- Switch to Windows 2025 runners https://github.com/quantumlib/qsim/pull/773
- Fix #765: make CUDA builds work again https://github.com/quantumlib/qsim/pull/783
- Correct the default Bazel vector instructions options https://github.com/quantumlib/qsim/pull/782
- Replace sprintf() call with snprintf() https://github.com/quantumlib/qsim/pull/785
- Fix warning about SPDX license identifier https://github.com/quantumlib/qsim/pull/787
- Do an "apt-get update" before installations https://github.com/quantumlib/qsim/pull/788
- Suppress CMake version warning coming from Pybind11 https://github.com/quantumlib/qsim/pull/789
- Overhaul top-level Makefile https://github.com/quantumlib/qsim/pull/791
- Copy more subdirectories to /qsim inside Dockerfile https://github.com/quantumlib/qsim/pull/792
- Add support for passing in value of CUDA_PATH https://github.com/quantumlib/qsim/pull/793
- Add a new CMake extension to detect the CUDA architecture https://github.com/quantumlib/qsim/pull/794
- Make devtools/testlibs.sh use Bazel configs for SSE & AVX https://github.com/quantumlib/qsim/pull/795
- Make debug option in manual workflow execution set Bazel verbose config https://github.com/quantumlib/qsim/pull/799
- Install dev-requirements.txt into Python environments https://github.com/quantumlib/qsim/pull/806
- Add additional CMake diagnostic messages at configuration time https://github.com/quantumlib/qsim/pull/808
- Fix niggling Docker issues https://github.com/quantumlib/qsim/pull/811
- Revise CUDAARCHS handling https://github.com/quantumlib/qsim/pull/812
- Use setuptools>=75.2.0, matching Colab https://github.com/quantumlib/qsim/pull/813
- Bump version number to 0.22.0 https://github.com/quantumlib/qsim/pull/817
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_DIRinsetup.pyand pass it to CMake by @basnijholt in https://github.com/quantumlib/qsim/pull/647 - Fix: Consistent Usage of
target_link_librariesfor 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_valuesmethod - 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(usingcheck/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
Forinterface 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