GPU或CPU上的稀疏矩阵乘法?

时间:2010-08-09 09:43:53

标签: sparse-matrix gpu-programming

你怎么看?什么会更快,速度更快:在GPU或CPU(多线程)上进行稀疏矩阵(CSR)乘法(带矢量)?

4 个答案:

答案 0 :(得分:4)

这取决于矩阵的大小和需要执行的迭代次数。这是因为您需要将矩阵数据从CPU内存复制到GPU内存,并将结果从GPU复制回CPU。如果你只在矩阵上执行一次迭代,那么在CPU上执行它总是更好,而不是在GPU上执行。此外,GPU受启动时间的影响。所以,如果你有更多的迭代要执行,那么去GPU,否则我的选择将是CPU。同样,由于数据复制,矩阵的大小也会影响性能。

答案 1 :(得分:0)

我的猜测是,GPU实现不会有很大的胜利,因为你没有那种适用于并行处理的同类数据结构。

答案 2 :(得分:0)

我认为维达击中了它的头。我绝不是这方面的专家,但我相信将gpu用于工作会有一些开销,如果计算的大小不够大,那么gpu处理的奖金就会因开销而丢失。但是,如果你有一些类似于字符骨架的东西,你有很多矩阵被乘以那么这将更适合gpu。我现在也在为我的一个项目研究这些东西。

答案 3 :(得分:0)

Here,您会发现CPU和GPU上的稀疏矩阵矢量乘法的一些性能结果。针对CSR,CSR矢量,CSR自适应,ELL,COO,SCOO,HYB矩阵格式对GPU的性能进行了测量。矩阵取自SuiteSparse矩阵集合(以前为佛罗里达大学稀疏矩阵集合)。在最终图中,您可以找到单线程,多线程和MKL CSR的结果。

对于具有10000个以上非零元素的浮点矩阵,HYB矩阵格式的平均加速约为8(最大加速约为38)。但是,正如评论中所指出的那样,大型矩阵的加速效果更好(对于具有超过100000个非零元素的矩阵,则为14)。