Skip to content

Releases: unitaryfund/pennylane-qrack

Optimize try_decompose() (2)

03 Nov 16:18
Compare
Choose a tag to compare

try_decompose() has been optimized for significant time complexity reduction in the case that the system is detected to be separable. (The development team highly suspects that this implementation is finally "pareto-optimal," in other words, not possible to fundamentally optimize further.)

(Since this version technically fixes an edge case bug introduced into the Qrack code by the last release, even though it is likely not exposed via pennylane-qrack, we will include a Mac OS 12 wheel build. Barring a bug fix in the next release, expect this to be the final Mac OS 12 release.)

Full Changelog:
unitaryfund/qrack@vm6502q.v9.12.0...vm6502q.v9.12.4
unitaryfund/pyqrack@v1.32.9...v1.32.10
v0.10.5...v0.10.6

sha1sum results:
83c4800c681f16e0d971bcf8c289fcdfd1fcc8df pennylane_qrack-0.10.6-py3-none-macosx_12_0_x86_64.whl
55e1854277565977d6d8893189d32a334d8eff98 pennylane_qrack-0.10.6-py3-none-macosx_13_0_x86_64.whl
83a1335c01f4067548377c403a9bb38efde6b897 pennylane_qrack-0.10.6-py3-none-macosx_14_0_arm64.whl
b33ad4a6fea42abf476f94e6d84e376d5243843a pennylane_qrack-0.10.6-py3-none-macosx_15_0_arm64.whl
2bca8375e80f9eac1be4f561b996829b8d120827 pennylane_qrack-0.10.6-py3-none-manylinux_2_31_x86_64.whl
80a10c7ded497953f994e7be992b8f13f943f54c pennylane_qrack-0.10.6-py3-none-manylinux_2_35_x86_64.whl
25357b06827ad4dcd9891056ddd84d336791560a pennylane_qrack-0.10.6-py3-none-manylinux_2_39_x86_64.whl
351a0b86880ab2a04999975351383290313c7342 pennylane_qrack-0.10.6-py3-none-win_amd64.whl
d68f88561da4c049b42ed75dd859c6a83d237b2a pennylane_qrack-0.10.6.tar.gz

Debug OpenCL/CUDA Decompose()/Dispose(); optimize for CPU

02 Nov 15:55
Compare
Choose a tag to compare

In recent releases, a bug was introduced in OpenCL and CUDA based Decompose()/Dispose() when trying to calculate the phase angle of very small amplitudes. This has been fixed, and CPU-based simulation has been optimized.

WARNING: You must recompile any precompiled OpenCL kernels, after upgrading to this release.

(A Mac OS 12 wheel build is included since this is primarily a debugging release, but, as the OS version is deprecated, be prepared to lose Mac OS 12 support for any release forward of this version.)

Full Changelog:
unitaryfund/qrack@vm6502q.v9.11.12...vm6502q.v9.11.16
unitaryfund/pyqrack@v1.32.7...v1.32.8
v0.10.4...v0.10.5

sha1sum results:
34c4ac394b63c0669b97577251a4e33ec4cd3128 pennylane_qrack-0.10.5-py3-none-macosx_12_0_x86_64.whl
f90e9bded62ad7fa46ee4dfc2469ca87589d7269 pennylane_qrack-0.10.5-py3-none-macosx_13_0_x86_64.whl
0bb5a80cdadff357ee59da681ef20ac4c774590f pennylane_qrack-0.10.5-py3-none-macosx_14_0_arm64.whl
e2ed1c96eaeb77f77068fec42db294f62264d839 pennylane_qrack-0.10.5-py3-none-macosx_15_0_arm64.whl
cb3ff87ee05e07839a56c02dcc1e61cd80b719b0 pennylane_qrack-0.10.5-py3-none-manylinux_2_31_x86_64.whl
f962683c1513d2b8c39ff6e2811d94f18c913656 pennylane_qrack-0.10.5-py3-none-manylinux_2_35_x86_64.whl
2f741ba467fff6109613677b473dbd3942d2979a pennylane_qrack-0.10.5-py3-none-manylinux_2_39_x86_64.whl
6dc0dc993780081979055707960a68dc76786219 pennylane_qrack-0.10.5-py3-none-win_amd64.whl
7f3350b9785a59b4bcf450fc6e8c41fea1fe9808 pennylane_qrack-0.10.5.tar.gz

