-
Couldn't load subscription status.
- Fork 706
Add support for qjit'd code to qml.specs()
#8202
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
Conversation
|
Hello. You may have forgotten to update the changelog!
|
…lane into feature/catalyst-specs
qjit'd code to qml.specs()qjit'd code to qml.specs()
|
Currently in the process of writing a simple set of unit tests using mocks. Proper integration tests will be needed, but they will not be a part of this PR since they may end up in another repo |
Co-authored-by: Yushao Chen (Jerry) <[email protected]>
…lane into feature/catalyst-specs
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.
Thx!
|
Is the CI failure a known issue? This seems unrelated to my changes |
Almost fixed. The fix in in the merge q |
|
Codcov probly just caused by unsync with master |
…gnificantly more data (#2033) **Context:** PennyLane's `qml.specs()` does not support Catalyst `qjit`'d code. However, `null.qubit` resource tracking is an avenue to provide this support. **Description of the Change:** Significantly improves `null.qubit` resource tracking to provide all necessary information for feature parity with `qml.specs`. Improves documentation within existing `NullQubit` class. **Benefits:** Allows a UI to exist that provides device level circuit specs from PennyLane. Significantly cleans up and robustifies existing resource tracking code. **Possible Drawbacks:** **Related GitHub Issues:** [[sc-98157](https://app.shortcut.com/xanaduai/story/98157)] Builds upon resource tracking feature introduced in #1619 Changes to `qml.specs()` to enable an entrypoint into resource tracking are in PennyLaneAI/pennylane#8202 --------- Co-authored-by: Paul <[email protected]> Co-authored-by: Joseph Lee <[email protected]> Co-authored-by: ANT0N <[email protected]>
**Context:** PRs #2033 and PennyLaneAI/pennylane#8202 integrate `qml.specs` with Catalyst `qjit`'d code via the resource tracking feature. **Description of the Change:** Adds end-to-end tests of `qml.specs` on `qjit`'d code. **Benefits:** Code coverage. **Possible Drawbacks:** **Related GitHub Issues:** [sc-99166]
Context:
qml.specs()currently does not support Catalyst. However, Catalyst does have a resource tracking feature vianull.qubitwhich is a way to extract runtime circuit execution information.Description of the Change:
Uses the resource tracking feature within Catalyst to add support for
qml.specs()forqjit'd workloads whenlevel="device".Removes the "resource tracking" feature from PennyLane, leaving it as a Catalyst-only feature.
Benefits:
qml.specsnow supportsqjit'd code. There is now 1 unified entrypoint into gathering circuit resources viaqml.specsPossible Drawbacks:
The underlying implementation of
qml.specs()differs quite significantly from the PennyLane version, which analyses the tape.The following attributes are missing from the QJIT version of specs
errors,num_observables,num_trainable_params,num_tape_wires,gradient_fn, andnum_gradient_executionsRelated GitHub Issues:
Depends on changes to
null.qubitresource tracking introduced in PennyLaneAI/catalyst#2033[sc-98157]
[sc-98439]