Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What performance gain from GPU with matlab?

Tags:

cuda

matlab

gpu

I am thinking about asking my boss for a good GPU, in order to perform computing with matlab parallel processing toolbox. However, after some simple tests on a colleague's computer, on a NVidia Quadro 600. I get very poor performance gain (between 1x and 2x).

I am especially interested in doing convolutions on n-d arrays.

Do someone have a similar experience, doing computing with gpuArray and so on?

What performance gain can I expect?

What GPU model should I buy (less than 1000$, hopefully less than 400$)?

like image 224
Oli Avatar asked Oct 10 '22 07:10

Oli


1 Answers

The performance of the gpuArray in MATLAB is driven by several factors:

  • Whether your problem runs well on the GPU in the first place
  • How many CUDA cores you've got in your device, generally speaking the more the better
  • Whether you're using a device which has the enhanced double-precision performance (such as the recent Quadro/Tesla devices of compute capability >= 2)
  • Which release of MATLAB you're using - R2011b is significantly better performing than R2010b.

Here's an example of some benchmarks on the excellent 'Walking Randomly' blog: http://www.walkingrandomly.com/?p=3634 . These show the kinds of speedup one might expect in reasonable applications - i.e. ~5x to 10x is plausible, much more than that is rare.

(If you'd like to see one of those rare examples, the Mandelbrot set on the GPU programmed using gpuArrays and arrayfun runs about 1500x faster than the CPU: http://www.mathworks.com/products/demos/parallel-computing/paralleldemo_gpu_mandelbrot/paralleldemo_gpu_mandelbrot.html?product=DW )

like image 72
Edric Avatar answered Oct 13 '22 11:10

Edric