Abstract

There are a number of factors that constrain computing hardware that it seems people often forget: from the magic (no static power) and cost (min. operating voltages) of CMOS gates to the fact that building domain specific hardware doesn’t automatically improve the application efficiency. Both performance and energy efficiency depend on exploiting locality, parallelism, operation specialization (listed in order of importance) and this holds for your logic gates and overall system. If your application/algorithm doesn’t have these characteristics, domain specific hardware won’t help. In fact, in all cases that I know about, to achieve the desired performance/energy efficiency gains requires changing the applications to provide more locality and parallelism to exploit. This talk will review some of the fundamental constraints on hardware design (in any technology) that I have learned, from dealing with devices that use electric field to control current flow, to building large machine learning accelerators. Since cost is a constraint is almost all systems, I will also talk about costs, and how it affects the type of hardware you design.