FFT spread to multiple GPU's ?

6 visualizaciones (últimos 30 días)
Nicolas Burdet
Nicolas Burdet el 31 de Ag. de 2016
Respondida: Joss Knight el 5 de Oct. de 2016
Hi, I just got 4 Tesla K80 and was wondering if it was possible to distribute a FFT calculation to more than one gpu ?
Also, I just did a small performance comparison between my Tesla K40 from my previous computer and the new one with 4xTesla K80 and it is 2x slower !
Something weird is the following :
for ii = 1:gpuDeviceCount
g = gpuDevice(ii);
fprintf(1,'Device %i has ComputeCapability %s \n', ...
g.Index,g.ComputeCapability)
end
Device 1 has ComputeCapability 3.7
Device 2 has ComputeCapability 3.0
Device 3 has ComputeCapability 3.7
Device 4 has ComputeCapability 3.7
Device 5 has ComputeCapability 3.7
Device 6 has ComputeCapability 3.7
Device 7 has ComputeCapability 3.7
Device 8 has ComputeCapability 3.7
Device 9 has ComputeCapability 3.7
Matlab is counting 9 gpu's and for the second one he is telling me it is a K120 instead of K80...I thought the two gpu's inside the K80 would work as a single !!
Cheers, Nicolas

Respuestas (1)

Joss Knight
Joss Knight el 5 de Oct. de 2016
I'm guessing you have a Quadro K120 GPU driving your graphics attached to your machine, or elsewhere on the PCI bus, is that possible?
The K80 is seen by the driver as two separate GPUs. Both have lower performance than a K40 on its own.
To use many GPUs at once you need to use a parallel pool, e.g.
parpool('local', gpuDeviceCount);
You can set each worker to use a different GPU (that is the default anyway). Then use a parallel construct such as parfor, parfeval, batch or spmd to do work on each worker. Keep communication between workers to a minimum and you should be able to get the performance improvements you are looking for.

Categorías

Más información sobre Manage Products en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by