This is a first step towards fully implementing the new dimension
level types and properties, illustrating with a fully functional
sorted COO of any dimension. Note that the sparsification part is
pretty complete. The required parts in the runtime support library
have been kept to a minimum, to avoid huge conflicts with Wren's
ongoing refactoring. The missing parts will be filled in later.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp | ||
---|---|---|
1395–1396 ↗ | (On Diff #460953) | How about having a merger.isSparseLevel utils? |
mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp | ||
---|---|---|
1332–1333 ↗ | (On Diff #460953) | What if you have lo = 0, hi = 1 here for singleton? (to allow the loop unroll opt kicking in later?) |
1374 ↗ | (On Diff #460953) | And you do not overwrite the value here. (the pidxs for singleton will become loop invariant, but it is okay because there is no loop actually). |
mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp | ||
---|---|---|
1332–1333 ↗ | (On Diff #460953) | Yeah that would be a good way to get the current loop unroller working. But I also feel we would break the regularity of codegen in sparsification just for the sake of working around a limitation in unrolling. Besides, I have put one of my best people on the task of improving unrolling ;-) |
1374 ↗ | (On Diff #460953) | Note that the "loop" could co-iterates with another, and then it remains. I have a CHECK example for that ready in the next revision. |
1395–1396 ↗ | (On Diff #460953) | Yeah, good idea, I can also use that for the scan one. |
mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp | ||
---|---|---|
1221 ↗ | (On Diff #460953) | I am wondering which one of the followings should we use? (d0) -> (d0 + 1) |
mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp | ||
---|---|---|
1221 ↗ | (On Diff #460953) | Waiting to see what feedback you get on https://reviews.llvm.org/D134204 |
mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp | ||
---|---|---|
1395–1396 ↗ | (On Diff #460953) | No, not really. |
Holding off landing this revision until Wren's chain of refactoring lands, and I will rebase this then before submitting.
mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp | ||
---|---|---|
1221 ↗ | (On Diff #460953) | Note that I reverted this again to addi over affine apply |
rebased with main
(note that all changes in support lib for singleton
disappeared since Wren already prefetched them into
the refactored support lib revisions)