7
votes

I know that devices before the Fermi architecture had 8 SPs in a single multiprocessor. Is the count same in Fermi architecture?

3

3 Answers

15
votes

The answer depends on the Compute Capability property of the CUDA device. The numbers are:

  1. Compute Capability <= 1.3 --> 8 CUDA Cores / SM
  2. CC == 2.0 --> 32 CUDA cores / SM
  3. CC == 2.1 --> 48 CUDA cores / SM

See appendix G of the CUDA C Programming Guide.

10
votes

The number of Multiprocessors (MP) and the number of cores per MP can be found by executing DeviceQuery.exe. It is found in the %NVSDKCOMPUTE_ROOT%/C/bin directory of the GPU Computing SDK installation.

A look at the code of DeviceQuery (found in %NVSDKCOMPUTE_ROOT%/C/src/DeviceQuery) reveals that it the number of cores is calculated by passing the x.y CUDA Capability numbers to the ConvertSMVer2Cores utility function.

From the code of ConvertSMVer2Cores this relationship between the capability and core count can be seen:

Capability Cores
10 8
11 8
12 8
13 8
20 32
21 48
4
votes

Update of @AshwinNanjappa's answer for CUDA 7.5:

Compute Capability # Cores
1.x: 8
2.0: 32
2.1: 48
3.x: 192
5.x: 128

Notes:

  • CUDA 7.5 no longer supports device with compute capability 1.x.
  • These aren't really 'cores' in the sense of CPU cores. See this question here on Stack Overflow.
  • In Maxwell GPUs (5.x), the number of 'cores' per multiprocessor has decreased.
  • I got the additional information from $CUDA_SAMPLES_DIR/common/inc/helper_cuda.h.