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 (2)
Cited by in corpus (32)
- Hardware Acceleration of Sparse and Irregular Tensor Computations of ML Models: A Survey and Insights
- What Do Compressed Deep Neural Networks Forget?
- Neuromorphic Intermediate Representation: A Unified Instruction Set for Interoperable Brain-Inspired Computing
- Compiler Support for Sparse Tensor Computations in MLIR
- Query Processing on Tensor Computation Runtimes
- Characterising Bias in Compressed Models
- 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)
- Nimble: Efficiently Compiling Dynamic Neural Networks for Model Inference
- Data Movement Is All You Need: A Case Study on Optimizing Transformers
- DNNFusion: Accelerating Deep Neural Networks Execution with Advanced Operator Fusion
- 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
- Q-EEGNet: an Energy-Efficient 8-bit Quantized Parallel EEGNet Implementation for Edge Motor-Imagery Brain--Machine Interfaces
- ProTuner: Tuning Programs with Monte Carlo Tree Search
- Optimizing DNN Compilation for Distributed Training with Joint OP and Tensor Fusion
- A Highly Configurable Hardware/Software Stack for DNN Inference Acceleration
- EVEREST: A design environment for extreme-scale big data analytics on heterogeneous platforms
- Phism: Polyhedral High-Level Synthesis in MLIR
- DISC: A Dynamic Shape Compiler for Machine Learning Workloads
- HIR: An MLIR-based Intermediate Representation for Hardware Accelerator Description
- Automated Backend-Aware Post-Training Quantization
- Comparing the costs of abstraction for DL frameworks
- Compiler Infrastructure for Specializing Domain-Specific Memory Templates
- The Collection Virtual Machine: An Abstraction for Multi-Frontend Multi-Backend Data Analysis
- SANM: A Symbolic Asymptotic Numerical Solver with Applications in Mesh Deformation
- Secure Optimization Through Opaque Observations
- Building a Reusable and Extensible Automatic Compiler Infrastructure for Reconfigurable Devices