Developer(s) | LLVM Developer Group |
---|---|
Written in | C++ |
Operating system | Cross-platform |
Type | Compiler |
Website | mlir |
MLIR (Multi-Level Intermediate Representation) is a unifying software framework for compiler development.[1] MLIR can make optimal use of a variety of computing platforms such as central processing units (CPUs), graphics processing units (GPUs), data processing units (DPUs), Tensor Processing Units (TPUs), field-programmable gate arrays (FPGAs), artificial intelligence (AI) application-specific integrated circuits (ASICs), and quantum computing units (QPUs).[2]
MLIR is a sub-project of the LLVM Compiler Infrastructure project and aims to build a "reusable and extensible compiler infrastructure (..) and aid in connecting existing compilers together."[3][4][5]
MLIR's strength is its ability to build domain specific compilers, particularly for weird domains that aren't traditional CPUs and GPUs, such as AI ASICS, quantum computing systems, FPGAs, and custom silicon.
The MLIR subproject is 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.