Releases: unitaryfund/pyqrack
Edge case segfault with 0 OpenCL/CUDA devices
This release fixes an edge case that leads to a segmentation fault, when QTensorNetwork
is used in the presence of 0 available OpenCL/CUDA devices.
Full Changelog:
unitaryfund/qrack@vm6502q.v9.9.42...vm6502qv9.9.46
v1.30.25...v1.30.26
sha1sum results:
1a21b667a26479cbf1af957a7f79d6e0138c8d30 pyqrack-1.30.26-py3-none-macosx_12_0_x86_64.whl
2ccc91deb45ab321da8b0137787b5fee4e2a1ce6 pyqrack-1.30.26-py3-none-macosx_13_0_x86_64.whl
3cde8a9f9f9484ec1c898149607859ec0033aa6f pyqrack-1.30.26-py3-none-macosx_14_0_arm64.whl
0025c24886a4dd2e78ecb0d2fdafe20f3121ee52 pyqrack-1.30.26-py3-none-manylinux_2_31_x86_64.whl
2b22970e52ef7cc9ce80ed402dc6d51e260a339a pyqrack-1.30.26-py3-none-manylinux_2_35_x86_64.whl
394570187a5c16374e4a496bba84b6ed1540ea62 pyqrack-1.30.26-py3-none-manylinux_2_39_x86_64.whl
fddbadf15c690f988cd887db779d0be309177765 pyqrack-1.30.26-py3-none-win_amd64.whl
c018f087b86a9a72f3c3267a270d853f3a34af49 pyqrack-1.30.26.tar.gz
QBDD deadlock fix (and style)
A potential deadlock in QBDD Kronecker products has been fixed. Beyond that, several (non-breaking) function prototype changes have been made in accordance with standards for style.
Full Changelog:
unitaryfund/qrack@vm6502q.v9.9.37...vm6502q.v9.9.42
v1.30.24...v1.30.25
sha1sum results:
df7cb461df2ab3a2e69372ae27a846399adf3ee0 pyqrack-1.30.25-py3-none-macosx_12_0_x86_64.whl
57257c9a26f6d8e0017ae6ec8312427c4c4c1320 pyqrack-1.30.25-py3-none-macosx_13_0_x86_64.whl
36d8e9c31ca13aa40aebf15b8f93b1bbfc236596 pyqrack-1.30.25-py3-none-macosx_14_0_arm64.whl
9a46644ebd3624b6c7eabf3b82d61fd34c1c6fb2 pyqrack-1.30.25-py3-none-manylinux_2_31_x86_64.whl
d1d0f767b8d29c39683ad6d7c8a2b9500782205b pyqrack-1.30.25-py3-none-manylinux_2_35_x86_64.whl
a5dc1c31ff6624a1c0542807fdcc86dc4f576149 pyqrack-1.30.25-py3-none-manylinux_2_39_x86_64.whl
2dda4944582870aa8b4b80065baa219990bca35a pyqrack-1.30.25-py3-none-win_amd64.whl
e70743b45ee9e8a6cff6db3de2374189bd7953de pyqrack-1.30.25.tar.gz
QBDD and stabilizer optimization
QBDD and stabilizer methods have been optimized. An incorrect initialization of a default QEngine
property was also fixed in the default constructor (though the incorrect initialization likely had no consequence).
Full Changelog:
unitaryfund/qrack@vm6502q.v9.9.33...vm6502q.v9.9.37
v1.30.23...v1.30.24
sha1sum results:
5c87a32940566928e559e32104dd326b41add384 pyqrack-1.30.24-py3-none-macosx_12_0_x86_64.whl
c27b7239ff36296fcc858d33a1dbdb9775506711 pyqrack-1.30.24-py3-none-macosx_13_0_x86_64.whl
1731d517468d45ca1e05ea56b3196e77105f62a4 pyqrack-1.30.24-py3-none-macosx_14_0_arm64.whl
8560d24506aeb8d43efb58fdf41545995a582ddf pyqrack-1.30.24-py3-none-manylinux_2_31_x86_64.whl
de19ae67645b40afac9b3e28c66c417867fe381d pyqrack-1.30.24-py3-none-manylinux_2_35_x86_64.whl
d9dd179294ccf615534ce658b2b249240c6eaf59 pyqrack-1.30.24-py3-none-manylinux_2_39_x86_64.whl
77504c0efa42328d996ff7fcfb4ace171cf04db6 pyqrack-1.30.24-py3-none-win_amd64.whl
6eca84f19dd3d2be62f913ef97099f24427a281a pyqrack-1.30.24.tar.gz
QBdt and BigInteger debugging and performance
QBdt
and BigInteger
(alias bitCapInt
) have been debugged. Additionally, one should see drastically improved performance with QBdt
(despite significantly reduced parallelism utilization). Systemically, on GNU/Linux, the bitCapInt
type now uses 128-bit "words" rather than 64-bit words, which should lead to some performance improvement.
Note that previous releases were almost universally built with capacity for 4095 qubits in a single simulator instance; in practicality, little besides stabilizer simulation can take advantage of the vast majority of this addressing capacity. This release limits to 127 qubits in a single simulator instance, but this is a "feasible" width for Qrack approximation techniques, and performance benefits from the change.
Full Changelog:
unitaryfund/qrack@vm6502q.v9.9.28...vm6502q.v9.9.33
v1.30.22...v1.30.23
sha1sum results:
7d56a837c69f0ef15154d540295c09700a5a06eb pyqrack-1.30.23-py3-none-macosx_12_0_x86_64.whl
d581d679f0230b4ebc6bd42edd157cad12c2b83e pyqrack-1.30.23-py3-none-macosx_13_0_x86_64.whl
9c843975e02018239239735129ca52ba2d4708be pyqrack-1.30.23-py3-none-macosx_14_0_arm64.whl
0d6b638b3cb56e3544af0ddfa9ab5480b814e004 pyqrack-1.30.23-py3-none-manylinux_2_31_x86_64.whl
99bf601b21357239b37cffa4366606fa88b14202 pyqrack-1.30.23-py3-none-manylinux_2_35_x86_64.whl
f074b480037da89158ec87a2c8d063d69589f9ad pyqrack-1.30.23-py3-none-manylinux_2_39_x86_64.whl
64261eb452e35173b2fbd186138b7d8ec4d7f8dc pyqrack-1.30.23-py3-none-win_amd64.whl
aeab93744971995f2caad91ba440475486527eab pyqrack-1.30.23.tar.gz
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