Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code

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...

Full description

Bibliographic Details
Main Authors: Baghdadi, Mohamed Riyadh, Ray, Jessica Morgan, Romdhane, Malek Ben, Del Sozzo, Emanuele, Akkas, Abdurrahman, Zhang, Yunming, Suriana, Patricia, Kamil, Shoaib, Amarasinghe, Saman P
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Format: Article
Language:English
Published: Institute of Electrical and Electronics Engineers (IEEE) 2020
Online Access:https://hdl.handle.net/1721.1/128700
_version_ 1811076521324969984
author Baghdadi, Mohamed Riyadh
Ray, Jessica Morgan
Romdhane, Malek Ben
Del Sozzo, Emanuele
Akkas, Abdurrahman
Zhang, Yunming
Suriana, Patricia
Kamil, Shoaib
Amarasinghe, Saman P
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Baghdadi, Mohamed Riyadh
Ray, Jessica Morgan
Romdhane, Malek Ben
Del Sozzo, Emanuele
Akkas, Abdurrahman
Zhang, Yunming
Suriana, Patricia
Kamil, Shoaib
Amarasinghe, Saman P
author_sort Baghdadi, Mohamed Riyadh
collection MIT
description 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.
first_indexed 2024-09-23T10:23:30Z
format Article
id mit-1721.1/128700
institution Massachusetts Institute of Technology
language English
last_indexed 2024-09-23T10:23:30Z
publishDate 2020
publisher Institute of Electrical and Electronics Engineers (IEEE)
record_format dspace
spelling mit-1721.1/1287002022-09-26T17:35:11Z Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code Baghdadi, Mohamed Riyadh Ray, Jessica Morgan Romdhane, Malek Ben Del Sozzo, Emanuele Akkas, Abdurrahman Zhang, Yunming Suriana, Patricia Kamil, Shoaib Amarasinghe, Saman P Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory 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. 2020-11-30T22:48:45Z 2020-11-30T22:48:45Z 2019-03 2019-02 2020-11-24T17:13:27Z Article http://purl.org/eprint/type/ConferencePaper 9781728114361 https://hdl.handle.net/1721.1/128700 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 en http://dx.doi.org/10.1109/cgo.2019.8661197 2019 IEEE/ACM International Symposium on Code Generation and Optimization (CGO) Creative Commons Attribution-Noncommercial-Share Alike http://creativecommons.org/licenses/by-nc-sa/4.0/ application/pdf Institute of Electrical and Electronics Engineers (IEEE) MIT web domain
spellingShingle Baghdadi, Mohamed Riyadh
Ray, Jessica Morgan
Romdhane, Malek Ben
Del Sozzo, Emanuele
Akkas, Abdurrahman
Zhang, Yunming
Suriana, Patricia
Kamil, Shoaib
Amarasinghe, Saman P
Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code
title Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code
title_full Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code
title_fullStr Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code
title_full_unstemmed Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code
title_short Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code
title_sort tiramisu a polyhedral compiler for expressing fast and portable code
url https://hdl.handle.net/1721.1/128700
work_keys_str_mv AT baghdadimohamedriyadh tiramisuapolyhedralcompilerforexpressingfastandportablecode
AT rayjessicamorgan tiramisuapolyhedralcompilerforexpressingfastandportablecode
AT romdhanemalekben tiramisuapolyhedralcompilerforexpressingfastandportablecode
AT delsozzoemanuele tiramisuapolyhedralcompilerforexpressingfastandportablecode
AT akkasabdurrahman tiramisuapolyhedralcompilerforexpressingfastandportablecode
AT zhangyunming tiramisuapolyhedralcompilerforexpressingfastandportablecode
AT surianapatricia tiramisuapolyhedralcompilerforexpressingfastandportablecode
AT kamilshoaib tiramisuapolyhedralcompilerforexpressingfastandportablecode
AT amarasinghesamanp tiramisuapolyhedralcompilerforexpressingfastandportablecode