Skip to content

[Fix][TIR] UnifyThreadBinding creating unit loop with annotation#14588

Merged
tqchen merged 1 commit intoapache:mainfrom
MasterJH5574:tvm-dev/2023-04-11-unify-thread-binding-ann
Apr 12, 2023
Merged

[Fix][TIR] UnifyThreadBinding creating unit loop with annotation#14588
tqchen merged 1 commit intoapache:mainfrom
MasterJH5574:tvm-dev/2023-04-11-unify-thread-binding-ann

Conversation

@MasterJH5574
Copy link
Copy Markdown
Contributor

@MasterJH5574 MasterJH5574 commented Apr 11, 2023

This PR fixes a behavior of the UnifyThreadBinding pass which (at one place) assumes a return value is always a ForNode, which is not right.

To be more specific, when a thread-binding loop has an annotation, the current behavior is assuming that the post-recursive-mutation value is also a ForNode, and apply the previous annotation directly to the new loop. However, the post-recursive-mutation value is also possibly not a ForNode. In this case, the current behavior is incorrect.

This PR creates a new unit-length loop in this case to preserve the annotation.

Thanks Bohan for catching this issue.

Co-authored-by: Bohan Hou spectrometerh@gmail.com

@tvm-bot
Copy link
Copy Markdown
Collaborator

tvm-bot commented Apr 11, 2023

Thanks for contributing to TVM! Please refer to the contributing guidelines https://tvm.apache.org/docs/contribute/ for useful information and tips. Please request code reviews from Reviewers by @-ing them in a comment.

Generated by tvm-bot

This PR fixes a behavior of the UnifyThreadBinding pass which (at one
place) assumes a return value is always a ForNode, which is not right.

To be more specific, when a thread-binding loop has an annotation,
the current behavior is assuming that the post-recursive-mutation value
is also a ForNode, and apply the previous annotation directly to the new
loop. However, the post-recursive-mutation value is also possibly not a
ForNode. In this case, the current behavior is incorrect.

This PR creates a new unit-length loop in this case to preserve the
annotation.

Thanks Bohan for catching this issue.

Co-authored-by: Bohan Hou <spectrometerh@gmail.com>
@MasterJH5574 MasterJH5574 force-pushed the tvm-dev/2023-04-11-unify-thread-binding-ann branch from f535608 to b30a55b Compare April 11, 2023 14:14
MasterJH5574 added a commit to mlc-ai/relax that referenced this pull request Apr 11, 2023
…notation (apache/tvm#14588) (#187)

This PR fixes a behavior of the UnifyThreadBinding pass which (at one
place) assumes a return value is always a ForNode, which is not right.

To be more specific, when a thread-binding loop has an annotation, the
current behavior is assuming that the post-recursive-mutation value is
also a ForNode, and apply the previous annotation directly to the new
loop. However, the post-recursive-mutation value is also possibly not a
ForNode. In this case, the current behavior is incorrect.

This PR creates a new unit-length loop in this case to preserve the
annotation.

Thanks Bohan for catching this issue.

Co-authored-by: Bohan Hou <spectrometerh@gmail.com>
@MasterJH5574
Copy link
Copy Markdown
Contributor Author

@tvm-bot rerun

@tqchen tqchen merged commit 40af75b into apache:main Apr 12, 2023
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.

3 participants