Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TIR][Schedule] Transform layout #10538

Merged
merged 11 commits into from
Mar 23, 2022
Merged

Conversation

vinx13
Copy link
Member

@vinx13 vinx13 commented Mar 8, 2022

This PR added a schedule primitive transform_layout in TIR. It is similar to the one in TE as discussed in RFC.

cc @junrushao1994 @Lunderberg @jinhongyii @spectrometerHBH

Copy link
Member

@Hzfengsy Hzfengsy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM. Thanks @vinx13

@github-actions github-actions bot requested a review from junrushao March 10, 2022 00:42
Copy link
Contributor

@Lunderberg Lunderberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic work, and I really like that layout transforms will be usable on both TE and TIR schedules. Just a few questions/comments, mostly on user interactions.

include/tvm/tir/schedule/schedule.h Show resolved Hide resolved
python/tvm/tir/function.py Outdated Show resolved Hide resolved
python/tvm/tir/schedule/schedule.py Show resolved Hide resolved
src/tir/ir/index_map.cc Show resolved Hide resolved
Copy link
Contributor

@Lunderberg Lunderberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thank you for the discussion on the changes.

@vinx13 vinx13 merged commit 5679bd2 into apache:main Mar 23, 2022
Comment on lines +76 to +81
class BufferType(enum.IntEnum):
"""Type of buffer in access regions of a block"""

READ = 0
WRITE = 1

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vinx13 Sorry I'm late and missed the code review. On this particular change, I'm 100% in favor of having enum type on C++ side; However, it could be more to "just use string" on the python side, i.e. use "read" and "write" to indicate BufferType. If you agree with my opinion, would you mind sending a quick patch? Thanks a lot!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sounds good to me as well, and would give the same readability benefits at the caller side. I kind of like the enum usage in python as well, since it lets the reader know what options are possible, but that's the less important benefit.

At some point, it would be nice to have a macro to define an enum in C++, along with its value/name mapping and an FFI interface, so that there would be a clear way to handle these.

junrushao pushed a commit that referenced this pull request Mar 24, 2022
…10737)

This is a follow-up of #10538 to use string instead of enum in python side.
pfk-beta pushed a commit to pfk-beta/tvm that referenced this pull request Apr 11, 2022
* [TIR][Schedule] Transform layout

* address commens

* fix

* doc

* Address comments

* remove unused

* Use BufferIndexType enum

* lint

* support *args

* lint

* lint
pfk-beta pushed a commit to pfk-beta/tvm that referenced this pull request Apr 11, 2022
…pache#10737)

This is a follow-up of apache#10538 to use string instead of enum in python side.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants