@inproceedings{4211a9c800ba427285d7066e9c811b9f,
title = "Towards general purpose acceleration by exploiting common data-dependence forms",
abstract = "With slowing technology scaling, specialized accelerators are increasingly attractive solutions to continue expected generational scaling of performance. However, in order to accelerate more advanced algorithms or those from challenging domains, supporting data-dependence becomes necessary. This manifests as either data-dependent control (eg. join two sparse lists), or data-dependent memory accesses (eg. hash-table access). These forms of data-dependence inherently couple compute with memory, and also preclude efficient vectorization - defeating the traditional mechanisms of programmable accelerators (eg. GPUs). Our goal is to develop an accelerator which is broadly applicable across algorithms with and without data-dependence. To this end, we first identify forms of data-dependence which are both common and possible to exploit with specialized hardware: specifically stream-join and alias-free indirection. Then, we create an accelerator with an interface to support these, called the Sparse Processing Unit (SPU). SPU supports alias-free indirection with a compute-enabled scratchpad and aggressive stream reordering and stream-join with a novel dataflow control model for a reconfigurable systolic compute-fabric. Finally, we add robustness across datatypes by adding decomposability across the compute and memory pipelines. SPU achieves 16.5, 10.3, and 14.2 over a 24-core SKL CPU on ML, database, and graph algorithms respectively. SPU achieves similar performance to domain-specific accelerators. For ML, SPU achieves 1.8-7 speedup against a similarly provisioned GPGPU, with much less area and power.",
keywords = "Accelerators, Data-dependence, Dataflow, Generality, Indirection, Irregularity, Join, Reconfigurable, Systolic",
author = "Vidushi Dadu and Jian Weng and Sihao Liu and Tony Nowatzki",
note = "Publisher Copyright: {\textcopyright} 2019 Association for Computing Machinery.; 52nd Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 2019 ; Conference date: 12-10-2019 Through 16-10-2019",
year = "2019",
month = oct,
day = "12",
doi = "10.1145/3352460.3358276",
language = "English (US)",
series = "Proceedings of the Annual International Symposium on Microarchitecture, MICRO",
publisher = "IEEE Computer Society",
pages = "924--939",
booktitle = "MICRO 2019 - 52nd Annual IEEE/ACM International Symposium on Microarchitecture, Proceedings",
address = "United States",
}