-
Notifications
You must be signed in to change notification settings - Fork 655
let backends set info on the lowered_backend.meta from preprocess #13856
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
let backends set info on the lowered_backend.meta from preprocess #13856
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/13856
Note: Links to docs will display an error until the docs builds have been completed. ❌ 1 New FailureAs of commit feebc19 with merge base 18263c2 ( NEW FAILURE - The following job has failed:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This pull request was exported from Phabricator. Differential Revision: D81466391 |
This PR needs a
|
…torch#13856) Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: hsharma35 Differential Revision: D81466391
255ee02
to
7eb50c7
Compare
This pull request was exported from Phabricator. Differential Revision: D81466391 |
…torch#13856) Summary: Pull Request resolved: pytorch#13856 We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: hsharma35 Differential Revision: D81466391
7eb50c7
to
f79b18a
Compare
exir/backend/backend_details.py
Outdated
@@ -32,6 +32,9 @@ class PreprocessResult: | |||
# but retrieveable by delegates via the NamedDataMap at runtime. | |||
data_store_output: Optional[NamedDataStoreOutput] = None | |||
|
|||
# Optional delegate-specific information that will be added to the lowered_module's metadata. | |||
delegate_info: Optional[Any] = None |
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.
Seems a little unstructured, but OK I guess. How about delegate_info_meta
just to discourage people to put flatbuffers in here :p
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.
How is it different than having it as part of the delegated blob? From the logic it looks like we just have this information as part of the preprocess result (the meaningful part if just the blob) and put it as part of the lowered module (which again still just the blob)
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.
Doing anything with delegated blob means we need to disassemble - modify - assemble the blob again. This is not expected to be trivial for backends.
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.
Seems a little unstructured, but OK I guess.
Intentionally so. Even ignoring the current motivation around shared memory planning, I think it is generically useful to let us have a mechanism to experiment with tightly coupled passes before promoting things to the backend api which we expect to be composable.
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.
How is it different than having it as part of the delegated blob?
Some delegate blobs are not trivial to unpack is the main motivation. AOTI for instance would just be compiled code iiuc.
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.
This is a meta information that won't be serialized as part of the PTE file, right?
If that's the case, can you document it here?
Also I'd like to rename delegate_info to be something like _delegate_info_meta
or _delegate_info_internal
or just _meta
?
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.
yes it just gets added to the fxGraph. Updated the name and comment
f79b18a
to
843fa45
Compare
…torch#13856) Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: hsharma35 Differential Revision: D81466391
This pull request was exported from Phabricator. Differential Revision: D81466391 |
…torch#13856) Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: hsharma35 Differential Revision: D81466391
843fa45
to
143dd5d
Compare
This pull request was exported from Phabricator. Differential Revision: D81466391 |
…torch#13856) Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: mergennachin, hsharma35 Differential Revision: D81466391
143dd5d
to
c5d95ec
Compare
…torch#13856) Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: mergennachin, hsharma35 Differential Revision: D81466391
c5d95ec
to
1929e79
Compare
This pull request was exported from Phabricator. Differential Revision: D81466391 |
1 similar comment
This pull request was exported from Phabricator. Differential Revision: D81466391 |
…torch#13856) Summary: Pull Request resolved: pytorch#13856 We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: mergennachin, hsharma35 Differential Revision: D81466391
1929e79
to
4acae79
Compare
…torch#13856) Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: mergennachin, hsharma35 Differential Revision: D81466391
4acae79
to
5c64b10
Compare
This pull request was exported from Phabricator. Differential Revision: D81466391 |
…torch#13856) Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: mergennachin, hsharma35 Differential Revision: D81466391
5c64b10
to
8544956
Compare
This pull request was exported from Phabricator. Differential Revision: D81466391 |
…torch#13856) Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: mergennachin, hsharma35 Differential Revision: D81466391
8544956
to
a6c26e9
Compare
This pull request was exported from Phabricator. Differential Revision: D81466391 |
…torch#13856) Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: mergennachin, hsharma35 Differential Revision: D81466391
a6c26e9
to
7faccc3
Compare
This pull request was exported from Phabricator. Differential Revision: D81466391 |
…torch#13856) Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: mergennachin, hsharma35 Differential Revision: D81466391
7faccc3
to
ea81108
Compare
This pull request was exported from Phabricator. Differential Revision: D81466391 |
…torch#13856) Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready. Reviewed By: mergennachin, hsharma35 Differential Revision: D81466391
ea81108
to
feebc19
Compare
This pull request was exported from Phabricator. Differential Revision: D81466391 |
Summary: We want some delegates to be able to test experimental features that interact with the core runtime. Typically when doing this there is an expectation of tight coupling in the full lowering process so we arent super concerned about UX. The backend api is pretty hard to change because the code is mostly owned by 3rd parties, so we want to be really sure when we change it that its correct. By exposing this module.meta hookup we can test things in a controled maner without changing the blessed api before we are ready.
Differential Revision: D81466391