-
Notifications
You must be signed in to change notification settings - Fork 615
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
Clifford+T Decomposition Transform #4802
Clifford+T Decomposition Transform #4802
Conversation
Hello. You may have forgotten to update the changelog!
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #4802 +/- ##
==========================================
- Coverage 99.66% 99.66% -0.01%
==========================================
Files 387 388 +1
Lines 35078 35019 -59
==========================================
- Hits 34961 34901 -60
- Misses 117 118 +1 ☔ View full report in Codecov by Sentry. |
pennylane/transforms/decompositions/clifford_t/clifford_t_transform.py
Outdated
Show resolved
Hide resolved
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com> Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>
…_transform # Conflicts: # doc/releases/changelog-dev.md # pennylane/transforms/__init__.py # pennylane/transforms/decompositions/__init__.py # pennylane/transforms/decompositions/clifford_t/__init__.py # pennylane/transforms/decompositions/clifford_t/solovay_kitaev.py # tests/transforms/test_clifford_t/test_solovay_kitaev.py
ps: just merge the SK branch into this one, and changed this one's base to the SK branch. just so I can work on this before merging SK without worry. |
pennylane/transforms/decompositions/clifford_t/clifford_t_transform.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/clifford_t_transform.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/clifford_t_transform.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/clifford_t_transform.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/clifford_t_transform.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @obliviateandsurrender @timmysilv! No major bottlenecks from my side. My main concern now is performance, it's a little slow for very small circuits and takes a very long time for more complex things like StronglyEntanglingLayers
. Have we run a quick benchmark to see what's the most time consuming part?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking at the benchmarks, I think little can be done quickly about the performance in this PR. It would require some extra effort that we can aim for in a future PR.
pennylane/transforms/decompositions/clifford_t/clifford_t_transform.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @obliviateandsurrender @timmysilv! It's great to have this capability available 🎉 🎊
Next step is to make this decomposition, and specs
, more performant, as these are useful in resource estimation.
pennylane/transforms/decompositions/clifford_t/clifford_t_transform.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/clifford_t_transform.py
Outdated
Show resolved
Hide resolved
pennylane/transforms/decompositions/clifford_t/clifford_t_transform.py
Outdated
Show resolved
Hide resolved
Context: Transform to perform Clifford+T decomposition Description of the Change: Unrolls the circuit into Clifford+Rotation basis and then uses the Solovay-Kitaev algorithm for approximating arbitrary z-rotations. Benefits: Allows one to transform any random circuit to a Clifford+Phase basis. Possible Drawbacks: Might be sub-optimal Related GitHub Issues: --------- Co-authored-by: Matthew Silverman <matthews@xanadu.ai> Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com> Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>
Context: Transform to perform Clifford+T decomposition
Description of the Change: Unrolls the circuit into Clifford+Rotation basis and then uses the Solovay-Kitaev algorithm for approximating arbitrary z-rotations.
Benefits: Allows one to transform any random circuit to a Clifford+Phase basis.
Possible Drawbacks: Might be sub-optimal
Related GitHub Issues: