Proceedings Article10.1145/3446804.3446844
Integrating a functional pattern-based IR into MLIR
Martin Lücke,Michel Steuwer,Aaron L. Smith +2 more
- 02 Mar 2021
- pp 12-22
9
TL;DR: In this paper, a functional pattern-based intermediate representation (IR) is proposed for domain specific languages, which can capture the program semantics as compositions of common computational patterns enabling rewrite-based optimizations.
read more
Abstract: The continued specialization in hardware and software due to the end of Moore's law forces us to question fundamental design choices in compilers, and in particular for domain specific languages. The days where a single universal compiler intermediate representation (IR) was sufficient to perform all important optimizations are over. We need novel IRs and ways for them to interact with one another while leveraging established compiler infrastructures. In this paper, we present a practical implementation of a functional pattern-based IR in the SSA-based MLIR framework. Our IR captures the program semantics as compositions of common computational patterns enabling rewrite-based optimizations. We discuss the integration with other IRs by demonstrating the compilation of a neural network represented as a TensorFlow graph down to optimized LLVM code via our functional pattern-based IR. Our implementation demonstrates for the first time a practical integration of a functional pattern-based IR with other IRs and it enables the construction of sophisticated code generators for domain specific languages.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Source Matching and Rewriting for MLIR Using String-Based Automata
TL;DR: SMR as discussed by the authors uses a two-phase automaton-based DAG-matching algorithm inspired by early work on tree-pattern matching to match idioms from Fortran (FIR) and C (CIL) programs.
Expression Acceleration: Seamless Parallelization of Typed High-Level Languages
TL;DR: In this paper , the compiler automatically infers which code needs to be accelerated and provides a compiler pipeline for the approach and show how to handle several challenges, including expression extraction, well-formedness, and compiling using multiple backends.
2
eCC++ : A Compiler Construction Framework for Embedded Domain-Specific Languages
Marc Gonzàlez,Joel E. Denny,Pedro Valero‐Lara,Seyong Lee,Keita Teranishi,Jeffrey S. Vetter +5 more
- 27 May 2024
TL;DR: The paper evaluates the eCC++ expressiveness and usability describing the process of embedding GraphIt, a high-performance graph language in C++, targeting the existing capabilities in the MLIR infrastructure.
Journal Article
Source Matching and Rewriting
TL;DR: Experimental results show that SMR can effectively match idioms from Fortran (FIR) and C (CIL) programs while raising them as BLAS calls to improve performance.
References
•Proceedings Article
PyTorch: An Imperative Style, High-Performance Deep Learning Library
Adam Paszke,Sam Gross,Francisco Massa,Adam Lerer,James Bradbury,Gregory Chanan,Trevor Killeen,Zeming Lin,Natalia Gimelshein,Luca Antiga,Alban Desmaison,Andreas Kopf,Edward Z. Yang,Zachary DeVito,Martin Raison,Alykhan Tejani,Sasank Chilamkurthy,Benoit Steiner,Lu Fang,Junjie Bai,Soumith Chintala +20 more
- 01 Jan 2019
TL;DR: This paper details the principles that drove the implementation of PyTorch and how they are reflected in its architecture, and explains how the careful and pragmatic implementation of the key components of its runtime enables them to work together to achieve compelling performance.
LLVM: a compilation framework for lifelong program analysis & transformation
Chris Lattner,Vikram Adve +1 more
- 20 Mar 2004
TL;DR: The design of the LLVM representation and compiler framework is evaluated in three ways: the size and effectiveness of the representation, including the type information it provides; compiler performance for several interprocedural problems; and illustrative examples of the benefits LLVM provides for several challenging compiler problems.
google,我,萨娜
方华
- 01 Jan 2006
TL;DR: After you change your VT Google password, you will be unable to log on to VT Google Apps services including Mail, Drive, Groups, etc.
3.8K
Efficiently computing static single assignment form and the control dependence graph
TL;DR: In this article, the authors present new algorithms that efficiently compute static single assignment forms and control dependence graphs for arbitrary control flow graphs using the concept of {\em dominance frontiers} and give analytical and experimental evidence that these data structures are usually linear in the size of the original program.
TVM: an automated end-to-end optimizing compiler for deep learning
Tianqi Chen,Thierry Moreau,Ziheng Jiang,Lianmin Zheng,Eddie Yan,Meghan Cowan,Haichen Shen,Leyuan Wang,Yuwei Hu,Luis Ceze,Carlos Guestrin,Arvind Krishnamurthy +11 more
- 08 Oct 2018
TL;DR: TVM as discussed by the authors is a compiler that exposes graph-level and operator-level optimizations to provide performance portability to deep learning workloads across diverse hardware back-ends, such as mobile phones, embedded devices, and accelerators.