-
Notifications
You must be signed in to change notification settings - Fork 31
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
[RFC] Peeled matmul on MLIR-AIE #197
Comments
Thanks for the detailed description on the plan. In MLIR-AIR there is a pass I wonder if the pass might be useful in materializing your plan when we go from pack/copy -> air.dma -> (async) air.channel -> (fused) air.channel -> aie.objectFifo. Here are some CI tests showing how the pass works: https://github.com/Xilinx/mlir-air/blob/main/mlir/test/Transform/AIRDependencyScheduleOpt/fuse_channels.mlir |
I experimented with option 1 above and here is an updated gist with partially lowered IR FYI: https://gist.github.com/jtuyls/adafd09f9fc4ac8e2a85e4e3b2a4aead @nirvedhmeshram @yzhang93 |
The goal of this RFC is to discuss how peeled matmul IR can be lowered to AIE code. cc @MaheshRavishankar @erwei-xilinx @nirvedhmeshram @yzhang93 @Abhishek-Varma
A few notes before to start:
RFC
To start, here is some sample peeled matmul IR:
Issues with lowering peeled matmul IR to AIE code:
Now, looking at the AIE core side, peeled core code can be accomplished as shown in the snipped below. The goal is to get to something like this on the AIE core side, starting from the higher level peeled matmul IR above.
Options
For now, only option 1 is worked out to be discussed:
Option 1 (Superimpose region DMA state machines)
This option can be accomplished through following steps:
main
(AieCombineCoreCode)The transformations above warrants a demonstration of conceptual lowering which you can find here: https://gist.github.com/jtuyls/7e6a41619666fa3186b1a8156978eedc
Option 2 (Lower to objectfifo DMA state machine before peeling)
Not worked out for now.
The text was updated successfully, but these errors were encountered: