MLIR: A Compiler Infrastructure for the End of Moore's Law
arXiv:2002.11054
Abstract
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 and execution environments. The contribution of this work includes (1) discussion of MLIR as a research artifact, built for extension and evolution, and identifying the challenges and opportunities posed by this novel design point in design, semantics, optimization specification, system, and engineering. (2) evaluation of MLIR as a generalized infrastructure that reduces the cost of building compilers-describing diverse use-cases to show research and educational opportunities for future programming languages, compilers, execution environments, and computer architecture. The paper also presents the rationale for MLIR, its original design principles, structures and semantics.
References in corpus (1)
Cited by in corpus (23)
- Neuromorphic Intermediate Representation: A Unified Instruction Set for Interoperable Brain-Inspired Computing
- Query Processing on Tensor Computation Runtimes
- Compiler Support for Sparse Tensor Computations in MLIR
- Compiling ONNX Neural Network Models Using MLIR
- On Physics-Informed Neural Networks for Quantum Computers
- High Performance Code Generation in MLIR: An Early Case Study with GEMM
- Pure Tensor Program Rewriting via Access Patterns (Representation Pearl)
- Automatic Kernel Generation for Volta Tensor Cores
- A High-Performance Sparse Tensor Algebra Compiler in Multi-Level IR
- Cortex: A Compiler for Recursive Deep Learning Models
- tf.data: A Machine Learning Data Processing Framework
- ProTuner: Tuning Programs with Monte Carlo Tree Search
- A Highly Configurable Hardware/Software Stack for DNN Inference Acceleration
- Optimizing DNN Compilation for Distributed Training with Joint OP and Tensor Fusion
- Phism: Polyhedral High-Level Synthesis in MLIR
- HIR: An MLIR-based Intermediate Representation for Hardware Accelerator Description
- Automated Backend-Aware Post-Training Quantization
- Comparing the costs of abstraction for DL frameworks
- SANM: A Symbolic Asymptotic Numerical Solver with Applications in Mesh Deformation
- The Collection Virtual Machine: An Abstraction for Multi-Frontend Multi-Backend Data Analysis
- Compiler Infrastructure for Specializing Domain-Specific Memory Templates
- Secure Optimization Through Opaque Observations
- Building a Reusable and Extensible Automatic Compiler Infrastructure for Reconfigurable Devices