Corpus ID: 211296505

MLIR: A Compiler Infrastructure for the End of Moore's Law

@article{Lattner2020MLIRAC,
  title={MLIR: A Compiler Infrastructure for the End of Moore's Law},
  author={Chris Lattner and Jacques A. Pienaar and Mehdi Amini and Uday Bondhugula and River Riddle and Albert Cohen and Tatiana Shpeisman and Andy Davis and Nicolas Vasilache and Oleksandr Zinenko},
  journal={ArXiv},
  year={2020},
  volume={abs/2002.11054}
}
This work presents MLIR, a novel approach to building reusable and extensible compiler infrastructure. MLIR aims to address software fragmentation, improve compilation for heterogeneous hardware, significantly reduce the cost of building domain specific compilers, and aid in connecting existing compilers together. MLIR facilitates the design and implementation of code generators, translators and optimizers at different levels of abstraction and also across application domains, hardware targets… Expand

Paper Mentions

Blog Post
CODIR: Towards an MLIR Codelet Model Dialect
TLDR
CODIR, the Codelet Model domain-specific language extension and intermediate representation built using the already existing Multi-Level Intermediate Representation (MLIR) compiler infrastructure is proposed, which aims to progressively lower a high-level language to an intermediate representation well suited for maximizing optimization opportunities available to the compiler while additionally providing a plethora of hardware support. Expand
Taming the Zoo: The Unified GraphIt Compiler Framework for Novel Architectures
TLDR
A new domain-specific intermediate representation, GraphIR, is introduced that encodes high-level algorithm and optimization information needed for hardware-specific code generation, making it easy to develop different backends for diverse architectures, including CPUs, GPUs, and next-generation hardware such as Swarm and the HammerBlade manycore. Expand
Unifying Compilers for SNARKs, SMT, and More
TLDR
This work shows that all of these communities can build upon a shared compiler infrastructure, because they all share a common abstraction: stateless, non-deterministic computations that the authors call existentially quantified circuits, or EQCs. Expand
PET-to-MLIR: A polyhedral front-end for MLIR
We present PET-to-MLIR, a new tool to enter the MLIR compiler framework from C source. The tool is based on the popular PET and ISL libraries for extracting and manipulating quasi-affine sets andExpand
ScaleHLS: Scalable High-Level Synthesis through MLIR
TLDR
The proposed ScaleHLS1, a next-generation HLS compilation flow on top of a multi-level compiler infrastructure called MLIR, for the first time, is able to represent and optimize HLS designs at multiple levels of abstraction and provides an HLS-dedicated transform and analysis library to solve the optimization problems at the suitable representation levels. Expand
The collection Virtual Machine: an abstraction for multi-frontend multi-backend data analysis
TLDR
This paper proposes the "Collection Virtual Machine" (or CVM)---an extensible compiler framework designed to keep the specialization process of data analytics systems tractable and improves the interoperability of both analyses and hardware platforms. Expand
ScaleHLS: A New Scalable High-Level Synthesis Framework on Multi-Level Intermediate Representation
  • Hanchen Ye, Cong Hao, +4 authors Deming Chen
  • Computer Science
  • 2021
TLDR
ScaleHLS is a next-generation HLS compilation flow on top of a multi-level compiler infrastructure called MLIR, for the first time, able to represent and optimize HLS designs at multiple levels of abstraction and provides an HLS-dedicated transform and analysis library to solve the optimization problems at the suitable representation levels. Expand
Area Exam: General-Purpose Performance Portable Programming Models for Productive Exascale Computing
Modern supercomputer architectures have grown increasingly complex and diverse since the end of Moore’s law in the mid-2000s, and are far more difficult to program than their predecessors. While HPCExpand
LLHD: a multi-level intermediate representation for hardware description languages
TLDR
LLHD is designed as simple, unambiguous reference description of a digital circuit, yet fully captures existing HDLs, and establishes the basis for innovation in HDLs and tools without redundant compilers or disjoint IRs. Expand
High Performance Code Generation in MLIR: An Early Case Study with GEMM
TLDR
An early case study on using MLIR, a new compiler intermediate representation infrastructure, for high-performance code generation andpects of MLIR covered in particular include memrefs, the affine dialect, and polyhedral utilities and pass infrastructure surrounding those. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 59 REFERENCES
Translation validation for an optimizing compiler
TLDR
A practical translation validation infrastructure, able to check the correctness of many of the transformations performed by a realistic compiler, can be implemented with about the effort typically required to implement one compiler pass. Expand
LLVM parallel intermediate representation: design and evaluation using OpenSHMEM communications
TLDR
It is shown how OpenSHMEM one-sided communications can be optimized via the implementation of PIR into the LLVM compiler, and two important optimizations for such operations are illustrated using loop tiling and communication vectorization. Expand
LLVM: a compilation framework for lifelong program analysis & transformation
  • Chris Lattner, V. Adve
  • Computer Science
  • International Symposium on Code Generation and Optimization, 2004. CGO 2004.
  • 2004
TLDR
The design of the LLVM representation and compiler framework is evaluated in three ways: the size and effectiveness of the representation, including the type information it provides; compiler performance for several interprocedural problems; and illustrative examples of the benefits LLVM provides for several challenging compiler problems. Expand
Semi-Automatic Composition of Loop Transformations for Deep Parallelism and Memory Hierarchies
TLDR
This work leverages on algorithmic advances in polyhedral code generation and has been implemented in a modern research compiler, using a semi-automatic optimization approach to demonstrate that current compilers suffer from unnecessary constraints and intricacies that can be avoided in a semantically richer transformation framework. Expand
In search of a program generator to implement generic transformations for high-performance computing
TLDR
By mimicking complex sequences of transformations useful to optimize real codes, it is shown that generative programming is a practical means to implement architecture-aware optimizations for high-performance applications and that complex, architecture-specific optimizations can be implemented in a type-safe, purely generative framework. Expand
Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs
TLDR
It is argued that lightweight modular staging enables a form of language virtualization, i.e. allows to go from a pure-library embedded language to one that is practically equivalent to a stand-alone implementation with only modest effort. Expand
A Programming Language Interface to Describe Transformations and Code Generation
TLDR
It is demonstrated that the automatically-generated code either performs closely or outperforms two hand-tuned GPU library kernels from Nvidia's CUBLAS 2.2 and 3.2 libraries. Expand
Declarative Loop Tactics for Domain-specific Optimization
TLDR
Declarative Loop Tactics is a novel framework of composable program transformations based on an internal tree-like program representation of a polyhedral compiler based on a declarative C++ API built around easy-to-program matchers and builders, which provide the foundation to develop loop optimization strategies. Expand
Tapir: Embedding Fork-Join Parallelism into LLVM's Intermediate Representation
TLDR
This paper explores how fork-join parallelism, as supported by concurrency platforms such as Cilk and OpenMP, can be embedded into a compiler's intermediate representation (IR) with only minor changes to its existing analyses and code transformations. Expand
Translation Validation
TLDR
This paper considers a translation (compilation) from the synchronous multi-clock data-ow language Signal to asynchronous (sequential) C-code and presents the notion of translation validation as a new approach to the veriication of translators (compilers, code generators). Expand
...
1
2
3
4
5
...