GPU MATLAB上的LU分解

吉尔

我试图在MATLAB上运行LU分解,以便它将使用GPU。根据NVidia / MATLAB文档,CUDA应该支持LU(例如,参见http://www.nvidia.com/content/GTC-2010/pdfs/2267_GTC2010.pdf)。

现在,我比较了CPU和GPU之间的速度,虽然GPU在矩阵乘法和FFT上确实更快,但LU分解的结果似乎几乎相同,这对我来说非常重要。

我尝试过使用不同的尺寸,但是几乎保持不变。

例如,

在GPU上:

A=gpuArray(randn(1000));
tic; [l,u,p]=lu(A); toc
Elapsed time is 0.056832 seconds.

在CPU上:

B=randn(1000);
tic; [l,u,p]=lu(B); toc
Elapsed time is 0.031463 seconds.

CPU甚至更快。我的CPU是i7-2630QM,我的GPU是GT-550M(笔记本电脑)。我还在具有GTX-660的功能更强的计算机上进行了尝试,结果是相同的。

我的MATLAB版本是2012b

埃德里克

在Tesla C2070上使用MATLAB R2013a,我看到以下信息:

A = gpuArray.randn(1000);
tic; [l,u,p]=lu(A); toc
Elapsed time is 0.016663 seconds.

比我的CPU快大约2倍。随着矩阵大小的进一步增加,速度提高,在我的机器上,GPU的峰值速度大约提高了5倍-与高端的6核CPU相比,这对于高端(虽然稍旧)的GPU是典型的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章