A programming language for hardware accelerators

By: Thanusri swetha J July 14, 2022 | 01:50 PM Technology

Moore’s Regulation wants a hug. The times of stuffing transistors on tiny silicon laptop chips are numbered, and life rafts — {hardware} accelerators — have a worth.  

When programming an accelerator – a course of through which functions offload sure duties to system {hardware} particularly to hurry up that job – you must create a completely new software program help. {Hardware} accelerators can run sure duties with bigger CPU sizes, however they can not be used out of the field. The software program wants to make use of accelerators directions effectively to make it appropriate with all the utility system. This interprets to a variety of engineering work that can then should be maintained for a brand new chip that you just’re compiling the code to, in any programming language. [1]

Figure 1. A programming language for hardware accelerators

Figure 1 shows Now, scientists from MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) created a new programming language called “Exo” for writing high-performance code on hardware accelerators. Exo helps low-level performance engineers transform very simple programs that specify what they want to compute, into very complex programs that do the same thing as the specification, but much, much faster by using these special accelerator chips. Engineers, for example, can use Exo to turn a simple matrix multiplication into a more complex program, which runs orders of magnitude faster by using these special accelerators.

“Exo language is a compiler that’s parameterized over the hardware it targets; the same compiler can adapt to many different hardware accelerators,” says Adrian Sampson, assistant professor in the Department of Computer Science at Cornell University. “ Instead of writing a bunch of messy C++ code to compile for a new accelerator, Exo gives you an abstract, uniform way to write down the 'shape' of the hardware you want to target. Then you can reuse the existing Exo compiler to adapt to that new description instead of writing something entirely new from scratch. [2]

Another key part of exocompilation is that performance engineers can describe new chips they want to optimize without changing the compiler. Traditionally, the definition of the hardware interface is done by the compiler developers, but with most of these new accelerator chips, the hardware interface is proprietary. Companies must maintain their own copy (fork) of an entire traditional compiler modified to support a particular chip.  

The future of Exo involves exploring a more productive scheduling meta-language and extending its semantics to support parallel programming models and applying it to more accelerators, including GPUs. [3]

References:

  1. https://doggyorama.com/a-programming-language-for-hardware-accelerators-mit-news/
  2. https://news.mit.edu/2022/programming-language-hardware-accelerators-0711
  3. https://getaboutcolumbia.com/programming-language-for-hardware-accelerators-mit-news/
Cite this article:

Thanusri swetha J (2022), A programming language for hardware accelerators, Anatechmaz, pp.133

Recent Post

Blog Archive