Manually set self.shots on QrackDevice

31 Oct 20:27
Compare
Choose a tag to compare

self.shots always defaulted to 1 for the Python PennyLane back end. This release (since v0.10.3 on PyPi) manually sets self.shots to ensure the correct behavior when multiple shots are requested.

(Note that since Mac OS 12 is officially deprecated, we would continue to support it, since we retain the ability to build for it, except that brew deprecation of the OS has led to a very time-consuming build-from-source process for every dependency. Hence, this might be the last release of pennylane-qrack to officially offer a Mac OS 12 wheel.)

(Also note, the only difference between v0.10.3 on PyPi vs. v0.10.4, this release that skips a patch number on GitHub, is that a PennyLane deprecation warning has been fixed.)

Full Changelog: v0.10.2...v0.10.4

sha1sum results:
2db641b53eccc116d2f16762904b5a2ef35574c8 pennylane_qrack-0.10.4-py3-none-macosx_12_0_x86_64.whl
5a012b5ea40ac8f699beca6c1cb44fc6fa289583 pennylane_qrack-0.10.4-py3-none-macosx_13_0_x86_64.whl
f14961a9c071ea8041210dd6a10919f9a5fe3b86 pennylane_qrack-0.10.4-py3-none-macosx_14_0_arm64.whl
78a9e904912271ef4a655276a74c4326b18e3d3c pennylane_qrack-0.10.4-py3-none-macosx_15_0_arm64.whl
cd5347e8298ff2fb31e8c9e2bb6508b46a058fb9 pennylane_qrack-0.10.4-py3-none-manylinux_2_31_x86_64.whl
3af7d4f738ed01ba24a60dc9b3b6bfddc7fab937 pennylane_qrack-0.10.4-py3-none-manylinux_2_35_x86_64.whl
8a54dcddbf3330486681758fa48b5210bfd3cdea pennylane_qrack-0.10.4-py3-none-manylinux_2_39_x86_64.whl
84cad001173fb9a67dac68c851e013711c37052e pennylane_qrack-0.10.4-py3-none-win_amd64.whl
f321288372eed69eef9d3e7937a62615e4f3d15b pennylane_qrack-0.10.4.tar.gz

PennyLane noisy mode is always "weak" simulation

30 Oct 23:38
Compare
Choose a tag to compare

Qrack noisy simulation mode categorically needs to be "weak" rather than "strong" simulation condition, in the sense that sampling always entails one full run of the unitary circuit and generating only a single shot, top-to-bottom for each shot requested, in any instance of a request for shots. This release ensures this to always be the case for Qrack noisy simulation with the Python-based PennyLane back end.

What's Changed

New Contributors

Full Changelog: v0.10.1...v0.10.2

sha1sum results:
edcafaa4e9de5c83c8747541c62c73e921b62e71 pennylane_qrack-0.10.2-py3-none-macosx_12_0_x86_64.whl
0268d42c388e24f1e63be6b1c7aebdcc9b358337 pennylane_qrack-0.10.2-py3-none-macosx_13_0_x86_64.whl
49a933bcff24289389484c7c92d6b6d3ae6efcbc pennylane_qrack-0.10.2-py3-none-macosx_14_0_arm64.whl
d08fcebcc46597ef890d1e5e2d9bb405fdc590d1 pennylane_qrack-0.10.2-py3-none-macosx_15_0_arm64.whl
3df003fc49beef1991f51a6fdd2ed4f3a5af480b pennylane_qrack-0.10.2-py3-none-manylinux_2_31_x86_64.whl
07a4749a33ecbea71781c59b15b3cb3264d1a4a8 pennylane_qrack-0.10.2-py3-none-manylinux_2_35_x86_64.whl
9ecaa500a9f91c42279edc8b07a25a246d638c7b pennylane_qrack-0.10.2-py3-none-manylinux_2_39_x86_64.whl
8b809532038d833bff31050fd599d55e22d2ccfa pennylane_qrack-0.10.2-py3-none-win_amd64.whl
4cb3f64a310e9bd428c5df347d57355c9786026d pennylane_qrack-0.10.2.tar.gz

