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

AIRSplitL2Memref: Code refactor to improve generality #884

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
d67ba17
Use memrefSplitInfoTy and infoEntryTy to store memref splitting infor…
erwei-xilinx Jan 27, 2025
a8e776e
Fixup unused vars
erwei-xilinx Jan 27, 2025
8f592a0
Fixup an issue causing getMemrefSplitDim to fail if offsets were prod…
erwei-xilinx Jan 28, 2025
fe989c0
Add scf.parallel unrolling helper for partially unrolling some select…
erwei-xilinx Jan 30, 2025
49de71e
Add variant of isRegionEquivalentTo and isEquivalentTo that does not …
erwei-xilinx Jan 30, 2025
7d7a50d
Rewrite the AIRSplitL2Memref function; perform tiling on channel ops …
erwei-xilinx Jan 30, 2025
ce0e778
Fixup unused vars
erwei-xilinx Jan 30, 2025
c941266
Apply split stride factor at split dimension, if the dimension roots …
erwei-xilinx Jan 30, 2025
53735bb
Enable splitting info as overriding commands
erwei-xilinx Jan 30, 2025
607310f
Add op map argument to unrollScfParallel to keep track of the operati…
erwei-xilinx Jan 31, 2025
33d0122
Refactor to add split_dim_on_offsets field to infoEntryTy which keeps…
erwei-xilinx Jan 31, 2025
f84b253
Enable for loop step size mutation to allow for contiguous data access
erwei-xilinx Jan 31, 2025
5d908e6
Merge branch 'main' of github.com:erwei-xilinx/mlir-air-erwei into re…
erwei-xilinx Jan 31, 2025
373d46e
Retire the legacy logic trying to infer the split dimension at L3; we…
erwei-xilinx Feb 1, 2025
57528c7
Now we are generating an alternative form for test12
erwei-xilinx Feb 1, 2025
a4f182e
Merge branch 'main' of github.com:erwei-xilinx/mlir-air-erwei into re…
erwei-xilinx Feb 3, 2025
274913c
Fixup the loop splitting strategy on L3 with a splitStrideFactor dete…
erwei-xilinx Feb 4, 2025
17a5d25
Add mlir ir unit tests checking for support for loop-nest with repeat…
erwei-xilinx Feb 5, 2025
06cdb35
Clean up debug printouts as op attributes
erwei-xilinx Feb 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions mlir/include/air/Util/Dependency.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,13 @@ bool isAsyncDependent(Operation *a, Operation *b);
scf::ForOp hoistTargetOpsToNewSCFFor(PatternRewriter &rewriter,
scf::ForOp for_op,
SmallVector<Operation *> target_ops);
LogicalResult unrollScfParallel(OpBuilder builder, scf::ParallelOp par,
Operation *originalChanOp, IRMapping remap);
LogicalResult
unrollScfParallel(OpBuilder builder, scf::ParallelOp par, IRMapping remap,
llvm::DenseMap<Operation *, SmallVector<Operation *>> &opMap);
LogicalResult unrollScfParallelOnDims(
RewriterBase &rewriter, scf::ParallelOp par, IRMapping remap,
SmallVector<int> dims,
llvm::DenseMap<Operation *, SmallVector<Operation *>> &opMap);
void populateAIRunrollAIRChannelPutGetInScfParallelPatterns(
RewritePatternSet &patterns);
air::WaitAllOp replaceAsyncOpWithWaitAll(OpBuilder builder, IRMapping &remap,
Expand Down
7 changes: 7 additions & 0 deletions mlir/include/air/Util/Util.h
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,13 @@ void populateBufferMemrefToFuncArgsPattern(RewritePatternSet &patterns);
Region *findCommonRegionContainingAllAncestors(SmallVector<Operation *> ops,
Operation *until = nullptr);

// A lite version of OperationEquivalence::isRegionEquivalentTo which only
// checks for const value equivalences.
bool isRegionEquivalentTo(Region *lhs, Region *rhs);
// A lite version of OperationEquivalence::isEquivalentTo which only checks for
// const value equivalences.
bool isEquivalentTo(Operation *lhs, Operation *rhs);

} // namespace air
} // namespace xilinx

Expand Down
Loading
Loading