Systems and Applications Challenges for the Emerging Bazaar of Accelerators
The slowing of Moore’s law and the end of Dennard scaling has reduced the dominance of general purpose processor architectures. Accelerators and other approaches optimized for specific operations and data structures have been developed as the go-to alternative. They trade off generality for much higher power efficiencies for narrow problem classes. In some cases, these accelerators have been “repurposed” to solve problems in other domains as well (e.g., as GPUs evolved to be more general “data parallel” accelerators).
As the number and variety of accelerators diversifies, a system architecture of a “Bazaar of Accelerators” is emerging. These systems are comprised of multiple, specialized accelerators with a general purpose processor as the coordinator. There are many opportunities and challenges for such systems. What are the best programming models for these systems that are both productive and performant? How can programming models be decoupled from the underlying system(s)? How do we support adaptation and reconfiguration across application domains? Can AI/machine learning play a role in supporting adaptation and reconfiguration? Also, many of these accelerators have voracious needs for data. Data movement could quickly become the bottleneck to Bazaar-of-Accelerator systems. Are there ways to head off the data bottleneck, either through hardware or programming models, or perhaps a combination of both?