Refactor NvFuser transpose API to match eager mode behavior#1746
Refactor NvFuser transpose API to match eager mode behavior#1746
Conversation
00880f8 to
a4bfc72
Compare
|
Is |
|
|
a4bfc72 to
91d54b4
Compare
naoyam
left a comment
There was a problem hiding this comment.
LGTM. Thanks for addressing the comments.
| } | ||
|
|
||
| // returns transpose map to achieve permutation on non-permuted tensor | ||
| // note: used for codegen transpose API |
|
|
||
| TORCH_CHECK( | ||
| dim1 >= 0 && dim1 <= ndims, "Invalid transpose dimension 1: ", dim1); | ||
|
|
There was a problem hiding this comment.
nitpick: wasn't the negative dim handling done in ir_utils::normalizeNew2Old already, this feels like redundant checks, but does give us nice error message.
There was a problem hiding this comment.
Dimension canonicalization only wraps around once.
If you had a 3D tensor but specified dim0 = -4, then the check will fail.
There was a problem hiding this comment.
Not saying that we need to change the behavior, both pytorch & numpy only wraps once and errors out for out of range.
Dimension canonicalization and the check in transpose does exactly the same thing, so it's a redundant check.
Syncing nvfuser devel branch to upstream master. https://github.com/csarofeen/pytorch/ Bug fixes and minor refactor Squashed commits to WAR github API Commits that's actually in this PR from the devel branch: ``` 4c60e7d Add examples infrastructure for using nvFuser in a standalone program (#1725) 02a05d9 Fix issue #1751 (#1753) 8a69aa3 Refactor NvFuser transpose API to match eager mode behavior (#1746) ffdf6b7 Remove BroadcastWithoutStride. (#1738) 02bab16 Fix flipping of a boolean flag (#1745) 465d668 cleanup (#1744) 26d354e fixing noncontig broadcast (#1742) 856b6b2 Add IterDomainBuilder (#1736) 1fd974f fixing warning for gcc7 (#1732) de2740a disabling complex in python tests for #1730 (#1733) fbbbe0a fixing MSVC build (#1728) b5feee5 Fix the fused reduction runtime kernel (#1729) 5247682 Re-entrant GroupedGridReduction (#1727) ``` RUN_TORCHBENCH: nvfuser Pull Request resolved: pytorch#79147 Approved by: https://github.com/davidberard98
…h#79406) Landing reverted PR pytorch#79147. Syncing nvfuser devel branch to upstream master. https://github.com/csarofeen/pytorch/ Bug fixes and minor refactor Squashed commits to WAR github API Commits that's actually in this PR from the devel branch: ``` 4c60e7d Add examples infrastructure for using nvFuser in a standalone program (#1725) 02a05d9 Fix issue #1751 (#1753) 8a69aa3 Refactor NvFuser transpose API to match eager mode behavior (#1746) ffdf6b7 Remove BroadcastWithoutStride. (#1738) 02bab16 Fix flipping of a boolean flag (#1745) 465d668 cleanup (#1744) 26d354e fixing noncontig broadcast (#1742) 856b6b2 Add IterDomainBuilder (#1736) 1fd974f fixing warning for gcc7 (#1732) de2740a disabling complex in python tests for #1730 (#1733) fbbbe0a fixing MSVC build (#1728) b5feee5 Fix the fused reduction runtime kernel (#1729) 5247682 Re-entrant GroupedGridReduction (#1727) ``` RUN_TORCHBENCH: nvfuser Pull Request resolved: pytorch#79406 Approved by: https://github.com/davidberard98
Currently, the NvFuser transpose takes an
unordered_mapthat maps from old to new positions. (Similar toreorder).This PR refactors transpose to follow the
aten::permuteandaten::transposeAPIs.