我正在考虑向我的老板请求一个好的GPU,以便用matlab并行处理工具箱进行计算。 然而,经过对同事计算机的一些简单测试,在NVidia Quadro 600上。我的性能提升非常差(1x到2x之间)。
我对在n-d阵列上进行卷积特别感兴趣。
有人有类似的经历,使用gpuArray
进行计算等等吗?
我可以获得什么样的性能提升?
我应该购买哪种GPU型号(少于1000美元,希望少于400美元)?
答案 0 :(得分:2)
MATLAB中gpuArray
的性能由几个因素驱动:
以下是优秀的“随机漫步”博客的一些基准测试示例: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似乎是严肃科学计算的起点。