-
Notifications
You must be signed in to change notification settings - Fork 77
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
transformations: New linalg-fuse-multiply-add pass #3347
Conversation
This is a replacement for #3344 @superlopuh @AntonLydike |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3347 +/- ##
=======================================
Coverage 90.08% 90.09%
=======================================
Files 446 447 +1
Lines 56443 56494 +51
Branches 5427 5431 +4
=======================================
+ Hits 50845 50896 +51
Misses 4163 4163
Partials 1435 1435 ☔ View full report in Codecov by Sentry. |
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.
The code looks good, although my understanding is that linalg is not designed to be used in this way, and instead fuses after tiling. I wonder if there's a similar direction for you to look into, maybe for later.
It made sense in my mind to do this sort of op fusion before bufferization, though maybe it doesn't make a difference? |
Introduces a new pass to fuse `linalg.mul` and `linalg.add` into `linalg.generic` with the functionality of an FMA op. --------- Co-authored-by: n-io <[email protected]>
Introduces a new pass to fuse
linalg.mul
andlinalg.add
intolinalg.generic
with the functionality of an FMA op.