fix(dynamo): clone folded constants returned as graph outputs - #4443
fix(dynamo): clone folded constants returned as graph outputs#4443curry-zzl wants to merge 2 commits into
Conversation
|
Hi @curry-zzl! Thank you for your pull request and welcome to our community. Action RequiredIn order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you. ProcessIn order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA. Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks! |
|
Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks! |
Description
Constant folding can replace input-independent tensor factories such as
torch.zeroswith registered_frozen_param*attributes. When one of these constants is returned directly across a graph break, eager code may mutate the returned tensor in-place. That mutation then changes the registered constant and leaks state into later top-level invocations.This change extends
repair_input_as_outputto clone direct graph outputs backed by folded constants, preserving the registered constant while keeping constant folding enabled.A regression test mutates the first returned tensor and verifies that both a subsequent output and the underlying
_frozen_paramremain unchanged.Type of change
Checklist
Validation
python -m py_compilepasses for the modified pass and test.torch_tensorrt._versionmodule. The equivalent regression was validated in the installed runtime environment.