Continual improvements to general purpose computing have enabled PCs, supercomputing, big data, and mobile computing. Unfortunately, a slowing Moore’s law and restrictive traditional architectures (CPUs/GPUs) have stifled the once exponential gains in computational capability. As a result, the technology industry has moved towards domain-specific accelerators that are highly optimized, but support few workloads. As examples, each of the “big-5” software companies has developed accelerators for their datacenters, accelerators typically consume >½ of mobile SoC area, and there are now >100 AI hardware startups.

While each accelerator is indeed a design win, this paradigm as a whole is economically inefficient and stunts innovation. Consider that most of the billions of dollars being invested go to software stack and hardware architecture development, with a smaller fraction going to physical manufacturing. Because the hardware and software are largely built from scratch for each design, many innovations are trapped within their own ecosystem and domain, and must be re-discovered and re-implemented by others. Moreover, design effort must be repeated for fast-developing domains, else algorithm innovation can be stifled by unsuitable hardware. Important domains without a $10+ billion market cannot benefit whatsoever.

Overall, we argue that we need to reignite innovation for general purpose computing.

Research Perspectives

Our research takes three basic perspectives on achieving this goal:

Perspective 1 – Accelerator-like CPU Enhancements: Accelerators have significant advantages over CPUs because they have much richer instruction set architectures, particularly when it comes to memory. Our perspective here is that we can introduce small extensions to general purpose processor ISAs that can enable much more aggressive optimizations.

Perspective 2 – General Purpose Accelerators: While most accelerators today focus on a narrow domain, we find that computation primitives are common across domains, and so are the ways in which we specialize hardware for those primitives. Our perspective here is that it’s possible to create general purpose accelerator ISAs, and make accelerators work for irregular workloads that are traditionally thought to run well only on CPUs or GPUs.

Perspective 3 – Accelerator Design Automation: Only a few high-volume domains can be targeted, as each accelerator requires significant hardware, instruction-set (ISA), software-stack, and compiler development. Because of the commonality between domains, and the success of accelerator ISAs, our perspective is that accelerators can be designed automatically with the right set of abstractions for representing the accelerator design space.