当前位置: X-MOL 学术arXiv.cs.AR › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
SpArch: Efficient Architecture for Sparse Matrix Multiplication
arXiv - CS - Hardware Architecture Pub Date : 2020-02-20 , DOI: arxiv-2002.08947
Zhekai Zhang, Hanrui Wang, Song Han, William J. Dally

Generalized Sparse Matrix-Matrix Multiplication (SpGEMM) is a ubiquitous task in various engineering and scientific applications. However, inner product based SpGENN introduces redundant input fetches for mismatched nonzero operands, while outer product based approach suffers from poor output locality due to numerous partial product matrices. Inefficiency in the reuse of either inputs or outputs data leads to extensive and expensive DRAM access. To address this problem, this paper proposes an efficient sparse matrix multiplication accelerator architecture, SpArch, which jointly optimizes the data locality for both input and output matrices. We first design a highly parallelized streaming-based merger to pipeline the multiply and merge stage of partial matrices so that partial matrices are merged on chip immediately after produced. We then propose a condensed matrix representation that reduces the number of partial matrices by three orders of magnitude and thus reduces DRAM access by 5.4x. We further develop a Huffman tree scheduler to improve the scalability of the merger for larger sparse matrices, which reduces the DRAM access by another 1.8x. We also resolve the increased input matrix read induced by the new representation using a row prefetcher with near-optimal buffer replacement policy, further reducing the DRAM access by 1.5x. Evaluated on 20 benchmarks, SpArch reduces the total DRAM access by 2.8x over previous state-of-the-art. On average, SpArch achieves 4x, 19x, 18x, 17x, 1285x speedup and 6x, 164x, 435x, 307x, 62x energy savings over OuterSPACE, MKL, cuSPARSE, CUSP, and ARM Armadillo, respectively.

中文翻译:

SpArch:稀疏矩阵乘法的高效架构

广义稀疏矩阵-矩阵乘法 (SpGEMM) 是各种工程和科学应用中普遍存在的任务。然而,基于内积的 SpGENN 为不匹配的非零操作数引入了冗余输入提取,而基于外积的方法由于存在大量的部分积矩阵,因此输出局部性较差。输入或输出数据重用效率低下会导致大量且昂贵的 DRAM 访问。为了解决这个问题,本文提出了一种高效的稀疏矩阵乘法加速器架构 SpArch,它联合优化了输入和输出矩阵的数据局部性。我们首先设计了一个高度并行化的基于流的合并,以流水线化部分矩阵的乘法和合并阶段,以便部分矩阵在生成后立即在芯片上合并。然后,我们提出了一种压缩矩阵表示,将部分矩阵的数量减少了三个数量级,从而将 DRAM 访问减少了 5.4 倍。我们进一步开发了一个霍夫曼树调度器,以提高更大稀疏矩阵合并的可扩展性,这将 DRAM 访问量再减少 1.8 倍。我们还使用具有近乎最佳缓冲区替换策略的行预取器解决了由新表示引起的输入矩阵读取增加的问题,进一步将 DRAM 访问减少了 1.5 倍。在 20 个基准测试中进行评估后,SpArch 将 DRAM 访问总量减少了 2.8 倍于以前的最先进技术。平均而言,与 OuterSPACE、MKL、cuSPARSE、CUSP 和 ARM Armadillo 相比,SpArch 分别实现了 4 倍、19 倍、18 倍、17 倍、1285 倍的加速和 6 倍、164 倍、435 倍、307 倍、62 倍的节能。我们进一步开发了一个霍夫曼树调度器,以提高更大稀疏矩阵合并的可扩展性,这将 DRAM 访问量再减少 1.8 倍。我们还使用具有近乎最佳缓冲区替换策略的行预取器解决了由新表示引起的输入矩阵读取增加的问题,进一步将 DRAM 访问减少了 1.5 倍。在 20 个基准测试中进行评估后,SpArch 将 DRAM 访问总量减少了 2.8 倍于以前的最先进技术。平均而言,与 OuterSPACE、MKL、cuSPARSE、CUSP 和 ARM Armadillo 相比,SpArch 分别实现了 4 倍、19 倍、18 倍、17 倍、1285 倍的加速和 6 倍、164 倍、435 倍、307 倍、62 倍的节能。我们进一步开发了一个霍夫曼树调度器,以提高更大稀疏矩阵合并的可扩展性,这将 DRAM 访问量再减少 1.8 倍。我们还使用具有近乎最佳缓冲区替换策略的行预取器解决了由新表示引起的输入矩阵读取增加的问题,进一步将 DRAM 访问减少了 1.5 倍。在 20 个基准测试中进行评估后,SpArch 将 DRAM 访问总量减少了 2.8 倍于以前的最先进技术。平均而言,与 OuterSPACE、MKL、cuSPARSE、CUSP 和 ARM Armadillo 相比,SpArch 分别实现了 4 倍、19 倍、18 倍、17 倍、1285 倍的加速和 6 倍、164 倍、435 倍、307 倍、62 倍的节能。我们还使用具有近乎最佳缓冲区替换策略的行预取器解决了由新表示引起的输入矩阵读取增加的问题,进一步将 DRAM 访问减少了 1.5 倍。在 20 个基准测试中进行评估后,SpArch 将 DRAM 访问总量减少了 2.8 倍于以前的最先进技术。平均而言,与 OuterSPACE、MKL、cuSPARSE、CUSP 和 ARM Armadillo 相比,SpArch 分别实现了 4 倍、19 倍、18 倍、17 倍、1285 倍的加速和 6 倍、164 倍、435 倍、307 倍、62 倍的节能。我们还使用具有近乎最佳缓冲区替换策略的行预取器解决了由新表示引起的输入矩阵读取增加的问题,进一步将 DRAM 访问减少了 1.5 倍。在 20 个基准测试中进行评估后,SpArch 将 DRAM 访问总量减少了 2.8 倍于以前的最先进技术。平均而言,与 OuterSPACE、MKL、cuSPARSE、CUSP 和 ARM Armadillo 相比,SpArch 分别实现了 4 倍、19 倍、18 倍、17 倍、1285 倍的加速和 6 倍、164 倍、435 倍、307 倍、62 倍的节能。
更新日期:2020-02-21
down
wechat
bug