SDRP/MPS correspondence base case

09 Oct 06:32
cc7a844
Compare
Choose a tag to compare

With all-to-all connectivity (but 0 bond dimension), SDRP (Schmidt decomposition rounding parameter) should reproduce the effective behavior of MPS (matrix product states) when the rounding parameter is set to 1 or greater: this release fixes the QUnit implementation to realize this theoretical expectation. (Disable QStabilizerHybrid layer with isStabilizerHybrid=False constructor parameter for QrackSimulator and set the rounding parameter >= 1 to see this behavior, but the loss of "hybrid stabilizer" optimization should not qualitatively hurt performance in this case.)

Full Changelog:
unitaryfund/qrack@vm6502q.v9.10.0...vm6502q.v9.10.1
unitaryfund/pyqrack@v1.31.0...v1.31.1
v0.10.0...v0.10.1

sha1sum results:
654cf6009394bf9a80c82de348db33ad55f37306 dist/pennylane_qrack-0.10.1-py3-none-macosx_12_0_x86_64.whl
70c34bc099fa4b0c85e227e9dedfb26c2346ea44 dist/pennylane_qrack-0.10.1-py3-none-macosx_13_0_x86_64.whl
b052db7158aa2ae6c1bbb16531d9c8adea537a3e dist/pennylane_qrack-0.10.1-py3-none-macosx_14_0_arm64.whl
4f0d0de59dc45f4ee9ad4906be563cf4a562698a dist/pennylane_qrack-0.10.1-py3-none-macosx_15_0_arm64.whl
34c7cccf22ef0a0e36749a761322223895045181 dist/pennylane_qrack-0.10.1-py3-none-manylinux_2_31_x86_64.whl
043631c782f8b28fbc4454f47d22f40fb52415cd dist/pennylane_qrack-0.10.1-py3-none-manylinux_2_35_x86_64.whl
856bce1b1e9b8ee8741f642c6db2190298c4db74 dist/pennylane_qrack-0.10.1-py3-none-manylinux_2_39_x86_64.whl
481861c9e3dad85fe89f565c6b006811a5514853 dist/pennylane_qrack-0.10.1-py3-none-win_amd64.whl
d0839bc0769c6aaf657d45fe7cf80828b7ac7297 dist/pennylane-qrack-0.10.1.tar.gz

Better sampling; noise constructor argument

05 Oct 16:09
Compare
Choose a tag to compare

Multi-shot measurement in QEngine was previously handled in a way that was technically not thread-safe for C++. This has been fixed, and QEngine sampling has been parallelized further.

isNoisy constructor argument has been replaced with noise float parameter, which enable noisy simulation if the parameter is greater than 0 and sets the simulator instance noise level to the value of the constructor parameter.

Full Changelog:
unitaryfund/qrack@vm6502q.v9.9.62...vm6502q.v9.10.0
unitaryfund/pyqrack@v1.30.31...v1.31.0
v0.9.8...v0.10.0

