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

论文提出了一种基于机器学习的矩阵行合并方法,使用CSR格式避免格式转换,并通过决策树模型预测合并参数U和选择合适的kernel,以实现工作group内的负载均衡。数据集包含两千多个矩阵用于训练,但binning限制为合并相邻行,可能影响效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇论文讲的是一个叫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之间/内的负载均衡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值