Skip to content

Create a Runtime Module #31

@rengolin

Description

@rengolin

Same as #29 and #30, we need a Python module that allows us to execute an MLIR module (after pipeline or external) into a known target.

This involves understanding the environment (drivers, external tools), the target properties (micro-architecture, user options) and joining all into an easy-to-use dispatcher.

The two main cases we need to cover are:

  1. Internal runtime: sub-modules that implement a common interface and allow execution of MLIR programs, written in Python, checked into Lighthouse.
  2. External runtime: a sub-module that external tools (like IREE, TPP-MLIR) can override by providing a configuration file that will be used to create a series of calls into external tools and capture exit codes and I/O.

Key deliverable: A module with public interfaces and default implementations for well known CPU and GPU targets, plus an external script based runtime.

Future considerations:

  • For a future auto-tuner, we'd need to gather performance information in a structured way, which would justify the need to abstract away some of these simple shell scripts.

Ref: #16, #23

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions