exo-lang/exo

Exocompilation for productive programming of hardware accelerators

What it solves

Exo is a language and compiler designed to make programming hardware accelerators more productive. It bridges the gap between high-level productivity and the low-level control required to optimize performance on specialized hardware.

How it works

Exo allows developers to write code that can be executed directly via Python or compiled into C and header files using the exocc command. It leverages a build system that utilizes CMake and Ninja to compile and link the generated C code. For advanced hardware feature testing (such as AVX-512 or AMX), it can integrate with the Intel Software Development Emulator (SDE).

Who it’s for

It is intended for developers and researchers working with hardware accelerators who need a way to schedule and optimize computations efficiently without sacrificing productivity.

Highlights

  • Exocompilation: A specialized compilation process for hardware accelerators.
  • C Code Generation: Ability to generate C and header files from Exo files.
  • Hardware Support: Integration with tools like the Intel SDE for testing x86-specific features like AMX.
  • Academic Foundation: Based on research published at PLDI 2022 and ASPLOS 2025.

Related

  • Project
  • Project
  • Project
  • Project
  • Project