sha1sum results:
a5a5374780b808881d68382e0731e30562005f6f pennylane_qrack-0.10.0-py3-none-macosx_12_0_x86_64.whl
5878b97b2d02ab65a6261c3300d10b334a7e7e7f pennylane_qrack-0.10.0-py3-none-macosx_13_0_x86_64.whl
76aef3bc3291930261f22eb2edb5198770d519b6 pennylane_qrack-0.10.0-py3-none-macosx_14_0_arm64.whl
343502233b14b441575ed29364510258524f5595 pennylane_qrack-0.10.0-py3-none-macosx_15_0_arm64.whl
ca606cca770122191ef29e4bb8c2ff88138c6376 pennylane_qrack-0.10.0-py3-none-manylinux_2_31_x86_64.whl
328297a40b0dfbea8c0c2f74dd871bbd1d071441 pennylane_qrack-0.10.0-py3-none-manylinux_2_35_x86_64.whl
5429806108268eaeca546198818c526e77c38cb7 pennylane_qrack-0.10.0-py3-none-manylinux_2_39_x86_64.whl
e1b4fd9a2819b9f38a137cbe618a1297e74bf4d8 pennylane_qrack-0.10.0-py3-none-win_amd64.whl
4a728e6556f280a16c4d3542f77e248d0258e336 pennylane_qrack-0.10.0.tar.gz

Debug QBDD high rounding

04 Oct 11:37
Compare
Choose a tag to compare

If QRACK_QBDT_SEPARABILITY_THRESHOLD were set too high, it would previously lead to segmentation faults. This release should allow the rounding parameter to be set almost arbitrarily high.

Full Changelog:
unitaryfund/qrack@vm6502q.v9.9.58...vm6502q.v9.9.62
unitaryfund/pyqrack@v1.30.30...v1.30.31
v0.9.7...v0.9.8

sha1sum results:
5ddec10fd13e581855ad0cb65dd71725f60d3c06 pennylane_qrack-0.9.8-py3-none-macosx_12_0_x86_64.whl
05077026448317141e256a3687b61b01994c89cd pennylane_qrack-0.9.8-py3-none-macosx_13_0_x86_64.whl
f8921a3385b2d0014d7847899fcd0857dff56cf0 pennylane_qrack-0.9.8-py3-none-macosx_14_0_arm64.whl
b0d6b886ec06843e3581f9a5cfacdfe2dda61b3f pennylane_qrack-0.9.8-py3-none-macosx_15_0_arm64.whl
76fc7b256061fa1cf50db60db8b76ada33f64563 pennylane_qrack-0.9.8-py3-none-manylinux_2_31_x86_64.whl
98ab7ea90e30da8473d874a6937f7a361c48f720 pennylane_qrack-0.9.8-py3-none-manylinux_2_35_x86_64.whl
a1e1caf8548009c4b779cef60093a48b447c81d1 pennylane_qrack-0.9.8-py3-none-manylinux_2_39_x86_64.whl
350ce8a3f82464d1ee09953f041260de53f5b4f2 pennylane_qrack-0.9.8-py3-none-win_amd64.whl
c74adaf7fadcdb54cca6079b30b44bb5170635f2 pennylane_qrack-0.9.8.tar.gz

Debug qml.device() constructor parameters

01 Oct 17:41
Compare
Choose a tag to compare

qml.device() constructor parameters were previously not passed to the Qrack Catalyst device back end. This has been fixed.

Full Changelog: v0.9.6...v0.9.7

sha1sum results:
d3b5e1ba24ee1bc81ad333799827d815f071fcc8 pennylane_qrack-0.9.7-py3-none-macosx_12_0_x86_64.whl
49c1a01a8aad54f4c2f68335c41b53d7e0ca8a74 pennylane_qrack-0.9.7-py3-none-macosx_13_0_x86_64.whl
8a0e1b9de13758874a24869deefb91194518c935 pennylane_qrack-0.9.7-py3-none-macosx_14_0_arm64.whl
be6cab608309294cb3826a31fcbab18310436d5c pennylane_qrack-0.9.7-py3-none-manylinux_2_31_x86_64.whl
76c9573e8cec0436cf39d4e13223bd8091e93472 pennylane_qrack-0.9.7-py3-none-manylinux_2_35_x86_64.whl
5ee6269766cd2dbd829175170e0f78f3f7e11a99 pennylane_qrack-0.9.7-py3-none-manylinux_2_39_x86_64.whl
38895b193c77244a5b8dcc15729fea7604857168 pennylane_qrack-0.9.7-py3-none-win_amd64.whl
90d1c4dce70e12868c2d151f1a39c5fb2668dd2e pennylane_qrack-0.9.7.tar.gz

