Jump to content
Welcome Guest

Time left until Christmas 2023



Days

Hours

Minutes

Seconds

[Hardware] A programming language for hardware accelerators


[Depo]

Recommended Posts

hardware-825262.jpg.2c37b710dac7676efc51a4182b5057c2.jpg

Moore’s Law needs a hug. The days of stuffing transistors on little silicon computer chips are numbered, and their life rafts — hardware accelerators — come with a price. 

When programming an accelerator — a process where applications offload certain tasks to system hardware especially to accelerate that task — you have to build a whole new software support. Hardware accelerators can run certain tasks orders of magnitude faster than CPUs, but they cannot be used out of the box. Software needs to efficiently use accelerators’ instructions to make it compatible with the entire application system. This translates to a lot of engineering work that then would have to be maintained for a new chip that you're compiling code to, with any programming language. 

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.

Unlike other programming languages and compilers, Exo is built around a concept called “Exocompilation.” “Traditionally, a lot of research has focused on automating the optimization process for the specific hardware,” says Yuka Ikarashi, a PhD student in electrical engineering and computer science and CSAIL affiliate who is a lead author on a new paper about Exo. “This is great for most programmers, but for performance engineers, the compiler gets in the way as often as it helps. Because the compiler’s optimizations are automatic, there’s no good way to fix it when it does the wrong thing and gives you 45 percent efficiency instead of 90 percent.”   

With Exocompilation, the performance engineer is back in the driver’s seat. Responsibility for choosing which optimizations to apply, when, and in what order is externalized from the compiler, back to the performance engineer. This way, they don’t have to waste time fighting the compiler on the one hand, or doing everything manually on the other.  At the same time, Exo takes responsibility for ensuring that all of these optimizations are correct. As a result, the performance engineer can spend their time improving performance, rather than debugging the complex, optimized code.

“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. The potential impact of work like this is enormous: If hardware innovators can stop worrying about the cost of developing new compilers for every new hardware idea, they can try out and ship more ideas. The industry could break its dependence on legacy hardware that succeeds only because of ecosystem lock-in and despite its inefficiency.” 

The highest-performance computer chips made today, such as Google’s TPU, Apple’s Neural Engine, or NVIDIA’s Tensor Cores, power scientific computing and machine learning applications by accelerating something called “key sub-programs,” kernels, or high-performance computing (HPC) subroutines.  

 

Link: https://news.mit.edu/2022/programming-language-hardware-accelerators-0711

Super-Moderator Of CsOutstanding Community
Old Member 2019-2023

 

2022
[Member] - [Moderator]  [Super Moderator] - [Supervisor] - [Removed] - [Leave]

[Ex Leader Of Reviwevers] - [Ex Co-Leader Of Journalists]

[WarNightZM] - [Ex-Founder] - [FTP] - [Manager CS 1 .6] - [Leave] - [ZmOldSchool] - [Ex-Founder] - [FTP] - [Manager CS 1 .6] - [Closed] - [Leave]

2023

[Member] - [Moderator] - [Super-Moderator
[
Leader Of Reviwevers] - [Leader Of Journalists]
 [ZmDarkNight] - [Elder] - [Removed] - [ZmOldSchool] - [Founder] - [Manager CS 1.6]  - [Leave]

[ThunderZM] - [Pre-Manager] - [Leave] - [WarNightZM] - [Pre-Manager] - [Leave


          To be Continue 

Link to comment
Share on other sites

  • SnO locked this topic
Guest
This topic is now closed to further replies.

About Us Who are we?

THE COMMUNITY WAS CREATED IN 2022 WITH THE PURPOSE OF HELPING OUR PLAYERS AND HAVING THE BEST SERVERS AND ADDONS WE HAVE AND WITH AN INCREDIBLE STAFF THAT SHARES IDEAS WITH US.

MarketPlace Stuff to buy from us

Colors Chose your color

Header Backgrounds Chose your background

Styles Chose your style

Index Options Chose index options

2
3
Subforum Columns You can choose how many columns to display your subforums

Overall Options Chose overall options

Header Style Choose between a colored or black/white header
Header Position Choose between a relative or sticky header position
Sidebar Visibility You can hide or unhide your sidebar whenever you want
Back To Top Position You can choose where the back to top button should appear, left or right

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.