Scientists from MIT's Computer Science and Artificial Intelligence Laboratory (CSAIL) have developed a new programming language designed for writing high-performance code on hardware accelerators. Known as Exocompilation, or simply Exo, the domain-specific programming language allows users to transform simple programs that specify what they want to compute into complex programs that accomplish the same goal, only much faster using special accelerator chips. For example, it could define specific hardware instructions, specialized memories, and accelerator configuration states in user libraries and functions as both a programming language and a compiler.
Exo expands on the concept of user scheduling to externalize hardware optimization and mapping choices. The platform provides a rewrite-based scheduling system, an imperative programming language, and tools for creating hardware targets via libraries. The memories, instructions, and configuration state are the three main components of the programming language, which allow users to manually build code to target specific accelerators or utilize scheduling to rework a simple program.
With Exo, hardware companies no longer have to maintain compiler forks to preserve their hardware's private details, and providing support for new hardware is substantially less expensive when the hardware is defined in libraries. Moreover, those companies can save on hiring compilers for their proprietary hardware, as performance engineers can describe the new chips they want to optimize without needing to modify the compiler. According to the scientists, future revisions of the programming language could include a more productive scheduling meta-language and expanding its semantics to support parallel programming models to apply it to even more accelerators, including GPUs.
MIT's Exo Programming Language Designed for Hardware Accelerators – Hackster.io