In this PR, we wrap the given MLIR module ('s JIT execution engine) into a task in TaskFlow, and rely on TaskFlow's scheduler/executor to invoke simulation.
More TBA. In this initial push, the whole module is wrapped into a single task. The next step is to wrap hcl.to connected kernels into separate TaskFlow tasks, and pass the user-specified conditionals to taskflow executor.
I implemented this PR as an initial step to incorporate TaskFlow based simulation into HCL-dialect:
TaskFlow based simulation is used to speedup simulation of a multi-stage program: each stage is compiled and executed by a unique MLIR JIT Execution Engine.
Our compiler creates multiple backend TaskFlow tasks to simulate these stages in task-parallel fashion
In this PR, we wrap the given MLIR module ('s JIT execution engine) into a task in TaskFlow, and rely on TaskFlow's scheduler/executor to invoke simulation.
More TBA. In this initial push, the whole module is wrapped into a single task. The next step is to wrap
hcl.to
connected kernels into separate TaskFlow tasks, and pass the user-specified conditionals to taskflow executor.