How many 'CUDA cores' does each multiprocessor of a GPU have?
The answer depends on the Compute Capability property of the CUDA device. The numbers are:
- Compute Capability <= 1.3 --> 8 CUDA Cores / SM
- CC == 2.0 --> 32 CUDA cores / SM
- CC == 2.1 --> 48 CUDA cores / SM
See appendix G of the CUDA C Programming Guide.
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 |
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
.