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
Hosted on Read the Docs, an open-source project providing the tools, knowledge, and hosting for up-to-date documentation, proper information about the Exo programming language can be found here. The language's types, values, members, identifiers, accessors, lexical scope, special characters, and other specifications are discussed in depth. For example, its types include structural types, string types, identified types, subtyping, type-checking, and amalgam types are included.
https://exo.readthedocs.io/
This is the official project website for Exo, a programming language built on the principle of exocompilation, designed to support the development of high-performance libraries for specialized hardware, such as hardware accelerators. General information about the language is provided here, including examples, documentation, and source code, available from their GitHub repositories. The background and motivation behind the language are discussed, and a video is included.
https://exo-lang.dev/
The home for the Exo programming language on GitHub features all of the necessary files, which are available to anyone, free of charge, under the MIT License, in the GitHub repositories for the language. Documentation for installing Exo, Exos scheduling API, and Exo's repository structure, is detailed, including instructions for installing Exo and a compatible version of Python with Nix, as well as doing a manual install. Files in the repository may be sorted in a variety of ways.
https://github.com/exo-lang/
The Python Package Index (PyPI) is a repository of software for the Python programming language, intended to help developers find and install software developed and shared by the Python community. Written in Python, Exo is a programming language designed to be simple and fast, and it may be installed through Python. Featured here is a project description, release history, a download link, and project links. Its usage and language specifications are outlined.
https://pypi.org/project/exo-language/