SMASH:稀疏矩阵原子暂存器哈希
分布式、并行与集群计算
2021-06-01 v1 硬件体系结构
机器学习
摘要
稀疏矩阵,更具体地说是 SpGEMM 核,常见于从基于图的路径查找到机器学习算法(例如神经网络)的广泛应用之中。实现 SpGEMM 核的一个特殊挑战在于其对 DRAM 内存造成的压力。解决该问题的一种方法是采用内积法实现 SpGEMM 核。虽然内积法产生的中间结果较少,但由于对输入矩阵元素的大量冗余读取,它可能最终使内存带宽饱和。使用基于外积的 SpGEMM 核可以减少冗余读取,但代价是由于生成/管理部分乘积所需的额外计算和内存访问而带来更高的开销。在本论文中,我们提出了一种基于行积方法的新型 SpGEMM 核实现。我们利用原子指令在生成中间部分乘积时即将其合并。原子指令的使用消除了创建部分乘积矩阵的需要。为评估我们的行积方法,我们将一个优化后的 SpGEMM 核映射到为加速基于图的应用而设计的定制加速器上。该目标加速器是由英特尔开发的名为 PIUMA 的实验性系统。PIUMA 提供了若干引人注目的特性,包括快速上下文切换、用户可配置缓存、全局可寻址内存、非一致缓存以及异步流水线。我们量身定制了 SpGEMM 核以利用 PIUMA 架构的诸多特性。本论文将我们的 SpGEMM 实现与先前方案进行比较,所有方案均映射到 PIUMA 框架上。我们简要描述了 PIUMA 架构的一些特性,随后深入探讨我们优化后的 SpGEMM 核的细节。我们的 SpGEMM 核相比竞争方案可实现 9.4 倍的加速。
引用
@article{arxiv.2105.14156,
title = {SMASH: Sparse Matrix Atomic Scratchpad Hashing},
author = {Kaustubh Shivdikar},
journal= {arXiv preprint arXiv:2105.14156},
year = {2021}
}