Quarter
Course Type
Course Area
Systems
Enrollment Code
60699
Location
Phelps 3526
Units
4
Day and Time
M/W 11am-12:50pm
Course Description

From Microsoft’s Catapult, to Amazon’s F1 service, to Google’s ASIC cloud, it is clear that to achieve the energy efficiency demanded by computing at enormous scale we will need specialized machines for everything from neural network training and inference to media re-coding and beyond.  The design of such accelerators will require new algorithms more suited to efficient hardware operation, new programming languages that can cleanly and rapidly define computations ready for acceleration, and new software tools for exploring and rapidly prototyping design options.  How can the abstract algebra of semirings help us think about accelerator design?  What does a monad in hardware look like?  How is accelerator design increasingly a software engineering problem?  

Studying papers from Google Brain, Microsoft Research, and leading academics, we will explore potential answers to these questions, and students will leave the course with a better understanding of what things are efficient in hardware versus software, how to reason about the size, delay, and energy efficiency of neural network accelerator designs, and what exactly this next generation of accelerator design languages are doing under the hood.  The course will have a series of smaller projects that will help establish the framework for taking on a larger accelerator research effort of the student’s own design.