Releases: quantumlib/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 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_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
- Fix sampling#663
- Use bazel-contrib/setup-bazel instead of manually installing a deb during CI #665
- Slightly relax tolerance in a test case of Apply1InteriorArbitrary #671
- Fix CI actions on GitHub #672
- CI - test cirq compatibility under Python 3.10 #673
- Update runner versions #689
- Fix #692: add common repo files #696
- Increment version number in master #699
- Add custom Dependabot configuration #702
- Add issue forms #704
- Tag tests with size and "avx" where appropriate #709
- Rewrite dev_tools/test_libs.sh #710
- Increase Bazel version to 6.5.0 #711
- Update versions of black and flynt #712
- Update submodule googletest to latest version #713
- Update min version specification in CMakeLists.txt #714
- Update paths to llvm on MacOS #715
- Increase pybind11 version to the latest #716
- Update versions of TensorFlow and platforms packages #717
- Rename build_tools directory to dev_tools #719
- Add options to, and slightly reorganize, .bazelrc #720
- Add common configuration files for linters and other programs #721
- Add pytest-xdist to dev-requirements #724
- Add optional verbose configuration to .bazelrc #737
- Add tags for SSE test cases #738
- Update some CMake files to add missing constructs & remove obsolete ones #739
- Fix googletest CMake build #740
- Update version of Googletest to latest #741
- Update Dockerfiles and docker-compose.yml files #742
- Overhaul GitHub Actions workflows #747
- Move most cibuildwheel options to pyproject.toml #748
- Slightly reduce tolerance on 2 expection value tests #755
- Set copt in platform-specific way & increase bazel test timeouts #756
- Add cmake to dev-requirements #757
- Check cpu features more portably in test_libs.sh #758
- Use pybind11-config to get pybind11 config info #759
- Further update CMake files #760
- Add back missing global option to pybind11 requirement #762
- Loosen NumPy version requirement to allow version 2 #763
- Update disclaimer and contact info in README file #764
- Require that version of setuptools be recent #766
- Update setup.py #767
- Slightly update README file and spiff up formatting #768
- Don't use Python 3.12 with Black (in ci_format_checks.yml) #769
- Update issue template forms #770
- Switch to Windows 2025 runners #773
- Fix #765: make CUDA builds work again #783
- Correct the default Bazel vector instructions options #782
- Replace sprintf() call with snprintf() #785
- Fix warning about SPDX license identifier #787
- Do an "apt-get update" before installations #788
- Suppress CMake version warning coming from Pybind11 #789
- Overhaul top-level Makefile #791
- Copy more subdirectories to /qsim inside Dockerfile #792
- Add support for passing in value of CUDA_PATH #793
- Add a new CMake extension to detect the CUDA architecture #794
- Make dev_tools/test_libs.sh use Bazel configs for SSE & AVX [https://github.com//pull/795](https://github.com/quantuml...
qsim v0.21.0
This is a minor release that adds support for matrix gates see #660
What's Changed
- Add note to example about using with cuQuantum Appliance by @eliottrosenberg in #659
- Add method for adding to opstring. by @sergeisakov in #660
- Update _version.py by @NoureldinYosri in #661
Full Changelog: v0.20.2...v0.21.0
qsim v0.20.2
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 #654
- Update docs: Add option to use image with CUDA preinstalled by @eliottrosenberg in #657
- build wheel for 3.12 by @NoureldinYosri in #656
Full Changelog: v0.20.0...v0.20.1
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 #651
- Apply suggestions from CommonTypos checker by @pavoljuhas in #650
- Allow installing for Python 3.12 by @basnijholt in #649
- Set
PYTHON_INCLUDE_DIR
insetup.py
and pass it to CMake by @basnijholt in #647 - Fix: Consistent Usage of
target_link_libraries
for CUDA Targets by @basnijholt in #646 - CUDA build improvements by @basnijholt in #645
- Use CMAKE_SYSTEM_NAME and CMAKE_SYSTEM_PROCESSOR for cross-compiling by @basnijholt in #652
- update version to 0.20.0 by @NoureldinYosri in #653
Full Changelog: v0.19.0...v0.20.0
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.
qsim v0.18.0
qsim v0.17.0
qsim v0.16.3
This patch release updates pybind and cibuildwheel to work with Python 3.11 (#610) and includes wheels to match.
qsim v0.16.2
This patch release adds Python 3.11 wheels for qsim (#603).