Skip to content
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

Generalize before propagation #951

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

adam-smnk
Copy link
Collaborator

No description provided.

@adam-smnk adam-smnk added the benchmark Triggers benchmark jobs label Aug 6, 2024
@adam-smnk adam-smnk marked this pull request as draft August 6, 2024 15:56
@adam-smnk adam-smnk force-pushed the generalize-before-propagation branch from 0315fc0 to 7aa3247 Compare August 7, 2024 12:15
@adam-smnk adam-smnk added benchmark Triggers benchmark jobs and removed benchmark Triggers benchmark jobs labels Aug 7, 2024
Allows better pack-unpack propagation by first generalizing linalg
named ops. This is mainly due to limited support for named ops in
layout propagation patterns.
Adds a custom wrapper around Linalg named ops generalization.

The custom pattern exposes control over which ops should be
generalized.
By default, the pass filters out linalg.fill ops as layout propagation
and fusion behave better when the named version is present.
This improves overall IR quality after bufferization.
@adam-smnk adam-smnk force-pushed the generalize-before-propagation branch from 7aa3247 to 799d1cc Compare August 9, 2024 12:52
@adam-smnk adam-smnk added benchmark Triggers benchmark jobs and removed benchmark Triggers benchmark jobs labels Aug 9, 2024
@adam-smnk
Copy link
Collaborator Author

Most important generalization is now covered by the added folding patterns.

Technically, this further named ops generalization opens up more fusion opportunities when named ops are present.
However, current performance numbers don't reflect much change and there's some regression in the pytorch benchmarks.

For now keeping it as a draft for further investigation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
benchmark Triggers benchmark jobs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant