Skip to content

Optimize and restore QHybrid

Compare
Choose a tag to compare
@WrathfulSpatula WrathfulSpatula released this 19 Nov 14:43
· 90 commits to main since this release

We got to the bottom of the problem with QHybrid performance, and, with apologies, it had nothing to do with either "driver changes" or "speculative execution": since QHybrid was first entered into the library, optimized methods on QEngineOCL and QEngineCPU remained without direct exposure via the QHybrid layer. Making sure that the full public API was exposed via QHybrid fixed the issue. (It blows my mind that we went this long without MAll() exposed from the wrapped types under QHybrid.) Similarly, the incorrect results from QPager are a known issue where the engine type doesn't work with numbers of qubits smaller than its threshold for at least two "pages" in the simulator type, which is entirely avoided by wrapping in QHybrid.

(I owe an apology for mouthing off. No one was going to realize this problem but me, but, when something seems to work in the library for literally years, and then I notice it's sub-optimal, it's easy to reflexively blame driver and firmware changes before setting out to fix the problem of necessity, anyway.)

Full Changelog: vm6502q.v9.12.33...vm6502q.v9.12.34

sha1sum results:
4e69a13d4e60c36b4b9a67ac57941d77f8e509a3 libqrack-macosx_14_0_arm64.zip
2711111874f806f63da1f50fe85716ba1fc73dd6 libqrack-macosx_15_0_arm64.zip
9b6420ed0f19d5681b9de217c692c2a974331070 libqrack-manylinux2014_x86_64.zip
6a47dd89fd307d092308b9b34dbf29bad858fea2 libqrack-manylinux_2_35_x86_64.zip
dc67626ae4d85d7b1ef552e5f594d5661b5628cb libqrack-manylinux_2_39_x86_64.zip
a02e714aa86e81ae4d04f5be3985f93e0e85252e libqrack-win-amd64.zip