What does 'compute capability' mean w.r.t. CUDA?

[亡魂溺海] 提交于 2020-12-02 06:10:19

问题


I am new to CUDA programming and don't know much about it. Can you please tell me what does 'CUDA compute capability' mean? When I use the following code on my university server, it showed me the following result.

for (device = 0; device < deviceCount; ++device) 
{ 
    cudaDeviceProp deviceProp; 
    cudaGetDeviceProperties(&deviceProp, device); 
    printf("\nDevice %d has compute capability %d.%d.\n", device, deviceProp.major, deviceProp.minor);      
}

RESULT:

Device 0 has compute capability 4199672.0.
Device 1 has compute capability 4199672.0.
Device 2 has compute capability 4199672.0.
.
.

cudaGetDeviceProperties returns two fields major and minor. Can you please tell me what is this 4199672.0. means?


回答1:


The compute capability is the "feature set" (both hardware and software features) of the device. You may have heard the NVIDIA GPU architecture names "Tesla", "Fermi" or "Kepler". Each of those architectures have features that previous versions might not have.

In your CUDA toolkit installation folder on your hard drive, look for the file CUDA_C_Programming_Guide.pdf (or google it), and find Appendix F.1. It describes the differences in features between the different compute capabilities.




回答2:


As @dialer mentioned, the compute capability is your CUDA device's set of computation-related features. As NVidia's CUDA API develops, the 'Compute Capability' number increases. At the time of writing, NVidia's newest GPUs are Compute Capability 3.5. You can get some details of what the differences mean by examining this table on Wikipedia.

As @aland suggests, your call probably failed, and what you're getting is the result of using an uninitialized variable. You should wrap your cudaGetDeviceProps() call with an error checking function or macro call; see

What is the canonical way to check for errors using the CUDA runtime API?

for a discussion of the best way to do this.



来源:https://stackoverflow.com/questions/11973174/what-does-compute-capability-mean-w-r-t-cuda

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!