I have got a Tesla K20, but the number of GPU cores of the card computed in matlab is wrong !

4 views (last 30 days)
Hi everybody!
I have Matlab 64 bit version 2013a with Parallel toolbox
when I ask info about my CUDAdevice I got:
Name: 'Tesla K20c'
DriverVersion: 5.5
...
SIMWidth: 32
MultiprocessorCount: 13
...
The number of cores should be computed as: SIMWidth*MultiprocessorCount but here the total sum is 416, rather than 2496 that it should be. It is exaclty factor of 6 less. What can be the problem here?
Thanks a lot! Best Mattia

Answers (1)

Edric Ellis
Edric Ellis on 6 Jun 2013
If you check the appropriate section in the CUDA C Programming Guide, you'll see that the number of cores per multiprocessor is 192 for devices of compute capability 3.x.
  2 Comments
Mattia
Mattia on 7 Jun 2013
Edited: Mattia on 7 Jun 2013
Hi, I am still not convinced. If you look the documentation of matlab it states (<http://www.mathworks.de/de/help/nnet/ug/parallel-and-gpu-computing.html>):
gpu1 = gpuDevice(1)
gpu1 =
parallel.gpu.CUDADevice handle
Package: parallel.gpu
Properties:
Name: 'GeForce GTX 470'
Index: 1
ComputeCapability: '2.0'
SupportsDouble: 1
DriverVersion: 4.1000
MaxThreadsPerBlock: 1024
MaxShmemPerBlock: 49152
MaxThreadBlockSize: [1024 1024 64]
MaxGridSize: [65535 65535 1]
SIMDWidth: 32
TotalMemory: 1.3422e+09
FreeMemory: 1.1056e+09
MultiprocessorCount: 14
ClockRateKHz: 1215000
ComputeMode: 'Default'
GPUOverlapsTransfers: 1
KernelExecutionTimeout: 1
CanMapHostMemory: 1
DeviceSupported: 1
DeviceSelected: 1
gpuCores1 = gpu1.MultiprocessorCount * gpu1.SIMDWidth
gpuCores1 =
448
You can calculate how many cores the this GPU has, which in this case is 448 cores. I have just cross checked in the nvidia documentation this GeForce GTX 470 and it has 448 cores. So still I do not get why my K20 reports only 412 cores.
Edric Ellis
Edric Ellis on 7 Jun 2013
Edited: Edric Ellis on 7 Jun 2013
Unfortunately, in this case the documentation is incorrect. The SIMDWidth doesn't tell you how many CUDA cores there are per multiprocessor - it tells you how many threads there are per warp. The CUDA C programming guide tells you that devices with Compute Capability 2.0 have 32 CUDA cores per multiprocessor - which by coincidence happens to be the same as the number of threads per warp. Unfortunately, CUDA does not provide an API to tell you the number of CUDA cores per multiprocessor, so the gpuDevice display cannot tell you that.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!