-
Notifications
You must be signed in to change notification settings - Fork 12
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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels