# tiramisu-compiler/tiramisu

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tiramisu-compiler-tiramisu).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

960 stars · 137 forks · C++ · MIT

## Links

- GitHub: https://github.com/Tiramisu-Compiler/tiramisu
- Homepage: http://tiramisu-compiler.org
- awesome-repositories: https://awesome-repositories.com/repository/tiramisu-compiler-tiramisu.md

## Topics

`code-generation` `compiler` `deep-neural-networks` `library` `linear-algebra` `machine-learning` `optimization` `tensor-algebra` `tensors`

## Description

Tiramisu is a polyhedral C++ compiler framework designed to express and optimize data-parallel algorithms for diverse hardware accelerators. It provides a programming interface that allows developers to define mathematical expressions, manage loop iteration spaces, and organize functions targeting heterogeneous architectures.

The system features an advanced compilation infrastructure that abstracts computations into a hardware-agnostic intermediate representation before lowering them into native machine code or hardware configuration bitstreams. It calculates exact data flow dependencies through polyhedral analysis to ensure safety during automated loop transformations and data layout rearrangements. 

Additional capabilities include explicit memory buffer management with specialized view slicing, input and constant definitions, and source-to-source code generation. Command-line utilities support build execution and test verification workflows.

## Tags

### Programming Languages & Runtimes

- [Polyhedral Loop Transformation Engines](https://awesome-repositories.com/f/programming-languages-runtimes/loop-optimizations/polyhedral-loop-transformation-engines.md) — Applies mathematical polytope models to reorder loop iterations and optimize data locality across multi-dimensional arrays.
- [Loop Transformation Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/loop-transformation-compilers.md) — Provides a polyhedral compiler framework that controls iteration spaces and applies automated loop transformations to generate optimized machine code.
- [Architecture-Agnostic Intermediate Representations](https://awesome-repositories.com/f/programming-languages-runtimes/architecture-agnostic-intermediate-representations.md) — Abstracts computations and memory layouts into a common structure before lowering to specific accelerator architectures.
- [C++ Compiler Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/c-compiler-frameworks.md) — Implements a polyhedral C++ compiler framework designed to express and optimize data-parallel algorithms for heterogeneous hardware accelerators.
- [Mathematical Expression Declarations](https://awesome-repositories.com/f/programming-languages-runtimes/expression-tree-compilation/mathematical-expression-compilers/mathematical-expression-declarations.md) — Allows developers to build mathematical expressions and statements mapped to specific iteration domains for hardware execution. ([source](https://tiramisu-compiler.github.io/doc/))
- [Polyhedral](https://awesome-repositories.com/f/programming-languages-runtimes/loop-optimizations/polyhedral.md) — Transforms nested loops and data layouts using the polyhedral model to maximize hardware efficiency and performance.
- [Polyhedral Optimizations](https://awesome-repositories.com/f/programming-languages-runtimes/loop-optimizations/polyhedral-optimizations.md) — Applies advanced loop transformations and data layout rearrangements based on the polyhedral model to maximize hardware efficiency. ([source](https://github.com/tiramisu-compiler/tiramisu#readme))
- [Algorithm Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/multi-target-compilers/hardware-targeted-compilation/algorithm-compilers.md) — Transforms high-level loop expressions, reductions, and matrix operations into optimized machine code targeting diverse hardware. ([source](https://github.com/Tiramisu-Compiler/tiramisu/blob/master/tutorials/README.md))
- [Hardware Configuration Bitstream Lowering](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/multi-target-compilers/hardware-targeting/hardware-configuration-bitstream-lowering.md) — Emits native binaries and hardware configuration bitstreams tailored for diverse central processing units, graphics processors, and programmable arrays.
- [Data-Parallel Function Organizations](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/functional/objective-function-execution/parallel-function-execution/data-parallel-function-organizations.md) — Enables defining functions composed of multiple computations to structure data-parallel algorithms. ([source](https://tiramisu-compiler.github.io/doc/))
- [Hardware Targeting](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/multi-target-compilers/hardware-targeting.md) — Generates executable code targeting multicore CPUs, graphics processors, field-programmable gate arrays, and distributed clusters. ([source](https://github.com/tiramisu-compiler/tiramisu#readme))
- [Algorithmic Source-to-Source Code Generators](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-generators/algorithmic-source-to-source-code-generators.md) — Translates high-level algorithmic expressions and iteration spaces directly into optimized low-level target code.

### Scientific & Mathematical Computing

- [Data Parallel Optimization Tools](https://awesome-repositories.com/f/scientific-mathematical-computing/high-performance-execution-environments/high-performance-and-parallel-computing/parallelizing-compilers/data-parallel-optimization-tools.md) — A specialized compiler tool that transforms high-level loop structures and matrix operations to maximize hardware execution efficiency.
- [Data Parallel Algorithm Designs](https://awesome-repositories.com/f/scientific-mathematical-computing/parallel-algorithms/data-parallel-algorithm-designs.md) — Expresses and structures parallel computations, buffer views, and data inputs for execution on heterogeneous hardware targets.
- [Compiler Optimization Programming Interfaces](https://awesome-repositories.com/f/scientific-mathematical-computing/parallel-programming-interfaces/compiler-optimization-programming-interfaces.md) — Provides a programming interface to specify computations and guide compiler optimization for high performance. ([source](https://github.com/tiramisu-compiler/tiramisu#readme))

### Software Engineering & Architecture

- [Loop Iteration Managers](https://awesome-repositories.com/f/software-engineering-architecture/compile-time-code-generation/iterative-code-generation/iterative-loop-constructs/loop-iteration-managers.md) — Provides variables and constructs to manage loop ranges, buffer dimensions, and computation iteration spaces. ([source](https://tiramisu-compiler.github.io/doc/))
- [Buffer View Slicing](https://awesome-repositories.com/f/software-engineering-architecture/memory-buffering/buffer-view-slicing.md) — Maintains granular control over data access patterns and memory layouts through dedicated buffer slicing abstractions.

### Web Development

- [Polyhedral Dependence Analyses](https://awesome-repositories.com/f/web-development/data-flow-architectures/taint-analysis-engines/inter-procedural-data-flow/data-dependency-analysis/polyhedral-dependence-analyses.md) — Calculates exact data flow dependencies between array accesses to guarantee safety during automated loop restructuring.

### Data & Databases

- [Memory](https://awesome-repositories.com/f/data-databases/streaming-parsers/json/memory-efficient-streaming/buffer-management/memory.md) — Represents memory buffers and creates specific views on existing buffers to handle data access operations efficiently. ([source](https://tiramisu-compiler.github.io/doc/))

### Operating Systems & Systems Programming

- [Hardware Accelerator Compilers](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-acceleration/gpu-acceleration/gpu-accelerated-compilers/hardware-accelerator-compilers.md) — Translates high-level mathematical expressions and algorithms into optimized machine code for CPUs, GPUs, and FPGAs.
