-
Notifications
You must be signed in to change notification settings - Fork 98
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
CascadeFlowOp and ConfigureCascadeOp #974
Conversation
…dd tests. Add mlir_aie_configure_cascade target to AIE2 that generates libXAIE calls from ConfigureCascadeOps.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Related to #517. |
Coverage ReportCreated: 2024-02-19 15:45Click here for information about interpreting this report.
Generated by llvm-cov -- llvm version 14.0.0 |
Is this not supported on IPU? Ie shouldn't CDODirect also be extended to support? |
Yes, it is. I'm working on modifying CDODirect. |
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Would it be possible to make clearer in the operation what is the input and what is the output. Perhaps if runing an LSP server knowing the dialect the IDE could display it as when the mouse is above it, but that does not seem super clear in other context, such as reading slides or random code samples. :-) |
We don't have such functionality. |
…eOp. Update lowerings and tests.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.
Looking great!
This PR adds two new operations to the AIE dialect,
CascadeFlowOp
andConfigureCascadeOp
.CascadeFlowOp
represents a cascade stream flow between the two input tiles. The op is used like in the example below:Each
CascadeFlowOp
is lowered into aConfigureCascadeOp
which takes as input a tile, an input cascade direction and an output cascade direction. The input and output directions of the cascade for that tile are based on the relative positions of the tiles in theCascadeFlowOp
. Unless specified otherwise, the default input and output directions for the cascade areNorth
andSouth
respectively. The lowering is implemented inAIELowerCascadeFlows.cpp
and is called usingaie-opt --aie-lower-cascade-flows <path to mlir code>
. As an example, the code above lowers to:Additionally, this PR adds a new configuration function,
mlir_aie_configure_cascade
, toAIETargetXAIEV2.cpp
that generates libXAIE calls toXAie_CoreConfigAccumulatorControl
for eachConfigureCascadeOp
. This new target should be called from the host code at the beginning of execution to properly setup the registers for each tile. Similar configuration functions have been added toAIETargetCDODirect.cpp
andAIETargetAirbin.cpp
.