[ExecuTorch][WebGPU] Dynamic resize hook for slice_copy (dynamic start/end)#20581
[ExecuTorch][WebGPU] Dynamic resize hook for slice_copy (dynamic start/end)#20581JulianCloudNTH wants to merge 1 commit into
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/20581
Note: Links to docs will display an error until the docs builds have been completed. ✅ No FailuresAs of commit caedbba with merge base 55a71e6 ( This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This PR needs a
|
|
@claude review and check for any areas or opportunities for modularization |
Stack from ghstack (oldest at bottom):
Make
slice_copysupport a dynamic gather range so the RoPE-freqs slice[input_pos : input_pos + S]works under one dynamic graph.Problem: the static slice handler read
startvia a scalar reader that throws on a SymInt and ignoredend(output length baked AOT). The RoPE-freqs slice uses a SymIntinput_posfor start and a live S for the range, so the static op could neither build nor resize for it.Solution: read start/end as possibly-dynamic SymInts and add a resize hook that recomputes the gather offset and live output length each step.
startis a static scalar (SymInt throws);endignored; output length fixed at the serialized max.start/endread via a SymInt-aware reader; a hook recomputesout[dim] = (end - start + step - 1) / step, rewritesout_meta/in_meta/paramsUBOs + the dispatch count, and sets the outputcur_dims.Implementation:
start/endvalue-ids when they are SymInts and on the input tensor always (inert until resized, so a static slice is byte-identical).TensorMetarebuilt from live dims;dim/stepstay static.own_uniform_bufferso the hook can rewrite them.resize_slice_copy_node.Constraints: fp32-only;
dim/stepstatic; numerics + layout unchanged; inert on a static graph.NOTE (stacking): this diff sits on top of the in-review
slice_copyop (D108793168); rebase onto it once that op lands on master.Co-authored-with: Claude Code.
Differential Revision: D109906092