Repository navigation
Namespace immutable constants per method in to_native (#23891) - #23891
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/23891
Note: Links to docs will display an error until the docs builds have been completed. ❌ 2 New Failures, 1 Unrelated FailureAs of commit 53825b9 with merge base e683360 ( NEW FAILURES - The following jobs have failed:
BROKEN TRUNK - The following job failed but were present on the merge base:👉 Rebase onto the `viable/strict` branch to avoid these failures
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
|
@JakeStevens has exported this pull request. If you are a Meta employee, you can view the originating Diff in D125294428. |
This PR needs a
|
Summary:
Edge lowering mints `_lifted_tensor_constant{i}` names independently
per method, so unrelated scalars (e.g. an fp32 attention scale and an
int64 zero) collide under one data key when packaging multiple
methods, and `to_native` rejected the package. Namespace only those
auto-generated keys per method (`<method>/<key>`) in both the merged
graph blob (new `rename_data_keys` in `graph_serialize.py`, walking
the same references as `collect_data_keys`) and the constant dicts;
identical tensors stay shared, mutated keys are never renamed, and
genuine parameter/buffer fqn collisions still raise.
Differential Revision: D125294428
6c40a75 to
7567aa6
Compare
Summary: Pull Request resolved: pytorch#23891 Edge lowering mints `_lifted_tensor_constant{i}` names independently per method, so unrelated scalars (e.g. an fp32 attention scale and an int64 zero) collide under one data key when packaging multiple methods, and `to_native` rejected the package. Namespace only those auto-generated keys per method (`<method>/<key>`) in both the merged graph blob (new `rename_data_keys` in `graph_serialize.py`, walking the same references as `collect_data_keys`) and the constant dicts; identical tensors stay shared, mutated keys are never renamed, and genuine parameter/buffer fqn collisions still raise. Differential Revision: D125294428
7567aa6 to
91fd717
Compare
Summary:
Edge lowering mints `_lifted_tensor_constant{i}` names independently
per method, so unrelated scalars (e.g. an fp32 attention scale and an
int64 zero) collide under one data key when packaging multiple
methods, and `to_native` rejected the package. Namespace only those
auto-generated keys per method (`<method>/<key>`) in both the merged
graph blob (new `rename_data_keys` in `graph_serialize.py`, walking
the same references as `collect_data_keys`) and the constant dicts;
identical tensors stay shared, mutated keys are never renamed, and
genuine parameter/buffer fqn collisions still raise.
Differential Revision: D125294428
91fd717 to
75bf79f
Compare
Summary: Pull Request resolved: pytorch#23891 Edge lowering mints `_lifted_tensor_constant{i}` names independently per method, so unrelated scalars (e.g. an fp32 attention scale and an int64 zero) collide under one data key when packaging multiple methods, and `to_native` rejected the package. Namespace only those auto-generated keys per method (`<method>/<key>`) in both the merged graph blob (new `rename_data_keys` in `graph_serialize.py`, walking the same references as `collect_data_keys`) and the constant dicts; identical tensors stay shared, mutated keys are never renamed, and genuine parameter/buffer fqn collisions still raise. Differential Revision: D125294428
75bf79f to
bd4eaab
Compare
…23891) Summary: Pull Request resolved: pytorch#23891 Edge lowering generates `_lifted_tensor_constant{i}` keys independently for each method. When methods use different scalar values under the same generated key, `to_native` rejects the combined program. Always namespace generated immutable lifted constants as `<method>/<key>`, including single-method programs. Update the constant dictionaries and graph references together through a shared `map_data_keys` traversal, including quantization metadata and nested graphs. Equal tensors under different keys still deduplicate when saving the `.ptn`. Mutable keys keep their existing names, parameter/buffer conflicts continue to raise, and explicit keys occupying a generated namespace are rejected. Authored with assistance from OpenAI Codex. Differential Revision: D125294428
to_native (#23891)
…23891) Summary: Edge lowering generates `_lifted_tensor_constant{i}` keys independently for each method. When methods use different scalar values under the same generated key, `to_native` rejects the combined program. Always namespace generated immutable lifted constants as `<method>/<key>`, including single-method programs. Update the constant dictionaries and graph references together through a shared `map_data_keys` traversal, including quantization metadata and nested graphs. Equal tensors under different keys still deduplicate when saving the `.ptn`. Mutable keys keep their existing names, parameter/buffer conflicts continue to raise, and explicit keys occupying a generated namespace are rejected. Authored with assistance from OpenAI Codex. Differential Revision: D125294428
bd4eaab to
0bac518
Compare
digantdesai
left a comment
There was a problem hiding this comment.
Review automatically exported from Phabricator review in Meta.
Summary: Pull Request resolved: pytorch#23891 Exported methods can reuse a constant name with different immutable tensors, causing `to_native` to reject the combined program. Namespace every immutable constant as `<method>/<key>`, including single-method programs, and update its graph references, including quantization metadata and nested graphs. Identical tensors still deduplicate when saving the `.ptn`. Keys mutated by any method retain their original names throughout the program, preserving shared state for readers and writers. Reject differing values for shared mutable keys and collisions between final names. Authored with assistance from OpenAI Codex. Differential Revision: D125294428
to_native (#23891)to_native (#23891)
0bac518 to
97051f4
Compare
Summary: Pull Request resolved: pytorch#23891 Exported methods can reuse a constant name with different immutable tensors, causing `to_native` to reject the combined program. Namespace every immutable constant as `<method>/<key>`, including single-method programs, and update its graph references, including quantization metadata and nested graphs. Identical tensors still deduplicate when saving the `.ptn`. Keys mutated by any method retain their original names throughout the program, preserving shared state for readers and writers. Reject differing values for shared mutable keys and collisions between final names. Authored with assistance from OpenAI Codex. Differential Revision: D125294428
f807a6e to
fb49267
Compare
Summary: Pull Request resolved: pytorch#23891 Exported methods can reuse a constant name with different immutable tensors, causing `to_native` to reject the combined program. Namespace every immutable constant as `<method>/<key>`, including single-method programs, and update its graph references, including quantization metadata and nested graphs. Identical tensors still deduplicate when saving the `.ptn`. Keys mutated by any method retain their original names throughout the program, preserving shared state for readers and writers. Reject differing values for shared mutable keys and collisions between final names. Authored with assistance from OpenAI Codex. Differential Revision: D125294428
fb49267 to
27fff9b
Compare
Summary: Pull Request resolved: pytorch#23891 Exported methods can reuse a constant name with different immutable tensors, causing `to_native` to reject the combined program. Namespace every immutable constant as `<method>/<key>`, including single-method programs, and update its graph references, including quantization metadata and nested graphs. Identical tensors still deduplicate when saving the `.ptn`. Keys mutated by any method retain their original names throughout the program, preserving shared state for readers and writers. Reject differing values for shared mutable keys and collisions between final names. Authored with assistance from OpenAI Codex. Differential Revision: D125294428
digantdesai
left a comment
There was a problem hiding this comment.
Review automatically exported from Phabricator review in Meta.
Summary: Exported methods can reuse a constant name with different immutable tensors, causing `to_native` to reject the combined program. Namespace every immutable constant as `<method>/<key>`, including single-method programs, and update its graph references, including quantization metadata and nested graphs. Identical tensors still deduplicate when saving the `.ptn`. Keys mutated by any method use shared `state/<key>` names throughout the program, preserving state shared by readers and writers. Update non-persistent buffer bindings and mutation outputs consistently, and reserve the `state` method namespace. Reject differing values for shared mutable keys and collisions between final names. Authored with assistance from OpenAI Codex. Reviewed By: digantdesai Differential Revision: D125294428
27fff9b to
b29af96
Compare
Summary: Exported methods can reuse a constant name with different immutable tensors, causing `to_native` to reject the combined program. Namespace every immutable constant as `<method>/<key>`, including single-method programs, and update its graph references, including quantization metadata and nested graphs. Identical tensors still deduplicate when saving the `.ptn`. Keys mutated by any method use shared `state/<key>` names throughout the program, preserving state shared by readers and writers. Update non-persistent buffer bindings and mutation outputs consistently, and reserve the `state` method namespace. Reject differing values for shared mutable keys and collisions between final names. Authored with assistance from OpenAI Codex. Reviewed By: digantdesai Differential Revision: D125294428
Summary: Exported methods can reuse a constant name with different immutable tensors, causing `to_native` to reject the combined program. Namespace every immutable constant as `<method>/<key>`, including single-method programs, and update its graph references, including quantization metadata and nested graphs. Identical tensors still deduplicate when saving the `.ptn`. Keys mutated by any method use shared `state/<key>` names throughout the program, preserving state shared by readers and writers. Update non-persistent buffer bindings and mutation outputs consistently, and reserve the `state` method namespace. Reject differing values for shared mutable keys and collisions between final names. Authored with assistance from OpenAI Codex. Reviewed By: digantdesai Differential Revision: D125294428
b29af96 to
5322a04
Compare
Summary: Exported methods can reuse a constant name with different immutable tensors, causing `to_native` to reject the combined program. Namespace every immutable constant as `<method>/<key>`, including single-method programs, and update its graph references, including quantization metadata and nested graphs. Identical tensors still deduplicate when saving the `.ptn`. Keys mutated by any method use shared `state/<key>` names throughout the program, preserving state shared by readers and writers. Update non-persistent buffer bindings and mutation outputs consistently, and reserve the `state` method namespace. Reject differing values for shared mutable keys and collisions between final names. Authored with assistance from OpenAI Codex. Reviewed By: digantdesai Differential Revision: D125294428
Summary: Add `EXECUTORCH_BUILD_NATIVE_LLM_RUNNER` to build and install `run_hf_llm_vulkan` and `run_hf_llm_ggml` for the enabled engines. Share gflags setup with the vision runner, resolve tokenizers with regex lookahead support, and add `native_llm_runner_utils_test`. Document building and running the GGML CPU LLM runner. Authored with assistance from Codex. Reviewed By: digantdesai Differential Revision: D125479665
Summary: Exported methods can reuse a constant name with different immutable tensors, causing `to_native` to reject the combined program. Namespace every immutable constant as `<method>/<key>`, including single-method programs, and update its graph references, including quantization metadata and nested graphs. Identical tensors still deduplicate when saving the `.ptn`. Keys mutated by any method use shared `state/<key>` names throughout the program, preserving state shared by readers and writers. Update non-persistent buffer bindings and mutation outputs consistently, and reserve the `state` method namespace. Reject differing values for shared mutable keys and collisions between final names. Authored with assistance from OpenAI Codex. Reviewed By: digantdesai Differential Revision: D125294428
5322a04 to
53825b9
Compare
Summary: Exported methods can reuse a constant name with different immutable tensors, causing `to_native` to reject the combined program. Namespace every immutable constant as `<method>/<key>`, including single-method programs, and update its graph references, including quantization metadata and nested graphs. Identical tensors still deduplicate when saving the `.ptn`. Keys mutated by any method use shared `state/<key>` names throughout the program, preserving state shared by readers and writers. Update non-persistent buffer bindings and mutation outputs consistently, and reserve the `state` method namespace. Reject differing values for shared mutable keys and collisions between final names. Authored with assistance from OpenAI Codex. Reviewed By: digantdesai Differential Revision: D125294428 Pull Request resolved: pytorch#23891
Summary:
Exported methods can reuse a constant name with different immutable tensors, causing
to_nativeto reject the combined program. Namespace every immutable constant as<method>/<key>, including single-method programs, and update its graph references, including quantization metadata and nested graphs. Identical tensors still deduplicate when saving the.ptn.Keys mutated by any method use shared
state/<key>names throughout the program, preserving state shared by readers and writers. Update non-persistent buffer bindings and mutation outputs consistently, and reserve thestatemethod namespace. Reject differing values for shared mutable keys and collisions between final names.Authored with assistance from OpenAI Codex.
Reviewed By: digantdesai
Differential Revision: D125294428