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...
Main Authors: | , , , , , , , , |
---|---|
Other Authors: | |
Format: | Article |
Language: | English |
Published: |
Institute of Electrical and Electronics Engineers (IEEE)
2020
|
Online Access: | https://hdl.handle.net/1721.1/128700 |
_version_ | 1826196225829896192 |
---|---|
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 |