Qualcomm AI Engine Direct - Preserve partition metadata on single-output delegate getitem nodes#20805
Conversation
The single-output path in `create_submodule_from_nodes` copied only "val" onto the manually-built getitem, dropping other partition meta (e.g. QNN's q_tensor_io tag) that the multi-output path keeps via propagate_meta, leaving backend IO-tagging passes with wrong delegate dtype/spec. Fix by propagating full meta then dropping nn_module_stack/source_fn_stack, matching the multi-output path.
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/20805
Note: Links to docs will display an error until the docs builds have been completed.
|
|
@psiddh @larryliu0820 @JacobSzwejbka Hi, What's happening and Root causeWe use TagQuantIO Pass to tag the partition input/output with single-output and multi-output take two different paths:
FixBring the single-output branch in line with multi-output: use
QuestionI wanted to check with you, since you have more historical background here, was the single-output branch only copying Thanks so much for taking a look!! |
|
@pytorchbot label "release notes: qualcomm" |


Summary
The single-output path in
create_submodule_from_nodescopied only "val" onto the manually-built getitem, dropping other partition meta (e.g. QNN'sq_tensor_iotag) that the multi-output path keeps viapropagate_meta, leaving backend IO-tagging passes with wrong delegatedtype/spec.Fix by propagating full meta then dropping
nn_module_stack/source_fn_stack, matching the multi-output path.