You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When running quilc with a chip-spec file with a one-directional 2q gate, quilc infinite loops on warming addresser cache. This is caused by expand-instruction-to-native-instructions recursing forever, eventually crashing sbcl. From what I can tell, it seems like none of the compilers are able to take a 2q instruction to the reverse gate a b -> gate b a.
The compiler should ideally be able to produce a sequence with SWAPs (in the example chip file, SWAP is native), or signal that it is not able to convert this instruction to native due to chip constraints.
As a first step to tackling this bug, PR #783 at least endows the nativizer with the ability to signal an error in this situation rather than just infinite looping. I had though it was enough to catch this error when computing single operation bounds but somewhere else in the greedy addresser is unable to understand that swaps can appropriately be inserted.
When running quilc with a chip-spec file with a one-directional 2q gate, quilc infinite loops on warming addresser cache. This is caused by
expand-instruction-to-native-instructions
recursing forever, eventually crashing sbcl. From what I can tell, it seems like none of the compilers are able to take a 2q instruction to the reversegate a b
->gate b a
.The compiler should ideally be able to produce a sequence with SWAPs (in the example chip file, SWAP is native), or signal that it is not able to convert this instruction to native due to chip constraints.
Sample 'cycle' in output:
Code to reproduce:
With the qpu file at https://gist.github.com/colescott/fbc58818bf61ed9d2e546b3883c5564b. Note that
CZ 2 3
is native butCZ 3 2
is not.The text was updated successfully, but these errors were encountered: