Saturday, August 13th, 2022


Exo’s ability to write high-performance code is a major draw for performance engineers.

When the new programming language Exo hits the market, hardware accelerators breathe a sigh of relief. The configuration of computer chips is currently changing dramatically with the advent of hardware accelerators. These are basically a group of silicon microchips that can perform a limited set of tasks much faster than a general-purpose CPU.

Hardware acceleration is a microprocessor or integrated circuit that performs a specific task. This gives the circuit a significant performance advantage. These hardware accelerators can perform certain tasks up to 10 times faster than CPUs, but they cannot be used immediately. To make software compatible with all applications, it must efficiently follow accelerator instructions. This means that much more engineering work would be required to manage the accelerator instructions for each new chip you compile code for.

MIT scientists created Exo, a programming language that allows you to write high-performance code using hardware accelerators. Exo allows low-level performance engineers to turn very simple programs that specify what they want into complex programs that perform the same as the specification, but run much faster with special acceleration chips. Exo can be used by engineers to turn a simple matrix multiplication program into a more complicated program that runs orders of magnitude faster with special accelerators. Exo, unlike other programming languages ​​or compilers, is based on the concept of „exocompilation“.

Exocompilation gives control back to the performance engineer. The performance engineer is responsible for choosing which optimizations to apply, when, and in what order. No need to spend time fighting the compiler or doing everything manually. Exo is responsible for verifying that these tweaks are correct. The performance engineer can now focus on improving performance instead of fixing complex, optimized code.

Exo is better than previous languages ​​because instead of writing messy C++ code to compile for new accelerators, Exo allows you to use an abstract, unified way of describing the hardware you’re interested in. You can then reuse an existing Exo compiler and adapt it to the new description instead of writing something completely new. This work could have a major impact on the industry. Hardware innovators no longer have to worry about developing new compilers for every new idea. Instead, you can try and send new ideas. It could end its reliance on legacy hardware that is inefficient and only succeeds because of its ecosystem attachment.

Exocompilation also allows performance engineers to describe new chips they want to optimize without having to change the compiler. Previously, the compiler developers defined the hardware interface. In many of these accelerator chips, however, this interface is now proprietary. Each company must maintain its own copy (or fork) of the entire traditional compiler, customized for its specific chip. This includes hiring compiler developers and performance engineers.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.