make big model inference compatible with torch.compile #2609
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.
What does this PR do ?
This PR makes big model inference compatible with
torch.compile
. To do that, we need to fixsend_to_device
.In pytorch 2.2.1,
hasattr
is not implemented for TupleVariable, so we get an error inis_namedtuple
function. I tried a few methods to not usehasattr
but I didn't manage to make it work (e.g. try except block). If we bypass theis_namedtuple
function, compile works fine. In pytorch nightly (future 2.4), this is implemented but we hit another error ( breaking changes ... ). So, I need to investigate more.Fixes #2592
Draft for now to not forget
EDIT: Feel free to try this PR. It should work for the latest torch. However, it doesn't support namedtuple.