-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tk1_to_rzsx
on TK1(0, 1.5, 0)
outputs 3 sx
in tket 1.32 but only 1 sx
in tket 1.7
#1631
Comments
Hi, thanks for making an issue. I don't know what the reason for the change was (if there was a reason) @sjdilkes any ideas on this? I use |
Looking at the commit history, I suspect what's happening is
I guess the logic is that for non-zero |
@sjdilkes In hardware implementation, Rz usually doesn't requires a pulse. For example, in superconducting QC, Rz is implemented virtually as phases of the adjacent Rx gates. Similarly, in ion trap QC, Rz gate can be absorbed into the adjacent Rx-like gates. So, in terms of pulse length, Rz is less costly than Rx gate (Rz is often referred as "free"). So I think 2 RZ + 1 Sx should be generally cheaper (i.e., shorter pulse length) than 3 Sx. |
Thanks @yitchen-tim and @jacofeld , this makes sense. I've removed the alternative 3 SX gate construction which seems to be more inefficient on hardware in expected cases here -> #1643. |
I recently upgraded my tket version from 1.7 to 1.32 (I know, it's been a while), and I noticed that
TK1(0, 1.5, 0)
, when run throughauto_rebase_pass({OpType.SX, OpType.ECR, OpType.Rz})
in tket 1.32, was decomposed to threeSX
commands where there was only 1SX
command output in tket 1.7.From what I can tell, this is because the
tk1_to_rzsx
decompositions changed:1.32 version
1.7 version
The two are equivalent up to a global phase.
Was this intentional? the new version (3
SX
s) is less optimal on hardware, right?The text was updated successfully, but these errors were encountered: