Modeling task graphs in MLIR

Hi all,

Are there any MLIR dialects which are intended to model task graphs? By task graph I mean a directed graph where nodes are operations and edges are “run-after” dependencies and not data dependencies like in a dataflow graph.

Thanks!

I think the async dialect models such dependencies. See for e.g the async execute op.
https://mlir.llvm.org/docs/Dialects/AsyncDialect/#asyncexecute-mlirasyncexecuteop

In future (late this year or early next year) we will have task dependencies in the OpenMP dialect when we start working on tasks.

1 Like

Thank you @kiranchandramohan, that seems to be the closest thing to what I’m looking for.

I was curious if anyone came up with a more direct way of expressing “runs-after” dependencies, other than using a made up data dependency (async.token).