Skip to content

QUnit->QPager paged Compose() (Mirror circuit test suite and debugging)

Compare
Choose a tag to compare
@WrathfulSpatula WrathfulSpatula released this 12 Jul 21:35
· 4016 commits to main since this release

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!