Tiramisu: A Code Optimization Framework for High Performance Systems
MIT
arXiv:1804.10694 [cs.PL], (27 Apr 2018)
@article{baghdadi2018tiramisu,
title={Tiramisu: A Code Optimization Framework for High Performance Systems},
author={Baghdadi, Riyadh and Ray, Jessica and Romdhane, Malek Ben and Sozzo, Emanuele Del and Suriana, Patricia and Kamil, Shoaib and Amarasinghe, Saman},
year={2018},
month={apr},
archivePrefix={"arXiv"},
primaryClass={cs.PL}
}
This paper introduces Tiramisu, an optimization framework designed to generate efficient code for high-performance systems such as multicores, GPUs, FPGAs, distributed machines, or any combination of these. Tiramisu relies on a flexible representation based on the polyhedral model and introduces a novel four-level IR that allows full separation between algorithms, schedules, data-layouts and communication. This separation simplifies targeting multiple hardware architectures from the same algorithm. We evaluate Tiramisu by writing a set of linear algebra and DNN kernels and by integrating it as a pass in the Halide compiler. We show that Tiramisu extends Halide with many new capabilities, and that Tiramisu can generate efficient code for multicores, GPUs, FPGAs and distributed heterogeneous systems. The performance of code generated by the Tiramisu backends matches or exceeds hand-optimized reference implementations. For example, the multicore backend matches the highly optimized Intel MKL library on many kernels and shows speedups reaching 4x over the original Halide.
May 5, 2018 by hgpu