Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code
Name
tiramisu_paper.pdf
Description
Accepted version
Size
421.46 KB
Format
Adobe PDF
Checksum (MD5)
4968fb82afd7cde5917e9f3967a89c70
Author(s) • • • • • • • •
Baghdadi, Mohamed Riyadh
Ray, Jessica Morgan
Romdhane, Malek Ben
Del Sozzo, Emanuele
Akkas, Abdurrahman
Zhang, Yunming
Suriana, Patricia
Kamil, Shoaib
Amarasinghe, Saman P
Date Issued
March 2019
Journal
2019 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)
Publisher
Institute of Electrical and Electronics Engineers (IEEE)
Citation
Baghdadi, Riyadh et al. "Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code." 2019 IEEE/ACM International Symposium on Code Generation and Optimization, February 2019, Washington, DC, USA, Institute of Electrical and Electronics Engineers, March 2019. © 2019 IEEE
Version
Author's final manuscript
Abstract
This paper introduces Tiramisu, a polyhedral framework designed to generate high performance code for multiple platforms including multicores, GPUs, and distributed machines. Tiramisu introduces a scheduling language with novel commands to explicitly manage the complexities that arise when targeting these systems. The framework is designed for the areas of image processing, stencils, linear algebra and deep learning. Tiramisu has two main features: it relies on a flexible representation based on the polyhedral model and it has a rich scheduling language allowing fine-grained control of optimizations. Tiramisu uses a four-level intermediate representation that allows full separation between the algorithms, loop transformations, data layouts, and communication. This separation simplifies targeting multiple hardware architectures with the same algorithm. We evaluate Tiramisu by writing a set of image processing, deep learning, and linear algebra benchmarks and compare them with state-of-the-art compilers and hand-tuned libraries. We show that Tiramisu matches or outperforms existing compilers and libraries on different hardware architectures, including multicore CPUs, GPUs, and distributed machines.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1109/cgo.2019.8661197