Milestone 1 (v0.1)
Main Goal - Visualize & Execute
This will highlight half of the essential work that this tool should be able to do in both visualizing a model and executing it using the current TT-Forge stack. The frontend transformation of a model -> TTIR will be done outside of the scope of TT-Explorer at the moment. For this milestone TT-Explorer will be able to spin up a host-side and a client-side instance. The tool will be able to ingest TTIR modules to produce a visual result, and be able to execute this module. Ambitiously, the performance traces should be collected back into TT-Explorer to be displayed.
Tasks:
-
Load TTIR Modules and Visualize TTIR-Ops in Model Explorer -
Create Extensible Notebook UX allowing for visualization and scripting capabilities -
Add functionality to Model Explorer to load from re-compiled TTIR Modules (might be from JSON) -
Add functionality to TT-MLIR to execute from Python Bindings -
Create REST API skeleton in TT-Adapter -
From REST API Call, Invoke python bindings to execute TTIR module using TT-Adapter - (If possible) Parse Perf Trace Artifact and visualize performance in Model-Explorer (as Node Data)
Milestone 2 (v0.2)
Main Goal - Model Editor
The primary function of TT-Explorer is to visualize and edit the model according to what the user defines as overrides the automatically generated compiler results. This milestone highlights that functionality in TT-Explorer, focusing around providing UI, TT-MLIR, and TT-Explorer features that enable the user to edit and tune a model “in-loop” with the TT-Forge compiler.
Tasks:
- Flesh out and test locations ID such that operations can be tracked through the compiler stack.
- Use Loc IDs to bind TTIR Ops with Tracy Perf Trace Artifact, and send to Model-Explorer to visualize.
- Implement Overrides Functionality into TT-MLIR, tracking based on Loc IDs.
- Overhaul UI to enable editing node attributes, use these updated fields to send information back to TT-Explorer via REST API (in the form of an Overrides JSON)
- Parse Overrides JSON and apply Overrides over a REST API Call, visualize re-compiled graph now.
- Provide REST API endpoint to track “legal” configurations and provide “legal” options attached to Graph JSON.
Milestone 3 (v0.3+)
Main Goal - Matured Tool and Extensibility
The focus of this milestone is to transition TT-Explorer from a prototype tool into a mature visualization and editing tool for “Human-In-Loop” compilation. The tool is now planned to made extensible for other dialects and entry points forecast into TT-MLIR (Jax, StableHLO, etc…) and development of the visualization components of the tool provide feedback to upstream repos like model-explorer
. Here the focus is on providing extensible interfaces for new UI elements (in supporting multi-chip and beyond), REST API, and Overrides.
Tasks:
- Begin researching autogenerated Python bindings for pipelines and transformations defined in C++.
- Create modular frontend capabilities out of Flask app in Model-Explorer
- Create a “mono-adapter” which holds the paths to invoke dialect-specific adapters for each dialect to be supported by TT-Explorer
-
Begin adding new dialects like
.ttm
,.ttnn
to Model Explorer so that complied results can be inspected and analyzed to optimize at different steps of the compiler. - To be defined later, depending on the growth of the MLIR Project