This is an archive of the discontinued LLVM Phabricator instance.

[mlir][sparse] finalize sparse output in the presence of reductions
ClosedPublic

Authored by aartbik on Dec 3 2021, 6:01 PM.

Details

Summary

This revision implements sparse outputs (from scratch) in all cases where
the loops can be reordered with all but one parallel loops outer. If the
inner parallel loop appears inside one or more reductions loops, then an
access pattern expansion is required (aka. workspaces in TACO speak).

Diff Detail

Event Timeline

aartbik created this revision.Dec 3 2021, 6:01 PM
aartbik requested review of this revision.Dec 3 2021, 6:01 PM
aartbik updated this revision to Diff 392271.Dec 6 2021, 8:18 PM

rebased with main to keep it closer to recent mods

bixia accepted this revision.Dec 7 2021, 10:19 AM
bixia added inline comments.
mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
774

This doesn't generate code for the "False branch". Maybe we want to move it to after "Value assignment" at the end in this case?

This revision is now accepted and ready to land.Dec 7 2021, 10:19 AM
aartbik marked an inline comment as done.Dec 7 2021, 10:28 AM
aartbik updated this revision to Diff 392459.Dec 7 2021, 10:31 AM

addressed comment, rebased again with main