Add TileArray pattern rewriting infrastructure - #5
Open
ShangkunLi wants to merge 1 commit into
Open
ShangkunLi wants to merge 1 commit into
ShangkunLi wants to merge 1 commit into
Conversation
|
"rewrite" sounds confusing/ambiguous to me. Pattern match and rewrite has rewrite, what we are doing here is replace sth with existing kernel, rather than mlir pattern rewrite. Can you think about some other candidates for naming? |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
This PR adds infrastructure for replacing computations inside existing Taskflow tasks with reusable TileArray programs.
It introduces:
TileArrayRewritePattern, with an operation root and amatch_and_rewrite()callback;PatternRewriterutilities for replacing and erasing operations;Example
A pattern declares the source operation it handles and performs its checks and replacement in one callback:
The pattern is applied to an existing Taskflow module with:
When the pattern matches, Synapse builds and verifies the TileArray implementation, inserts its Neura kernel into the original task, and removes the matched operation. The task interface and dependency results remain unchanged.
When a pattern rejects the operation, the original IR is preserved.