-
Notifications
You must be signed in to change notification settings - Fork 22.2k
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
[export] Move serialized custom class objs to toplevel #114371
Conversation
This pull request was exported from Phabricator. Differential Revision: D51479125 |
This PR needs a
|
14ff806
to
8d1286c
Compare
This pull request was exported from Phabricator. Differential Revision: D51479125 |
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.
Didn't look carefully. Accept because internal diff is accepted.
Summary: Move the serialized CustomClassHolder objects to the toplevel SerializedArtifact instead of embedding the bytes in the graph. Currently the CustomClassHolder objects are embedded in the graph instead of being lifted to the ExportedProgram, so there's some logic introduced to lift it to the higher level of the serialized ExportedProgram. However, once that CustomClassHolder objects get lifted, we can remove the TODOs I added. Test Plan: CI Reviewed By: ydwu4, zhxchen17 Differential Revision: D51479125
8d1286c
to
fa73ff8
Compare
This pull request was exported from Phabricator. Differential Revision: D51479125 |
@pytorchbot merge (Initiating merge automatically since Phabricator Diff has merged) |
Merge startedYour change will be merged once all checks pass (ETA 0-4 Hours). Learn more about merging in the wiki. Questions? Feedback? Please reach out to the PyTorch DevX Team |
Since pytorch 2.1 release we've made some BC breaking changes to the serialized schema. We should update it in time for the 2.2 release. Some of the changes include: * #114371 - custom class objects / pybinded objects are no longer saved directly to the `ExportedProgram` structure. Instead, the name is serialized inside of the program, and the actual bytes are stored. in a separate location from the exported program, allowing it to be saved to a different location. * #111204 - `GraphSignature` structure changed and `call_spec` is removed from the `GraphModule` schema * #111407 - `loss_outout` -> `loss_output` * #113075 - `example_inputs` removed from the `ExportedProgram` structure (this originally did not store anything), `dialect` added to the `ExportedProgram` structure. * #113689 - tensor constants are now lifted as inputs to the graph, and their locations are stored in the `GraphSignature` * #114172 - removed `equality_constraints` and added a `SymExprHint` for all symbolic expressions. Pull Request resolved: #115712 Approved by: https://github.com/gmagogsfm
Since pytorch 2.1 release we've made some BC breaking changes to the serialized schema. We should update it in time for the 2.2 release. Some of the changes include: * #114371 - custom class objects / pybinded objects are no longer saved directly to the `ExportedProgram` structure. Instead, the name is serialized inside of the program, and the actual bytes are stored. in a separate location from the exported program, allowing it to be saved to a different location. * #111204 - `GraphSignature` structure changed and `call_spec` is removed from the `GraphModule` schema * #111407 - `loss_outout` -> `loss_output` * #113075 - `example_inputs` removed from the `ExportedProgram` structure (this originally did not store anything), `dialect` added to the `ExportedProgram` structure. * #113689 - tensor constants are now lifted as inputs to the graph, and their locations are stored in the `GraphSignature` * #114172 - removed `equality_constraints` and added a `SymExprHint` for all symbolic expressions. Pull Request resolved: #115712 Approved by: https://github.com/gmagogsfm
Since pytorch 2.1 release we've made some BC breaking changes to the serialized schema. We should update it in time for the 2.2 release. Some of the changes include: * pytorch#114371 - custom class objects / pybinded objects are no longer saved directly to the `ExportedProgram` structure. Instead, the name is serialized inside of the program, and the actual bytes are stored. in a separate location from the exported program, allowing it to be saved to a different location. * pytorch#111204 - `GraphSignature` structure changed and `call_spec` is removed from the `GraphModule` schema * pytorch#111407 - `loss_outout` -> `loss_output` * pytorch#113075 - `example_inputs` removed from the `ExportedProgram` structure (this originally did not store anything), `dialect` added to the `ExportedProgram` structure. * pytorch#113689 - tensor constants are now lifted as inputs to the graph, and their locations are stored in the `GraphSignature` * pytorch#114172 - removed `equality_constraints` and added a `SymExprHint` for all symbolic expressions. Pull Request resolved: pytorch#115712 Approved by: https://github.com/gmagogsfm
Since pytorch 2.1 release we've made some BC breaking changes to the serialized schema. We should update it in time for the 2.2 release. Some of the changes include: * #114371 - custom class objects / pybinded objects are no longer saved directly to the `ExportedProgram` structure. Instead, the name is serialized inside of the program, and the actual bytes are stored. in a separate location from the exported program, allowing it to be saved to a different location. * #111204 - `GraphSignature` structure changed and `call_spec` is removed from the `GraphModule` schema * #111407 - `loss_outout` -> `loss_output` * #113075 - `example_inputs` removed from the `ExportedProgram` structure (this originally did not store anything), `dialect` added to the `ExportedProgram` structure. * #113689 - tensor constants are now lifted as inputs to the graph, and their locations are stored in the `GraphSignature` * #114172 - removed `equality_constraints` and added a `SymExprHint` for all symbolic expressions. Pull Request resolved: #115712 Approved by: https://github.com/gmagogsfm
Since pytorch 2.1 release we've made some BC breaking changes to the serialized schema. We should update it in time for the 2.2 release. Some of the changes include: * pytorch#114371 - custom class objects / pybinded objects are no longer saved directly to the `ExportedProgram` structure. Instead, the name is serialized inside of the program, and the actual bytes are stored. in a separate location from the exported program, allowing it to be saved to a different location. * pytorch#111204 - `GraphSignature` structure changed and `call_spec` is removed from the `GraphModule` schema * pytorch#111407 - `loss_outout` -> `loss_output` * pytorch#113075 - `example_inputs` removed from the `ExportedProgram` structure (this originally did not store anything), `dialect` added to the `ExportedProgram` structure. * pytorch#113689 - tensor constants are now lifted as inputs to the graph, and their locations are stored in the `GraphSignature` * pytorch#114172 - removed `equality_constraints` and added a `SymExprHint` for all symbolic expressions. Pull Request resolved: pytorch#115712 Approved by: https://github.com/gmagogsfm
Summary:
Move the serialized CustomClassHolder objects to the toplevel SerializedArtifact instead of embedding the bytes in the graph.
Currently the CustomClassHolder objects are embedded in the graph instead of being lifted to the ExportedProgram, so there's some logic introduced to lift it to the higher level of the serialized ExportedProgram. However, once that CustomClassHolder objects get lifted, we can remove the TODOs I added.
Test Plan: CI
Reviewed By: zhxchen17
Differential Revision: D51479125
cc @avikchaudhuri @gmagogsfm @zhxchen17 @tugsbayasgalan @suo @ydwu4