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

4 ビュー (過去 30 日間)
Mattia
Mattia 2013 年 6 月 5 日
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

回答 (1 件)

Edric Ellis
Edric Ellis 2013 年 6 月 6 日
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 件のコメント
Mattia
Mattia 2013 年 6 月 7 日
編集済み: Mattia 2013 年 6 月 7 日
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 2013 年 6 月 7 日
編集済み: Edric Ellis 2013 年 6 月 7 日
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.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGPU Computing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by