Releases: unitaryfund/pyqrack
Stable maintenance release (debugging and style)
The past couple of months have seen almost exclusively style and debugging changes in Qrack. (We experimented with fixed-point math for certain applications, but it was only suitable on GNU/Linux, and the experiments mostly proved we are better leaving out fixed-point for now.) This release compared the current head of main
branch to the state of Qrack about 2 months ago and whittled down the diff to a small and trustworthy set of bug fixes and adjustments according to style guide.
This release might constitute a relatively "complete" state of the core Qrack project, for a significant amount of time into the future. (Most future development is likely to focus on building out support for other quantum software frameworks.)
(Note that releases of PyQrack now aim to be semantic over build artifacts.)
Happy Qracking! You rock!
Full Changelog:
v1.30.20...v1.30.22
unitaryfund/qrack@vm6502q.v9.9.23...vm6502q.v9.9.28
sha1sum results:
d77818655d1601de8968044b772fb44fe9acafa0 pyqrack-1.30.22-py3-none-macosx_12_0_x86_64.whl
74ef0bd8d2ad1bf36813cebf7bc28b708f362376 pyqrack-1.30.22-py3-none-macosx_13_0_x86_64.whl
ef030e039092d777b6dcdc2dad579d137eb1530f pyqrack-1.30.22-py3-none-macosx_14_0_arm64.whl
d07962b23c3e4ed6e530ad8317da1ad1cd7caf26 pyqrack-1.30.22-py3-none-manylinux_2_31_x86_64.whl
63ecb3574374754aa3fc7bf853cf0c5bbd3940bb pyqrack-1.30.22-py3-none-manylinux_2_35_x86_64.whl
8b31eb7a5e6e851b0f20df3db2e71902dd5ae6ed pyqrack-1.30.22-py3-none-manylinux_2_39_x86_64.whl
dc0a572a584d898c76eb8d1e43dc82b03d4c9af8 pyqrack-1.30.22-py3-none-win_amd64.whl
f556473d0494a602c1e90c995b6e9c3f83b37be7 pyqrack-1.30.22.tar.gz
QBdt debugging
QBdt
error amortization suffered from an out-of-precision bug; this has been (completely) fixed.
(Note that release number is being considered semantic relative to artifacts.)
Full Changelog:
unitaryfund/qrack@vm6502q.v9.9.22...vm6502q.v9.9.23
v1.30.16...v1.30.20
sha1sum results:
8ea967abbc437f8cf9cb4ff43d9dd28b14e0094a pyqrack-1.30.20-py3-none-macosx_12_0_x86_64.whl
6acf6699f14ebba9f5cbb7f4d8a861f009a03cc8 pyqrack-1.30.20-py3-none-macosx_13_0_x86_64.whl
b85d347541b76ef33b76e96904a07e1ecacbde42 pyqrack-1.30.20-py3-none-macosx_14_0_arm64.whl
4a7d741a20d1e00442fd0941f6f72ad8dacda0a6 pyqrack-1.30.20-py3-none-manylinux_2_31_x86_64.whl
4d7649cc9c0aa4156b479b2670365e9c1825d5fa pyqrack-1.30.20-py3-none-manylinux_2_35_x86_64.whl
55e9150f8efee98efa40b41c7ba3c1f584e4d05e pyqrack-1.30.20-py3-none-manylinux_2_39_x86_64.whl
78e7c64bf647d0462bb429c0b161387a4cd02021 pyqrack-1.30.20-py3-none-win_amd64.whl
cb98691c23d528189335230a679c876240ebd858 pyqrack-1.30.20.tar.gz
OpenCL kernel (and other) optimizations; Ubuntu PowerPC fix
Various micro-optimizations have been added, including OpenCL kernel optimizations. Because of OpenCL kernel updates, perform the following commands as necessary in the qrack
repository directory:
$ make clean
$ cmake ..
$ ./qrack_cl_precompile
Full Changelog:
unitaryfund/qrack@vm6502q.v9.9.13...vm6502q.v9.9.22
v1.30.15...v1.30.16
sha1sum results:
da683aa4aefc18ad75034384feb40a03b5f93010 pyqrack-1.30.16-py3-none-macosx_12_0_x86_64.whl
adffc30770d521dd2d93f6c0f3bd0aebeca03c8b pyqrack-1.30.16-py3-none-macosx_13_0_x86_64.whl
3bebf9076b3d5b129b627400d0170d910a53ce65 pyqrack-1.30.16-py3-none-macosx_14_0_arm64.whl
b145af18c37633355d9c553e4831c5af310205b7 pyqrack-1.30.16-py3-none-manylinux_2_31_x86_64.whl
69d8a0bc51ef0109d80d2e34c91edd21f9ea40f8 pyqrack-1.30.16-py3-none-manylinux_2_35_x86_64.whl
af131ef5cd848a303c0b71f980e4a4169312b768 pyqrack-1.30.16-py3-none-manylinux_2_39_x86_64.whl
b068e4a24fe4295adf4208fa4e07fd4c4dfcdb7c pyqrack-1.30.16-py3-none-win_amd64.whl
ccdd12dc455ddc2ee1b0afe6b8b2842702b56121 pyqrack-1.30.16.tar.gz
QUnitStateVector and QEngineOCL debugging
A new class QUnitStateVector
can hold Schmidt-decomposed representation of state vectors. For now, specifically, it is used only for near-Clifford simulation with QUnitClifford
.
A long-standing edge case in QEngineOCL::MAll()
has also been fixed.
Full Changelog: v1.30.13...v1.30.15
sha1sum results:
7263691ef64df4f49b4e43dab4bb3580d9285b84 pyqrack-1.30.15-py3-none-macosx_12_0_x86_64.whl
3fff7779ae8609a6a40c09ee10ccf71a238f3817 pyqrack-1.30.15-py3-none-macosx_13_0_x86_64.whl
13862be82cca8a1bd742df250de1c1f171f42c2b pyqrack-1.30.15-py3-none-macosx_14_0_arm64.whl
539db4c3a5e4cb48f00718a6afaa8b53584952cf pyqrack-1.30.15-py3-none-manylinux_2_31_x86_64.whl
f8fe8de503a1ac52c6024813e1416bb315448a0b pyqrack-1.30.15-py3-none-manylinux_2_35_x86_64.whl
c3cd57caa7e41e39f2273c53271aa8f7fe3effe2 pyqrack-1.30.15-py3-none-manylinux_2_39_x86_64.whl
0cb286e69fa1b572cf42c09029e96574ad3b6ac3 pyqrack-1.30.15-py3-none-win_amd64.whl
7f9dbda41a20006a71d473ed15306490425b6cac pyqrack-1.30.15.tar.gz
Random number generation improvements
Minor improvements have been made to Qrack's random number generator API. Most importantly, 32 divisions have been replaced with 32 multiplications when generating a random float with Rand()
. Another possible point of improvement is that most-significant bit of the raw random bit stream now corresponds with most-significant bit of Rand()
, where some devices and services for random number generation will tend to prioritize most-significant bit as slightly less biased for randomness than least-significant.
Full Changelog: unitaryfund/qrack@vm6502q.v9.9.8...vm6502q.v9.9.9
sha1sum results:
ddc449729f691f906de78a77b870cf76a2646e3c pyqrack-1.30.13-py3-none-macosx_12_0_x86_64.whl
9aec480f31c5fb852d145b8d88219dffeaf07c0e pyqrack-1.30.13-py3-none-macosx_13_0_x86_64.whl
a8f2192ba6fc6d0c2e078aee8958817b35bcacd6 pyqrack-1.30.13-py3-none-macosx_14_0_arm64.whl
72564dbf2ae9639313986539b6c15a88e6383ccc pyqrack-1.30.13-py3-none-manylinux_2_31_x86_64.whl
cca75d86a6476c50d69b94802c773e202f676726 pyqrack-1.30.13-py3-none-manylinux_2_35_x86_64.whl
649c64d026c5baac8b3b525b151348ef0600f385 pyqrack-1.30.13-py3-none-manylinux_2_39_x86_64.whl
f16faa0d40fdab7e581031ad7e07627a8a1b5e96 pyqrack-1.30.13-py3-none-win_amd64.whl
678b73c30d00c6106d131eaec4ea2104a3cff739 pyqrack-1.30.13.tar.gz
Debug shared library observables API
This release fixes bugs in the observables API of the shared library. (It also fixes 16-bit floating-point builds, but this does not affect the packaged artifacts.)
Full Changelog: unitaryfund/qrack@vm6502q.v9.9.7...vm6502q.v9.9.8
sha1sum results:
e2360ecaee941020753469dd4c2f35b95c574e06 pyqrack-1.30.11-py3-none-macosx_12_0_x86_64.whl
869ea76c24c3d628d774ef48bf63ce91c6f6531b pyqrack-1.30.11-py3-none-macosx_13_0_x86_64.whl
88eb1fbbf7ece3f8fc51743286e5db2387b99022 pyqrack-1.30.11-py3-none-macosx_14_0_arm64.whl
2ed48e81880f8fdf15279c5211e060f8f3538a46 pyqrack-1.30.11-py3-none-manylinux_2_31_x86_64.whl
a34f6f621e83e37bf67dfa0034810469aa76984e pyqrack-1.30.11-py3-none-manylinux_2_35_x86_64.whl
b1eec94b320c86a526bc44849fa65333f747151e pyqrack-1.30.11-py3-none-manylinux_2_39_x86_64.whl
0e7cfa8183e52db691764b281a097eb594f3c30f pyqrack-1.30.11-py3-none-win_amd64.whl
e96eb97a796a995c5f7d642af6adf69c18c3dd27 pyqrack-1.30.11.tar.gz
QUnit refactor
This patch release refactors QUnit
(isSchmidtDecompose
) for code clarity and reuse. No bugs have been fixed; no features have been added; the performance differential might be entirely negligible. However, the improvement in source code is authoritative.
Full Changelog: unitaryfund/qrack@vm6502q.v9.9.6...vm6502q.v9.9.7
sha1sum results:
f0898bdb78965819a17e7cc106918e7b97adb105 pyqrack-1.30.8-py3-none-macosx_12_0_x86_64.whl
aeba254f3e700507c4c6a5e940bccf25da128989 pyqrack-1.30.8-py3-none-macosx_13_0_x86_64.whl
91c87f6f3f088ffb030236fd0eeb3e0c719f8e81 pyqrack-1.30.8-py3-none-macosx_14_0_arm64.whl
b2129765396f779e1595351cdb7112c27bac325c pyqrack-1.30.8-py3-none-manylinux_2_31_x86_64.whl
1d829e392f936ff7a9db1d0d591c59720d050f09 pyqrack-1.30.8-py3-none-manylinux_2_35_x86_64.whl
82f03bf62d3ccead7f4d578e7fa5c45106f06652 pyqrack-1.30.8-py3-none-manylinux_2_39_x86_64.whl
b453168adf34b530fc7667813b0404f6af1ae645 pyqrack-1.30.8-py3-none-win_amd64.whl
03107e1ea5739a5da340c935117e0dd1bc2d2214 pyqrack-1.30.8.tar.gz
Fixed-point QUnit
QUnit
now takes advantage of fixed-point math, when available. (This should only improve QUnit
precision while keeping the same rounding thresholds.)
Full Changelog: unitaryfund/qrack@vm6502q.v9.9.1...vm6502q.v9.9.6
sha1sum results:
0007344349f81b7641fe950309e889c915649950 pyqrack-1.30.7-py3-none-macosx_12_0_x86_64.whl
aaacba40195b4c5dc8058ce3840a342c5e1e24b9 pyqrack-1.30.7-py3-none-macosx_13_0_x86_64.whl
b8dfa38c04f146bc67f7b3601e59dc569a6102c3 pyqrack-1.30.7-py3-none-macosx_14_0_arm64.whl
c6155a3e8cd579978398cc965ae5ad848c38b82e pyqrack-1.30.7-py3-none-manylinux_2_31_x86_64.whl
60ae04b3dbbc15b461cba9441f33be18d9f7a0a1 pyqrack-1.30.7-py3-none-manylinux_2_35_x86_64.whl
352a48e9980022a95c60c12bb44dd3595ad3fb61 pyqrack-1.30.7-py3-none-manylinux_2_39_x86_64.whl
ee4332635b9d2ac2667c889df9be440a60d0fb3b pyqrack-1.30.7-py3-none-win_amd64.whl
4aa1d7a29ac458600810dfcee3935292b2033aed pyqrack-1.30.7.tar.gz
Debug multi-GPU Clifford+RZ environment variable
This release fixes a bug that prevented custom tuning of the maximum ancillary qubit count in QStabilizerHybrid
via QRACK_MAX_PAGING_QB
. (This mostly affects cases of multi-GPU simulation with near-Clifford optimization, only.)
Full Changelog: v1.30.1...v1.30.2
sha1sum results:
575acf638cc8f711b81f403f574f776e7bb7eac6 pyqrack-1.30.2-py3-none-macosx_12_0_x86_64.whl
89aab03016376ff71bf5c2de32c102c5c2bd1e18 pyqrack-1.30.2-py3-none-macosx_13_0_x86_64.whl
5861ed30b2c4f6dfd16c5b28f1335841e0ad4428 pyqrack-1.30.2-py3-none-macosx_14_0_arm64.whl
db31f1a1209d1488222250c572ba248d8a5e2106 pyqrack-1.30.2-py3-none-manylinux_2_31_x86_64.whl
437a3595e4cf97c4453e7b76e36a51f5bd71d01d pyqrack-1.30.2-py3-none-manylinux_2_35_x86_64.whl
3bd9045eccef2cbef2972da598472e4c6321b6dd pyqrack-1.30.2-py3-none-manylinux_2_39_x86_64.whl
cf601f140622e7aa614e6ec22d5802b550748080 pyqrack-1.30.2-py3-none-win_amd64.whl
21beafdd402d3324d5456805ce08a1cb4f732243 pyqrack-1.30.2.tar.gz
Mac 12 and 13 artifacts
This release fixes the Mac 12 and Mac 13 release artifacts.
Full Changelog: v1.30.0...v1.30.1
sha1sum results:
30f738f83a91826a8837811d76b3fe55e0c49555 pyqrack-1.30.1-py3-none-macosx_12_0_x86_64.whl
7f565421323e555be5f37dadf72deb3a5a69041d pyqrack-1.30.1-py3-none-macosx_13_0_x86_64.whl
28a87de9ea0dd190788652ad5de67ac8a6bb6ab6 pyqrack-1.30.1-py3-none-macosx_14_0_arm64.whl
6caaf0b75daabf7dbb8e3e2efafc7589b9de0c00 pyqrack-1.30.1-py3-none-manylinux_2_31_x86_64.whl
cb1ffd5deb72e2e9d91daaf11efdee1c913bc7ff pyqrack-1.30.1-py3-none-manylinux_2_35_x86_64.whl
2601e6a8a0fc7fd72cb8b15a1723144b49018440 pyqrack-1.30.1-py3-none-manylinux_2_39_x86_64.whl
5836c61ee7c6b31062060dff98011bf35c429f87 pyqrack-1.30.1-py3-none-win_amd64.whl
fbb7de2b5b082e090a642424216dbf85dbd9cd89 pyqrack-1.30.1.tar.gz