, 3 min read

Output from deviceQuery for NVidia GTX 560

Original post is here eklausmeier.goip.de/blog/2013/12-01-output-from-devicequery-for-nvidia-gtx-560.


This article "CUDA-Enabled GPUs" made me check my GPU again using deviceQuery in /usr/local/cuda/samples/sdk/1_Utilities/deviceQuery:

CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 560"
  CUDA Driver Version / Runtime Version          6.0 / 5.0
  CUDA Capability Major/Minor version number:    2.1
  Total amount of global memory:                 1023 MBytes (1072889856 bytes)
  ( 7) Multiprocessors x ( 48) CUDA Cores/MP:    336 CUDA Cores
<!--more-->  GPU Clock rate:                                1660 MHz (1.66 GHz)
  Memory Clock rate:                             2004 Mhz
  Memory Bus Width:                              256-bit
  L2 Cache Size:                                 524288 bytes
  Max Texture Dimension Size (x,y,z)             1D=(65536), 2D=(65536,65535), 3D=(2048,2048,2048)
  Max Layered Texture Size (dim) x layers        1D=(16384) x 2048, 2D=(16384,16384) x 2048
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 32768
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  1536
  Maximum number of threads per block:           1024
  Maximum sizes of each dimension of a block:    1024 x 1024 x 64
  Maximum sizes of each dimension of a grid:     65535 x 65535 x 65535
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Bus ID / PCI location ID:           1 / 0
  Compute Mode:
     

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.0, CUDA Runtime Version = 5.0, NumDevs = 1, Device0 = GeForce GTX 560

C++ program is roughly:

cudaDriverGetVersion(&driverVersion);
cudaRuntimeGetVersion(&runtimeVersion);
getCudaAttribute<int>(&memoryClock, CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE, dev);
getCudaAttribute<int>(&memBusWidth, CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH, dev);
getCudaAttribute<int>(&L2CacheSize, CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE, dev);

// lots of printf() omitted
printf("  (%2d) Multiprocessors x (%3d) CUDA Cores/MP:    %d CUDA Cores\n",
       deviceProp.multiProcessorCount,
       _ConvertSMVer2Cores(deviceProp.major, deviceProp.minor),
       _ConvertSMVer2Cores(deviceProp.major, deviceProp.minor) * deviceProp.multiProcessorCount);
printf("  GPU Clock rate:                                %.0f MHz (%0.2f GHz)\n", deviceProp.clockRate * 1e-3f, deviceProp.clockRate * 1e-6f);

Some remarks concerning the relation between multiprocessors and CUDA cores.

The following graphic from "CUDA C Programming Guide", October 2012, shows the architectural difference between CPU and GPU, and in particular the large number of floating-point units, see CUDA C Programming Guide. CPUvsGPU The multiprocessor architecture below is from "Parallel Thread Execution ISA Version 3.1", September 2012, i.e., the quasi NVidia assembler guide, see Parallel Thread Execution ISA Version. multiprocessor

For GPUGrid this GPU model GTX  560 gives decent performance and ranking: boincstats

And once again output from nvidia-smi, see CUDA Performance and Newer GPUGRID Tasks Keep GPU Really Hot:

Sun Dec  1 18:14:47 2013       
+------------------------------------------------------+                       
| NVIDIA-SMI 331.20     Driver Version: 331.20         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 560     Off  | 0000:01:00.0     N/A |                  N/A |
| 62%   57C  N/A     N/A /  N/A |    581MiB /  1023MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Compute processes:                                               GPU Memory |
|  GPU       PID  Process name                                     Usage      |
|=============================================================================|
|    0            Not Supported                                               |
+-----------------------------------------------------------------------------+

Added 20-Jan-2018: GTX 560 is a Fermi architecture graphic card. It is supported up to CUDA-8, but no longer in CUDA-9. Output from deviceQuery program compiled with CUDA-9 gives wrong results!