Uh oh!
There was an error while loading. Please reload this page.
[ExecuTorch][WebGPU] Preserve Linear and Q4 embedding params across dynamic resize - #21483
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/21483
Note: Links to docs will display an error until the docs builds have been completed. ❌ 4 New Failures, 31 PendingAs of commit b63add9 with merge base 28a7fac ( NEW FAILURES - The following jobs have failed:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This PR needs a |
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 409033795 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 409300312 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
fbsource master [ghstack-poisoned]
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
Uh oh!
There was an error while loading. Please reload this page.
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
…ynamic resize Pull Request resolved: #21483 **Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.** **Problem** The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update. **Solution** - Before: build and resize populated control words independently, allowing immutable shader state to reset. - After: each build/resize pair calls one typed helper while recomputing only live counts and dispatch. **Implementation** - Linear.cpp — make_linear_params preserves the bias flag across vec4 and tiled routes. - EmbeddingQ4gsw.cpp — EmbeddingLayout and make_embedding_params preserve nibble layout across resize. - Mirrors Vulkan runtime/graph/ops/impl/Linear.cpp and EmbeddingQ4gsw.cpp, which carry immutable shader controls through dynamic dispatch. **Constraints** WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed. Co-authored-with: Claude Code. ghstack-source-id: 411961489 @exported-using-ghexport Differential Revision: [D113992326](https://our.internmc.facebook.com/intern/diff/D113992326/)
Stack from ghstack (oldest at bottom):
Preserve immutable Linear and Q4 embedding shader controls across dynamic resize through typed parameter authorities.
Problem
The Linear resize hook dropped has_bias, and the Q4 embedding resize path could drop is_linear_weight. Both defects produced correct build-time outputs but silently changed semantics after a live shape update.
Solution
Implementation
Constraints
WGSL bytes, shader selection, bindings, uniform sizes, queue-write counts, dispatch formulas, and pipeline topology are unchanged. Production handler code is smaller because duplicated field population and scalar captures are removed.
Co-authored-with: Claude Code.
@exported-using-ghexport
Differential Revision: D113992326
Differential Revision: D113992326