Back to directory

Tiramisu

A polyhedral compiler with a C++ API for expressing and optimizing fast, portable data-parallel computations such as linear algebra, tensor algebra, deep learning and image processing.

Tiramisu

Tiramisu provides a C++ API for expressing data-parallel algorithms as Tiramisu expressions, along with a separate way of specifying how the compiler should optimize them. Because it is based on the polyhedral model, it can express a large set of loop optimizations and data-layout transformations, and it is designed so that support for new target architectures can be added without reworking the rest of the compiler.

It currently targets multicore x86 CPUs, Nvidia GPUs, Xilinx FPGAs through Vivado HLS, and distributed machines through MPI, and has been used for problems in linear and tensor algebra, deep learning, image processing and stencil computations. Optional Python bindings are available through Pybind, Cython and NumPy.

It can be built from Spack, from source using a system package manager such as Homebrew or apt for dependencies, or entirely from source with the project's own install script, and is released under the MIT license.

More in Languages

See all 48
  • QBasic Web Editor

    vahidyousefzadeh.com

    A browser-based QBasic 1.1 editor and interpreter that runs classic QBasic programs with DOSBox-accurate behavior, including text-mode graphics commands such as PRINT, COLOR and LOCATE, with sample programs and keyboard shortcuts to run and save.

  • A Brainfuck-inspired esoteric programming language adding absolute memory navigation, multiplier arithmetic, non-destructive inspection and inline conditionals, with its own interpreter.

  • C3 Playground

    play.c3-lang.org

    An in-browser playground that compiles and runs the C3 programming language entirely in WebAssembly, with no backend server, alongside its standard library and documentation.