Aviva Directory » Computers & Internet » Programming » Exo

Exo is a domain-specific programming language and (exo)compiler designed to help performance engineers write, optimize, and target high-performance computing kernels onto new hardware accelerators.

Using Exo, low-level performance engineers can transform very simple programs that specify what they want to compute into very complex programs that perform the specified task, only much faster.

Exocompilation is a new approach to programming language and compiler support for developing hardware-accelerated high-performance libraries. The principle of exocompilation is to externalize as much accelerator-specific code-generation logic and optimization policy from the compiler as possible, exposing them to user-level code. This allows the performance engineer to choose the optimizations to apply, when, and in what order, without having to fight the compiler on the one hand and do everything manually on the other.

Exocompilation is implemented in the Exo programming language, which is designed for writing high-performance code on hardware accelerators. The language is based on the concept of user scheduling, which allows users to specify how their code should be mapped and transformed for different hardware targets.

Exo supports introspection and interpretation operations, allowing programmers to inspect and execute their code without compiling it.

Embedded within Python, Exo performs as a programming language and exocompiler, enabling developers to create custom hardware instructions, specialize memories, and accelerator configuration states that are defined in user libraries, including high-performance kernel libraries.

For most compilers, where the optimizations are automated, it takes longer developers because all of the steps have to be done all over again when it does the wrong thing, which can be a help and a hindrance, at the same time. With exocompilation, developers have more control over the process, as they are free to choose which, when, and in what over of optimizations to apply because it is externalized from the compiler.

Exo was created by scientists from MIT's Computer Science and Artificial Intelligence Laboratory (CSAIL), and introduced in February 2022 under the MIT License.

Topics related to the Exo programming language are the focus of this portion of our web guide.



Recommended Resources

Search for Exo on Google or Bing