Skip to content

[SYCL-MLIR]: Improve Polygeist LICM to handle invariant operations in scf::ForOp and AffineForOp #8377

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

Merged
merged 33 commits into from
Feb 17, 2023

Conversation

etiotto
Copy link

@etiotto etiotto commented Feb 16, 2023

This PR improves the ParallelLICM pass in polygeist as follows:

  • adds support for non-parallel loop constructs scf::ForOp and improves handleing of AffineForOp
  • fixes a problem, in sequential loops function calls are conservatively considered to modify memory
  • add more tests for both reduction loops and loops that do not yield a value
  • renames ParallelLICM pass to simply LICM

Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
Signed-off-by: Tiotto, Ettore <[email protected]>
@etiotto etiotto added the sycl-mlir Pull requests or issues for sycl-mlir branch label Feb 16, 2023
@etiotto etiotto self-assigned this Feb 16, 2023
Copy link
Contributor

@victor-eds victor-eds left a comment

Choose a reason for hiding this comment

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

Nice changes to this pass. I think we're missing something else regarding operations side-effects: speculability. We should address this in a later PR, but it'd make sense to check for this also in this pass.

Signed-off-by: Tiotto, Ettore <[email protected]>
@etiotto
Copy link
Author

etiotto commented Feb 17, 2023

The failure:


Failed Tests (1):
SYCL :: BFloat16/bfloat16_conversions.cpp

is OK because another PR has a fix for this failure and that PR is not yet merged.

The x64 SYCL LLVM test failures are caused by a machine problem:

terminate called after throwing an instance of 'sycl::_V1::runtime_error'
  what():  No device of requested type available. -1 (PI_ERROR_DEVICE_NOT_FOUND)

I am merging the PR.

@etiotto etiotto merged commit e6e0838 into intel:sycl-mlir Feb 17, 2023
@etiotto etiotto deleted the ParallelLICM2 branch February 17, 2023 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sycl-mlir Pull requests or issues for sycl-mlir branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants