[daily paper 9]2023 03 08 2017 44 Auto Tuning Strategies for Parallelizing SpMV on Multi and Many Co

这篇论文讲的是一个叫binning(合并)的东西,将不同的rows合并到一起,使用了机器学习的方法。合并后形成一个个bin,每个bin被分配到一个workgroup上(有多个线程,如256个),可以执行不同的kernel。最典型的kernel是一个线程处理一个row,还有x个线程处理一个row的kernel,最后还有所有线程处理一个row的kernel。

文中的方法是基于CSR格式的,CSR通用性比较强,选择CSR格式可以避免格式转换的负担。

论文使用了决策树模型来训练,图示如下:

在这里插入图片描述

这个模型处理的是矩阵的features,列表如下:

在这里插入图片描述

有两种vector,一种是{M, N, NNZ, Var NNZ, Avg NNZ, Min NNZ, Max NNZ, U},target是U,这个U是binning的参数,表示多少row合为一个bin。还有一种vector是{M, N, NNZ, Var NNZ, Avg NNZ, Min NNZ, Max NNZ, U, binID, kernelID},target是kernelID(选哪个kernel)。

作者的数据集包含两千多个矩阵,用于训练,训练之后可以进行预测。

我觉得文中的binning有个缺点,就是只能合并相邻的row。前边看到的一篇论文是将row排序,然后再合并,并且按照非零元素数合并,这样不同的bin之间和bin内部都均衡,缺点是排序需要时间,然后选择不连续的row也有负担。

总结一下,这篇论文使用机器学习的方法来解决binning问题,选择合适的U,以及对每个bin选择合适的kernel,以实现不同workgroup之间/内的负载均衡。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值