mlirSynth: Automatic, Retargetable Program Raising in Multi-Level IR using Program Synthesis
Alexander Brauckmann, Elizabeth Polgreen, Tobias Grosser, Michael F., P. O'Boyle

TL;DR
mlirSynth is a novel program synthesis approach that automatically raises lower-level MLIR dialects to high-level dialects, enabling better optimization and retargeting for diverse hardware without manual rule definitions.
Contribution
It introduces a rule-free, program synthesis-based method for lowering MLIR dialects, improving coverage and retargetability over existing manual-rule approaches.
Findings
Achieves higher coverage than previous methods on Polybench.
Provides significant speedups (2.5x to 3.4x) over state-of-the-art flows.
Enables retargeting to domain-specific accelerators with 21.6x speedup.
Abstract
MLIR is an emerging compiler infrastructure for modern hardware, but existing programs cannot take advantage of MLIR's high-performance compilation if they are described in lower-level general purpose languages. Consequently, to avoid programs needing to be rewritten manually, this has led to efforts to automatically raise lower-level to higher-level dialects in MLIR. However, current methods rely on manually-defined raising rules, which limit their applicability and make them challenging to maintain as MLIR dialects evolve. We present mlirSynth -- a novel approach which translates programs from lower-level MLIR dialects to high-level ones without manually defined rules. Instead, it uses available dialect definitions to construct a program space and searches it effectively using type constraints and equivalences. We demonstrate its effectiveness \revi{by raising C programs} to two…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Embedded Systems Design Techniques · Logic, programming, and type systems
