QUnit->QPager paged Compose() (Mirror circuit test suite and debugging)
The Compose()
method in vm6502q.v6.1.0 failed to take full advantage of 4-segment memory architectures typical to current era GPUs. After experimenting with various implementations, I saw no way to address this, before our planned release on Sunday.
However, I found a fix early the next morning, after release. I realized that Compose(a)
iterated on QPager
pages is equivalent to a two-parameter, interstitial Compose(a, b)
starting just after the index of total qubits per page. If we bit-rotate left, with multiple pages, we put the bits in intended order, in an obvious way.
The importance of this change motivates a build number iteration, by effectively adding about 2 qubits to almost any NVIDIA GPU's optimal Qrack stack, and by introducing at least a temporary fix (to a newly recognized issue) in the general operation of the two-argument QPager::Compose(a, b)
method, for cases besides at-the-end composition equivalent to Compose(a)
.
Sorry to iterate the build number, but this should be immediately archived and considered the finished v6.1 release.
Thank you again, to all our contributors and users!