使用matlab从GPU获得什么性能?

时间:2011-12-07 16:37:54

标签: matlab cuda gpu

我正在考虑向我的老板请求一个好的GPU,以便用matlab并行处理工具箱进行计算。 然而,经过对同事计算机的一些简单测试,在NVidia Quadro 600上。我的性能提升非常差(1x到2x之间)。

我对在n-d阵列上进行卷积特别感兴趣。

有人有类似的经历,使用gpuArray进行计算等等吗?

我可以获得什么样的性能提升?

我应该购买哪种GPU型号(少于1000美元,希望少于400美元)?

3 个答案:

答案 0 :(得分:2)

MATLAB中gpuArray的性能由几个因素驱动:

  • 首先,您的问题是否在GPU上运行良好
  • 您的设备中有多少个CUDA核心,一般来说越多越好
  • 您是否正在使用具有增强的双精度性能的设备(例如最近的计算能力的Quadro / Tesla设备> = 2)
  • 您使用的是哪个版本的MATLAB - R2011b的性能明显优于R2010b。

以下是优秀的“随机漫步”博客的一些基准测试示例:http://www.walkingrandomly.com/?p=3634。这些显示了人们在合理应用中可能期望的加速类型 - 即~5x到10x似乎是合理的,远远超过罕见的。

(如果你想看到其中一个罕见的例子,使用gpuArray编程的GPU上的Mandelbrot设置和arrayfun的运行速度比CPU快约1500倍:http://www.mathworks.com/products/demos/parallel-computing/paralleldemo_gpu_mandelbrot/paralleldemo_gpu_mandelbrot.html?product=DW

答案 1 :(得分:1)

Quadro 400仅拥有48个内核,而拥有480个内核的GeForce 480和拥有512个内核的GeForce 580则相比。它们也可以在更高的时钟运行,因此当内存访问不是限制因素时,您可以获得超过10倍的性能提升。

我没有使用GPU来加速MATLAB,但我每天都使用用于GPU(CUDA)开发的PC。一个是Quadro FX5800 + GeForce 480,另一个是GeForce 580.据我所知,你不会从工作站卡和GeForce中获益。所以节省一些$$$并获得GF480或GF580。

此主题似乎具有CUDA加速转换功能,显然快50倍: http://www.mathworks.com/matlabcentral/fileexchange/20220 我不确定MATLAB现在有什么开箱即用的。

希望有所帮助! GPU可以很好地加速许多任务。但性能提升可能需要一些追逐。

答案 2 :(得分:1)

我正在研究同样的话题。我看到的一件事是中低端显卡用于游戏,因此针对FP32性能进行了优化。他们的FP64性能因此而显着落后,可能就是您所看到的。 $ 1k GTX Titan似乎是严肃科学计算的起点。