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 .
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 extensions to explicitly manage the complexities that arise when targeting these systems. The extensions include explicit communication, synchronization, and mapping buffers to different memory hierarchies. Tiramisu relies on a flexible representation based on the polyhedral model and explicitly uses a well-defined four-level IR 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 and stencil benchmarks and compare it with state-of-the-art compilers . We show that Tiramisu matches or outperforms existing compilers on different hardware architectures, including multicore CPUs , GPUs, and distributed machines .
R
an optimization
a polyhedral
R
efficient code for high-performance systems such as
high performance code for multiple platforms including
R
FPGAs, distributed machines, or any combination of these .
and distributed machines. Tiramisu introduces a scheduling language with novel extensions to explicitly manage the complexities that arise when targeting these systems. The extensions include explicit communication, synchronization, and mapping buffers to different memory hierarchies.
R
introduces a novel
explicitly uses a well-defined
R
algorithms
the algorithms, loop transformations
D
schedules,
A
,
R
from
with
R
linear algebra and DNN kernels and by integrating it as a pass in the Halide compiler
image processing and stencil benchmarks and compare it with state-of-the-art compilers
R
extends Halide with many new capabilities, and that Tiramisu can generate efficient code for multicores
matches or outperforms existing compilers on different hardware architectures, including multicore CPUs
R
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
and distributed machines