Towards General Purpose Acceleration by Exploiting Common Data-Dependence Forms

Towards General Purpose Acceleration by Exploiting Common Data-Dependence Forms
复制标题

DOI:
10.1145/3352460.3358276
复制
发表时间:
2019-10
期刊:
Proceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture
影响因子:
--
通讯作者:
Vidushi Dadu;Jian Weng;Sihao Liu;Tony Nowatzki
Vidushi Dadu;Jian Weng;Sihao Liu;Tony Nowatzki
中科院分区:
其他
文献类型:
--
作者:
Vidushi Dadu;Jian Weng;Sihao Liu;Tony Nowatzki

文献摘要

相似文献

随着技术的放缓,专门的加速器是越来越有吸引力的解决方案,以继续进行性能,以加速更高级的算法或挑战域的算法,支持数据依赖性的情况是必要的。例如。计算记忆,也排除了有效的矢量化 - 击败可编程加速器的传统机制(例如,GPU)。确定数据依赖性的形式,这些形式既常见又可能用专门的硬件来利用:专门的流式和无别名间接。带有接口的加速器来支持这些,称为稀疏处理单元(SPU)。最后,我们通过在计算机和内存管道上添加可分解性。 SKL CPU在ML,数据库和图形算法上分别达到了与域特异性加速器相似的性能,SPU在相似的GPGPU上实现了1.8-7×速度。
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.