-
Notifications
You must be signed in to change notification settings - Fork 15.2k
[MLIR] Extend MPI dialect #123255
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
[MLIR] Extend MPI dialect #123255
Changes from 19 commits
Commits
Show all changes
45 commits
Select commit
Hold shift + click to select a range
1fbae54
Add `MPI_Comm`, `MPI_Request`, `MPI_Status`, `MPI_Op` type definitions
mofeing dc84ca4
Add `MPI_CommSize`, `MPI_ISend`, `MPI_IRecv` ops
mofeing 2ee10ab
Fix typo
mofeing 539bf43
Finish types
mofeing 662998d
Define `MPI_Op` enum & attr
mofeing c1ec63c
Add communicator argument to mpi ops as optional input argument
mofeing 7eda791
Add summary of new mpi types
mofeing b97a541
format code
mofeing d5725a8
Add `mpi.comm_split` op
mofeing 1a68b34
Add `mpi.barrier` op
mofeing 80a4259
Format code
mofeing cfb81af
Fix ops returning `MPI_Request`
mofeing 740cf0b
Add `mpi.wait` op
mofeing 1af1425
Add `mpi.allreduce` op
mofeing c11a60f
Fix assembly formats
mofeing d971d83
add some tests
mofeing beb5764
Fix input specifier
mofeing 2317994
Comment predefined constant MPI_Ops
mofeing 63ccc33
Replace `MPI_Op` new type for region
mofeing d318c60
Go back to only use predefined MPI_Ops
mofeing 8e3aa18
Remove `MPI_Operation` type
mofeing 9c708d4
Add `mpi.comm_world` op to return `MPI_COMM_WORLD`
mofeing 326b13f
Add tests
mofeing 2baf33f
Merge branch 'main' into mlir-mpi
mofeing 1fd5578
Fix anchor of assembly format
mofeing 016b856
Fix more anchors
mofeing 1931b8e
Fix anchors again
mofeing aec9fbd
fix another anchor
mofeing d4684fb
fix optional format of `MPI_BarrierOp`
mofeing 794fa25
fix more anchors
mofeing f0d0f44
fix anchors in `MPI_ISendOp` and `MPI_IRecvOp`
mofeing 92f2cca
fix format
mofeing 3688915
Define `getCanonicalizationPatterns` for `ISendOp`, `IRecvOp`, `AllRe…
mofeing 3abe925
remove duplicated `getCanonicalizationPatterns`
mofeing 7a9fa9c
Remove canonicalization for `AllReduceOp`
mofeing 1926bda
fix test
mofeing 89ec111
fix some assembly formats
mofeing 30fb673
fix syntax
mofeing 6abba5a
Remove MPI_Comm type
mofeing 452f760
fix tests
mofeing 56868e8
change order of results of `MPI_CommRankOp`
mofeing b9988b3
format code
mofeing 2075c02
format code
mofeing 8477428
refactor assembly format of `isend`, `irecv` and fix tests
mofeing 1259cbc
last fixes
mofeing File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tobiasgrosser is there some way to impose a trait to input regions? speaking with @vchuravy, he suggested that we might need the region (that implements the MPI op) to be "pure"; i.e. independent from the whatever is above the region.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://mlir.llvm.org/docs/Traits/#isolatedfromabove
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://github.com/opencompl/llvm-project/blob/b7eee2c3fe953df5f5aa1f543759d9a1e54d5ef7/mlir/include/mlir/IR/BuiltinOps.td#L34
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You add
IsolatedFromAboveto the traits of an Op.