Debug QBDD sampling

29 Sep 16:41
Compare
Choose a tag to compare

This release fixes doubling-up of QBDD measurement sampling.

Full Changelog:
unitaryfund/qrack@vm6502q.v9.9.54...vm6502q.v9.9.58
unitaryfund/pyqrack@v1.30.29...v1.30.30
v0.9.5...v0.9.6

sha1sum results:
5d534c05ec18c73aaeac7ff4ee05db34bc8fd35a pennylane_qrack-0.9.6-py3-none-macosx_12_0_x86_64.whl
9ea20dc2db2cc45aa8a86284125c087fb01b0fd2 pennylane_qrack-0.9.6-py3-none-macosx_13_0_x86_64.whl
34564ab34a6798192056a1aca594109f7e2cb4e3 pennylane_qrack-0.9.6-py3-none-macosx_14_0_arm64.whl
9a55fd10520364e239c0fc4fd006dbb9aba6ebe6 pennylane_qrack-0.9.6-py3-none-manylinux_2_31_x86_64.whl
0215bc49a1ec137d43faa62458105e0f7a5724fb pennylane_qrack-0.9.6-py3-none-manylinux_2_35_x86_64.whl
fac0f5701efe57acdbef71e893a63331a572cd49 pennylane_qrack-0.9.6-py3-none-manylinux_2_39_x86_64.whl
dbd0a58765469983526291d224dc15cf4e1a57ee pennylane_qrack-0.9.6-py3-none-win_amd64.whl
1404fc5662cdd7369abea3af27e53317bad4eb3f pennylane_qrack-0.9.6.tar.gz

QBDD optimization

29 Sep 15:21
Compare
Choose a tag to compare

A number of improvements have been made in QBDD simulation:

  • PushStateVector() has more consistent flooring logic for very small contributions to overall state vector probability.
  • Because QBDD gains little advantage from internal parallelism in most cases, internal parallelism in QBDD now defaults to OFF.
  • If QBDD internal parallelism is off, then QTensorNetwork automatically parallelizes QBDD measurement sampling over shots

Full Changelog:
unitaryfund/qrack@vm6502q.v9.9.50...vm6502q.v9.9.54
unitaryfund/pyqrack@v1.30.28...v1.30.29
v0.9.4...v0.9.5

sha1sum results:
4b309bc64877c9782963a7e1abd45550856d3747 pennylane_qrack-0.9.5-py3-none-macosx_12_0_x86_64.whl
7c947cc7afe3e1e9cf036a9866afc4593e747277 pennylane_qrack-0.9.5-py3-none-macosx_13_0_x86_64.whl
e01ca6785089894e9605e0bdc8529cc69fe0cc2a pennylane_qrack-0.9.5-py3-none-macosx_14_0_arm64.whl
0eaff9479989279f87607e915014fcc01b6312c9 pennylane_qrack-0.9.5-py3-none-manylinux_2_31_x86_64.whl
2e6631046ecc3f7b1eeef732ab6c8a4ff96d3c29 pennylane_qrack-0.9.5-py3-none-manylinux_2_35_x86_64.whl
19303a796e9101a961ba3b4ad43cbcf8585937e5 pennylane_qrack-0.9.5-py3-none-manylinux_2_39_x86_64.whl
8d039cbfe5e07c9b1e82d86b44605d1020fb23ea pennylane_qrack-0.9.5-py3-none-win_amd64.whl
4b7eb0de2d6772a7e938b945d997dbf3ee25dc66 pennylane_qrack-0.9.5.tar.gz