[Compile] Avoid compiling the same module definition many times #27833
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
As we expand our usage of torch.compile (for instance, in Qwen2_5_vl ViT in #23207), we found the optimal place to compile for performance was around
VisionBlock; however, this particular module is instantiated in the Model 32 times;The current integration attaches the
compiled_codesand compilation to the instance as opposed to theclasslevel; we change this abstraction in this PR to the class level in order to avoid these compilations and reduce compilation timeFor our example model, we cut the compile time from 18s to 9s
Test Plan
Unit Test
Test Result
Unit Test
Before
After
Essential Elements of an Effective PR Description Checklist
supported_models.mdandexamplesfor a new model.