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 (14)
- Compiling ONNX Neural Network Models Using MLIR
- High Performance Code Generation in MLIR: An Early Case Study with GEMM
- Automatic Kernel Generation for Volta Tensor Cores
- Cortex: A Compiler for Recursive Deep Learning Models
- A High-Performance Sparse Tensor Algebra Compiler in Multi-Level IR
- tf.data: A Machine Learning Data Processing Framework
- ProTuner: Tuning Programs with Monte Carlo Tree Search
- Phism: Polyhedral High-Level Synthesis in MLIR
- Automated Backend-Aware Post-Training Quantization
- HIR: An MLIR-based Intermediate Representation for Hardware Accelerator Description
- The Collection Virtual Machine: An Abstraction for Multi-Frontend Multi-Backend Data Analysis
- Compiler Infrastructure for Specializing Domain-Specific Memory Templates
- Comparing the costs of abstraction for DL frameworks
- Secure Optimization Through Opaque Observations