A Compiler Infrastructure for Accelerator Generators

DSL-Based Hardware Generation

At PLDI 2023 in Orlando

When: Sunday June 18, 2023; morning session
Where: TK

In the last four decades, the easiest way to improve performance of programs has been to simply wait; processor and process scaling took care of the rest. Sadly, Moore’s law is over, there are no free lunches left, and everyone at the table is desperate. The only way forward is to build specialized hardware accelerators, that can be customized to the needs of the application.

So how, then, does an enterprising performance hound like yourself build an accelerator? Teach yourself a hardware design language? Stare at inscrutable errors for weeks? Just convert everything into a matrix multiply? No, thank you.

Welcome to the DSL-based Hardware Generation tutorial at FCRC 2023. We’ll show you how to stay within the comforts of your domain specific language (DSL) and turn programs written in your language into accelerated hardware designs. Your performance graphs will be more up and more to the right than ever before!


There are three primary ways to attend:


We’re big believers in learning by doing, so we’ll be teaching you how to write your own Calyx frontend from scratch. Please bring your laptops and expect to be programming for most of the tutorial.

We’ll provide a docker container with all the tools needed to make Calyx program compile and run locally. If you know you’ll be attending the tutorial for sure, please install them beforehand to save time.

Performance Competition: Towards the end of the tutorial, we’ll be running a performance competition, so you can show off your new skills with Calyx. There is a small prize as well!


Here is an extremely tentative schedule for the tutorial. For the most part, we’ll be helping you write your own Calyx frontend and have short, interspersed talks.

9am-9.05amIntroduction to Calyx
9.05am-9.20amSetting Up
9.20am-9.55.amYour first Calyx Program
9.55am-10amPollen: A Pangenome Analysis DSL
10am-10.05amMrXL: A map-reduce frontend
10.05am-11amCompiling MrXL to Calyx
11.20am-11.25amfud: The Hardware Tool Composer
11.25am-12.25pmHardware Performance 101 / MrXL competition
12.25pm-12.30pmClosing remarks & Competition Winners