-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
Same as #29, we need to create a module that will take that ingress, in the form of an Python MLIR module, and run through a pipeline.
This module, however, is more complicated. It should allow one to create a pipeline in different ways, for example:
- Load a transform schedule from an MLIR file and apply it to the payload.
- Build a pass pipeline (in Python) and run it on the payload.
- Build schedules (statically or dynamically) and apply it on the payload.
The output of this module should be a Python MLIR module with the result of the payload through the pipeline. This can be taken by the subsequent runtime module for final execution.
Key deliverable: Abstract away the multiple ways we run pipelines in the examples into this module and move the examples to use the module instead.
Future considerations:
- This module could guide users on building their own schedules / pipelines (refined API), but not in its first instance. For now, the pipeline should be provided to the module as is.
- This is where we connect an auto-tuner as an external program / interface that builds and mutates schedules and pipelines, iterating the payload through them, perhaps multi-versioning, etc. This should be tackled later on a separate issue, but we should design it now with the intent of having that soon after.
- We should be aware of external usage (downstream compilers) and interoperate lighthouse schedules with external tool pipelines, to reach the final output.
Metadata
Metadata
Assignees
Labels
No labels