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

[BugFix][TIR] ThreadSync with shared.dyn awareness #15478

Merged
merged 1 commit into from
Aug 4, 2023

Conversation

MasterJH5574
Copy link
Contributor

This PR fixes an issue of the ThreadSync pass.

Prior to this PR, the pass is not aware of shared.dyn scope whose users all share a same shared memory space. This feature is not necessarily already revealed in the IR at the time of applying ThreadSync. This means that when applying ThreadSync, in the IR, each buffer of shared.dyn scope still uses its own data Var, and ThreadSync is thus unable to detect the conflict properly and insert the sync instructions properly.

This PR explicitly makes ThreadSync be aware of the shared.dyn scope, and redirect all the access vars of shared.dyn memory to a common var, so that ThreadSync analysis can find out the conflict and insert the sync instructions.

This PR fixes an issue of the ThreadSync pass.

Prior to this PR, the pass is not aware of `shared.dyn` scope whose
users all share a same shared memory space. This feature is not
necessarily already revealed in the IR at the time of applying
ThreadSync. This means that when applying ThreadSync, in the IR,
each buffer of `shared.dyn` scope still uses its own data Var,
and ThreadSync is thus unable to detect the conflict properly and
insert the sync instructions properly.

This PR explicitly makes ThreadSync be aware of the `shared.dyn` scope,
and redirect all the access vars of `shared.dyn` memory to a common var,
so that ThreadSync analysis can find out the conflict and insert the
sync instructions.
@tvm-bot
Copy link
Collaborator

tvm-bot commented Aug 4, 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

junrushao pushed a commit to junrushao/tvm that referenced this pull request Aug 4, 2023
Cherrypicked from apache#15478.

This PR fixes an issue of the ThreadSync pass.

Prior to this PR, the pass is not aware of `shared.dyn` scope whose
users all share a same shared memory space. This feature is not
necessarily already revealed in the IR at the time of applying
ThreadSync. This means that when applying ThreadSync, in the IR,
each buffer of `shared.dyn` scope still uses its own data Var,
and ThreadSync is thus unable to detect the conflict properly and
insert the sync instructions properly.

This PR explicitly makes ThreadSync be aware of the `shared.dyn` scope,
and redirect all the access vars of `shared.dyn` memory to a common var,
so that ThreadSync analysis can find out the conflict and insert the
sync instructions.
junrushao pushed a commit to junrushao/tvm that referenced this pull request Aug 4, 2023
Cherry-picked from apache#15478.

This PR fixes an issue of the ThreadSync pass.

Prior to this PR, the pass is not aware of `shared.dyn` scope whose
users all share a same shared memory space. This feature is not
necessarily already revealed in the IR at the time of applying
ThreadSync. This means that when applying ThreadSync, in the IR,
each buffer of `shared.dyn` scope still uses its own data Var,
and ThreadSync is thus unable to detect the conflict properly and
insert the sync instructions properly.

This PR explicitly makes ThreadSync be aware of the `shared.dyn` scope,
and redirect all the access vars of `shared.dyn` memory to a common var,
so that ThreadSync analysis can find out the conflict and insert the
sync instructions.
junrushao added a commit that referenced this pull request Aug 4, 2023
Cherry-picked from #15478.

This PR fixes an issue of the ThreadSync pass.

Prior to this PR, the pass is not aware of `shared.dyn` scope whose
users all share a same shared memory space. This feature is not
necessarily already revealed in the IR at the time of applying
ThreadSync. This means that when applying ThreadSync, in the IR,
each buffer of `shared.dyn` scope still uses its own data Var,
and ThreadSync is thus unable to detect the conflict properly and
insert the sync instructions properly.

This PR explicitly makes ThreadSync be aware of the `shared.dyn` scope,
and redirect all the access vars of `shared.dyn` memory to a common var,
so that ThreadSync analysis can find out the conflict and insert the
sync instructions.

Co-authored-by: Ruihang Lai <[email protected]>
@junrushao junrushao merged commit 5438383 into apache:main Aug 4, 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.

4 participants