Sparse matrix-vector and matrix-matrix multiplication (SpMV and SpMM) are fundamental in both conventional (graph analytics, scientific computing) and emerging (sparse DNN, GNN) domains. Workload-balancing and parallel-reduction are widely-used design principles for efficient SpMV. However, prior work fails to resolve how to implement and adaptively use the two principles for SpMV/MM. To overcome this obstacle, we first complete the implementation space with optimizations by filling three missing pieces in prior work, including: (1) We show that workload-balancing and parallel-reduction can be combined through a segment-reduction algorithm implemented with SIMD-shuffle primitives. (2) We show that parallel-reduction can be implemented in SpMM through loading the dense-matrix rows with vector memory operations. (3) We show that vectorized loading of sparse rows, being a part of the benefit of parallel-reduction, can co-exist with sequential-reduction in SpMM through temporally caching sparse-matrix elements in the shared memory. In terms of adaptive use, we analyze how the benefit of two principles change with two characteristics from the input data space: the diverse sparsity pattern and dense-matrix width. We find the benefit of the two principles fades along with the increased total workload, i.e. the increased dense-matrix width. We also identify, for SpMV and SpMM, different sparse-matrix features that impact workload-balancing effectiveness. Our design consistently exceeds cuSPARSE by 1.07-1.57x on different GPUs and dense matrix width, and the kernel selection rules involve 5-12% performance loss compared with optimal choices. Our kernel is being integrated into popular graph learning frameworks to accelerate GNN training.


翻译:在常规领域(分析、科学计算)和新兴领域(Smarse DNN、GNN),工作平衡和平行减少是高效 SmMV广泛采用的设计原则。然而,先前的工作未能解决如何实施和适应SpMV/MM的两种原则。为了克服这一障碍,我们首先通过填补先前工作中的三个缺失部分来优化执行空间,包括:(1) 我们表明,工作量平衡和平行减少可以通过与SIMD-Scream-Sweal Sheldle Friminal执行的减少段数算法相结合。(2) 我们表明,通过将密度匹配行与矢量存储操作加载,可以实现平行减少。(3) 我们表明,稀释行的矢量加载是平行减少的一个好处,通过在共享记忆中时间缓缓缓缓流的普通部分,通过适应性使用,我们分析两项原则的效益是如何通过SMMD-S-real-real-realal-loral-loral-lvacal-lvical sal-lview lax mess dreal lax dal lax dal lax dal lax dal lax dal dal lax lax lax lax lax lax lax lax lax laut lax lax lax laut lax lax laut laut le le le lex lex lex lex lex lex lex legal lex lex legal lex legal lex lax lax lax lax lax lax lax lax le lax lax lax le le le le le le le le le le le le ladal lex labalal le) labal ladal lax lax lax lax lax lax lax lax lax lax lax lacal lacal lax lax lax lax le le

0
下载
关闭预览

相关内容

迄今为止,产品设计师最友好的交互动画软件。

专知会员服务
28+阅读 · 2021年5月2日
专知会员服务
61+阅读 · 2020年3月19日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
104+阅读 · 2019年10月9日
分布式并行架构Ray介绍
CreateAMind
9+阅读 · 2019年8月9日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
LibRec 精选:推荐系统的论文与源码
LibRec智能推荐
14+阅读 · 2018年11月29日
LibRec 精选:基于LSTM的序列推荐实现(PyTorch)
LibRec智能推荐
50+阅读 · 2018年8月27日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
【论文】图上的表示学习综述
机器学习研究会
14+阅读 · 2017年9月24日
Arxiv
0+阅读 · 2021年12月3日
Arxiv
3+阅读 · 2017年12月1日
VIP会员
相关资讯
分布式并行架构Ray介绍
CreateAMind
9+阅读 · 2019年8月9日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
LibRec 精选:推荐系统的论文与源码
LibRec智能推荐
14+阅读 · 2018年11月29日
LibRec 精选:基于LSTM的序列推荐实现(PyTorch)
LibRec智能推荐
50+阅读 · 2018年8月27日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
【论文】图上的表示学习综述
机器学习研究会
14+阅读 · 2017年9月24日
Top
微信扫码咨询专知VIP会员