[daily paper 12]2023 03 22 2017 117 Sparse matrix vector multiplication on GPGPUs

文章讨论了在GPGPU上加速SpMV计算的三种方法,包括优化稀疏矩阵格式、自动调参和负载均衡。对于CSR格式,研究了scalar和vector算子的使用,并提出了按NNZ数量分配行以及非零元素数升序排列的负载均衡策略。实验结果显示,CSR格式表现出较好的通用性。
摘要由CSDN通过智能技术生成

论文链接

这是一篇比较长的综述,我只挑了一部分来看。

SpMV在GPGPU上的加速,可以大致分为三个方法:

  • 使用新的稀疏矩阵格式,基本上是从经典的格式演变而来的

  • 已存在的格式对特定硬件架构的优化

  • 使用自动调参机制

这些方法不是互斥的。

我不想发明新的稀疏矩阵格式,感觉CSR还是最通用的。后面讲稀疏矩阵格式的基本只看了CSR的部分。

最经典的CSR在GPU上的算子(kernel),一个是scalar,一个是vector。scalar是一行分配一个thread,vector是一行分配一个warp所包含的thread(英伟达GPU上是32个)。

我对CSR的行该怎么在GPU上分配的负载均衡问题,有一定的兴趣。

论文里提到了原来看过的一篇论文,讲的是按NNZ数量分配行,如果分配到的行少于或等于两个,使用vector算子,否则使用scalar算子。我觉得这个方法有点简陋,不知道好不好改进。

还有一篇论文将行按照非零元素数升序排列,然后按照非零元素数将行分配到计算单元里,负载均衡不错。但是排序所需时间可能有点多。

还有一篇叫LightSpMV比较经典,没看过。

后面做了一些实验,总得看起来我觉得还是CSR好一些、更通用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值