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