MLIR (software)

MLIR
Developer(s)LLVM Developer Group
Written inC++
Operating systemCross-platform
TypeCompiler
Websitemlir.llvm.org

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]

  1. ^ Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. (2002). Compilers: principles, techniques, and tools. Addison-Wesley series in computer science (Reprinted, with corr., [36. Druck] ed.). Reading, Mass.: Addison-Wesley. ISBN 978-0-201-10088-4.
  2. ^ "Why Mojo". docs.modular.com. Modular Inc. 2023. Retrieved 2023-08-28. 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.
  3. ^ "The LLVM Compiler Infrastructure". LLVM. Retrieved 2023-10-01. 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.
  4. ^ Lattner, Chris; Amini, Mehdi; Bondhugula, Uday; Cohen, Albert; Davis, Andy; Pienaar, Jacques; Riddle, River; Shpeisman, Tatiana; Vasilache, Nicolas; Zinenko, Oleksandr (2021). "MLIR: Scaling Compiler Infrastructure for Domain Specific Computation". 2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO). pp. 2–14. doi:10.1109/CGO51591.2021.9370308. ISBN 978-1-7281-8613-9.
  5. ^ Mernik, Marjan; Heering, Jan; Sloane, Anthony M. (December 2005). "When and how to develop domain-specific languages". ACM Computing Surveys. 37 (4): 316–344. doi:10.1145/1118890.1118892. ISSN 0360-0300. S2CID 207158373.