GTX 690 and MATLAB Parallel Computing Toolbox How to have the two internal GPUs behaving like one si

Hi there,

I have a very simple question for you.
I just unpacked my new GTX 690 and I was on the point of starting the preliminary tests on my MATLAB application. Since the algorithm involves very simple arithmetic operations, I managed to obtain a very good speed-up by just using the Parallel Computing Toolbox with “gpuArray” (with my previous card, a GTX 460, I obtained a speed-up of about 40x).

The problem is that the new GTX 690 is a dual graphic card, since there are two coupled GPUs inside it. I thought that MATLAB would anyway see it as a single card, thus avoiding the burden of modify the code in order to manually balance the computing load between the two cards. It does not seem to be the case: MATLAB recognizes it as two separate cards, so I am afraid I will have to change my script and manually distribute and synchronize the computation.

Does anybody have any suggestion on how to use the GTX 690 as a single graphic card with MATLAB Parallel Computing Toolbox??
Since the card is quite new, I didn’t found anything interesting on the web…

Thank you guys!


Unabashedly biased thoughts follow :)

While PCT does get some speedups on straightforward arithmetic or functions which simply wrap the NVIDIA libraries, in general it is quite slow. Also, if you think arithmetic speedups in PCT are good, you’ll be floored by what you could get with Jacket. For instance, look at the relative speeds of the simple polynomial arithmetic included in the 3rd party benchmarks hosted here.

The 2 GPUs on the 690 are completely separate CUDA devices and must be handled separately. With PCT, you must manually distribute and synchronize the computation, which you’ll have to do via CUDA directly to get good performance. Only Jacket contains the technology for handling multiple GPU cards seamlessly, through the gselect function, which is super optimized and delivering great results in many multi-GPU applications. Most people doing any real GPU computing work with MATLAB are using Jacket.